Sisukord:

Projekt 3: SonarDuino: 9 sammu
Projekt 3: SonarDuino: 9 sammu

Video: Projekt 3: SonarDuino: 9 sammu

Video: Projekt 3: SonarDuino: 9 sammu
Video: Музыкальный реактивный светодиод Arduino | Визуализатор музыки, активируемый звуком 2024, November
Anonim
Image
Image

Lugupeetud hobikaaslane, Selles projektis uurime võimalust saada 360 -kraadine radarisüsteem objektide tuvastamiseks. Selle mooduli eraldi seadistamine võimaldab teie liikumisrobotil tuvastada oma ümbruse piire. Seda saab kasutada ka pimedal ajal navigeerimisvahendina, kuid ainult siis, kui kõnnite piisavalt aeglaselt

Samm: mida vajate

Valmistage ette ultrahelianduri tugi
Valmistage ette ultrahelianduri tugi

Selle ehituse tegemiseks peate ostma järgmise:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl: rk: 2: pf: 0

Prototüüpimislauad: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item4cOS:a ~ Zbl232: rk: 13: pf: 0

Servomootorid: https://www.ebay.com/itm/5tk-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Ultraheli andurid: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5f ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

2. samm: dokumentatsioon

Kuna mõned teist võivad seda juba teada, on see projekt inspireeritud teisest avatud lähtekoodiga projektist nimega “Arduino Radar Project”, mille Dejan tegi raamatust “How to Mechatronics” @ järgmisel lingil: https://howtomechatronics.com/projects/arduino -radar-projekt/

Teine dokumentatsiooni nõudev punkt on oma arenduskeskkonda alla laadida järgmised kaks teeki:

Adafruit-GFX-raamatukogu:

Adafruit_SSD1306:

See tähendab, et C -koodi tõeliseks mõistmiseks peate tegema mõlema ülaltoodud teegi dokumentatsiooni. Peale selle on minu koodis kasutatud funktsioonidel nimed, mis näitavad, mida nad teevad.

Samm: valmistage ette ultrahelianduri tugi

Valmistage ette ultrahelianduri tugi
Valmistage ette ultrahelianduri tugi
Valmistage ette ultrahelianduri tugi
Valmistage ette ultrahelianduri tugi
Valmistage ette ultrahelianduri tugi
Valmistage ette ultrahelianduri tugi

Võtke ükskõik milline papitükk ja lõigake see vastavalt andurile kinnitatud ühendusjuhtmete mõõtmetele, nagu on näidatud esimesel pildil. Seejärel keerake see viimane kokku ja liimige servomootori toele. Kui see on tehtud, liimige kaks ultraheliandurit viimase pildi järgi. Pange tähele, et andurite päis tuleks joota nii, et kaablid saaksid anduri ees väljapoole minna. See võimaldab andurite kaablitel 360 -kraadise pöörlemise korral üksteist mitte segada.

Samm: paigaldage kõik prototüüpimisplaadile

Paigaldage kõik prototüüpimisplaadile
Paigaldage kõik prototüüpimisplaadile
Paigaldage kõik prototüüpimisplaadile
Paigaldage kõik prototüüpimisplaadile
Paigaldage kõik prototüüpimisplaadile
Paigaldage kõik prototüüpimisplaadile

Selles etapis alustate eelmises etapis ettevalmistatud päise paigaldamisega vastavasse servomootorisse. Kui servomootor on hoolikalt harjunud, paigaldate kõik kokku prototüüpplaadile. Alustuseks jootke Arduino Nano ja seejärel liimige servo selle kõrvale. Lõpuks joote väikese OLED -ekraani tahvli teises servas.

Samm: lõplike ühenduste loomine

Lõppühenduste tegemine
Lõppühenduste tegemine
Lõppühenduste tegemine
Lõppühenduste tegemine
Lõppühenduste tegemine
Lõppühenduste tegemine

See samm lõpetab selle projekti riistvara poole. Kõikide vajalike ühenduste loomiseks peate järgima esitatud skeeme.

6. samm: programmi käivitamine

Programmi käivitamine
Programmi käivitamine

Käivitamiseks on vaja kahte koodi

Arduino (C):

Töötlemine (java):

Koodi käivitamisel on teil valida kahe võimaluse vahel.

Valik 1: kasutades OLED -ekraani, peate selle C -koodi muutuja MODE määrama väärtuseks 0.

Valik 2: monitori kasutamine, selleks peate määrama C -koodis muutuja MODE väärtuseks 1. Lisaks peate alla laadima ja installima töötlemise arenduskeskkonna ning alla laadima radarifondi sellelt lingilt: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Ja lisage see fail oma töötluskoodi faili, nii et teie Java -kood tuvastab fondi, kui seda kutsutakse.

Samm 7: C -koodi mõistmine

C -koodi mõistmine
C -koodi mõistmine

Kood koosneb peamiselt kahest "jaoks" silmusest. Üks on korrelatsioonis edasipääsuga, teine aga tagurpidi. Mõlema sees kutsutakse mitu korda põhifunktsiooni draw_scanner (), mis tõmbab radari jooned ekraanile. Pärast mitmete konfiguratsioonide testimist jõudsin järeldusele, et peame kustutama ajavahemikul t valged radarijooned nende samade radarijoontega mustaks, et need kustutada. Vastasel juhul võib enne uue pikslivõrgu vajutamist ekraani puhastamisel funktsiooni „clearDisplay ()” abil iga kord virvendada. Kuna tegelesin seitsme reaga- projekteerimise eesmärgil- pidin salvestama ja edastama 7 elemendist täisarvulise massiivi, kus iga element tähistab raadiust radari keskpunkti ja tuvastatud objekti vahel, kui see on olemas. Seda silmas pidades peaks ülejäänud kood olema arusaadav.

Samm: Java -koodi mõistmine

Töötlemisel pidin mööda minema funktsioonikutsest serialEvent (), mis töötab ainult COM -i jadaportidega. Kuna töötasin Maciga, kandsid mu jadaportid teise nime. Nagu öeldud, pakkisin selle funktsiooni „draw ()” töötlemisel põhifunktsiooniks lahti. Mis puudutab kõike muud, siis olen rakendust uuendanud, et see vastaks kogu revolutsiooni kujundusele. Lõpuks uuendasin kõiki joonistatud kujundeid ja tekste vastavalt ekraani laiusele, nii et lõpptoode sobiks erinevate ekraani eraldusvõimetega. Olen seda isiklikult testinud nii 1000X1000 kui ka 500X500 resolutsioonide puhul ja see töötas hästi:).

9. samm: järeldus

Seda tööd saab täiendada kolme ultrahelisensoriga, millest igaüks katab 120 vaatenurka, või isegi 4 anduriga (90 kraadi*4) -> kiirem 360 kraadi. skaneerida.

Samuti saate radari ulatust laiendada 40 cm kuni 60 cm või isegi 80 cm. Olen isiklikult testinud pulseIn funktsiooni ja reguleerinud muutujat TIMEOUT 40 cm suhtes. See muutuja sõltub paljudest teguritest, sealhulgas impulsi saatmise pikkusest ja objekti pinnast, kus impulss peegeldub.

Lõpuks, nagu eespool öeldud, on järgmine samm radarDuino lisamine liikumisrobotiga ümbritseva perimeetri skaneerimiseks.

Soovitan: