Índice:

Drone seguidor de linha autônomo com Raspberry Pi: 5 etapas
Drone seguidor de linha autônomo com Raspberry Pi: 5 etapas

Vídeo: Drone seguidor de linha autônomo com Raspberry Pi: 5 etapas

Vídeo: Drone seguidor de linha autônomo com Raspberry Pi: 5 etapas
Vídeo: Robô Seguidor de Linha feito com Raspberry Pi Pico #MaratonaMaker 2024, Novembro
Anonim
Drone seguidor de linha autônomo com Raspberry Pi
Drone seguidor de linha autônomo com Raspberry Pi

Este tutorial mostra como você pode fazer o zangão do seguidor de linha eventualmente.

Este drone terá um interruptor de "modo autônomo" que o colocará no modo. Portanto, você ainda pode pilotar seu drone como antes.

Esteja ciente de que levará tempo para construir e ainda mais tempo para se ajustar. Mas o final … faz você pensar que vale a pena.

Para começar a criar seu próprio drone de rastreador de linha autônomo, certifique-se de ter;

  • Rasberry Pi 3 ou Raspberry Pi Zero W com acesso SSH
  • Drone pronto para voar com controlador de vôo APM ou Pixhawk
  • Arduino Leonardo ou outro Arduino com velocidade de relógio rápida
  • Pelo menos 6 transmissor CH
  • Webcam USB compatível com Raspberry Pi e OpenCV
  • Um PC
  • 6 transistores de uso geral
  • Cabos de fiação

Etapa 1: a ideia e as conexões

A ideia e conexões
A ideia e conexões

APM, também conhecido como ArduPilot, é um controlador de vôo baseado no Arduino Mega. Isso significa que podemos modificá-lo para ser o melhor para o nosso caso. Mas como não tenho as informações para fazer isso, vou seguir outro caminho.

Os Raspberry Pi, infelizmente, não são sensíveis ao tempo, o que significa que não podem lidar com sinais PPM.

É por isso que precisamos da placa Arduino adicional.

Desta forma, o Raspberry Pi processará as imagens e calculará as instruções de vôo e enviará para o Arduino via interface Serial UART. A placa Arduino ficará aqui como um codificador / decodificador PPM, que codifica as instruções de vôo para sinais PPM desejados pelo APM. Para se ter uma ideia, você pode examinar o diagrama de circuito simbólico.

O Raspberry Pi se comportará como um transmissor de telemetria ao lado da linha de detecção.

O circuito essencial é mostrado nas imagens. Vou continuar explicando nas próximas etapas.

Etapa 2: conexões e configuração do Raspberry Pi

Conexões e configuração do Raspberry Pi
Conexões e configuração do Raspberry Pi
Conexões e configuração do Raspberry Pi
Conexões e configuração do Raspberry Pi

O Raspberry Pi será conectado ao adaptador Wi-Fi (opcional), webcam USB, Arduino Leonardo via USB, APM via interface serial integrada. APM - Conexão RPI mostrada com detalhes nas imagens.

Para configurar, você tem duas opções: Raspbian puro com pacotes necessários ou imagem especial para conexão MAVLink chamada APSync. Se você for usar o Raspbian, certifique-se de ter instalado estes pacotes:

sudo apt-get update

sudo apt-get install -y tela 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 a interface serial embutida do Raspberry Pi, você deve dizer ao SO para não usá-lo. Para fazer isso, digite

sudo raspi-config

e siga as opções de interface> interface serial

Você deve desabilitar a interface serial, mas habilitar o hardware serial.

Neste ponto, o resto é adequado para Raspbian e APSync.

No diretório inicial, crie três arquivos: script de reinicialização e script de processador de imagem. A segunda linha torna o script de reinicialização executável.

toque em reboot.sh image_processor.py

chmod + x reboot.sh

Copie todas as linhas dos arquivos fornecidos abaixo para o diretório inicial (/ home / pi) no Raspberry Pi.

O script de reinicialização conterá gatilhos que irão acionar o processador de imagem e os scripts de telemetria. Também algumas configurações. Observe que se você não quiser o recurso de telemetria, adicione # antes dessa linha.

nano reboot.sh

#! / bin / bash

python3 /home/pi/image_processor.py

Salve-o com CTRL + O e saia com CTRL + X. A última etapa é registrá-lo no arquivo de inicialização do sistema operacional, rc.local

sudo nano /etc/rc.local

Anexe esta linha acima da saída 0:

/home/pi/reboot.sh

Nosso script de reinicialização será executado a cada inicialização.

Queremos que o Raspberry Pi grave vídeo ao vivo, processe-o durante o voo, calcule as instruções de voo, envie-o para o controlador de voo e seja telemetria. Mas, como o Raspberry Pi não é capaz de gerar o sinal PPM que o APM deseja, precisamos de outra maneira de fazer isso.

O Raspberry Pi enviará sua saída de processamento de imagem para o Arduino (no meu caso, Arduino Leonardo) por meio da porta serial. O Arduino irá gerar um sinal PPM a partir dessa entrada e enviá-lo para o Flight Controller por meio de fios de jumper. Isso tudo é por Raspberry Pi.

Vamos passar para a próxima etapa.

Etapa 3: conexões e configuração de APM

Conexões e configuração de APM
Conexões e configuração de APM

As coisas sobre o APM são simples, pois já está pronto para voar. Precisamos saber as taxas de transmissão das portas seriais e ter certeza de que a porta TELEM está habilitada.

Em seu software terrestre, no meu caso, planejador de missão, verifique a lista de parâmetros do controlador de vôo e descubra as taxas de transmissão. Por exemplo, SERIAL_BAUD é a taxa de transmissão USB e SERIAL_BAUD1 é a taxa de transmissão da porta TELEM para APM. Observe esses valores.

A parte mais importante são as conexões dos pinos de INPUT. Conforme mostrado na imagem, conecte os pinos digitais 4 a 9. do Arduino. Você pode usar um breadbord para isso, já que iremos adicionar alguns transistores e saídas de receptor. (Veja as imagens) (Os transistores funcionarão caso você queira assumir o controle do seu drone)

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 os pinos de 5 V na entrada APM ao pino de 5 V do Arduino Leonardo. Da mesma forma, conecte todos os pinos GND de entrada do APM ao pino GND do Arduino Leonardo.

Etapa 4: configuração do Arduino Leonardo

Conectamos todos os fios do Leonardo, então só sobrou o código.

Faça upload do código fornecido abaixo para o seu Arduino Leonardo. Preste atenção às taxas de transmissão.

Etapa 5: primeiro voo

Quando você concluir todas as etapas anteriores, significa que está pronto.

Ligue todos os cartões e conecte-se com SSH ao Raspberry Pi. Digite no terminal:

sudo su

mavproxy.py --master = / dev / [SERIAL INTERFACE] --baudrate [TELEM PORT BAUDRATE] --avião [NOME PERSONALIZADO

A interface serial interna padrão do Raspberry Pi é ttyS0 (/ dev / ttyS0)

A taxa de transmissão da porta APM TELEM padrão é 57600

A taxa de transmissão da porta USB APM padrão é 115200

Você pode dar qualquer nome à sua aeronave, escolhê-lo com sabedoria, para que possa reconhecê-lo mais tarde.

Se tudo estiver bem, agora conecte-se ao seu Raspberry Pi via VNC, para que você possa assistir o que o drone vê em tempo real.

Agora, você pode armar seu drone. Emocionante, certo?

Tire seu drone e voe acima da linha. Agora, você pode ativar o modo de rastreamento de linha usando o interruptor CH6.

Recomendado: