Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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
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
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
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.