Tartalomjegyzék:

Autonóm vonalkövető drón Raspberry Pi -vel: 5 lépés
Autonóm vonalkövető drón Raspberry Pi -vel: 5 lépés

Videó: Autonóm vonalkövető drón Raspberry Pi -vel: 5 lépés

Videó: Autonóm vonalkövető drón Raspberry Pi -vel: 5 lépés
Videó: With a Lidar strapped to its back, PuppyPi Pro can avoid any obstacle 👣🤖https://bit.ly/383HAeV 2024, November
Anonim
Autonóm vonalkövető drón Raspberry Pi -vel
Autonóm vonalkövető drón Raspberry Pi -vel

Ez az oktatóanyag megmutatja, hogyan lehet végül vonalkövető drónt készíteni.

Ennek a drónnak lesz egy "autonóm üzemmód" kapcsolója, amely a drón módba lép. Tehát továbbra is repülhet a drónjával, mint korábban.

Kérjük, vegye figyelembe, hogy időbe telik az építés, és még több idő a kiigazításhoz. De a végső… az elgondolkodtatja.

A saját autonomus vonalkövető drón létrehozásának megkezdéséhez győződjön meg arról, hogy rendelkezik;

  • Rasberry Pi 3 vagy Raspberry Pi Zero W SSH hozzáféréssel
  • Repülésre kész drón APM vagy Pixhawk repülésvezérlővel
  • Arduino Leonardo vagy egy másik Arduino gyors órajel mellett
  • Legalább 6 CH adó
  • USB webkamera, amelyet a Raspberry Pi és az OpenCV támogat
  • Egy PC
  • 6 általános célú tranzisztor
  • Kábelezési kábelek

1. lépés: Az ötlet és a kapcsolatok

Az ötlet és az összefüggések
Az ötlet és az összefüggések

Az APM, más néven ArduPilot, az Arduino Mega alapú repülésvezérlő. Ez azt jelenti, hogy módosíthatjuk, hogy a legjobb legyen az esetünkben. De mivel nem rendelkezem ehhez szükséges információkkal, más utat fogok követni.

A Raspberry Pi-k sajnos nem időérzékenyek, ami azt jelenti, hogy nem tudják kezelni a PPM jeleket.

Ezért van szükségünk egy további Arduino táblára.

Ily módon a Raspberry Pi feldolgozza a képeket, kiszámítja a repülési utasításokat, és elküldi az Arduino -nak a soros UART felületen keresztül. Az Arduino kártya itt áll majd PPM kódoló/dekódoló néven, amely kódolja a repülési utasításokat az APM által kívánt PPM jelekhez. Ha ötlete van, megvizsgálhatja a szimbolikus kapcsolási rajzot.

A Raspberry Pi telemetriai adóként fog működni az érzékelő vonal mellett.

Az alapvető áramkör a képeken látható. A következő lépésekben folytatom a magyarázatot.

2. lépés: Raspberry Pi kapcsolatok és konfiguráció

Raspberry Pi kapcsolatok és konfiguráció
Raspberry Pi kapcsolatok és konfiguráció
Raspberry Pi kapcsolatok és konfiguráció
Raspberry Pi kapcsolatok és konfiguráció

A Raspberry Pi csatlakozik a Wi-Fi adapterhez (opcionális), az USB webkamerához, az Arduino Leonardohoz USB-n keresztül, az APM-hez pedig a beépített soros interfészen keresztül. APM - RPI kapcsolat, részletekkel a képeken.

A konfiguráláshoz két lehetősége van: tiszta Raspbian a szükséges csomagokkal vagy speciális kép a MAVLink kapcsolathoz, az APSync. Ha Raspbian -ot fog használni, győződjön meg róla, hogy telepítette ezeket a csomagokat:

sudo apt-get update

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 telepítse a jövőbeli pymavlink mavproxy pyserial -t

A Raspberry Pi beépített soros interfészének használatához meg kell mondania az operációs rendszernek, hogy ne használja. Ehhez írja be

sudo raspi-config

és kövesse az Interfész beállítások> Soros interfész lehetőséget

Le kell tiltania a soros interfészt, de engedélyeznie kell a soros hardvert.

Ezen a ponton a többi alkalmas mind a Raspbian, mind az APSync számára.

A saját könyvtárban hozzon létre három fájlt: újraindító szkript és képfeldolgozó szkript. A második sor végrehajthatóvá teszi az újraindítási szkriptet.

érintse meg a reboot.sh image_processor.py fájlt

chmod +x reboot.sh

Másolja az alábbi fájlok összes sorát a Raspberry Pi saját könyvtárába (/home/pi).

Az újraindítási szkript olyan triggereket tartalmaz, amelyek elindítják a képfeldolgozó és telemetriai szkripteket. Szintén kevés beállítás. Ne feledje, hogy ha nem akarja a telemetriai szolgáltatást, akkor a sor előtt adja hozzá a # számot.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Mentse el a CTRL+O billentyűvel, és lépjen ki a CTRL+X billentyűkombinációval. Az utolsó lépés az, hogy regisztrálja az operációs rendszer indító fájljába, az rc.local -ba

sudo nano /etc/rc.local

Adja hozzá ezt a sort a 0 -ás kijárat fölé:

/home/pi/reboot.sh

Újraindítási szkriptünk minden indításkor végrehajtásra kerül.

Azt akarjuk, hogy a Raspberry Pi élő videót rögzítsen, menet közben feldolgozza, kiszámítsa a repülési utasításokat, elküldje a repülésirányítónak és telemetria legyen. De mivel a Raspberry Pi nem képes PPM jelet generálni, amit az APM szeretne, szükségünk van egy másik módszerre.

A Raspberry Pi a soros porton keresztül elküldi képfeldolgozó kimenetét az Arduino -nak (esetemben Arduino Leonardo). Az Arduino PPM jelet generál ebből a bemenetből, és elküldi a repülésvezérlőnek az áthidaló vezetékeken keresztül. Ez mind a Raspberry Pi -re vonatkozik.

Térjünk át a következő lépésre.

3. lépés: APM kapcsolatok és konfiguráció

APM kapcsolatok és konfiguráció
APM kapcsolatok és konfiguráció

Az APM -rel kapcsolatos dolgok egyszerűek, mivel már készen áll a repülésre. Ismernünk kell a soros portok adatátviteli sebességét, és meg kell győződnünk arról, hogy a TELEM port engedélyezve van.

A földi szoftverben, az én esetemben a Mission Plannerben, ellenőrizze a repülésirányító paramétereinek listáját, és keresse meg a baudrátákat. Például a SERIAL_BAUD az USB adatátviteli sebessége, a SERIAL_BAUD1 pedig a TELEM port átviteli sebessége az APM számára. Vegye figyelembe, hogy az értékek.

A legfontosabb rész az INPUT csapok csatlakozásai. Amint az a képen is látható, csatlakoztassa az Arduino digitális tüskéit 4 alaposan 9. Érdemes ehhez kenyérzsinórt használni, mivel néhány tranzisztorot és vevőkimenetet adunk hozzá. (Lásd a képeket) (A tranzisztorok működni fognak abban az esetben, ha irányítani szeretné drónját)

ARD 4 ↔ APM BEMENET 1

ARD 5 ↔ APM BEMENET 2

ARD 6 ↔ APM BEMENET 3

ARD 7 ↔ APM BEMENET 4

ARD 8 ↔ APM BEMENET 5

9 ARD ↔ APM BEMENET 6

Csatlakoztassa az APM bemenet összes 5 V -os érintkezőjét az Arduino Leonardo 5 V -os tűhöz. Hasonlóképpen csatlakoztassa az összes APM bemeneti GND -tűt az Arduino Leonardo GND -tűhöz.

4. lépés: Arduino Leonardo konfigurálása

Összekötöttük Leonardo összes vezetékét, így csak a kód maradt.

Töltse fel az alábbi kódot az Arduino Leonardo készülékére. Ügyeljen a baudrate -re.

5. lépés: Első repülés

Ha befejezte az összes korábbi lépést, ez azt jelenti, hogy készen áll.

Kapcsolja be az összes kártyát, és csatlakozzon az SSH -val a Raspberry Pi -hez. Írja be a terminált:

sudo su

mavproxy.py --master =/dev/[SERIAL INTERFACE] --baudrate [TELEM PORT BAUDRATE] -repülőgép [CUSTOM NAME]

Az alapértelmezett Raspberry Pi beépített soros interfész a ttyS0 (/dev/ttyS0)

Az APM TELEM port alapértelmezett átviteli sebessége 57600

Az alapértelmezett APM USB port baudrate 115200

Bármilyen nevet adhat repülőgépének, okosan válassza azt, így később felismerheti.

Ha minden rendben van, csatlakozzon Raspberry Pi készülékéhez a VNC -n keresztül, így valós időben nézheti, mit lát a drón.

Most élesítheti a drónt. Izgalmas, igaz?

Vegye le a drónt, és repüljön a vonal felett. Most a CH6 kapcsolóval aktiválhatja a vonalkövetési módot.

Ajánlott: