viernes, 22 de agosto de 2014

Proyecto Centinela Asesino: sistema de comunicaciones

... después de hacer 300 millones de pruebas

Recordemos la idea del sistema de comunicaciones del C-A:
  • Barato
  • Controlable desde cualquier parte del mundo
  • Varios canales simultáneos
  • Respuesta inmediata
Viendo el pad que vamos a usar:

nos damos cuenta de que tiene 4 sticks analógicos, dos botones (digitales obviusly) y Vcc y GND. Para que las pulsaciones se envíen por bluetooth, necesitaremos además del bluetooth, un controlador que lo haga todo. En mi caso usaré un ATtiny84:

Se programa exactamente igual que el ATTiny85, desde un Arduino. Como esta parte es un poco liosa, voy a repetir los pasos, uno a uno, para que no me digáis que no os lo explico todo.

Preparación del Arduino en modo ISP:

  1. Descargamos e instalamos el IDE de Arduino, podemos usar la versión 1.5 o la 1.0, como gustes.
  2. Descargamos la última versión de las librerias de ATTiny, para la versión de nuestro IDE, desde la web https://code.google.com/p/arduino-tiny/
  3. Descomprimimos el archivo anterior, renombramos el nombre del directorio a "tiny" y el archivo Prospective-Boards.txt, lo renombramos a boards.txt. La estructura tiene que quedar así:
    tiny
      | - avr
            | - bootloaders (...)
            | - cores (...)
            | - boards.txt
            | - license.txt
            | - platform.txt
            | - README
  4. Movemos el directorio tiny al directorio hardware del IDE de Arduino, por ejemplo:
    C:\Users\juanmol\Documents\arduino\arduino-1.5.7\hardware
  5. Abrimos el IDE, y cargamos el programa ArduinoISP:
  6. Nos aseguramos de tener correctamente los datos de la placa y el programador:
  7. Enchufamos el Arduino UNO (o el que tengas) y le damos a cargar (upload) programa.

Carga del bootloader del ATTiny84, usando el Arduino

Cableamos de la siguiente forma:

Mucho ojo al condensador, recuerda que si NO usas un Arduino UNO, NO es necesario. Ahora volvemos al IDE de Arduino:
  1. Si has ido conectando el ATTIny84 al Arduino, al mismo tiempo que tenias éste último encendido (conectado por USB), pulsa en el Arduino el botón de reset varias veces.
  2. En el IDE, selecciona la placa correspondiente:
  3. Cambia el programador y elige Arduino as ISP:
  4. REVISA EL CABLEADO!!!! (tres veces).
  5. Grabamos el bootloader (secuencia de inicio):
  6. Si lo has hecho todo bien, es probable que te salgan un par (o cuatro) de mensajes de advertencia, puedes ignorarlos.

Conexión BT-ATTiny84

La idea es la siguiente:


Fácil ¿verdad? Para las pruebas, conectamos los 5V y GND al Arduino. El programa a cargar en el ATTiny84 es el siguiente:
eh ... lo se, no se me da muy bien, si alguien sabe como encoger el código, se lo agradeceré. Si te fijas, las patitas 13 y 12 del ATTiny84 son botones, por lo que definirlas como analógicas y después limitarlas a 2 resultados, es un poco de tontos, pero yo soy muy tonto así queda más homogéneo.
Te lo explico un poco:
  • Limitamos a 2 los valores de los botones: 1 y 2.
  • Limitamos a 9 los valores de los sticks: 1, 2, 3, 4, 5, 6, 7, 8 y 9.
  • Los enviamos todos a la vez generando un único valor, por ejemplo: 114545
  • Para que la conexión BT no se engollipe, dejamos 100ms entre envío y envío, y si no hay modificación, no hay emisión, qué listo soy ;)

Aspecto final

Aún no lo he terminado del todo, pero básicamente voy a usar un tapper del IKEA (de los verdes chiquitines) para guardarlo todo.

1 comentario:

  1. buenas disculpe, tengo un problema con tinydebugserial.h me marca error a pesar de que segui todos los pasos.

    ResponderEliminar