Tabla de contenido:

Drone seguidor de línea autónomo con Raspberry Pi: 5 pasos
Drone seguidor de línea autónomo con Raspberry Pi: 5 pasos

Video: Drone seguidor de línea autónomo con Raspberry Pi: 5 pasos

Video: Drone seguidor de línea autónomo con Raspberry Pi: 5 pasos
Video: Robot Autónomo con Raspberry Pi y Arduino - #NEXTPCB 2024, Noviembre
Anonim
Drone seguidor de línea autónomo con Raspberry Pi
Drone seguidor de línea autónomo con Raspberry Pi

Este tutorial muestra cómo se puede hacer eventualmente un dron seguidor de línea.

Este dron tendrá un interruptor de "modo autónomo" que ingresará al dron en modo. Por lo tanto, aún puede volar su dron como antes.

Tenga en cuenta que llevará tiempo construirlo y aún más tiempo ajustarlo. Pero la final … te hace pensar que vale la pena.

Para comenzar a crear su propio dron rastreador de línea autónomo, asegúrese de tener;

  • Rasberry Pi 3 o Raspberry Pi Zero W con acceso SSH
  • Dron listo para volar con controlador de vuelo APM o Pixhawk
  • Arduino Leonardo u otro Arduino con velocidad de reloj rápida
  • Transmisor de al menos 6 canales
  • Cámara web USB compatible con Raspberry Pi y OpenCV
  • Una PC
  • 6 transistores de propósito general
  • Cables de cableado

Paso 1: la idea y las conexiones

La idea y las conexiones
La idea y las conexiones

APM, también conocido como ArduPilot, es un controlador de vuelo basado en Arduino Mega. Esto significa que podemos modificarlo para que sea mejor para nuestro caso. Pero como no tengo la información para hacerlo, voy a ir a seguir otro camino.

Las Raspberry Pi, desafortunadamente, no son sensibles al tiempo, lo que significa que no pueden lidiar con señales PPM.

Por eso necesitamos la placa Arduino adicional.

De esta manera, Raspberry Pi procesará las imágenes y calculará las instrucciones de vuelo y las enviará a Arduino a través de la interfaz Serial UART. La tarjeta Arduino permanecerá aquí como un codificador / decodificador PPM, que codifica las instrucciones de vuelo en señales PPM que APM desea. Para tener una idea, puede examinar el diagrama de circuito simbólico.

Raspberry Pi se comportará como transmisor de telemetría junto con la línea de detección.

El circuito esencial se muestra en las imágenes. Continuaré explicando en los próximos pasos.

Paso 2: Conexiones y configuración de Raspberry Pi

Conexiones y configuración de Raspberry Pi
Conexiones y configuración de Raspberry Pi
Conexiones y configuración de Raspberry Pi
Conexiones y configuración de Raspberry Pi

Raspberry Pi se conectará al adaptador Wi-Fi (opcional), cámara web USB, Arduino Leonardo a través de USB, APM a través de la interfaz en serie incorporada. APM - Se muestra la conexión RPI con detalles en las imágenes.

Para configurar, tiene dos opciones: Raspbian puro con los paquetes necesarios o una imagen especial para la conexión MAVLink llamada APSync. Si va a utilizar Raspbian, asegúrese de haber instalado estos paquetes:

sudo apt-get update

sudo apt-get install -y pantalla python-wxgtk3.0 python-matplotlib sudo apt-get install -y python-opencv python-pip python-numpy python-dev sudo apt-get install -y libxml2-dev libxslt-dev python- lxml sudo pip instalar futuro pymavlink mavproxy pyserial

Para usar la interfaz serial incorporada de Raspberry Pi, debe decirle al sistema operativo que no la use. Para hacerlo, escriba

sudo raspi-config

y siga Opciones de interfaz> Interfaz serial

Debe deshabilitar la interfaz serial pero habilitar el hardware serial.

En este punto, el resto es adecuado tanto para Raspbian como para APSync.

En el directorio de inicio, cree tres archivos: secuencia de comandos de reinicio y secuencia de comandos del procesador de imágenes. La segunda línea hace que el script de reinicio sea ejecutable.

toque reboot.sh image_processor.py

chmod + x reboot.sh

Copie todas las líneas de los archivos que se indican a continuación en su directorio de inicio (/ home / pi) en Raspberry Pi.

El script de reinicio contendrá activadores que activarán el procesador de imágenes y los scripts de telemetría. También pocos ajustes. Tenga en cuenta que si no desea la función de telemetría, agregue # antes de esa línea.

nano reboot.sh

#! / bin / bash

python3 /home/pi/image_processor.py

Guárdelo con CTRL + O y salga con CTRL + X. El último paso es registrarlo en el archivo de inicio del sistema operativo, rc.local

sudo nano /etc/rc.local

Agregue esta línea sobre la salida 0:

/home/pi/reboot.sh

Nuestro script de reinicio se ejecutará en cada arranque.

Queremos que Raspberry Pi grabe video en vivo, lo procese sobre la marcha, calcule las instrucciones de vuelo, lo envíe al controlador de vuelo y sea telemetría. Pero dado que Raspberry Pi no puede generar la señal PPM que APM quiere, necesitamos otra forma de lograrlo.

Raspberry Pi enviará su salida de procesamiento de imágenes a Arduino (en mi caso Arduino Leonardo) a través del puerto serie. Arduino generará una señal PPM a partir de esa entrada y la enviará al controlador de vuelo a través de cables de puente. Todo esto es para Raspberry Pi.

Pasemos al siguiente paso.

Paso 3: Conexiones y configuración de APM

Conexiones y configuración de APM
Conexiones y configuración de APM

Las cosas sobre APM son simples ya que ya está listo para volar. Necesitamos conocer las velocidades en baudios de los puertos seriales y asegurarnos de que el puerto TELEM esté habilitado.

En su software terrestre, en mi caso Mission Planner, verifique la lista de parámetros del controlador de vuelo y descubra las velocidades en baudios. Por ejemplo, SERIAL_BAUD es la velocidad en baudios USB y SERIAL_BAUD1 es la velocidad en baudios del puerto TELEM para APM. Tenga en cuenta que los valores.

La parte más importante son las conexiones de los pines INPUT. Como se muestra en la imagen, conecte los pines digitales 4 de Arduino a través del 9. Es posible que desee utilizar un breadbord para esto, ya que vamos a agregar algunos transistores y salidas de receptor. (Ver imágenes) (Los transistores estarán funcionando en caso de que quieras tomar el control de tu dron)

ARD 4 ↔ APM ENTRADA 1

ARD 5 ↔ APM ENTRADA 2

ARD 6 ↔ APM ENTRADA 3

ARD 7 ↔ APM ENTRADA 4

ARD 8 ↔ APM ENTRADA 5

ARD 9 ↔ APM ENTRADA 6

Conecte todos los pines de 5V en la entrada APM al pin Arduino Leonardo 5V. Asimismo, conecte todos los pines GND de entrada APM al pin Arduino Leonardo GND.

Paso 4: Configuración de Arduino Leonardo

Hemos conectado todos los cables para Leonardo, por lo que solo queda el código.

Sube el código dado a continuación a tu Arduino Leonardo. Preste atención a las velocidades en baudios.

Paso 5: primer vuelo

Cuando haya terminado con todos los pasos anteriores, significa que está listo.

Encienda todas las tarjetas y conéctese con SSH a Raspberry Pi. Escriba terminal:

sudo su

mavproxy.py --master = / dev / [SERIAL INTERFACE] --baudrate [TELEM PORT BAUDRATE] --aircraft [CUSTOM NAME

La interfaz serial incorporada predeterminada de Raspberry Pi es ttyS0 (/ dev / ttyS0)

La velocidad en baudios del puerto APM TELEM predeterminado es 57600

La velocidad en baudios del puerto USB APM predeterminado es 115200

Puedes darle cualquier nombre a tu avión, elígelo sabiamente, para que puedas reconocerlo más tarde.

Si todo está bien, ahora conéctese a su Raspberry Pi a través de VNC, para que pueda ver lo que ve el dron en tiempo real.

Ahora puedes armar tu dron. Emocionante, ¿verdad?

Quítese el dron y vuele por encima de la línea. Ahora, puede activar el modo de seguimiento de línea usando el interruptor CH6.

Recomendado: