Tarjeta microcontroladora de reducidas dimensiones compatible con los Módulos Y1 / MY1 / REPY1. Las aplicaciones principales son la programación de robots modulares, robots móviles como el Miniskybot (o derivados) o bien para usos educaciones.
La tarjeta Skymega es hardware libre2. Ha sido diseñado con la herramienta libre Kicad. También es compatible conArduino.
La skymega 1.0 en un módulo Repy1 (click para ampliar)
El Miniskybot con una skymega (click para ampliar)
Tarjeta Skymega 1.0. Lote 1 (click para ampliar)
PCB de la Tarjeta Skymega 1.0. Lote 1 (click para ampliar)
Conexión al PC
La skymega se conecta al PC a través de un cable USB-serie de FTDI (modelo TTL-232R-5V). Este cable tiene un conector de 6 pines. Para usarlo con la Skymega es necesario modifica este conector y sustituirlo por uno de 4 pines como se muestra en las fotos. Opcionalmente, si no se dispone del conector de 4 pines, se puede reutilizar el de 6, colocando los cables como se indica en las fotos y sin conectar los 2 hilos sobrantes.
Este cable sirve para descargar firmware en la Skymega, así como comunicarse vía puerto serie con ella.
Conexión del cable FTDI modificado a la Skymega 1.0 para descargar software (click para ampliar)
El cable USB-serie de FTDI: TTL-232R-5V modificado para la skymega (click para ampliar)
Detalles del conector. Vistas superior e inferior (click para ampliar)
Conexión de la skymega al PC con un cable FTDI de 6 pines modificado, sin sustituirlo por un conector de 4 pines (click para ampliar)
Descripción de elementos
Partes
Parte frontal de la Skymega (click para ampliar)
Descripción de la skymega (click para ampliar)
Pines
Asignación de pines de la Skymega. Las etiquetas azules son pines correspondientes a la nomenclatura de Arduino y las rojas del micro ATMEGA (click para ampliar)
La Skymega se alimenta con un voltaje entre 4.5v y 6v. Es necesario crear un cable con un conector molex de 2 vías para alimentarla. Existen varias posibilidades:
Utilizar un portapilas, con el conector molex
Crear un cable USB-molex para alimentarla directamente desde el PC
Utilizar cualquier fuente de alimentación externa con un conector molex
Conector molex de alimentación. ¡¡Ojo a la colocación exacta de los cables!! (click para ampliar)
La skymega con el cable de alimentación conectado (click para ampliar)
Portapilas con 4 pilas AAA (click para ampliar)
Cable de alimentación USB - molex (click para ampliar)
Skymega conectada a una fuente de alimentación (click para ampliar)
Skymega conectada a un portapilas imprimible (click para ampliar)
Conexión de servos
Los servos tiene 3 cables:
Negro: Masa (GND)
Rojo: Alimentación (VCC)
Blanco: Señal de control (CTL)
Los servos se conectan con la orientación mostrada en las fotos
Conector del servo Futaba 3003 (click para ampliar)
Conexion de un servo Futaba 3003 a la skymega (click para ampliar)
Detalles de conexión del servo (click para ampliar')
Tarjeta Skypads: Placa con 8 pulsadores simulando un "gamepad"
Grabación del Bootloader
Para poder utilizar la tarjeta skymega normalmente, es necesario grabar un bootloader. Esta operación sólo hay que realizarla una vez por cada nuevo micro ATMEGA que se coloque en la placa. Por ello, si ya nos lo han grabado, no es necesario comprar ningún programador adicional.
Para grabar el bootloader en micros nuevos, se necesita disponer de un programador de AVRs. Existen muchos modelos. Uno de ellos es el USBtinyISP, que es totalmente libre.
Grabador USBtinyISP
Conexión del grabador USBtinyISP a la Skymega (Click para ampliar)
Detalles de la conexión del grabador al puerto ICSP (Click para ampliar)
Para grabar el bootloader seguir los siguientes pasos:
Conectar el grabador USBtinyISP al PC (USB) y a la tarjeta Skymega. El led rojo de power on se deberá encender
Arrancar el entorno de Arduino. ¡¡Es necesario hacerlo como super usuario!!. Aparecerá una ventana como la mostrada en la Figura 1.
$ sudo arduino
Seleccionar la placa en Tools/Board (Figura 2). Dependiendo del micro ATMEGA que se tengo, se deberá seleccionar una de estas dos opciones:
skymega con micro ATMEGA 328 -> Opción: Arduino Duemilanove or Nano w/ ATmega328
skymega con micro ATMEGA 168 -> Opción: Arduino Diecimila, Duemilanove or Nano w/ ATmega168
Figura 1: El entorno de Arduino nada más arrancarlo (Click para ampliar)
Figura 2: Selección de la placa: ATMEGA 328 (Click para ampliar)
Grabar el bootloader. Opción Tools/Burn Bootloader/ USBtinyISP (Figura 3). Se empezará a grabar el bootloader. En la parte inferior aparecerá el mensaje "Burning bootloader to I/O Board (this may take a minute)" (Figura 4). Al cabo de un minuto aproximadamente habrá finalizado y si todo ha ido bien aparecerá el mensaje: "Done burning bootloader". ¡La placa está lista! :-)
Figura 3: Selección del grabador: USBtinyISP (Click para ampliar)
Figura 4: Realizando la grabación. Mensaje que aparece en la parte inferior de la ventana (Click para ampliar)
Mensajes de error
Error 1: "avrdude: initialization failed, rc=-1. Double check connections and try again...". Este error se produce en alguno de los casos siguiente:
Grabador no conectado a la Skymega
El micro no está puesto en el zócalo
El micro está en el zócalo pero no está apretado bien, por lo que algunas patas no hacen contacto
El micro está puesto en el zócalo... ¡Pero con la orientación incorrecta!
El micro es defectuoso
Error 2: "avrdude: Error: Could not find USBtiny device...". Se produce si el grabador no está conectado
Error 3: "avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted". Has olvidado arrancar el entorno arduino como Súper-usuario :-)
Error 1 (Click para ampliar)
Error 2 (Click para ampliar)
Error 3 (Click para ampliar)
Probando la placa: "Hola mundo"
Para probar la skymega por primera vez, seguir los siguientes pasos:
Pasos a seguir
El bootloader debe estar grabado
Alimentar la skymega, conectando bien el portapilas o el cable de alimentación USB.
Encender la placa con el interruptor. El led rojo se encenderá
Enchufar el cable de descarga (FTDI) al PC y conectarlo a la Skymega
Ejecutar el entorno de arduino
Seleccionar la placa en Tools/Board (Figura 2). Dependiendo del micro ATMEGA que se tengo, se deberá seleccionar una de estas dos opciones:
skymega con micro ATMEGA 328 -> Opción: Arduino Duemilanove or Nano w/ ATmega328
skymega con micro ATMEGA 168 -> Opción: Arduino Diecimila, Duemilanove or Nano w/ ATmega168
Figura 1: El entorno de Arduino nada más arrancarlo (Click para ampliar)
Figura 2: Selección de la placa: ATMEGA 328 (Click para ampliar)
Seleccionar el puerto serie en Tools/Serial Port. En Linux típicamente será el /dev/ttyUSB0 (Figura 3)
Abrir el ejemplo "hola mundo". Pinchar en File/Examples/1.Basic y seleccionar Blink (Figura 4).
Figura 3: Selección del puerto serie (Click para ampliar)
Figura 4: Selección del ejemplo Blink, que hace parpadear el led de la skymega (Click para ampliar)
Se abrirá una nueva ventana con el código del ejemplo (Figura 5);
Descargar en la skymega. Pinchar el icono correspondiente (Figura 6) o la opción File/Upload to I/O Board. El programa se compilará y empezará a descargarse. Al cabo de unos segundos se podrá ver cómo el led verde de la skymega parpadea.
Figura 5: El ejemplo Blink cargado en el editor (Click para ampliar)
Figura 6: Descargando el "hola mundo" en la skymega (Click para ampliar)
Errores
Error 1: "avrdude: stk500_recv(): programmer is not responding". Se debe a alguna de las siguientes causas:
El cable de descarga no está conectado a la Skymega
El cable de descarga no está correctamente conectado (comprobar que esté con la orientación correcta)
La skymega no está alimentada
La skymega no está encendida. Darle al interrupción de ON
Generación de secuencias de movimiento de n posiciones, para los 4 servos. Se pasa a la siguiente posición bien porque ha transcurrido un tiempo o bien porque se pulse el botón de test
Producir oscilaciones en los servos con la misma amplitud, offset, periodo y diferencia de fase fija. Es la base para generar secuencias de movimiento en robots modulares (necesario skymega.h)
Ejemplo de uso 3. Mismo ejemplo que Worm_wave pero el robot cambia el modo de caminar al apretar el pulsador de pruebas o bien si transcurren 10 segundos.
Open Source Hardware Definition v1.0 Hardware de Fuentes Abiertas (OSHW en inglés) es aquel hardware cuyo diseño se hace disponible públicamente para que cualquier persona lo pueda estudiar, modificar, distribuir, materializar y vender, tanto el original como otros objetos basados en ese diseño. Las fuentes del hardware (entendidas como los ficheros fuente) habrán de estar disponibles en un formato apropiado para poder realizar modificaciones sobre ellas.