Después de mucho
pensar si hacer o comprar la electrónica principal y que micro
usar.. la decisión ha sido comprar una Axon 2 de www.societyofrobots.com.
Axon 2.
Está
basada en un microcontrolador de 8 bits (ATmega 640) y se va a utilizar
para controlar todo el hardware del hexápodo, es decir los 19
servomotores, sensores de distancia, pwm de los leds, lcd,
interruptores, etc.. La placa es más o menos lo mismo que un
Arduino Mega, con la versión inferior del microcontrolador
(ATmega640 en lugar del ATmega1280) que tiene la mitad de memoria
flash. Lleva conexión USB al pc mediante un conversor usb-uart y
además nos viene con un bootloader cargado, lo que nos
evitará tener que usar un programador externo, podemos descargar
directamente el .hex que generemos en el pc a la placa a través
del usb.
La principal ventaja frente al Arduino Mega es la colocación de
los pines, cada pin de salida va acompañado de dos pines
más, uno de tierra y uno de alimentación (regulada y sin
regular a la batería), lo que nos permite conectar
directamente servomotores a la placa, o los sensores de distancia
y ultrasonido que tanto se usan en los robots. Mientras que el Arduino
está pensando para un uso general, esta placa está
diseñada para proyectos de robótica y de ahí la
colocación de los pines.
La desventaja el precio, $118 es muy caro. Comparando con un
Arduino Mega que es prácticamente lo mismo que ésto, y
está en $56 y si lo pedimos a las páginas chinas en la
mitad, $28. También podemos encontrar la versión anterior
de esta placa, Axon,
por unos $94 y es prácticamente lo mismo e incluso la
distribucción de pines me parece mejor en la antigua, ya que los
pines de servomotor, aquellos con un conector de pin de micro y dos
conectores directos a la batería se encuentran a los lados, lo
que simplifica la conexión para un robot simétrico como
el hexápodo. Mientras que en la Axon 2 los pines para conectar
los servos están en dos lados juntos, y los pines para conectar
sensores, aquellos que llevan señal de pin y alimentación
y masa regulada a 5 V están en otro lado y no en medio.
La elección de está placa dado su precio ha sido porque
se ajusta al 100% a las necesidades del robot hexápodo
(además de llevar un AVR), con un Arduino Mega se habría
necesitado una placa adicional que pinchar encima para hacer el
conector de los servomotores, y ésta ya lo trae todo y en menos
espacio ya que está pensada para este tipo de robots,
bípedos, hexápodos, etc..
Si nos vamos a la página podemos leer las siguientes características:
58 entradas/salidas.
De las cuales16 son ADC
Podemos conectar 25 servos.
Pines para protocolos I2C, SPI
3 UART + la utilizada para el USB
Hasta 8 interrupciones externas.
15 pines de PWM en 5 timers, 4 de 16 bits y 1 de 8 bits.
64KB Flash, 4KB EEPROM, 8KB SRAM
16 MIPS a 16 MHz.
6 timers, 4 de 16 bits y 2 de 8 bits.
No es necesario programador externo ya que lleva grabado un bootloader.
Un display numérico. Desde mi punto de vista desperdiciar
8 pines del microcontrolador que se podrían haber dejado como
entradas/salidas.
Reguladores de 5 V y de 3.3 V que podemos utilizar.
Link a los pines y características de la placa.
Resumiendo una placa perfecta para montarse un robot dada la facilidad
de conectar sensores y servomotores pero con un precio muy elevado
comparado con un Arduino Mega, que es exactamente lo mismo. El
micro podrían haber puesto una versión superior para
tener el doble de memoria de programa, pero supongo que tendrán
unos cuantos 640..
Mirando otras alternativas a esta placa encontramos la p.Brain-u24,
que por el mismo precio más o menos (un poco más en
la versión con firmware) es bastante más potente ya que
lleva un 33F de microchip de 16 bits y 40 MIPS, y más
importante, 24 canales de pwm.. Pero parece menos versátil ya
que está totalmente orientada a un robot hexápodo
comercial y el firmware no es abierto. En el AVR contamos con la
ventaja del compilador totalmente gratuito mientras que en los pics de
16 bits desconozco si hay algún compilador que no sea comercial.
Pero en cuanto a micro gana de lejos el de Microchip.
La documentación de la placa es bastante extensa, podemos encontrar ejemplos, videos y soporte en el foro. También nos indican todos los pasos necesarios para tener el hardware y software funcionando, además apunta a Webbotlib,
una libreria para los AVR ( ATMega168, ATMega32, ATMega328P, ATMega640,
ATMega1280, ATMega2560 y ATMega2561) que nos proporciona funciones para
controlar el distinto hardware que podemos encontrar en nuestros
proyectos roboticos, sensores, drivers, etc.. Lista de hardware.
No lo he probado pero suena bastante bien, tener funciones para
controlar directamente los sensores de ultrasonidos, infrarrojos, etc..
Después de pagar aproximandamente unos $145 por la placa y gastos de envio, en una semana nos llega a casa:
La placa, el cable usb para conectar al pc y un interruptor para conectar la batería a la placa.
El tamaño de la placa es pequeño y a ella conectaremos
todo la electrónica del hexápodo directamente.
Con
esta placa se pretende controlar todo el hardware, el primer
objetivo es conseguir que ande, una vez conseguido esto quizás
se pueda añadir otro microcontrolador más potente con un
s.o., para controlar el robot desde el pc y que tenga al AVR para
control de hardware y lectura de sensores. Pero de momento suficiente
trabajo tiene hacer que este robot camine.