Archivo etiqueta arduino
Acelerómetro / Giróscopo con Arduino
Hola a todos!
Les cuento que hemos adquirido un kit de sensores y accesorios para Arduino. Hay de los más variados: leds RGB, emisores láser, sensores de temperatura y humedad, de presencia, emisor y receptor de infrarrojo, encoders, acelerómetro, etc.
Uno de los más interesantes es el acelerómetro. Lo probamos con una Arduino Nano y un código que nos devuelve el Yaw, Pitch y Roll.
El sensor al que nos referimos se lo conoce como IMU (Inertial Measurement Unit). Consta de un acelerómetro y un giróscopo. Estos miden la fuerza ejercida por la gravedad y la velocidad.
En este caso, el MPU-6050 es una IMU de 6DOF (“6 Degrees Of Freedom“). Esto significa que lleva un acelerómetro y un giroscopio, ambos de 3 ejes (3+3 = 6DOF).
La conexión con Arduino, se realiza de la siguiente manera:
El MPU-6050 utiliza el protocolo de comunicación I2C, por lo que vamos a requerir descargar la siguiente librería:
https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050
(Si no saben cómo instalar una librería adicional para Arduino, pueden consultarlo en http://www.arduino.cc/en/pmwiki.php?n=Guide/Libraries)
Les paso el código utilizado, que fué extraído de http://playground.arduino.cc/Main/I2cScanner%EF%BB%BF
Finalmente, una captura del sistema funcionando:
Espero que les haya sido de utilidad. Éxitos!
Saludos,
SLAM: Preparando el ER1
Hola a todos!
Anteriormente «Tera» les había contado sobre el proyecto de su tesis doctoral, que tratará sobre SLAM (Leer aquí).
Pensando en ello, estamos preparando lo que va a ser el robot base del proyecto: el ER1 (que alguna vez nos donó Microsoft). El mismo estaba sin uso hace un largo tiempo porque se había roto la placa controladora, así que tuvimos que diseñar una nueva.
Por lo tanto solo usaremos el chasis y los motores del robot original.
El manejo de los motores no fue fácil, ya que son unos paso a paso que funcionan a solo 2,4V, pero con un consumo alto de 2,8A, lo que producía demasiada temperatura para los controladores de motores que solíamos utilizar, y se ponían tan calientes que no había disipador/cooler que lo enfriara debidamente.
En consecuencia, tuvimos que implementar un regulador de voltaje que maneja mayor corriente que un simple LM7805; se trata del LM338 que soporta hasta 5A de consumo.
El control de los motores lo haremos con una placa Arduino Uno (aunque tal vez mas adelante la reemplacemos por nuestra propia «Mendieta«)
En la parte superior del chasis del ER1 fijaremos el Kinect, para lo cual hemos diseñado en SketchUp e impreso en nuestra impresora 3D, la pieza adaptadora, la que podrán observar en las siguientes entradas del tema.
Con estos avances apuntamos a cumplir la primera parte del proyecto, que tiene como objetivo específico: «Desarrollar la estructura, mecánica, electrónica y suministro de energía de un robot que transporte una notebook, un sensor de profundidad por infrarrojo y una cámara (kinect).»
Muy pronto les seguiremos contando los avances del proyecto, así que estén atentos.
Saludos,
Gabriel
Physical Etoys tips – Time handling (part 1)
Por Richi - Physical Etoys - 11/Ago/2014
As we all know, Etoys objects are alive, they interact with the user and with each other and we can teach them new ways of interaction by building scripts. These scripts are not simply executed, they run inside an implicit loop (kind of like a videogame). This execution model forces the user to split complex behaviours into steps that each object will perform on every tick, without needing to specify how the iteration will be performed. Thus, Etoys doesn’t have any “forever” or “repeat until” structure (although it does have a “repeat times” structure, which is convenient but arguably unnecessary).
This ticking model does not only reinforce the idea of objects being alive but it also makes concurrency fairly simple. As in reality, where a lot of things are happening simultaneously, in Etoys all scripts are virtually running at the same time. This is a very powerful metaphor, but it has a disadvantage: it makes some time dependent tasks (such as performing an action for an amount of time or waiting a couple of seconds before doing something) a lot more difficult. Unlike other visual programming languages (such as Scratch) there is no «wait» tile in Etoys.
Instead, we have several other mechanisms to deal with time:
- We can represent the passing of time visually and use the “Test” tile to react to it.
- We can use the playfield’s «timer» slot and measure how much time has passed since it was last reset.
- We can use the Digital Clock special slots: “hours”, “minutes”, and “seconds”.
- Or we can use the Timer object (introduced in Physical Etoys 2.1).
Today, we are going to talk about the first mechanism, visually representing the passing of time. And to do it we’ll build a simple device controlled by time: a traffic light.
We’ll need:
- An arduino.
- A breadboard.
- 3 leds (red, yellow, and green. Duh).
- 3 resistors (between 200 ohm and 2 kohm are probably ok).
- Some wires.
We’ll start by building the following circuit.
Como todos sabemos, los objetos de Etoys están vivos, interactúan entre sí y con el usuario, y podemos enseñarles nuevas formas de interacción armando guiones. Estos guiones no se ejecutan como cualquier script sino que corren en un ciclo implícito (casi como en un videojuego) donde cada ejecución es denominada “latido”. Este modelo de ejecución obliga al usuario a dividir comportamientos complejos en pasos concretos que cada objeto debe realizar en cada latido, sin tener que especificar cómo la iteración se llevará a cabo. Por esta misma razón, Etoys no tiene ninguna estructura de control “por siempre” o “repetir hasta que” (aunque sí tiene una estructura “repetir # veces”, que es conveniente pero cuya necesidad es discutible).
Este modelo de “latidos” no solo refuerza la idea de los objetos como entidades vivas sino que también hace muy fácil el pensar el comportamiento de forma concurrente. Como en la vida real, donde muchas cosas están pasando simultáneamente, en Etoys todos los guiones están virtualmente latiendo al mismo tiempo. Esta metáfora es muy poderosa pero tiene una desventaja: dificulta algunas tareas dependientes del paso del tiempo (por ejemplo, ejecutar una acción durante un tiempo determinado o esperar unos segundos antes de hacer algo). A diferencia de otros lenguajes de programación visuales (como Scratch) no hay ninguna instrucción “esperar”.
En su lugar tenemos otros mecanismos para lidiar con el tiempo:
- Podemos representar el paso del tiempo visualmente.
- Podemos usar la variable “cronómetro” del Campo de Juegos y medir cuánto tiempo pasó desde la última vez que fue reiniciado.
- Podemos usar las variables del Reloj Digital: “horas”, “minutos”, y “segundos”.
- O podemos usar el objeto Timer (introducido en Physical Etoys 2.1).
Hoy vamos a hablar del primer mecanismo, la representación visual del paso del tiempo. Y para hacerlo vamos a construir un dispositivo sencillo controlado por el tiempo: un semáforo.
Vamos a necesitar:
- Un arduino.
- Un protoboard.
- 3 leds (rojo, amarillo y verde).
- 3 resistencias (entre 200 ohm and 2 kohm deberían andar bien).
- Unos cuantos cables.
Empezamos armando el siguiente circuito.
For this we need an object that uses color to represent the different states of a traffic light. My drawing skills are very limited so in my case I used a couple of Sector objects (that you can find in the object catalog) to make this:
Para esto necesitamos un objeto que use colores para representar los diferentes estados de un semáforo. Mis habilidades artísticas son bastantes limitadas por lo que, en mi caso, use varios objetos Sector, que pueden encontrar en el Catálogo de objetos.
The result: El resultado final: http://youtu.be/5aaxMj3dPyI
If you’re too lazy to do it yourself, you can download the full project here: http://tecnodacta.com.ar/gira/examples/TrafficLight.002.pe. And if you use a different mechanism to perform waiting in Etoys, please let me know in the comments.
And, as always, have fun!
Si son demasiado vagos para hacerlo ustedes mismos, pueden descargar el proyecto completo aquí: http://tecnodacta.com.ar/gira/examples/TrafficLight.002.pe. Y si usan un mecanismo diferente, por favor háganmelo saber en los comentarios.
Y, como siempre, ¡que se diviertan!
Physical Etoys 2.1.2
Por Richi - Physical Etoys - 13/Jun/2014
Para todos aquellos que usan tanto S4A como Physical Etoys hoy les tengo una sorpresa. Acabamos de publicar una nueva versión de Physical Etoys con un pequeño pero importante añadido: un objeto nuevo que permite comunicarse con la placa Arduino usando el firmware de S4A.
De este modo, ya no hace falta ese incómodo paso de la instalación del firmware cada vez que cambiamos de entorno. Y además nos beneficiamos del excelente trabajo de nuestros amigos de Citilab, a quienes les mandamos un fuerte abrazo y nuestro profundo agradecimiento 🙂
Pueden encontrar el objeto nuevo en la pestaña inferior junto al resto de los objetos de Physical Etoys:
http://tecnodacta.com.ar/gira/projects/physical-etoys/
¡Que se diviertan!
Richo
Physical Etoys on Raspberry Pi
Por Richi - Physical Etoys - 27/Mar/2013
We were very happy to find squeak already installed on it, so we were just one step away from having Physical Etoys running there as well 🙂
Pics or it didn’t happen!
Nos alegró mucho encontrar squeak ya instalado, así que estábamos a sólo un paso de tener corriendo Physical Etoys también 🙂
Pharo and Arduino
Por Richi - Physical Etoys - 22/Feb/2012
Hi, if you happen to be a Pharo developer and a proud owner of an Arduino board, this might be of interest to you.
Given the recent mails related to Arduino in the Pharo mailing list, I decided to make a Metacello configuration to help the poor souls in need. So here it is, now you can load the Arduino project by evaluating the following:
Gofer it squeaksource: 'MetacelloRepository'; package: 'ConfigurationOfArduino'; load. (Smalltalk at: #ConfigurationOfArduino) load.
This will load two things:
- the Arduino-Core package, which contains a very simple model that lets you communicate with your Arduino via SerialPort using a firmware like Firmata (or a simple firmware made by us).
- the Arduino-Compiler package, a very rudimentary Smalltalk-to-C translator that lets you program your Arduino board without leaving Smalltalk. It’s pretty cool, but believe me, the translator is currently very limited, it doesn’t support any of the things that make Smalltalk fun. In fact, you’ll be writing ugly C code in a Smalltalk disguise.
Note that in order to upload your programs to the board, we need FFI to communicate with avr-gcc/avrdude. None of the Windows VMs I found on the Pharo website worked with FFI, I’m sure this will be fixed soon but for now I’m using a CogVM from Elliot’s website.
Once you install all the packages you’ll have to install several extra files the Arduino-Compiler package needs to work (the avr binaries, the arduino libraries, our firmware, and a couple more). Luckily for you, I’ve compiled them in a single file you can find below:
- Windows: http://tecnodacta.com.ar/gira/Arduino.dirTree.win32.12.rar
- Linux: http://tecnodacta.com.ar/gira/Arduino.dirTree.unix.3.zip
You must extract the contents of this file in the same directory where you have your Pharo image. If you’re using Windows now you’re ready to start playing. In case you’re using Linux, you will also need to install gcc-avr and avr-libc (follow the instructions for your platform here).
Now that everything is installed I suggest you try one of these examples I prepared:
Arduino ledExample. Arduino buttonExample. Arduino potentiometerExample.
I also encourage you to take a look at the Arduino class comment, it has some very useful code snippets.
Have fun!
Richo
Smalltalks 09 y Physical Etoys
Por Sebas - Physical Etoys - 22/Dic/2009
We have good news. Last month we went to the Smalltalks 2009 event which took place at the Universidad de Buenos Aires and was organized by the FAST. The talks were excellent and pretty varied. In addition, there were distinguished guest: Dan Ingalls, Alex Warth and Stéphane Ducasse. We particularly enjoyed Dan’s talk which showed that academic matters are more pleasant when the motor that motivates us is fun =)
We showed the last project we are working on: Physical Etoys. For the ones who do not know, this project consists of virtualizing different physical objects (preferably robots) in order to control them easily from Etoys. Although the project is not finished, we showed at the conference how to program robots to perform different tasks in a short time such as reacting to sounds or controlling it with the Wii’s Joystick. Also we presented different Arduino programming examples with Etoys and the XO (the OLPC laptop) associated with motors, LED’s, Photoresistors and push buttons.
Tenemos buenas noticias. Les comentamos que fuimos al evento Smalltalks 2009 que tuvo lugar en la Universidad de Buenos Aires y fue organizado por la FAST. Las charlas estuvieron excelentes y muy variadas. También hubo invitados de honor destacados como Dan Ingalls, Alex Warth y Stéphane Ducasse. Destacamos la charla de Dan quien nos dejo en claro que todo lo académico siempre es más ameno cuando el motor que nos motiva es la diversión =)
Por nuestra parte mostramos lo último en lo que estamos trabajando: Physical Etoys. Para los que no lo saben, este proyecto consiste en virtualizar distintos objetos físicos (preferentemente robóticos) para poder controlarlos fácilmente desde Etoys. Si bien todavía no está terminado, en la conferencia mostramos en muy poco tiempo cómo programar robots para que haga tareas sencillas: reaccionar a ruidos o controlarlo con el joystick de la Wii. También mostramos cómo controlar la placa Arduino asociada a motores, LED’s fotorresitores y pulsadores con Etoys desde la XO (la laptop del programa OLPC).
Squeak Etoys + Arduino ¡Primera versión!
Por Richi - Physical Etoys - 15/Sep/2009
Estamos orgullosos de anunciar nuestra primer versión de la interfaz de Squeak Etoys con Arduino.
Pueden bajarlo desde aquí: http://tecnodacta.com.ar/gira/Arduino/
Funciona tanto en Windows como en Linux (lean el archivo README.txt para más información sobre los procesos de instalación y uso en ambas plataformas).
Les advierto que no está del todo terminado y todavía tiene algunos bugs que no he podido eliminar. Sin embargo, ya se encuentra en un estado relativamente estable.
En fin, muchas gracias a todos los que han demostrado interés por el proyecto. Espero saber pronto de ustedes y sus proyectos con Arduino y Squeak.
Les dejo algunas screenshots:
Controlando Arduino con Squeak Etoys
Por Richi - Physical Etoys - 7/Sep/2009
El control de Arduino desde Etoys ya está casi terminado, por lo cual hemos filmado un pequeño video mostrando algunas cosas básicas que se pueden hacer.
Antes de publicarlo nos falta arreglar algún que otro bug y terminar los Etoys de componentes básicos de electrónica (léase led, LDR, potenciómetro, distintos tipos de motores, etc.).
Esperamos poder publicarlo en esta semana. Saludos!
ACTUALIZACIÓN: Hemos publicado las primeras versiones del proyecto y pueden bajárselo desde acá:
http://tecnodacta.com.ar/gira/projects/physical-etoys/arduino/
Proximamente…
Por Sebas - Physical Etoys - 19/Ago/2009
Hola! El objetivo de este post es mostrar que estamos desarrollando un Etoy para la famosa placa Arduino. Va todo viento en popa y esperamos que corra tanto en Windows como en Linux. Estamos utilizando el protocolo Firmata y lo único que nos falta por ahora es el control de los servos. Cuando esté terminado subiremos un video…