Controla uno o más cuadricópteros de juguete con Arduino

 

Controla uno o más cuadricópteros de juguete con Arduino

Controla uno o más cuadricópteros de juguete con Arduino

Hackear un cuadricóptero de juguete barato con Arduino

 

Componentes y Suministros

Ph a000066 iso (1) ztbmubhmho
Arduino UNO
× 1

Acerca de este proyecto

Acerca de (anotado)

En los últimos días he estado trabajando más en pequeños cuadricópteros de juguete (ahora llamados HCD por Hamster Cage Drone). El objetivo era piratear la comunicación para que pudieran controlarse mediante un software de visión por computadora. Básicamente la versión pobre de esto (no te molestes, ya lo has visto antes).

ACTUALIZACIÓN: creé una biblioteca Arduino (ver archivo a la izquierda) para controlar este Quadrotor en particular (puede funcionar con productos similares). Necesitará construir hardware simple (descrito en esta página) para usar la biblioteca. Todas las partes (excepto Arduino) están dentro del control remoto que viene con el cuadricóptero.

Lo primero que hice fue desarmar el control remoto para ver qué tipo de sistema de radio se estaba usando.

(ver imágenes de diseño de PCB)
**

El interior era más o menos lo que cabría esperar. Algunos PCB de papel baratos sin mucho en ellos.

**

La comunicación por radio es proporcionada por un módulo de radio pequeño y discreto. Después de mucha investigación en Internet, resultó que el módulo se basaba en el transceptor IC BK2421 de 2,4 GHz. También parece ser la opción para muchos de los juguetes RC baratos que están saliendo ahora.

**

Con una hoja de datos para este chip y un osciloscopio, fue bastante sencillo determinar la configuración de pines para la comunicación SPI entre el módulo de radio y el teléfono.

**

Al usar un ArduinoUNO para escuchar esta comunicación, pude entender la inicialización y, por lo tanto, el modo de comunicación. La lista comentada de la secuencia de inicialización se puede descargar a la izquierda.

Sin entrar en detalles de comunicación de bajo nivel, los siguientes eventos ocurren cuando el teléfono y
El cuadricóptero está encendido:
1) El teléfono transmite su dirección de red o identificación única.
2) Quadcopter recibe la transmisión, la reconoce y comienza a escuchar los datos de esta ID.
3) Después de reconocer, el teléfono comienza a transmitir paquetes de datos voladores cada 20 ms.

Se pueden controlar varios cuadricópteros simultáneamente asignándoles diferentes direcciones.
La transmisión de la ID se realiza a través de un canal de radio fijo y los datos de vuelo se envían a través de uno de aproximadamente 12 canales de radio aleatorios. Los cuadricópteros parecen escanear automáticamente los canales de radio hasta que encuentran datos.

Los datos voladores se transmiten como paquetes de 8 bytes en el siguiente formato:
Byte 0 = acelerador 0-255
Byte 1 = guiñada 0-255
Byte 2 = Yaw_trim 0-128
Byte 3 = Paso 0-255
Byte 4 = rollo 0-255
Byte 5 = Pitch_trim 0-128
Byte 6 = Roll_trim 0-128
Byte 7 = volar/ejecutar 0=volar, 16=ejecutar (botón de alternar en el teléfono)

**

Luego creé una estación base que se conectaría a los cuadricópteros. Sucedió que tenía módulos RFM-70 que contenían el mismo chip BK2421. Al no leer la hoja de datos correctamente, primero pensé que este módulo requería una lógica de 3.3V y, por lo tanto, todas las resistencias. No son necesarios ya que el BK2421 tiene pines de datos tolerantes a 5V.

**

Terminé con una configuración mucho más simple usando solo el módulo rescatado del teléfono y un Arduino.
Para permitir la experimentación futura, he escrito una biblioteca Arduino para conectar uno o más de estos cuadricópteros.
La biblioteca debería funcionar en todas las placas Arduino basadas en ATMEGA88 a ATMEGA328P.
Si quieres probarlo tú mismo, puedes conseguir los HCD aquí o aquí, entre otros lugares. Estos son solo resultados aleatorios en Google, puede obtenerlos en otro lugar.

**

Vea este proyecto presentado en Hack a Day y mi artículo completo en mi blog.

El proyecto

diseños de PCB

Archivos

Biblioteca Arduino para controlar el Quadcopter
HCD.zip
Hoja de datos del circuito integrado del transceptor BK2421 de 2,4 GHz
Beken-BK2421.pdf
Archivo de texto de lista anotada de secuencia de inicialización
HCD_init.txt

Fuente Arduino.cc