Talaan ng mga Nilalaman:

Autonomous Line Follower Drone With Raspberry Pi: 5 Hakbang
Autonomous Line Follower Drone With Raspberry Pi: 5 Hakbang

Video: Autonomous Line Follower Drone With Raspberry Pi: 5 Hakbang

Video: Autonomous Line Follower Drone With Raspberry Pi: 5 Hakbang
Video: Lesson 24: Smart Car Part 2: Moving Forwared, Reverse, left and right and Controling Speed of Car 2024, Hulyo
Anonim
Autonomous Line Follower Drone With Raspberry Pi
Autonomous Line Follower Drone With Raspberry Pi

Ipinapakita ng tutorial na ito kung paano ka makakagawa ng tagasunod na drone sa kalaunan.

Ang drone na ito ay magkakaroon ng isang "autonomous mode" switch na papasok sa drone to mode. Kaya, maaari mo pa ring paliparin ang iyong drone tulad ng dati.

Mangyaring magkaroon ng kamalayan na ito ay kukuha ng oras upang bumuo at kahit na mas maraming oras upang ayusin. Ngunit ang panghuli … ay sa tingin mo sulit ito.

Upang simulang lumikha ng iyong sariling autonomus line tracker drone, tiyaking mayroon ka;

  • Rasberry Pi 3 o Raspberry Pi Zero W na may SSH access
  • Ready-To-Fly drone na may APM o Pixhawk flight controller
  • Arduino Leonardo o ibang Arduino na may bilis ng orasan
  • Hindi bababa sa 6 CH transmitter
  • Ang USB Webcam na sinusuportahan ng Raspberry Pi at OpenCV
  • Isang PC
  • 6 na pangkalahatang layunin ng mga transistors
  • Mga kable ng kable

Hakbang 1: Ang Idea at Mga Koneksyon

Ang Idea at Mga Koneksyon
Ang Idea at Mga Koneksyon

Ang APM, aka ArduPilot, ay isang flight controller batay sa Arduino Mega. Nangangahulugan ito na maaari naming baguhin ito upang maging pinakamahusay para sa aming kaso. Ngunit dahil wala akong impormasyon na magagawa, pupunta ako upang sumunod sa ibang paraan.

Ang Raspberry Pi's ay, sa kasamaang palad, hindi sensitibo sa oras na nangangahulugang hindi makitungo sa mga signal ng PPM.

Iyon ang dahilan kung bakit kailangan namin ng karagdagang Arduino board.

Sa ganitong paraan, iproseso ng Raspberry Pi ang mga imahe at kalkulahin ang mga tagubilin sa paglipad at ipadala ito sa Arduino sa pamamagitan ng Serial UART interface. Ang Arduino card ay tatayo dito bilang isang encoder / decoder ng PPM, na naka-encode ng mga tagubilin sa paglipad sa mga signal ng PPM na nais ng APM. Upang magkaroon ng isang ideya, maaari mong suriin ang simbolikong circuit diagram.

Ang Raspberry Pi ay kikilos bilang telemetry transmitter sa tabi ng linya ng pagtuklas.

Ang mahahalagang circuit ay ipinapakita sa mga imahe. Patuloy akong magpapaliwanag sa mga susunod na hakbang.

Hakbang 2: Mga Koneksyon at Pag-configure ng Raspberry Pi

Mga Koneksyon at Pag-configure ng Raspberry Pi
Mga Koneksyon at Pag-configure ng Raspberry Pi
Mga Koneksyon at Pag-configure ng Raspberry Pi
Mga Koneksyon at Pag-configure ng Raspberry Pi

Ang Raspberry Pi ay konektado sa Wi-Fi Adapter (opsyonal), USB Webcam, Arduino Leonardo sa pamamagitan ng USB, APM sa pamamagitan ng built-in na serial interface. Ang APM - koneksyon sa RPI ay ipinapakita na may mga detalye sa mga imahe.

Upang mai-configure, mayroon kang dalawang mga pagpipilian: purong Raspbian na may mga kinakailangang mga pakete o espesyal na imahe para sa koneksyon sa MAVLink na tinatawag na APSync. Kung gagamit ka ng Raspbian, tiyaking na-install mo ang mga package na ito:

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 i-install ang hinaharap na pymavlink mavproxy pyserial

Upang magamit ang built-in na serial interface ng Raspberry Pi, dapat mong sabihin sa OS na huwag itong gamitin. Upang magawa ito, i-type

sudo raspi-config

at sundin ang mga pagpipilian sa Interfacing> Serial interface

Dapat mong huwag paganahin ang serial interface ngunit paganahin ang serial hardware.

Sa puntong ito, ang natitira ay angkop para sa parehong Raspbian at APSync.

Sa direktoryo sa bahay, lumikha ng tatlong mga file: reboot script at image processor scriptt. Ikalawang linya ay ginagawang naisakatuparan ang reboot script.

pindutin ang reboot.sh image_processor.py

chmod + x reboot.sh

Kopyahin ang lahat ng mga linya sa mga file na ibinigay sa ibaba sa iyong direktoryo sa bahay (/ home / pi) sa Raspberry Pi.

Maglalaman ang reboot script ng mga pag-trigger na magpapalitaw ng imahe ng mga script ng telemetry. Ilang setting din. Tandaan na kung hindi mo nais ang tampok na telemetry, magdagdag ng # bago ang linya na iyon.

nano reboot.sh

#! / baseng / bash

python3 /home/pi/image_processor.py

I-save ito sa CTRL + O at lumabas gamit ang CTRL + X. Huling hakbang tungkol dito ay pagrerehistro ito sa OS startup file, rc.local

sudo nano /etc/rc.local

Idagdag ang linyang ito sa itaas ng exit 0:

/home/pi/reboot.sh

Ang aming reboot script ay papatayin sa bawat boot.

Nais naming i-record ng Raspberry Pi ang live na video, iproseso ito on-the-fly, kalkulahin ang mga tagubilin sa paglipad, ipadala ito sa flight controller at maging telemetry. Ngunit dahil ang Raspberry Pi ay hindi nakagawa ng signal ng PPM na nais ng APM, kailangan namin ng ibang paraan upang magawa ito.

Ipapadala ng Raspberry Pi ang output ng pagproseso ng imahe nito sa Arduino (sa aking kaso Arduino Leonardo) sa pamamagitan ng Serial Port. Lilikha ang Arduino ng signal ng PPM mula sa input na iyon at ipadala ito sa Flight Controller sa pamamagitan ng mga jumper wires. Ito ay para sa Raspberry Pi.

Lumipat tayo sa susunod na hakbang.

Hakbang 3: Mga Koneksyon at Pag-configure ng APM

Mga Koneksyon at Pag-configure ng APM
Mga Koneksyon at Pag-configure ng APM

Ang mga bagay tungkol sa APM ay simple dahil handa na itong lumipad. Kailangan nating malaman ang baudrates ng mga serial port, at tiyakin na pinagana ang port ng TELEM.

Sa iyong ground software, sa aking kaso Mission Planner, suriin ang listahan ng mga parameter ng flight controller at alamin ang mga baudrates. Halimbawa, ang SERIAL_BAUD ay USB baudrate at ang SERIAL_BAUD1 ay TELEM port baudrate para sa APM. Tandaan na ang mga halaga.

Ang pinakamahalagang bahagi ay ang mga koneksyon ng INPUT pin. Tulad ng ipinakita sa imahe, ikonekta ang mga digital pin ng Arduino 4 masusing 9. Maaaring gusto mong gumamit ng isang breadbord para dito, dahil magdaragdag kami ng ilang mga transistor at output ng receiver. (Tingnan ang mga imahe) (gagana ang Transistors sakaling nais mong kontrolin ang iyong drone)

ARD 4 ↔ APM INPUT 1

ARD 5 ↔ APM INPUT 2

ARD 6 ↔ APM INPUT 3

ARD 7 ↔ APM INPUT 4

ARD 8 ↔ APM INPUT 5

ARD 9 ↔ APM INPUT 6

Ikonekta ang lahat ng 5V pin sa APM Input sa Arduino Leonardo 5V pin. Gayundin ikonekta ang lahat ng mga APM Input GND na pin sa Arduino Leonardo GND na pin.

Hakbang 4: Pag-configure ng Arduino Leonardo

Nakakonekta namin ang lahat ng mga wire para kay Leonardo kaya't ang code na lamang ang natitira.

I-upload ang ibinigay na code sa ibaba sa iyong Arduino Leonardo. Bigyang pansin ang mga baudrates.

Hakbang 5: Unang Paglipad

Kapag tapos ka na sa lahat ng nakaraang mga hakbang, nangangahulugan ito na handa ka na.

Paganahin ang lahat ng mga card at kumonekta sa SSH sa Raspberry Pi. I-type sa terminal:

sudo su

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

Ang default na built-in na serial interface ng Raspberry Pi ay ttyS0 (/ dev / ttyS0)

Ang default na APM TELEM port baudrate ay 57600

Ang default na APM USB port baudrate ay 115200

Maaari kang magbigay ng anumang pangalan sa iyong sasakyang panghimpapawid, piliin ito nang matalino, upang makilala mo ito sa paglaon.

Kung okay ang lahat, kumonekta ngayon sa iyong Raspberry Pi sa pamamagitan ng VNC, upang mapanood mo ang nakikita ng drone sa real time.

Ngayon, maaari mong braso ang iyong drone. Nakakakilig, di ba?

Alisin ang iyong drone, at lumipad sa itaas ng linya ng linya. Ngayon, maaari mong buhayin ang mode ng pagsubaybay sa linya sa pamamagitan ng paggamit ng CH6 switch.

Inirerekumendang: