Satura rādītājs:

Vienkārša radara sistēma no Magicbit: 6 soļi
Vienkārša radara sistēma no Magicbit: 6 soļi

Video: Vienkārša radara sistēma no Magicbit: 6 soļi

Video: Vienkārša radara sistēma no Magicbit: 6 soļi
Video: Иммунная система I - Бактериальная Инфекция 2024, Jūlijs
Anonim

Šī apmācība parāda, kā izveidot vienkāršu radaru sistēmu, izmantojot HC-SR04 sensoru un Microbit dev plāksni ar apstrādi un Arduino IDE.

Piegādes:

  • SG90 Mikroservo motors
  • Jumper vadi (vispārīgi)
  • Maizes dēlis (vispārīgs)
  • Magicbit
  • Kabelis no USB-A līdz mikro-USB
  • Ultraskaņas sensors - HC -SR04 (vispārējs)

1. darbība: stāsts

Šajā apmācībā mēs uzzināsim, kā izveidot vienkāršu radaru sistēmu, izmantojot Magicbit core dev board. Šim nolūkam mēs izmantojam ultraskaņas sensoru HC-SR04, un datu attēlošanai mēs izmantojam apstrādes vidi. Sāksim darbu.

2. darbība: teorija un metodoloģija

Vispirms apspriedīsim, kā tas darbojas. Princips ir ļoti vienkāršs. Vispirms mēs nepārtraukti rotējam sensoru ap vertikālo asi 180 grādu diapazonā. Šīs kustības laikā mēs ņemam datus par attālumu līdz tuvākajam objektam no ultraskaņas sensora visos leņķos. Šim procesam mēs izmantojam Magicbit pamatplāksni. Pēc tam mums ir jāizveido savienojums ar apstrādes vidi, lai parādītu mūsu datus. Tāpēc mēs izmantojam seriālo sakaru protokolu ar piemērotu pārraides ātrumu. Pēc tam mēs izstrādājam radaru sistēmas saskarni, izmantojot apstrādes IDE. Šajā IDE mēs konfigurējam savu seriālo komunikāciju, lai iegūtu reālā laika datus, izmantojot seriālos. Tāpēc mēs veicam komunikāciju reāllaikā ar Magicbit un parādām datus, kas no Magicbit tiek nosūtīti apstrādes IDE.

3. darbība. Aparatūras iestatīšana

Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana

Šim projektam mēs galvenokārt izmantojām trīs aparatūras komponentus. Tie ir Magicbit, servomotors un ultraskaņas sensors. Savienojums starp visām šīm daļām ir parādīts attēlā.

Ultraskaņas sensors ieslēgšanai izmantoja 3,3 v. Tāpēc mēs izmantojām Magicbit plates labo apakšējo portu, lai savienotu ultraskaņas sensoru ar Magicbit. Bet servomotors tiek izmantots 5V pareizai darbībai, tāpēc mēs izmantojām kreiso apakšējo portu, lai savienotu servomotoru ar Magicbit. Šajā gadījumā mēs izmantojam Magic bit servo savienotāja moduli. Bet, ja jums nav šī moduļa, varat izmantot trīs džemperu vadus, lai savienotu 5V līdz 5V, Gnd - Gnd un signāla tapu līdz 26 tapām magicbit.

Pēc ķēdes izveidošanas mums ir jāveido neliela mehāniskā daļa. iestatiet vienas puses servo savienotāju ar servomotoru, izmantojot mazu uzgriezni. Pēc tam piestipriniet sensoru uz šī savienotāja, izmantojot kādu L formas kronšteinu vai pareizi. Pēc visas sistēmas mēs nostiprinājāmies uz maizes dēļa. Bet jūs varat izmantot citu virsmu, lai uzstādītu servo un Magicbit.

4. solis: programmatūras iestatīšana

Programmatūras iestatīšana
Programmatūras iestatīšana
Programmatūras iestatīšana
Programmatūras iestatīšana

Programmatūras puse ir nedaudz sarežģīta. Lai pareizi saprastu, pirms pāriet uz nākamo daļu, varat atsaukties uz šīm saitēm.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

Apskatīsim Arduino IDE kodu un to, kā šis kods darbojas.

Servo vadīšanai mēs izmantojam servo bibliotēku ESP32. Šī bibliotēka gandrīz iekļauj burvju bitu pārvaldnieku Arduino IDE. Lai tiktu galā ar ultraskaņas sensoru, mēs izmantojam newPing bibliotēku. To var lejupielādēt no šīs saites.

bitbucket.org/teckel12/arduino-new-ping/do…

Lejupielādējiet zip failu un dodieties uz rīkiem> iekļaut bibliotēku> pievienojiet Zip bibliotēku Arduino. tagad atlasiet lejupielādēto jaunās tapas bibliotēkas zip failu. Lai sazinātos ar apstrādi, mēs izmantojām sērijas sakarus ar 115200 batu pārraides ātrumu. Šī ir vispiemērotākā frekvence ESP32. Katrā leņķī mēs nosūtām savus datus uz datoru, izmantojot šo protokolu. Šajos datos ir iekļauts attālums līdz tuvākajam priekšējam objektam no sensora, rotācijas virziens un griešanās leņķis. Izmantojot divas cilpām, mēs pagriežam servo divos virzienos. Pagriežot vienu grādu, mēs sērijas datus nosūtījām 4 reizes. Iemeslu jūs varat saprast, apstrādājot daļu skaidrojumu.

Tagad ir pienācis laiks aplūkot apstrādes vidi. Šī ir programmēšanas programmatūra, kuras pamatā ir java. Šajā skicē mēs varam ierakstīt savas programmas skici, apstrādājot IDE. Mēs varam arī radīt vizuālu izvadi, palaižot mūsu programmu. Arī jūs varat izmantot izvadi kā 2D un 3D objektus. Ne tikai to, to var izmantot attēlu apstrādei un daudzām citām lietām.

Apstrādes skicē vispirms mēs izstrādājam savu datu displeja saskarni, izmantojot vienkāršas grafiskās funkcijas. Koda sākumā mēs izveidojam savu seriālo komunikāciju, iekļaujot sērijveida bibliotēkas. Iestatīšanas funkcijā jums ir jāveic dažas izmaiņas atbilstoši USB portam, kuru izmantojāt, lai savienotu Magicbit ar datoru. jūs varat pārbaudīt savu portu, izmantojot Arduino IDE, kad iestatāt Arduino IDE koda augšupielādei. Pēc tam mainiet kom porta nosaukumu iestatīšanas daļā, apstrādājot skici. kad ir pieejami sērijas dati, funkcija Serialevent tiek automātiski aktivizēta. Tāpēc koda galvenā loģika ir iekļaut sērijveida notikumā, lai novērstu leņķu un datu pazušanu. kad ir pieejami jauni dati, mēs ekrānā zīmējam līniju atbilstoši mūsu leņķim. Tajā laikā, ja nav objekta noteikšanas, visa līnija ir zaļā krāsā. Ja nē, tad daļa līnijas būs sarkana atkarībā no attāluma no sensora līdz objektam. Arī atbilstoši rotācijas virzienam mēs novilkam vēl 200 līnijas tuvu šai līnijai, samazinoties zaļās krāsas līmenim. starp katru galveno mums ir 0,25 grādu atšķirība. Tāpēc mēs katrā grāda rotācijā vienlaikus saņemam 4 rādījumus no Magicbit. Tāpēc ekrānā varam izveidot skaistu meklēšanu.

Pēc koda veiksmīgas augšupielādes burvju un aparatūras daļā veiksmīgi atveriet apstrādes IDE un palaidiet kodu, noklikšķinot uz pogas Palaist. Tagad jums ir ļoti vienkārša radaru sistēma.

Jūs varat pielāgot kodus, kā vēlaties, ko vēlaties parādīt.

5. darbība: problēmu novēršana

Notiek skices apstrāde.

  • Pagaidiet kādu laiku. Palaišanas laiks ir atkarīgs no datora un GPU veiktspējas.
  • Pārbaudiet, vai sērijas porta numurs ir pareizs skices apstrādes laikā.
  • Pārbaudiet, vai USB savienojums ir pareizi fiksēts.
  • Pārbaudiet savienojumu starp ultraskaņas sensoru un Magicbit.
  • Atveriet seriālo monitoru un pārbaudiet, vai dati nāk no Arduino. Ja nē, tad problēma ir jūsu Arduino kods vai USB savienojums.

Servo nedarbojas.

  • Pārbaudiet, vai USB savienojums ir pareizi fiksēts.
  • Pārbaudiet elektroinstalāciju.
  • Pārbaudiet, vai servo ir labā stāvoklī.

6. darbība: Arduino kods

#iekļaut

#definēt TRIGGER_PIN 21 #definēt ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing hidrolokatori (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // iekļaut servo bibliotēku int distance; Servo radarservo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Nosaka, uz kuras tapas ir piestiprināts servomotors (3000); } void loop () {// pagriež servomotoru no 15 līdz 165 grādiem (int i = 0; i <= 180; i ++) {RadarServo.write (i); kavēšanās (50); distance = sonar.ping_cm (); // Izsauc funkciju, lai aprēķinātu ultraskaņas sensora izmērīto attālumu katrai pakāpei (int j = 0; j0) {break; } Sērijas nospiedums (i); // Nosūta pašreizējo grādu Serial Port Serial.print (","); // Nosūta papildinājuma rakstzīmi tieši blakus iepriekšējai vērtībai, kas vēlāk nepieciešama apstrādes IDE, lai indeksētu Serial.print (j); // Nosūta pašreizējo grādu Serial Port Serial.print ("*"); Sērijas nospiedums (1); // Nosūta attāluma vērtību seriālajā portā Serial.print ("/"); // Nosūta papildinājuma rakstzīmi tieši blakus iepriekšējai vērtībai, kas vēlāk nepieciešama apstrādes IDE, lai indeksētu Serial.print (distance); // Nosūta attāluma vērtību seriālajā portā Serial.print ("."); // Nosūta papildinājuma rakstzīmi tieši blakus iepriekšējai vērtībai, kas nepieciešama vēlāk apstrādes IDE indeksēšanai}} // // Atkārto iepriekšējās rindas no 165 līdz 15 grādiem (int i = 180; i> = 0; i-) {RadarServo.rakstīt (i); kavēšanās (50); attālums = sonārs.ping_cm (); par (int j = 75; j> = 0; j- = 25) {ja (i == 180 && (j == 75 || j == 50 || j == 25)) {turpināt; } Sērijas nospiedums (i); // Nosūta pašreizējo grādu Serial Port Serial.print (","); // Nosūta papildinājuma rakstzīmi tieši blakus iepriekšējai vērtībai, kas vēlāk nepieciešama apstrādes IDE, lai indeksētu Serial.print (j); // Nosūta pašreizējo grādu Serial Port Serial.print ("*"); Sērijas nospiedums (-1); // Nosūta attāluma vērtību seriālajā portā Serial.print ("/"); // Nosūta papildinājuma rakstzīmi tieši blakus iepriekšējai vērtībai, kas vēlāk nepieciešama apstrādes IDE, lai indeksētu Serial.print (distance); // Nosūta attāluma vērtību seriālajā portā Serial.print ("."); // Nosūta papildinājuma rakstzīmi tieši blakus iepriekšējai vērtībai, kas nepieciešama vēlāk apstrādes IDE indeksēšanai}}

}

Ieteicams: