Table des matières:

Drone suiveur de ligne autonome avec Raspberry Pi : 5 étapes
Drone suiveur de ligne autonome avec Raspberry Pi : 5 étapes

Vidéo: Drone suiveur de ligne autonome avec Raspberry Pi : 5 étapes

Vidéo: Drone suiveur de ligne autonome avec Raspberry Pi : 5 étapes
Vidéo: Voiture autonome et regression 2024, Novembre
Anonim
Drone suiveur de ligne autonome avec Raspberry Pi
Drone suiveur de ligne autonome avec Raspberry Pi

Ce tutoriel montre comment vous pouvez éventuellement créer un drone suiveur de ligne.

Ce drone aura un interrupteur "mode autonome" qui fera passer le drone en mode. Ainsi, vous pouvez toujours piloter votre drone comme avant.

Sachez qu'il faudra du temps pour construire et encore plus de temps pour s'adapter. Mais la finale… vous fait penser que ça vaut le coup.

Pour commencer à créer votre propre drone de suivi de ligne autonome, assurez-vous d'avoir:

  • Rasberry Pi 3 ou Raspberry Pi Zero W avec accès SSH
  • Drone prêt à voler avec contrôleur de vol APM ou Pixhawk
  • Arduino Leonardo ou un autre Arduino avec une vitesse d'horloge rapide
  • Émetteur au moins 6 canaux
  • Webcam USB prise en charge par Raspberry Pi et OpenCV
  • Un ordinateur
  • 6 transistors à usage général
  • Câbles de câblage

Étape 1: L'idée et les connexions

L'idée et les connexions
L'idée et les connexions

APM, alias ArduPilot, est un contrôleur de vol basé sur Arduino Mega. Cela signifie que nous pouvons le modifier pour qu'il soit le mieux adapté à notre cas. Mais comme je n'ai pas les informations pour le faire, je vais aller suivre une autre voie.

Les Raspberry Pi ne sont malheureusement pas sensibles au temps, ce qui signifie qu'ils ne peuvent pas gérer les signaux PPM.

C'est pourquoi nous avons besoin de la carte Arduino supplémentaire.

De cette façon, Raspberry Pi traitera les images et calculera les instructions de vol et les enverra à Arduino via l'interface Serial UART. La carte Arduino se tiendra ici en tant qu'encodeur/décodeur PPM, qui encode les instructions de vol en signaux PPM souhaités par APM. Pour vous faire une idée, vous pouvez examiner le schéma du circuit symbolique.

Raspberry Pi se comportera comme un émetteur de télémétrie à côté de la ligne de détection.

Le circuit essentiel est montré dans les images. Je vais continuer à expliquer dans les prochaines étapes.

Étape 2: Connexions et configuration du Raspberry Pi

Connexions et configuration du Raspberry Pi
Connexions et configuration du Raspberry Pi
Connexions et configuration du Raspberry Pi
Connexions et configuration du Raspberry Pi

Raspberry Pi sera connecté à l'adaptateur Wi-Fi (en option), à la webcam USB, à l'Arduino Leonardo via USB, à l'APM via l'interface série intégrée. APM - Connexion RPI illustrée avec des détails dans les images.

Pour configurer, vous avez deux options: Raspbian pur avec les packages nécessaires ou une image spéciale pour la connexion MAVLink appelée APSync. Si vous envisagez d'utiliser Raspbian, assurez-vous d'avoir installé ces packages:

sudo apt-get mise à jour

sudo apt-get install -y screen 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 installer le futur pymavlink mavproxy pyserial

Pour utiliser l'interface série intégrée de Raspberry Pi, vous devez dire au système d'exploitation de ne pas l'utiliser. Pour ce faire, tapez

sudo raspi-config

et suivez Options d'interfaçage > Interface série

Vous devez désactiver l'interface série mais activer le matériel série.

À ce stade, le reste convient à la fois à Raspbian et à APSync.

Dans le répertoire personnel, créez trois fichiers: le script de redémarrage et le script du processeur d'image. La deuxième ligne rend le script de redémarrage exécutable.

touchez reboot.sh image_processor.py

chmod +x reboot.sh

Copiez toutes les lignes des fichiers ci-dessous dans votre répertoire personnel (/home/pi) dans Raspberry Pi.

Le script de redémarrage contiendra des déclencheurs qui vont déclencher des scripts de processeur d'image et de télémétrie. Aussi peu de réglages. Notez que si vous ne voulez pas de fonctionnalité de télémétrie, ajoutez # avant cette ligne.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Enregistrez-le avec CTRL+O et quittez avec CTRL+X. La dernière étape consiste à l'enregistrer dans le fichier de démarrage du système d'exploitation, rc.local

sudo nano /etc/rc.local

Ajoutez cette ligne au-dessus de la sortie 0:

/home/pi/reboot.sh

Notre script de redémarrage sera exécuté à chaque démarrage.

Nous voulons que Raspberry Pi enregistre une vidéo en direct, la traite à la volée, calcule les instructions de vol, l'envoie au contrôleur de vol et soit télémétrique. Mais étant donné que Raspberry Pi n'est pas capable de générer le signal PPM souhaité par APM, nous avons besoin d'un autre moyen de le faire.

Raspberry Pi enverra sa sortie de traitement d'image à Arduino (dans mon cas Arduino Leonardo) via le port série. Arduino générera un signal PPM à partir de cette entrée et l'enverra au contrôleur de vol via des cavaliers. C'est tout pour Raspberry Pi.

Passons à l'étape suivante.

Étape 3: Connexions et configuration APM

Connexions et configuration APM
Connexions et configuration APM

Les choses à propos d'APM sont simples puisqu'il est déjà prêt à voler. Nous devons connaître les débits en bauds des ports série et nous assurer que le port TELEM est activé.

Dans votre logiciel au sol, dans mon cas Mission Planner, vérifiez la liste des paramètres du contrôleur de vol et découvrez les baudrates. Par exemple, SERIAL_BAUD est le débit en bauds USB et SERIAL_BAUD1 est le débit en bauds du port TELEM pour APM. Notez que les valeurs.

La partie la plus importante est la connexion des broches INPUT. Comme le montre l'image, connectez les broches numériques d'Arduino 4 à 9. Vous voudrez peut-être utiliser une planche à pain pour cela, car nous allons ajouter des transistors et des sorties de récepteur. (Voir images) (Les transistors fonctionneront au cas où vous voudriez prendre le contrôle de votre drone)

ARD 4 APM ENTREE 1

ARD 5 APM ENTREE 2

ARD 6 APM ENTREE 3

ARD 7 APM ENTREE 4

ARD 8 ↔ APM ENTREE 5

ARD 9 APM ENTREE 6

Connectez toutes les broches 5V de l'entrée APM à la broche Arduino Leonardo 5V. De même, connectez toutes les broches GND d'entrée APM à la broche GND d'Arduino Leonardo.

Étape 4: configuration de l'Arduino Leonardo

Nous avons connecté tous les fils pour Leonardo donc il ne reste que le code.

Téléchargez le code ci-dessous sur votre Arduino Leonardo. Faites attention aux débits en bauds.

Étape 5: premier vol

Lorsque vous avez terminé toutes les étapes précédentes, cela signifie que vous êtes prêt.

Mettez toutes les cartes sous tension et connectez-vous en SSH au Raspberry Pi. Saisissez la borne:

sudo su

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

L'interface série intégrée par défaut du Raspberry Pi est ttyS0 (/dev/ttyS0)

La vitesse de transmission par défaut du port APM TELEM est 57600

La vitesse de transmission par défaut du port USB APM est 115200

Vous pouvez donner n'importe quel nom à votre avion, choisissez-le judicieusement, afin de pouvoir le reconnaître plus tard.

Si tout va bien, connectez-vous maintenant à votre Raspberry Pi via VNC pour pouvoir regarder ce que le drone voit en temps réel.

Maintenant, vous pouvez armer votre drone. Excitant, non ?

Enlevez votre drone et volez au-dessus de la piste de ligne. Maintenant, vous pouvez activer le mode de suivi de ligne en utilisant le commutateur CH6.

Conseillé: