lunes, 18 de julio de 2011

Hexapodo - Presentacion del proyecto


Este es mi primer proyecto con Arduino, la construccion de un hexapodo con 3 ejes de movilidad por cada pata y como aun no esta terminado, adelanto el proyecto y el estado del mismo.


Estructura:

Tras realizar varios diseños que no me terminaron de convencer por la movilidad, el peso que tendria una vez construido o lo extraño (por no llamarlo feo) que quedaria; opte por basarme en algun kit comercial, en concreto el MSR-µBug de Micromagic Systems Robotics Lab.

La estructura la construire enteramente en metacrilato de 3mm de grosor que me resulta facil de encontrar y de manipular, pudiendo ademas alijerar el peso si fuera necesario agujereando el propio metacrilato.


Componentes:

- Arduino Mega
- 18 Servos ( 18 Futaba S3003 o 12 Futaba S3003 y 6 TowerPro SG5010)
- Bateria (aun estoy estudiando si ni-mh o lipo, aunque cada vez me decanto mas por la lipo)
- Sensor de Distancia HC-SR04
- 2 Servos TowerPro SG90 (para usar junto al sensor de distancia)
- Modulo de comunicacion para el manejo del hexapodo (aun no lo tengo decidido)



Movilidad:

De momento y hasta que decida que modulo de comunicacion usar (rf, wifi, bluetooth) he optado por tener un modo automatico que haga que le hexapodo se mueva de forma aleatoria y sin chocarse.

Mas adelante ire implementando un modo que siga el movimiento y como no, algun otro para manejarlo con un mando.

Estado del Proyecto:

La estructura la he empezado a cortar aunque cada vez que hago pruebas y reviso el diseño encuentro pequeños errores que me obligan a modificar el diseño, principalmente para evitar que con el movimiento de las patas no entren en contacto con otras partes del hexapodo.

En cuanto a los componentes, solo me faltan 8 servos y quizas lo mas importante, la bateria para moverlo todo aunque en este tema aun estoy muy verde.


En cuanto pueda intento añadir alguna video o animacion de como espero sea el movimiento del hexapodo una vez este terminado.

Y a continuacion unas cuantas imagenes.












miércoles, 25 de mayo de 2011

Mando NES con arduino

Rebuscando entre las bolsas de trastos en busca de algo que usar para mis proyectos con mi arduino apareció en una bolsa varios cositas de mi vieja NASA que falleció hace... ni lo recuerdo.


La gracia es que aparecieron unos cuantos mandos y una pistola (que aun no se si me servirá para algo o no, ya veré) y para ir tirando me vale; la idea es en un futuro usar algún mando por bluetooth, wifi, radiofrecuencia... pero para ir enredando y mientras me voy haciendo con mas componentes me vale.

Para el mando de la NES (y similares como el de la NASA) hay una librería para arduino, la NESpad, que con dos sencillas ordenes podemos controlar el funcionamiento del mando.

Lo primero es diferenciar claramente cual es cada unos de los pines, para eso, nada mejor que la imagen con la posición de los pines que tienen en la web de la librería.

Y conectar cada cable según la siguiente tabla que también esta en la web, los pines digitales no tienen por que ser el 2,3,4; se puede conectar a los tres que se necesiten y a la hora de inicializarlo solo hay que pasarle los numero de pines que se van a usar:


Pin del Mando Color del cable Pin de Arduino
STROBE Verde Digital 2
CLOCK Azul Digital 3
DATA Marrón Digital 4
+5V Naranja +5V
GND Negro GND

En mi caso y después de varios intentos de errores y de volverse loco el arduino, opte por cortar el cable del mando y todos los errores se solucionaron.


Una vez conectado ya podemos comprobar el funcionamiento con el siguiente código:

#include <NESpad.h>

//Pines Digitales (strobe/clock/data)
NESpad mando = NESpad(2,3,4);

byte state = 0;

void setup() {
    Serial.begin(9600);
}

void loop() {
  state = mando.buttons();
  if (state & NES_A ){ Serial.println("LETRA A"); }
  else if (state & NES_B ) { Serial.println("LETRA B"); }
  else if (state & NES_SELECT ) { Serial.println("SELECT"); }
  else if (state & NES_START ) { Serial.println("START"); }
  else if (state & NES_UP ) { Serial.println("UP"); }
  else if (state & NES_DOWN ) { Serial.println("DOWN"); }
  else if (state & NES_LEFT ) { Serial.println("LEFT"); }
  else if (state & NES_RIGHT ) { Serial.println("RIGHT"); };  
  delay(10);
} 

En cuanto tenga un ratito libre pongo un ejemplo de uso del mando con unos servos que tengo por aquí.

domingo, 22 de mayo de 2011

Segunda antena y lector de tarjetas en la Fonera 2100

Al poco tiempo de comprar mi fonera me di cuenta que el modelo que había comprado era el 2100 (solo voy a centrarme en este modelo) y que se podía trastear con ella hasta el aburrimiento.




Lo primero fue quitar el firmware capado de fon y ponerle openwrt para poder usarlo como punto de acceso y para auditoría wireless aprovechando los conocimientos de linux.


Segunda Antena

Aprovechando que dispongo de varias antenas compre en ebay un pigtail con conector R/P SMA y soldarlo directamente a la placa de la fonera, esto no tiene ningún secreto solo soldar igual que el conector que trae la propia fonera y listo.


Lector de Tarjetas

En cuanto a la instalación del lector de tarjetas, hay que conectarlos según el siguiente dibujo y eliminar las resistencias que están marcadas. En mi caso en lugar de soldar una tarjeta y pasar la información por el ethernet o vía wifi, me ha resultado mas cómodo soldar un adaptador sd a microsd con lo que el volcado de los datos los hago sacando la microsd y listo. Esta opción se agradece sobre todo cuando se esta haciendo auditoría wireless.


Una vez realizadas las soldaduras y comprobado que no hay ningún puente entre ellas o con algún otro componente, hay que pasar al software.

Lo primero hay que instalar los siguientes paquetes ya que son indispensables:

kmod-fs-vfat_2.6.19.2-atheros-1_mips.ipk
kmod-nls-base_2.6.19.2-atheros-1_mips.ipk
kmod-nls-cp437_2.6.19.2-atheros-1_mips.ipk
kmod-nls-iso8859-1_2.6.19.2-atheros-1_mips.ipk
mmc-driver-fonera_0.1_mips.ipk


Y para el montaje nada mas que ejecutar:

mount /dev/mmc0 /MicroSD -t vfat -o noatime,sync

Mi recomendación es crear un script que la monte de forma automática cada vez que arranque la fonera, aunque esto es opcional.

De momento son las únicas modificaciones que le hice a mi fonera, tengo alguna pendiente que ya iré explicando por aquí.

viernes, 20 de mayo de 2011

Presentacion y Objetivos

Como informatico desde muy pequeño me llamo la atencion la electronica pero hasta hace bien poco no conoci la plataforma arduino.

Este blog ira destinado a mis experiencias con la electronica ya la programacion.

No voy a dar mas la brasa, solo adelanto que en breve comenzare a hablar algo de las modificaciones que realice a mi amada fonera y la interconexion con mi arduino.

En mente tengo gran cantidad de proyectos que a su debido tiempo ire escribiendo.

Un Saludo.