Բովանդակություն:

Autonomous Line Follower Drone With Raspberry Pi: 5 քայլ
Autonomous Line Follower Drone With Raspberry Pi: 5 քայլ

Video: Autonomous Line Follower Drone With Raspberry Pi: 5 քայլ

Video: Autonomous Line Follower Drone With Raspberry Pi: 5 քայլ
Video: Fast line follower Robot 2024, Նոյեմբեր
Anonim
Ինքնավար գծի հետևորդ անօդաչու ՝ Raspberry Pi- ով
Ինքնավար գծի հետևորդ անօդաչու ՝ Raspberry Pi- ով

Այս ձեռնարկը ցույց է տալիս, թե ինչպես կարող եք ի վերջո գծի հետևորդ անօդաչու սարք դարձնել:

Այս անօդաչու սարքը կունենա «ինքնավար ռեժիմի» անջատիչ, որը անօդաչու թռչող սարքը կանցնի ռեժիմի: Այսպիսով, դուք դեռ կարող եք թռչել ձեր անօդաչու թռչող սարքը, ինչպես նախկինում:

Խնդրում ենք տեղյակ լինել, որ դրա կառուցումը ժամանակ կպահանջի և նույնիսկ ավելի շատ ժամանակ `հարմարվելու համար: Բայց վերջնականը … ստիպում է մտածել, որ արժե այն:

Ձեր սեփական ինքնավար գծի հետևող անօդաչու թռչող սարքի ստեղծումը սկսելու համար համոզվեք, որ ունեք.

  • Rasberry Pi 3 կամ Raspberry Pi Zero W SSH մուտքով
  • Ready-To-Fly անօդաչու թռչող սարք ՝ APM կամ Pixhawk թռիչքային վերահսկիչով
  • Arduino Leonardo կամ մեկ այլ Arduino արագ ժամացույցի արագությամբ
  • Առնվազն 6 CH հաղորդիչ
  • USB տեսախցիկ, որին աջակցում է Raspberry Pi- ն և OpenCV- ն
  • Համակարգիչ
  • 6 ընդհանուր նշանակության տրանզիստոր
  • Լարերի մալուխներ

Քայլ 1: Գաղափարը և կապերը

Գաղափարը և կապերը
Գաղափարը և կապերը

APM- ը, որը հայտնի է որպես ArduPilot, թռիչքների վերահսկիչ է ՝ հիմնված Arduino Mega- ի վրա: Սա նշանակում է, որ մենք կարող ենք փոփոխել այն ՝ մեր դեպքում լավագույնը լինելու համար: Բայց քանի որ ես դրա համար տեղեկատվություն չունեմ, ես պատրաստվում եմ գնալ այլ ճանապարհով:

Pավոք, ազնվամորի Pi- ն ժամանակի նկատմամբ զգայուն չէ, ինչը նշանակում է, որ չի կարող զբաղվել PPM ազդանշաններով:

Այդ իսկ պատճառով մեզ անհրաժեշտ է լրացուցիչ Arduino տախտակ:

Այս կերպ, Raspberry Pi- ն կմշակի պատկերները և կհաշվարկի թռիչքի ցուցումները և այն կուղարկի Arduino Serial UART ինտերֆեյսի միջոցով: Arduino քարտը այստեղ կլինի որպես PPM կոդավորիչ/ապակոդավորիչ, որը թռիչքի հրահանգները կոդավորում է PPM ազդանշաններին, որոնք ցանկանում է APM- ը: Գաղափար ունենալու համար կարող եք ուսումնասիրել խորհրդանշական սխեմայի սխեման:

Raspberry Pi- ն իրեն կպահի որպես հեռաչափության հաղորդիչ `հայտնաբերող գծի կողքին:

Էական միացումը ցուցադրվում է նկարներում: Ես կշարունակեմ բացատրել հաջորդ քայլերում:

Քայլ 2: Ազնվամորու Pi միացումներ և կազմաձևում

Raspberry Pi կապեր և կազմաձևում
Raspberry Pi կապեր և կազմաձևում
Raspberry Pi կապեր և կազմաձևում
Raspberry Pi կապեր և կազմաձևում

Raspberry Pi- ն միացված կլինի Wi-Fi ադապտերին (ըստ ցանկության), USB վեբ-տեսախցիկին, Arduino Leonardo- ին USB- ի միջոցով, APM- ին `ներկառուցված սերիական ինտերֆեյսի միջոցով: APM - RPI կապ, որը ցուցադրված է մանրամասներում պատկերներում:

Կարգավորելու համար դուք ունեք երկու տարբերակ ՝ մաքուր Raspbian ՝ անհրաժեշտ փաթեթներով կամ հատուկ պատկեր MAVLink կապի համար, որը կոչվում է APSync: Եթե դուք պատրաստվում եք օգտագործել Raspbian- ը, համոզվեք, որ տեղադրել եք այս փաթեթները.

sudo apt-get թարմացում

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 տեղադրել ապագա pymavlink mavproxy pyserial

Raspberry Pi- ի ներկառուցված սերիական ինտերֆեյսից օգտվելու համար պետք է OS- ին ասել, որ չօգտագործի այն: Դա անելու համար մուտքագրեք

sudo raspi-config

և հետևեք Ինտերֆեյսինգի ընտրանքներին> Սերիական ինտերֆեյս

Դուք պետք է անջատեք սերիական ինտերֆեյսը, բայց միացրեք սերիական սարքավորումները:

Այս պահին մնացածը հարմար է ինչպես Raspbian- ի, այնպես էլ APSync- ի համար:

Տնային գրացուցակում ստեղծեք երեք ֆայլ ՝ վերագործարկեք սցենարը և պատկերի պրոցեսոր scriptt: Երկրորդ տողը դարձնում է reboot script- ը գործարկելի:

հպեք reboot.sh image_processor.py

chmod +x reboot.sh

Ստորև բերված ֆայլերի բոլոր տողերը պատճենեք Raspberry Pi- ի ձեր տնային գրացուցակում (/home/pi):

Վերագործարկվող սցենարը պարունակում է գործարկիչներ, որոնք կաշխատեցնեն պատկերի պրոցեսոր և հեռաչափության սցենարներ: Նաև մի քանի կարգավորումներ: Նկատի ունեցեք, որ եթե չեք ցանկանում հեռաչափության հնարավորությունը, այդ տողից առաջ ավելացրեք #:

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Պահեք այն CTRL+O- ով և դուրս եկեք CTRL+X- ով: Վերջին քայլը դա գրանցելն է OS գործարկման ֆայլում ՝ rc.local

sudo nano /etc/rc.local

Ավելացրեք այս տողը 0 ելքի վերևում.

/home/pi/reboot.sh

Մեր վերագործարկման սցենարը կկիրառվի յուրաքանչյուր բեռնման վրա:

Մենք ցանկանում ենք, որ Raspberry Pi- ն տեսանկարահանի կենդանի տեսաֆիլմեր, այն մշակի թռիչքի ժամանակ, հաշվարկի թռիչքի ցուցումները, ուղարկի այն թռիչքի վերահսկիչին և լինի հեռաչափություն: Բայց քանի որ Raspberry Pi- ն ի վիճակի չէ արտադրել PPM ազդանշան, որը ցանկանում է APM- ը, մեզ դա հասնելու այլ միջոց է պետք:

Raspberry Pi- ն իր պատկերի մշակման ելքը կուղարկի Arduino (իմ դեպքում ՝ Arduino Leonardo) սերիական նավահանգստի միջոցով: Arduino- ն այդ մուտքից կստեղծի PPM ազդանշան և այն կուղարկի Flight Controller- ին ՝ jumper լարերի միջոցով: Այս ամենը Raspberry Pi- ի համար է:

Եկեք անցնենք հաջորդ քայլին:

Քայլ 3: APM միացումներ և կազմաձևում

APM միացումներ և կազմաձևում
APM միացումներ և կազմաձևում

APM- ի մասին ամեն ինչ պարզ է, քանի որ այն արդեն պատրաստ է թռիչքի: Մենք պետք է իմանանք սերիական նավահանգիստների բաուդրատները և համոզվենք, որ TELEM նավահանգիստը միացված է:

Ձեր հիմնական ծրագրային ապահովման մեջ, իմ դեպքում `Առաքելության պլանավորողը, ստուգեք թռիչքի վերահսկիչի պարամետրերի ցանկը և պարզեք բաուդրատները: Օրինակ ՝ SERIAL_BAUD- ը USB baudrate է, իսկ SERIAL_BAUD1- ը ՝ APLE- ի համար TELEM պորտի բաուդրատ: Նշենք, որ արժեքները:

Ամենակարևոր մասը INPUT կապումներն են: Ինչպես ցույց է տրված նկարում, Arduino- ի թվային կապում 4 -ը միացրեք 9. Դուք կարող եք դրա համար օգտագործել հացահատիկ, քանի որ մենք մտադիր ենք ավելացնել որոշ տրանզիստորներ և ընդունիչի ելքեր: (Տես նկարները) (Տրանզիստորները կաշխատեն այն դեպքում, երբ ցանկանում եք վերահսկել ձեր անօդաչու սարքը)

ARD 4 ↔ APM Մուտք 1

ARD 5 ↔ APM Մուտք 2

ARD 6 ↔ APM Մուտք 3

ARD 7 ↔ APM ՄՈPՏՔ 4

ARD 8 ↔ APM Մուտք 5

ARD 9 ↔ APM Մուտք 6

Միացրեք APM- ի մուտքի բոլոր 5V կապերը Arduino Leonardo 5V քորոցին: Նմանապես միացրեք APM- ի ներածման GND կապերը Arduino Leonardo GND քորոցին:

Քայլ 4: Arduino Leonardo կազմաձևում

Մենք միացրել ենք Լեոնարդոյի բոլոր լարերը, այնպես որ մնացել է միայն ծածկագիրը:

Ներբեռնեք տրված կոդը ստորև ձեր Arduino Leonardo- ում: Ուշադրություն դարձրեք բաուդրատներին:

Քայլ 5: Առաջին թռիչք

Երբ ավարտեք բոլոր նախորդ քայլերը, դա նշանակում է, որ պատրաստ եք:

Միացրեք բոլոր քարտերը և միացեք SSH- ին Raspberry Pi- ին: Տերմինալ մուտքագրեք.

sudo su

mavproxy.py --master =/dev/[SERIAL INTERFACE] -բոուդրաթ [TELEM PORT BAUDRATE] -ինքնաթիռ [մաքսային անուն

Լռակյաց Raspberry Pi ներկառուցված սերիական ինտերֆեյսը ttyS0 է (/dev/ttyS0)

Կանխադրված APM TELEM պորտի բաուդրատը 57600 է

Կանխադրված APM USB պորտի բաուդրատը 115200 է

Դուք կարող եք ցանկացած անուն տալ ձեր օդանավին, ընտրել այն իմաստուն կերպով, որպեսզի հետագայում ճանաչեք այն:

Եթե ամեն ինչ կարգին է, ապա այժմ միացեք ձեր Raspberry Pi- ին VNC- ի միջոցով, որպեսզի կարողանաք դիտել, թե ինչ է տեսնում դրոնը իրական ժամանակում:

Այժմ կարող եք զինել ձեր անօդաչու թռչող սարքը: Հուզիչ, այնպես չէ՞:

Հեռացրեք ձեր անօդաչու թռչող սարքը և թռչեք գծից վերև: Այժմ կարող եք ակտիվացնել գծերի հետևման ռեժիմը ՝ օգտագործելով CH6 անջատիչը:

Խորհուրդ ենք տալիս: