PICAXE en MAX 8

Punto de encuentro para los aficcionados al hardware libre: arduino, raspberry-pi, no tan libre: lego, etc y la programación visual y de dispositivos electrónicos, todo ello con MAX, claro.

Moderadores: daniel.esteban, victor.armendariz, ruben.garcia45, irene.olalla, dgonzalezarroyo

des_ezequiel
Mensajes: 1365
Registrado: 03 Mar 2005, 14:02

Hola a todos.

Para los que no conozcan PICAXE les remito a la wikipedia en español y en inglés:

https://en.wikipedia.org/wiki/PICAXE

https://es.wikipedia.org/wiki/PICAXE

Es una alternativa barata (pero no hardware libre al 100%) a Arduino y muy, muy, muy sencillo de programar.

Resulta que tenía un problema de instalación el driver para la conexión USB ya que PICAXE usa nativamente el puerto serie RS-232 (El primer PICAXE data de 1999) y se requería un módulo del kernel, ftdio_sio.ko y crear una regla udev para no tener que cargar en cada sesión dicho módulo.

Sin embargo, la evolución de ese módulo para los kernels que usa MAX ya no responden a los identificadores del dispositivo vendor y product (0403:bd90) que son los que aparecen cuando ejecutamos una orden lsusb:

Bus 002 Device 010: ID 0403:bd90 Future Technology Devices International, Ltd.

Y las soluciones que uno pueda buscar en la red para crear una regla udev no sirven. Ahora hay que alterar el fichero /sys/bus/usb-serial/drivers/ftdi_sio/new_id que solo existe cuando se carga el módulo ftdio_sio en memoria.

Como siempre, buscando adecuadamente y teniendo un poquito de cuidado con los permisos lo solucionamos. Procedimiento:

Código: Seleccionar todo

sudo -s 
Para trabajar como root

Código: Seleccionar todo

modprobe ftdi_sio
para cargar el módulo y pueda existir /sys/bus/usb-serial/drivers/ftdi_sio

Código: Seleccionar todo

echo 0403 bd90 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id 
Para que el idvendor y el idproduct aparezcan en new_id. También podemos hacerlo con gedit:

Código: Seleccionar todo

gedit /sys/bus/usb-serial/drivers/ftdi_sio/new_id
y añadir simplemente en el documento de texto 0403 bd90 y guardar.

Pero... no basta. Le faltan permisos. Si no se tiene en cuenta al intentar enviar un programa a la controladora aparece el mensaje sudo: sin tty presente y no hay programa askpass especificado en linaxepad (el equivalente a Arduino IDE para PICAXE). Entonces hay que añadir permiso de lectura y escritura al fichero:

Código: Seleccionar todo

chmod 666 /sys/bus/usb-serial/drivers/ftdi_sio/new_id
para tener permisos de lectura y escritura

Y voila!

Ya hay comunicación entre el PC y PICAXE. Ahora hay que generar la regla udev para que sea persistente pero, de momento, esto es un gran avance.

Ya estamos muy llenos pero intentaremos publicar lo más interesante del curso de Robótica práctica que se va a celebrar a partir del 5 de noviembre en el CTIF Madrid Capital y que se van a tratar proyectos con PICAXE y Arduino.
¡¡¡Se libre!!!

¡¡¡Usa MAX!!!
Imagen
Responder