Pues de tanto mirar y mirar videos de youtube, al final pasa lo que pasa, que se te ponen los dientes largos, se te calienta la cabeza, y te compras cosas.
Mi último juguetito es, ni más ni menos, que el Lego 8297: Off Roader.
Aquí os dejo unas fotos de la caja, y del contenido.
He de decir que he estado alucinando sólo con la caja. Así que no sé qué pasará cuando la abra.
sábado, 19 de junio de 2010
lunes, 10 de mayo de 2010
Semáforo con Arduino
Hoy os voy a contar un muy, pero que muy simple proyecto que he realizado con Arduino.
Ya he utilizado resistencias, la placa de prototipado, algún cable y, aprovechando que tengo un emisor rojo, otro amarillo y otro verde ... pues he hecho un pequeño semáforo.
Aquí os dejo un vídeo, digno de varios Óscar, donde se ve el semáforo en funcionamiento.
El código fuente del programa, está también aquí, como se puede ver es muy sencillo y creo que tampoco necesita mucha explicación.
Para el próximo día, un semáforo con interruptores.
Ya he utilizado resistencias, la placa de prototipado, algún cable y, aprovechando que tengo un emisor rojo, otro amarillo y otro verde ... pues he hecho un pequeño semáforo.
Aquí os dejo un vídeo, digno de varios Óscar, donde se ve el semáforo en funcionamiento.
El código fuente del programa, está también aquí, como se puede ver es muy sencillo y creo que tampoco necesita mucha explicación.
int pinRojo = 4;
int pinAmarillo = 3;
int pinVerde = 2;
void setup(){
pinMode(pinRojo, OUTPUT);
pinMode(pinAmarillo, OUTPUT);
pinMode(pinVerde, OUTPUT);
}
void loop(){
digitalWrite(pinRojo, HIGH);
delay(1000);
digitalWrite(pinRojo, LOW);
delay(1000);
digitalWrite(pinAmarillo, HIGH);
delay(1000);
digitalWrite(pinAmarillo, LOW);
delay(1000);
digitalWrite(pinVerde, HIGH);
delay(1000);
digitalWrite(pinVerde, LOW);
delay(1000);
}
Para el próximo día, un semáforo con interruptores.
lunes, 3 de mayo de 2010
Hola Mundo u Hola LED
Hoy voy a dar mi primer paso con Arduino. Al parecer para iniciarse en este mundo, tenemos un Hola mundo!, pero a lo Arduino, y con un diodo emisor de luz. Voy a seguir los pasos de este tutorial, que iré comentado con las cosas que me encuentre.
A mano todo lo importante
Lo primero que necesitamos es obviamente un Arduino, yo tengo un Duemilanove, así que a partir de ahora, mis referencias a Arduino, son en realidad a Arduino Duemilanove.
También hace falta un cable USB, de conector A a B. El que viene con nuestro Lego(c) MindStorms, sirve perfectamente. Esto es para conectar el Arduino con el ordenador.
Y por último hace falta el entorno de desarrollo de Arduino, que se puede descargar desde aquí. Sigo pendiente de volver a instalar mi distribución GNU/Linux favorita, Gentoo, así que voy a comentar todo sobre un Microsoft Windows XP SP3. Es un fichero zip, que descomprimimos donde queramos y hay que ejecugtar arduino.exe. Es una aplicación java, así que hay que darle tiempo. Ahora podemos ver una pantalla que tengo la impresión que se me va a hacer muy familiar dentro de poco.
Conectado Arduino a un ordenador por primera vez
Conectamos el Arduino con el cable USB y a Windows le da un jamacuco intentando reconocer el hardware, pero no hay problema. Le damos a buscar los controladores por nuestra cuenta y seleccionamos el directorio drivers del zip que hemos descomprimido en el paso anterior.
Ahora muy importante, que a mi no me funcionó nada la primera vez por esto, es configurar el puerto donde está escuchando el Arduino y que tipo es la placa.
Para ello nos vamos al menú TOOLS -> BOARD y seleccionamos la que tengamos.
Y ahora en el menú TOOLS -> SERIAL PORT. Ahora viene la gran pregunta ... ¿en qué puerto tengo conectado el Arduino?, truquele fácil, enchufamos el Arduino y vemos la lista de puertos disponibles, desenchufamos el Arduino y vemos cuál ha desaparecido ... ese será nuestro puerto.
Darle al play
Ahora viene la parte más fácil. En el menú seleccionamos FILE -> OPEN y buscamos en examples/digital/blink el fichero blink.pde. Vemos que un código se ha cargado en la pantalla principal del editor.
Ahora, con el Arduino conectado pinchamos en el botón de upload, que es como el de play y si todo ha ido bien ... veremos a nuestro Arduino haciendo lo siguiente.
Si algo ha fallado, nos toca buscar en este enlace.
Por hoy ya he tenido suficiente. Al próximo día más y mejor. Hay muchos tutoriales y vídeos por internet donde se pueden encontrar ideas interesantes. De momento no tengo nada definido de cual será mi siguiente paso
A mano todo lo importante
Lo primero que necesitamos es obviamente un Arduino, yo tengo un Duemilanove, así que a partir de ahora, mis referencias a Arduino, son en realidad a Arduino Duemilanove.
También hace falta un cable USB, de conector A a B. El que viene con nuestro Lego(c) MindStorms, sirve perfectamente. Esto es para conectar el Arduino con el ordenador.
Y por último hace falta el entorno de desarrollo de Arduino, que se puede descargar desde aquí. Sigo pendiente de volver a instalar mi distribución GNU/Linux favorita, Gentoo, así que voy a comentar todo sobre un Microsoft Windows XP SP3. Es un fichero zip, que descomprimimos donde queramos y hay que ejecugtar arduino.exe. Es una aplicación java, así que hay que darle tiempo. Ahora podemos ver una pantalla que tengo la impresión que se me va a hacer muy familiar dentro de poco.
Conectado Arduino a un ordenador por primera vez
Conectamos el Arduino con el cable USB y a Windows le da un jamacuco intentando reconocer el hardware, pero no hay problema. Le damos a buscar los controladores por nuestra cuenta y seleccionamos el directorio drivers del zip que hemos descomprimido en el paso anterior.
Ahora muy importante, que a mi no me funcionó nada la primera vez por esto, es configurar el puerto donde está escuchando el Arduino y que tipo es la placa.
Para ello nos vamos al menú TOOLS -> BOARD y seleccionamos la que tengamos.
Y ahora en el menú TOOLS -> SERIAL PORT. Ahora viene la gran pregunta ... ¿en qué puerto tengo conectado el Arduino?, truquele fácil, enchufamos el Arduino y vemos la lista de puertos disponibles, desenchufamos el Arduino y vemos cuál ha desaparecido ... ese será nuestro puerto.
Darle al play
Ahora viene la parte más fácil. En el menú seleccionamos FILE -> OPEN y buscamos en examples/digital/blink el fichero blink.pde. Vemos que un código se ha cargado en la pantalla principal del editor.
Ahora, con el Arduino conectado pinchamos en el botón de upload, que es como el de play y si todo ha ido bien ... veremos a nuestro Arduino haciendo lo siguiente.
Si algo ha fallado, nos toca buscar en este enlace.
Por hoy ya he tenido suficiente. Al próximo día más y mejor. Hay muchos tutoriales y vídeos por internet donde se pueden encontrar ideas interesantes. De momento no tengo nada definido de cual será mi siguiente paso
Arduino: entre mis manos
Hoy por fin he podido recoger mi Arduino Duemilanove. Una vez más el servicio de FunGizmos ha sido muy bueno, correcto embalaje y protección de todo lo pedido y en un tiempo más que razonable.
Aquí os dejo algunas fotos de mi nuevo juguetito y de cómo ha venido. Una vez más, un diez para FunGizmos
Podeis ver que a parte he pedido también algunas resistencias, unos interruptores y unos diodos emisores.



Tampoco tiene mucho sentido contar cosas de un Arduino en un blog sobre Lego(c) MindStorms, pero como el objetivo es que en un futuro, todo esté dentro del mismo saco ... Además así tiene más actividad el blog.
¡ El arduino ! ¡Qué viene!. Tenía que hacer la gracia, lo siento. En breve mi primera aventura y espero que no desventuras.
Aquí os dejo algunas fotos de mi nuevo juguetito y de cómo ha venido. Una vez más, un diez para FunGizmos
Podeis ver que a parte he pedido también algunas resistencias, unos interruptores y unos diodos emisores.


Tampoco tiene mucho sentido contar cosas de un Arduino en un blog sobre Lego(c) MindStorms, pero como el objetivo es que en un futuro, todo esté dentro del mismo saco ... Además así tiene más actividad el blog.
¡ El arduino ! ¡Qué viene!. Tenía que hacer la gracia, lo siento. En breve mi primera aventura y espero que no desventuras.
lunes, 5 de abril de 2010
WiiChuck
Navegando por internet, que es una fuente inagotable de ideas trastear con nuestro Lego(R), me he encontrado con los siguientes enlaces, que vienen a tratar todos más o menos de lo mismo.
Resumen: se puede conectar el Nunchuck de Nintendo a NXT para controlarlo con el joystick y también servir de sensor de aceleración.
* Enlace al vídeo anterior en youtube
* http://forums.nxtasy.org/index.php?showtopic=3075
* http://www.hispalug.com/foro/index.php?topic=9882.0
En el segundo y tercer enlace, que la verdad, pongo como obligada lectura, se explica como conectar el nunchuk al nxt. Un foro en inglés, y otro en castellano. De todo un poco.
Aquí me pongo como objetivos:
* Aprender a utilizar el i2c (algo bastante general)
* Hacer con un Nunchuck un sensor para nuestro Lego (ejemplo concreto de lo mencionado anteriormente)
Ni corto ni perezoso he pedido un WiiChuck Adapter por internet. No tengo acciones de ninguna tienda ni me llevo beneficios, pero como la experiencia con Fungizmos ha sido muy buena, os la voy a comentar.
El WiiChick Adapter es, hablando un poco en plata, una pequeña placa que permite conectar un NunChuck a un cabezal de cuatro. Y luego ya se puede conectar este cabezal a cualquier invento electrónico que se nos venga a la cabeza, como por ejemplo, un Arduino
La pieza que pedí fue la siguiente. Se pudo pagar con PayPal, tuve tan sólo un dolar de gastos de envío y llegó en tres días, desde Estados Unidos a España. Experiencia 100% recomendable y asequible para bolsillos en crisis, 3,75 euros en total.
Aquí os dejo unas fotos de cómo vino embalado y del adaptador en cuestión.
Como se puede ver, no se han gastado mucho en embalaje, pero es que el producto, tampoco lo requería. Ha sido enviado por correo ordinario.
El adaptador es bastante pequeño, parece muy poca cosa, aunque espero que dé mucho juego a la hora de la verdad
Y poco más puedo contar de este nuevo juguetito de momento. Dentro de poco espero poder trastear un poco más con él y escribir la crónica de algún experimento interesante. Además en este afán consumista que me rodea ultimamente, he pedido hoy un Arduino y unos componentes básicos (leds, resistencias, y botones) para trastear un poco más con este tema.
En breve ... mis aventuras y desventuras con el Lego(R) y el Arduino.
Resumen: se puede conectar el Nunchuck de Nintendo a NXT para controlarlo con el joystick y también servir de sensor de aceleración.
* Enlace al vídeo anterior en youtube
* http://forums.nxtasy.org/index.php?showtopic=3075
* http://www.hispalug.com/foro/index.php?topic=9882.0
En el segundo y tercer enlace, que la verdad, pongo como obligada lectura, se explica como conectar el nunchuk al nxt. Un foro en inglés, y otro en castellano. De todo un poco.
Aquí me pongo como objetivos:
* Aprender a utilizar el i2c (algo bastante general)
* Hacer con un Nunchuck un sensor para nuestro Lego (ejemplo concreto de lo mencionado anteriormente)
Ni corto ni perezoso he pedido un WiiChuck Adapter por internet. No tengo acciones de ninguna tienda ni me llevo beneficios, pero como la experiencia con Fungizmos ha sido muy buena, os la voy a comentar.
El WiiChick Adapter es, hablando un poco en plata, una pequeña placa que permite conectar un NunChuck a un cabezal de cuatro. Y luego ya se puede conectar este cabezal a cualquier invento electrónico que se nos venga a la cabeza, como por ejemplo, un Arduino
La pieza que pedí fue la siguiente. Se pudo pagar con PayPal, tuve tan sólo un dolar de gastos de envío y llegó en tres días, desde Estados Unidos a España. Experiencia 100% recomendable y asequible para bolsillos en crisis, 3,75 euros en total.
Aquí os dejo unas fotos de cómo vino embalado y del adaptador en cuestión.
Como se puede ver, no se han gastado mucho en embalaje, pero es que el producto, tampoco lo requería. Ha sido enviado por correo ordinario.
El adaptador es bastante pequeño, parece muy poca cosa, aunque espero que dé mucho juego a la hora de la verdad
Y poco más puedo contar de este nuevo juguetito de momento. Dentro de poco espero poder trastear un poco más con él y escribir la crónica de algún experimento interesante. Además en este afán consumista que me rodea ultimamente, he pedido hoy un Arduino y unos componentes básicos (leds, resistencias, y botones) para trastear un poco más con este tema.
En breve ... mis aventuras y desventuras con el Lego(R) y el Arduino.
Etiquetas:
acelerometro,
i2c,
WiiChuck
viernes, 19 de marzo de 2010
Máquinas de Turing (II): Leyendo una cinta
Voy a empezar a construir un robot que sea capaz de leer una cinta.
La cinta, serán tiras de papel de distinta longitud, puestas en línea recta por el suelo.

Y el robot encargado de leerlas, será este. Es un poco cutrecillo, porque está hecho a lo deprisa y corriendo, pero cumple su función con creces.





No voy a añadir un LDD en este momento, pero si un par de fotos para que veaís como se ha construido.
Y ahora vamos a ponerlo en marcha. Aquí tenéis el video, el cable que cuelga es el del usb, porque hoy no funcionaba la conexión bluetooth, yo creo que es porque llueve.
He registrado con matlab los valores que lee el sensor de luz y este es el resultado

Se pueden ver claramente que hay cuatro tramos de color blanco detectado, uno mediano, dos pequeños consecutivos y por último uno largo final. Que se corresponden con las tiras que había en el suelo.

Y con esto y un bizcocho, he hecho una primera aproximación a leer una cinta de una máquina de turing, no sé si el modelo final será así, pero para empezar me vale.
La cinta, serán tiras de papel de distinta longitud, puestas en línea recta por el suelo.

Y el robot encargado de leerlas, será este. Es un poco cutrecillo, porque está hecho a lo deprisa y corriendo, pero cumple su función con creces.





No voy a añadir un LDD en este momento, pero si un par de fotos para que veaís como se ha construido.
Y ahora vamos a ponerlo en marcha. Aquí tenéis el video, el cable que cuelga es el del usb, porque hoy no funcionaba la conexión bluetooth, yo creo que es porque llueve.
He registrado con matlab los valores que lee el sensor de luz y este es el resultado
Se pueden ver claramente que hay cuatro tramos de color blanco detectado, uno mediano, dos pequeños consecutivos y por último uno largo final. Que se corresponden con las tiras que había en el suelo.

Y con esto y un bizcocho, he hecho una primera aproximación a leer una cinta de una máquina de turing, no sé si el modelo final será así, pero para empezar me vale.
Máquinas de Turing (I): Primera toma de contacto
Navegando por internet me encontré con algo que resultó muy interesante: máquinas de turing construidas con legos.
Este es el primer blog de máquinas de turing hechas con el nxt que encontré. El video, aparte de divertido, es bastante espectacular.
Utilizan el sensor de contacto para leer los valores de la cinta, montada sobre unos railes de lego. Y para escribir utilizan un motor que hace girar los cuadrados de lego.
La segunda referencia sobre legos y máquinas de turing la encuentro en el capítulo 3 del libro Lego Mindstorms Masterpieces.
En la previsualización del libro, en el índice, se puede ver una foto del resultado. No la pongo porque vete tú a saber que pasaría ... igual es ilegal y todo.
Aquí la cinta es una serie de "interruptores" fabricados con vigas de tres y un dispositivo motor que las gira de un lado al otro, posición borrar y escribir. Es un resultado un poco menos vistoso que el anterior.
Em ambos casos la cinta está limitada, podría ser interesante construir una máquina que tuviera cinta ilimitada.
Una vez que he visto todo esto y se me han puesto los dientes largos ... voy a ver como construyo mi propia máquina de turing.
Para empezar me hace falta un poco más de teoría sobre las máquinas de turing, para ver exactamente qué puedo construir.
Creo recordar así del tirón que había casos en los que no hacía falta escribir, sólo leer. En este caso por ejemplo con el sensor de luz podría leer líneas dibujadas en el suelo de algún color para distinguir
#ROJA# #VERDE## #VERDE# #ROJA# #VERDE#
Luego en matlab ver una gráfica del tipo ___---____----___ e interpretarla como 0 ó 1.
Mientras refresco todos mis conocimientos de máquinas de turing, voy a intentar construir un primer prototipo de este modelo.
Bueno, ya hemos empezado otra aventurita con el lego :D
Este es el primer blog de máquinas de turing hechas con el nxt que encontré. El video, aparte de divertido, es bastante espectacular.
Utilizan el sensor de contacto para leer los valores de la cinta, montada sobre unos railes de lego. Y para escribir utilizan un motor que hace girar los cuadrados de lego.
La segunda referencia sobre legos y máquinas de turing la encuentro en el capítulo 3 del libro Lego Mindstorms Masterpieces.
En la previsualización del libro, en el índice, se puede ver una foto del resultado. No la pongo porque vete tú a saber que pasaría ... igual es ilegal y todo.
Aquí la cinta es una serie de "interruptores" fabricados con vigas de tres y un dispositivo motor que las gira de un lado al otro, posición borrar y escribir. Es un resultado un poco menos vistoso que el anterior.
Em ambos casos la cinta está limitada, podría ser interesante construir una máquina que tuviera cinta ilimitada.
Una vez que he visto todo esto y se me han puesto los dientes largos ... voy a ver como construyo mi propia máquina de turing.
Para empezar me hace falta un poco más de teoría sobre las máquinas de turing, para ver exactamente qué puedo construir.
Creo recordar así del tirón que había casos en los que no hacía falta escribir, sólo leer. En este caso por ejemplo con el sensor de luz podría leer líneas dibujadas en el suelo de algún color para distinguir
#ROJA# #VERDE## #VERDE# #ROJA# #VERDE#
Luego en matlab ver una gráfica del tipo ___---____----___ e interpretarla como 0 ó 1.
Mientras refresco todos mis conocimientos de máquinas de turing, voy a intentar construir un primer prototipo de este modelo.
Bueno, ya hemos empezado otra aventurita con el lego :D
sábado, 27 de febrero de 2010
laberintos (IX): resultado
Mucha letra ... pero lo que más interesa es ver un video de todo esto que os he contado en funcionamiento.
Qué los disfruteis
Qué los disfruteis
Laberintos (VIII): Conclusiones y líneas de trabajo futuras
Ya habéis visto que el que no tiene un lego que escapa de laberintos es porque no quiere. Voy a intentar resumir aquí las conclusiones que he obtenido de este experimento.
- El lego sigue sin parecerme una herramienta de precisión. Obviamente es un juguete.
Esto lo he visto muy patente a la hora de realizar los giros, que prácticamente nunca eran de 90 grados justos. A veces te giraba más y a veces menos. A veces avanzaba hasta la mitad del cuadrado y otras veces hasta el final
Esos pequeños fallos se iban acumulando y no se obtenían resultados buenos. El robot se iba de la habitación, se quedaba dando vueltas sobre sí mismo.
- Roborealm es la repanocha !!! le veo muchas posibilidades y todas muy interesantes. Creo que no va ser el último proyecto en que lo utilice.
- He utilizado un montón de herramientas y he visto como colaboran todas en paz y armonía para obtener el resultado final. Cámara web -> Roborealm -> Telnet -> Java -> Matlab -> Lego.
Que buen integrador soy :D.
Como futuros trabajos quiero proponerme que sea el propio lego el que sin ayuda de ningún sistema externo salga del laberinto. Ya tengo algo en mente, pero utilizando NXC, así que dentro de poco ... mis aventuras y desventuras con NXC.
Espero que os haya gustado esta entrada. Ale, todos a hacer el Prison Break
- El lego sigue sin parecerme una herramienta de precisión. Obviamente es un juguete.
Esto lo he visto muy patente a la hora de realizar los giros, que prácticamente nunca eran de 90 grados justos. A veces te giraba más y a veces menos. A veces avanzaba hasta la mitad del cuadrado y otras veces hasta el final
Esos pequeños fallos se iban acumulando y no se obtenían resultados buenos. El robot se iba de la habitación, se quedaba dando vueltas sobre sí mismo.
- Roborealm es la repanocha !!! le veo muchas posibilidades y todas muy interesantes. Creo que no va ser el último proyecto en que lo utilice.
- He utilizado un montón de herramientas y he visto como colaboran todas en paz y armonía para obtener el resultado final. Cámara web -> Roborealm -> Telnet -> Java -> Matlab -> Lego.
Que buen integrador soy :D.
Como futuros trabajos quiero proponerme que sea el propio lego el que sin ayuda de ningún sistema externo salga del laberinto. Ya tengo algo en mente, pero utilizando NXC, así que dentro de poco ... mis aventuras y desventuras con NXC.
Espero que os haya gustado esta entrada. Ale, todos a hacer el Prison Break
laberintos (VI) : algoritmo de búsqueda A*
Esto si que es superior a mis fuerzas explicarlo ... así que aquí tenéis un enlace a la wikipedia, que seguro que lo explica mucho mejor que yo.
Lo que intento obtener del algoritmo, son las posiciones por las que tiene que pasar el robot para salir del laberinto. Y con qué acción se ha llegado a ellas.

Asi tenemos una lista de movimientos por ejemplo
AV, avanza
GT, gira 180 grados
GD, gira 90 grados a la derecha
GI, gira 90 grados a la izquierda
Para salir del laberinto hay que pasar por las siguientes posiciones
00,10,20,30,31,32,33,34,24,14,04,03,02,21
que son los siguientes movimientos del robot
GT,AV,AV,AV,GD,AV,AV,AV,AV,AV,GD,AV,AV,AV,GD,AV,AV,GD,AV
Estas son las instrucciones que le enviamos a Matlab. Las escribimos en un fichero de texto plano en un directorio en el que Matlab está escuchando constantemente en busca de instrucciones para enviar al robot.
Lo que intento obtener del algoritmo, son las posiciones por las que tiene que pasar el robot para salir del laberinto. Y con qué acción se ha llegado a ellas.
Asi tenemos una lista de movimientos por ejemplo
AV, avanza
GT, gira 180 grados
GD, gira 90 grados a la derecha
GI, gira 90 grados a la izquierda
Para salir del laberinto hay que pasar por las siguientes posiciones
00,10,20,30,31,32,33,34,24,14,04,03,02,21
que son los siguientes movimientos del robot
GT,AV,AV,AV,GD,AV,AV,AV,AV,AV,GD,AV,AV,AV,GD,AV,AV,GD,AV
Estas son las instrucciones que le enviamos a Matlab. Las escribimos en un fichero de texto plano en un directorio en el que Matlab está escuchando constantemente en busca de instrucciones para enviar al robot.
Suscribirse a:
Entradas (Atom)












