9/28/2015

Robots con arduino Yun

Saludos,

A principio del mes de agosto estuve enfrascado en un proyecto con el Arduino yun, para realizar un robot semejante a los que ya he construido pero con la diferencia que en este caso podría tratarse de un robot autónomo.



Me explico, a grandes rasgos el Arduino yun funciona como un Arduino normal, con la salvedad que tiene conexión wifi y un sistema operativo propio el linino.


AVR Arduino microcontroller
Linux Microprocessor
Microcontroller                ATmega32U4
Operating Voltage          5V
Input Voltage    5
Digital I/O Pins  20
PWM Channels                7
Analog Input Pins            12
DC Current per I/O Pin  40 mA
DC Current for 3.3V Pin                50 mA
Flash Memory  32 KB (of which 4 KB used by bootloader)
SRAM   2.5 KB
EEPROM              1 KB
Clock Speed       16 MHz
Processor           Atheros AR9331
Architecture      MIPS @400MHz
Operating Voltage          3.3V
Ethernet             IEEE 802.3 10/100Mbit/s
WiFi       IEEE 802.11b/g/n
USB Type-A       2.0 Host
Card Reader      Micro-SD only
RAM      64 MB DDR2
Flash Memory  16 MB
SRAM   2.5 KB
EEPROM              1 KB
Clock Speed       16 MHz
PoE compatible 802.3af card support     See Power

El proyecto era montar un robot, con gripper, cámara con pant tilt, seguidor de línea, sensor de distancia,  servomotores y un led. Como ya os he dicho sería muy semejante a robots anteriores pero la diferencia de que la comunicación se emplearía wifi y la gracia que en linino se podrían hacer funcionar algunos módulos en python. Su destino era ir a USA para realizar un workshop, la verdad es que mucho más no sé, pero tenía que hacer dos unidades, ya como la Nasa (jajaja), por si uno fallaba.







Para hacer el setup del yun podéis seguir los pasos de Getting started, en Yun puede crear un punto de conexión, pero recomiendo configurarlo a una red la manera de configurarlo es conectarte al Arduino mediante wifi y abrir una página con la dirección 192.168.240.1 ahí os pedirá un password de acceso que por defecto es “arduino” sin las comillas. En el caso del Arduino mini yun es “doghunter” que encontrareis una mini guía aqui.

Una vez configurado el arduino a la red ya no es necesario que esté conectado al ordenador para cargarle el programa. Para que os aparezca en el Arduino ide, tenéis que cerrarlo u os pasara como a mí que no había forma que me apareciese, pues la nueva ip del Arduino no la sabes. Con el Arduino mini yun, hay otro tema este producto es de “la otra  compañía de Arduino” , así que tendréis que bajaros su ide propia.


Lo primero que descubres del yun es que las librerías wifi de Arduino no funcionan, resumiendo un poco el Arduino no tiene wifi lo tiene el Linux, así que se ha de emplear la librería Bridge.h para poder comunicar el Arduino con el linino y es el Linux el que podrá recibir y enviar mediante wifi.
Para la comunicación íbamos a emplear el protocolo UDP para ello haríamos un programa en python que corriera en el linino  que nos abriera un puerto en 192.168.0.102:2390 desde el cual recibiría instrucciones para testear el robot. Del mismo modo en el ordenador ejecutaríamos otra aplicación en python que recibiría los comandos del teclado y los enviaría por el puerto.


Módulo python en linino enlace


Para instalar el módulo de python en el linino, hay que conectarse mediante ssh a la ip 192.168.0.102 que es la ip que tiene asignada el yun en nuestro router. Desde Windows yo empleo el programa putty desde Linux aquí tenéis una guía de instalación. Una vez conectados no pedirá el password que le hemos puesto al Yun para poder acceder en modo root. Ahí editamos un documento nuevo.py y ponemos el código.






Luego hacemos chmod +x lininomybot.py para cambiar los permisos y lo ejecutamos mediante:
./ lininomybot.py
o
python  lininomybot.py


Módulo python Ordenador enlace


El modulo del ordenador abre una  ventana del terminal donde podéis  escribir en mayúsculas:
W --> Forward
S   --> Backward
A  --> Left
D  --> Right
X  --> Stop
Z  --> Led
C  --> Gripper
Q --> Cámara
E  --> Sensores

Este módulo genera el puerto comunicación mediante la instrucción:

 sock = socket.socket(socket.AF_INET, #Internet
                socket.SOCK_DGRAM) #UDP

Y envía las instrucciones  mediante:

 sock.sendto(msg, (UDP_IP,UDP_PORT))

Por otro lado el mensaje es recibido por el modulo del linino,  mediante la instrucción:

 sock.bind((UDP_IP,UDP_PORT)) y msg = sock.recv(1024).

Una vez   recibido el mensaje empleamos el bridge.put(“orden”,”msg”), importante es emplear el mismo nombre de variable en este caso “orden” en el módulo de python y en programa del Arduino.

Código Arduino enlace

En el código de Arduino está hecho con trozos de otros programas y básicamente sirve para testear que todo funciona correctamente. Como el control pant tilt de la pixy, que funciona buscando el color o los colores que le hemos entrenado. Ahora no lo hace pero cuando encuentre el objeto del color nos puede dar las coordenadas (x,y) y emplearlo para una aproximación. 

El led y el gripper funcionan en modo “conmutador” , cada vez que le enviamos la instrucción cambia de estado, abierto/cerrado, encendido/apagado.

La dirección está controlada por dos servomotores de 360º, no obtienen mucha velocidad pero sí bastante control.

La parte de los sensores no está terminada, en el ejemplo empleamos Console.print(“   ”); que envía la información al linino, no es necesario emplear la librería console.h, pero no envía la información a ordenador, parte de la idea de esta publicación es refrescarme un poco el tema y continuar.

Algún enlace de ayuda con ejemplos




9/19/2015

Personajes pregenerados Aquelarre

Saludos,

Hoy estaba preparándome material para la sesión de rol de esta noche y me he encontrado con algo que monte hace años y que he pensado que podría ser una entrada rápida para volver a intentar coger el ritmo inicial.



Hoy os vengo a hablar de Aquelarre, el juego de rol, es un juego muy especial, le tengo mucho cariño. Con el empecé en este mundillo del rol, seria por allá el 98 o 99, cuando una noche tras trabajar en el restaurante Chi-Chis de la Rambla de canaletas, salimos enfilando Plaza urquinaona, para dirigirnos hacia el Cinemateca para tomarnos algo, como otras tantas noches. Pero aquella era especial y la quedada había sido reducida a un grupo selecto de valientes dispuestos a participar en nuevo ejercicio. Íbamos al Cinemateca a jugar una partida de Aquelarre. La apuesta o condición era sencilla, a Pedro dirigiría la aventura siempre que no tuviera el vaso vacío. Y así comenzó el plan, a grandes rasgos diré que fue extraño y divertido. Me salió un noble, con una daga muy apreciada heredada de su padre y con un terror al mar. La aventura se jugaba en un barco, donde mis dotes marineras eran no caerme al agua y vomitar en un cubo. Esa fue la semilla. Al tiempo un poco más viejos y más sabios,  sobre el 2000 volví a ser invitado, dado mi insistencia. No fue un Aquelarre fue un hombre lobo, pero eso es otra historia.




La siguiente sesión de Aquelarre fue con la campaña Ad intra mare , con tan buena suerte que estaba al final de la campaña. Me salió un marinero, el destino me llevo a en medio de los pirineos. Donde por infortunio o fortuna  me topé con un grupo de viajeros que parecían tener una misión entre manos. Me uní a ellos y momento nos habíamos metido en un portal y estábamos en el mismísimo infierno… Muchas cosas que asimilar, pero fue una pasada, pues todos estaban metidos en la acción y Pedro sabia conducir el momento.




Después de estas catas, jugué otras muchas partidas y campañas, como la basada en el modulo "El tribunal de la santa Inquisición" “Las visitas” ,  que os pondría un link, pero hablando con Pedro, y cito textualmente:

 “Está durmiendo el sueño de los justos en tres ordenadores. El mío, el de Ricard y el de Antonio. Si algún día sale el suplemento del siglo de oro, puede que después salga Las visitas”.


Una lástima pues os aseguro que es una campaña muy buena, en la que parte del personal del Chi-Chis, como del grupo de rol,  salen a modo de homenaje como pnjs.  Imaginaos un séquito de inquisidores viajando por la península mientras persiguen un mal que no es de este mundo.


El 27 de febrero del 2010 Nosolorol saco en mecenazgo la nueva edición de  Aquelarre, algo que hasta la fecha fue toda una novedad, hoy en día algo muy común. Pero ahí nos apuntamos todos los del grupo y tras un largo periodo y espera nos llegó a nuestras manos el nuevo manual, que lo siento Pakeke pero la edición Grimorio mola más que la goyesca. (Broma interna :P).


El día 30 de marzo de 2011 estábamos en Sevilla para ver la presentación del aquelarre en la, 8ª Jornadas de Rol y Estrategia en Sevilla, allí vimos la presentación presentada por Manuel J. Sueiro, Ricard Ibáñez, Antonio Polo y Pedro J. Ramos. Jugamos a la marca del este dirigidos por Jose Manuel Palacios  y presencie un intercambio de condiciones para el nacimiento de Omerta, el poder la mafia.


Pon cara de Peseta...


Durante todo el mecenazgo fuimos recibiendo, quizá no con la asiduidad que nos hubiera gustado personajes pregenerados de aquelarre un total de 42, que creo en principio debían entrar dentro de lo que es el manual. Pero el manual ya era muy grande así que esos pjs no entraron. Decidí recopilar esos mails y darle un poco de forma para tenerlo a mano, usando unas artes oscuras le di la apariencia del manual y rebuscando  en google encontré algunas imágenes que ilustrasen esos trabajos. Muchas de ellas eran del propio manual de  Aquelarre. Empleando los contactos de Pedro preguntamos a Nosolorol si podíamos publicarlo para descarga gratuita y a regañadientes accedieron. Cuando digo a regañadientes no es que no quisieran publicarlo de forma gratuita, es que querían maquetarlo ellos para que tuviera la calidad del manual. Algo que parecía no pasar y ante nuestra insistencia accedieron a que lo publicásemos. Hoy os lo pongo aquí en descargas, entre otras porque no recuerdo donde lo subí.





Anakleto.