Archivo por meses: June 2014

Probando el I2C del ODROID-XU

Decidí hacer algunas pruebas de electrónica y software antes de terminar de fabricar la segunda pierna de mi clon del robot DARwIn-OP.

Conecté mi ODROID-XU con el módulo 10DOF GY-80 usando el bus I2C del conector LCD y un PCA9306 para ajustar voltages de la comunicación.

Setup de Prueba de I2C con ODROID-XU
Setup de Prueba de I2C con ODROID-XU

El siguiente es el diagrama de interconexión probado:

Diagrama de Prueba I2C
Diagrama de Prueba I2C

Este 10DOF puede energizarse desde 2V hasta 5.5V (VDD). Sus sensores están alimentados internamente a 3.3V, pero según esta documentación su interfáz I2C está ajustada a VDD, por lo que el PCA9306 tiene que traducir entre los 1.8V del ODROID-XU y VDD (y no 3.3V).

Este 10DOF tiene 4 dispositivos I2C con las siguientes direcciones:

  • 0x1E: compás de 3 ejes (chip HMC5883L)
  • 0x69: giroscopio de 3 ejes (chip L3G4200D)
  • 0x53: acelerómetro de 3 ejes (chip ADXL345)
  • 0x77: sensores de presión y temperatura (chip BMP085)

Con este pequeño programa, se puede consultar el chip del acelerómetro para detectarlo y verificar el setup. Actualmente estoy probando Ubuntu Server 14.04 de paquete en el ODROID-XU, el que incluye el compilador GCC por defecto.

Ahora que tengo la comunicación I2C funcionando, seguí la documentación de los chips y ejemplos en Internet para escribir un borrador de clases C++ para leer los sensores del 10DOF. Están disponibles en esta Sección de Código en el repositorio SourceForge para clonar el Robot DARwIn-OP.

Probé en forma exitosa el 10DOF energizándolo (junto al PCA9306) con 3.3V y 5V, pero a 3.3V consumen 0.024A (o 0.079W) y a 5V consumen 0.085A (o 0.425W). Así que en mi diseño final para el DARwIn-OP probablemente incluya un regulador de 3.3W para disminuir el consumo.

Periféricos del clon de DARwIn-OP

El robot original DARwIn-OP usa un computador Intel Atom Z530 de 1.6 GHz y un controlador ARM CM-730. Este controlador incluye un giroscopio de 3 ejes, un acelerómetro de 3 ejes y un bus Dynamixel para conectar los servos del robot.

Por mi parte, pretendo usar una electrónica alternativa basada en un computador ARM más poderoso (y barato). Para el computador principal, mi candidato es el ODROID-XU que es un quad Cortex-A15 1.6GHz con 2GB de RAM.

En vez del controlador, usaré un USB2AX para conectar los servos Dynamixel y varios componentes I2C para el giroscopio y acelerómetro.

odroidxu-peripherals
ODROID-XU y periféricos

En la imagen se muestran los componentes que ya tengo que estaré probando:

  • Conversor ADC I2C de 12 bit y 4 canales (chip ADS1015)
  • Traductor de voltaje I2C (chip PCA9306)
  • un multi componente I2C 10DOF con sensores de giroscopio de 3 ejes, acelerómetro de 3 ejes, compás de 3 ejes, temperaura y presión (chips, L3G4200D, ADXL345, HMC5883L, BMP085)
  • Resistencia sensora de fuerza (.1N to 100N)
  • USB IO Board para ODROID con interfaces de GPIO/PWM/SPI/UART/I2C/ADC
  • Interfaz Dynamixel USB2AX

Usaré el bus I2C nativo I2C_0 que se encuentra en el conector LCD (CON15) en la parte inferior del ODROID-XU (el esquemático está disponible en Hardkernel vía petición por email).

ODROID-XU LCD connector and cable
conector LCD del ODROID-XU y cable

El conector LCD es un IPEX de 40 pines de 0.5mm. Compré un par de cables en Ebay, aunque ahora noté que Hardkernel (el fabricante de ODROID) lo ofrece a la venta también. La configuración de pines que usaré para la interfaz I2C es:

  • 4 – 1.8V
  • 6 – SCL
  • 7 – SDA
  • 10 – GND

La interfaz I2C del ODROID-XU es de 1.8V, por lo que el PCA9306 servirá para interconectar el resto de los componentes I2C que son de mayor voltaje.

El DARwIn-OP requiere un giroscopio y acelerómetro, pero me interesa usar el compás y los sensores de fuerza (vía los conversores AD) para una futura versión de los pies del DARwIn-OP.

Pausa

Después de 6 meses de pausa, estoy retomando mi proyecto de construir un clon del robot DARwIn-OP.

El primer paso es corregir un error con un plugin multi-lenguaje de WordPress que estaba produciendo problemas con los posts en español e inglés desde hace un tiempo.