Სარჩევი:

ავტონომიური ხაზის მიმდევარი დრონი ჟოლოს პი: 5 ნაბიჯი
ავტონომიური ხაზის მიმდევარი დრონი ჟოლოს პი: 5 ნაბიჯი

ვიდეო: ავტონომიური ხაზის მიმდევარი დრონი ჟოლოს პი: 5 ნაბიჯი

ვიდეო: ავტონომიური ხაზის მიმდევარი დრონი ჟოლოს პი: 5 ნაბიჯი
ვიდეო: This is how Rome became a major power ⚔ Third Samnite War (ALL PARTS) ⚔ FULL 1 HOUR DOCUMENTARY 2024, ნოემბერი
Anonim
ავტონომიური ხაზის მიმდევარი დრონი ჟოლოს პირით
ავტონომიური ხაზის მიმდევარი დრონი ჟოლოს პირით

ეს გაკვეთილი გვიჩვენებს, თუ როგორ შეგიძლიათ საბოლოოდ შექმნათ ხაზის მიმდევარი თვითმფრინავი.

ამ თვითმფრინავს ექნება "ავტონომიური რეჟიმის" გადამრთველი, რომელიც დრონში გადავა რეჟიმში. ასე რომ, თქვენ კვლავ შეგიძლიათ ფრენა თქვენი თვითმფრინავით, როგორც ადრე.

გთხოვთ გაითვალისწინოთ, რომ მის მშენებლობას დრო დასჭირდება და კიდევ უფრო მეტი დროა მორგებული. მაგრამ საბოლოო … აიძულებს თქვენ იფიქროთ ღირს.

საკუთარი ავტონომიური ხაზის ტრეკერის თვითმფრინავის შექმნის დასაწყებად, დარწმუნდით, რომ გაქვთ;

  • Rasberry Pi 3 ან Raspberry Pi Zero W SSH წვდომით
  • Ready-Fly თვითმფრინავი APM ან Pixhawk ფრენის კონტროლერით
  • არდუინო ლეონარდო ან სხვა არდუინო სწრაფი საათის სიჩქარით
  • მინიმუმ 6 CH გადამცემი
  • USB ვებკამერა, რომელსაც Raspberry Pi და OpenCV მხარს უჭერს
  • კომპიუტერი
  • 6 ზოგადი დანიშნულების ტრანზისტორი
  • გაყვანილობის კაბელები

ნაბიჯი 1: იდეა და კავშირები

იდეა და კავშირები
იდეა და კავშირები

APM, იგივე ArduPilot, არის ფრენის კონტროლერი, რომელიც დაფუძნებულია Arduino Mega– ზე. ეს ნიშნავს, რომ ჩვენ შეგვიძლია შევცვალოთ ის ჩვენი საქმისთვის საუკეთესოდ. მაგრამ ვინაიდან მე არ მაქვს ინფორმაცია ამის გასაკეთებლად, ვაპირებ სხვა გზას გავყვე.

ჟოლოს პი, სამწუხაროდ, არ არის დროის მიმართ მგრძნობიარე, რაც იმას ნიშნავს, რომ ვერ უმკლავდება PPM სიგნალებს.

ამიტომაც გვჭირდება არდუინოს დამატებითი დაფა.

ამ გზით, Raspberry Pi დაამუშავებს სურათებს და გამოთვლის ფრენის ინსტრუქციას და გაუგზავნის მას Arduino– ს სერიული UART ინტერფეისის საშუალებით. Arduino ბარათი აქ დადგება როგორც PPM კოდირება/დეკოდი, რომელიც ასახავს ფრენის ინსტრუქციას PPM სიგნალებზე, რაც APM- ს სურს. იდეის მისაღებად შეგიძლიათ შეისწავლოთ სიმბოლური წრიული დიაგრამა.

ჟოლო Pi იქცევა როგორც ტელემეტრიის გადამცემი ხაზის გამოვლენის გვერდით.

არსებითი წრე ნაჩვენებია სურათებში. მე განვაგრძობ ახსნას მომდევნო ნაბიჯებში.

ნაბიჯი 2: Raspberry Pi კავშირები და კონფიგურაცია

Raspberry Pi კავშირები და კონფიგურაცია
Raspberry Pi კავშირები და კონფიგურაცია
Raspberry Pi კავშირები და კონფიგურაცია
Raspberry Pi კავშირები და კონფიგურაცია

ჟოლო 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. მეორე ხაზი ხდის გადატვირთვის სკრიპტის შესრულებას.

შეეხეთ გადატვირთვას.შ image_processor.py

chmod +x გადატვირთვა.შ

დააკოპირეთ ყველა ხაზი ქვემოთ მოცემულ ფაილებში თქვენი სახლის დირექტორიაში (/home/pi) ჟოლოს პიში.

გადატვირთვის სკრიპტი შეიცავს ტრიგერებს, რომლებიც იწვევენ გამოსახულების პროცესორს და ტელემეტრიულ სკრიპტებს. ასევე რამდენიმე პარამეტრი. გაითვალისწინეთ, რომ თუ არ გსურთ ტელემეტრიის ფუნქცია, დაამატეთ # იმ ხაზამდე.

ნანო გადატვირთვა.შ

#!/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 სიგნალს ამ შეყვანისგან და გაუგზავნის მას ფრენის კონტროლერს ჯუმბერის მავთულის საშუალებით. ეს ყველაფერი ჟოლოს პიისთვის არის განკუთვნილი.

მოდით გადავიდეთ შემდეგ საფეხურზე.

ნაბიჯი 3: APM კავშირები და კონფიგურაცია

APM კავშირები და კონფიგურაცია
APM კავშირები და კონფიგურაცია

APM– ის შესახებ ყველაფერი მარტივია, რადგან ის უკვე მზად არის ფრენისთვის. ჩვენ უნდა ვიცოდეთ სერიული პორტების ბაუდრატი და დარწმუნდით, რომ TELEM პორტი ჩართულია.

თქვენს ძირითად პროგრამულ უზრუნველყოფაში, ჩემს შემთხვევაში მისიის დამგეგმავი, შეამოწმეთ ფრენის კონტროლერის პარამეტრების სია და აღმოაჩინეთ ბაუდრატები. მაგალითად, SERIAL_BAUD არის USB ბაუდრატი და SERIAL_BAUD1 არის TELEM პორტის ბაუდრატი APM– ისთვის. გაითვალისწინეთ, რომ ღირებულებები.

ყველაზე მნიშვნელოვანი ნაწილი არის INPUT ქინძისთავების კავშირი. როგორც სურათზეა ნაჩვენები, დაუკავშირეთ Arduino– ს ციფრული ქინძისთავები 4 საფუძვლიანად 9. თქვენ შეიძლება გინდათ გამოიყენოთ breadbord ამისათვის, რადგან ჩვენ ვაპირებთ რამოდენიმე ტრანზისტორისა და მიმღების გამოსვლების დამატებას. (იხილეთ სურათები) (ტრანზისტორები იმუშავებენ იმ შემთხვევაში, თუ გსურთ თქვენი თვითმფრინავის კონტროლის აღება)

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

შეაერთეთ ყველა 5V პინი APM შეყვანისას Arduino Leonardo 5V პინთან. ანალოგიურად დააკავშირეთ APM შეყვანის GND ქინძისთავები Arduino Leonardo GND პინთან.

ნაბიჯი 4: Arduino Leonardo კონფიგურაცია

ჩვენ შევაერთეთ ლეონარდოს ყველა მავთული, ასე რომ დარჩა მხოლოდ კოდი.

ატვირთეთ ქვემოთ მოცემული კოდი თქვენს არდუინო ლეონარდოში. მიაქციეთ ყურადღება ბაუდრატებს.

ნაბიჯი 5: პირველი რეისი

როდესაც თქვენ დაასრულებთ ყველა წინა ნაბიჯს, ეს ნიშნავს რომ თქვენ მზად ხართ.

ჩართეთ ყველა ბარათი და დაუკავშირდით SSH– ს Raspberry Pi– თან. აკრიფეთ ტერმინალი:

sudo su

mavproxy.py --master =/dev/[SERIAL INTERFACE] -baudrate [TELEM PORT BAUDRATE] -თვითმფრინავი [საბაჟო სახელი

ნაგულისხმევი Raspberry Pi ჩაშენებული სერიული ინტერფეისი არის ttyS0 (/dev/ttyS0)

ნაგულისხმევი APM TELEM პორტის baudrate არის 57600

ნაგულისხმევი APM USB პორტი baudrate არის 115200

თქვენ შეგიძლიათ ნებისმიერი სახელი მიანიჭოთ თქვენს თვითმფრინავს, შეარჩიეთ იგი გონივრულად, რათა მოგვიანებით შეძლოთ მისი ამოცნობა.

თუ ყველაფერი კარგადაა, ახლა დაუკავშირდით თქვენს Raspberry Pi– ს VNC– ით, ასე რომ თქვენ შეგიძლიათ ნახოთ რას ხედავს დრონი რეალურ დროში.

ახლა თქვენ შეგიძლიათ შეიარაღოთ თქვენი დრონი. ამაღელვებელი, არა?

ამოიღეთ თქვენი დრონი და იფრინეთ ხაზის ბილიკზე მაღლა. ახლა თქვენ შეგიძლიათ გაააქტიუროთ ხაზის თვალყურის დევნის რეჟიმი CH6 გადამრთველის გამოყენებით.

გირჩევთ: