Sadržaj:

Jednostavan radarski sistem iz Magicbita: 6 koraka
Jednostavan radarski sistem iz Magicbita: 6 koraka

Video: Jednostavan radarski sistem iz Magicbita: 6 koraka

Video: Jednostavan radarski sistem iz Magicbita: 6 koraka
Video: Iram: The Lost City of Giants - Atlantis of The Sands 2024, Juli
Anonim

Ovaj vodič prikazuje kako napraviti jednostavan radarski sistem koristeći HC-SR04 senzor i Microbit dev ploču s obradom i Arduino IDE-ove.

Potrošni materijal:

  • SG90 Mikro-servo motor
  • Žice za spajanje (općenito)
  • Oglasna ploča (općenito)
  • Magicbit
  • USB-A na mikro-USB kabel
  • Ultrazvučni senzor - HC -SR04 (općenito)

Korak 1: Priča

U ovom ćemo vodiču naučiti o tome kako napraviti jednostavan radarski sistem pomoću Magicbit core dev ploče. U tu svrhu koristimo HC-SR04 ultrazvučni senzor, a za prikaz podataka koristimo okruženje za obradu. Počnimo.

Korak 2: Teorija i metodologija

Prvo, hajde da razgovaramo o tome kako to funkcionira. Princip je vrlo jednostavan. Prvo neprestano rotiramo senzor oko okomite osi u rasponu od 180 stupnjeva. Za vrijeme tog kretanja uzimamo podatke o udaljenosti do najbližeg objekta od ultrazvučnog senzora iz svakog kuta. Za ovaj proces koristimo Magicbit jezgru. Nakon toga moramo uspostaviti vezu sa okruženjem za obradu za prikazivanje naših podataka. Zbog toga koristimo serijski komunikacijski protokol s odgovarajućom brzinom prijenosa. Zatim dizajniramo interfejs našeg radarskog sistema koristeći IDE za obradu. U tom IDE -u konfiguriramo našu serijsku komunikaciju za dobivanje podataka u stvarnom vremenu putem serijske veze. Tako ostvarujemo komunikaciju u stvarnom vremenu s Magicbitom i prikazujemo podatke koji se šalju s Magicbita u IDE za obradu.

Korak 3: Postavljanje hardvera

Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera

Za ovaj projekt uglavnom smo koristili tri hardverske komponente. To su Magicbit, servo motor i ultrazvučni senzor. Veza svih ovih dijelova prikazana je na gornjoj slici.

Ultrazvučni senzor koristi 3,3 V za uključivanje. Stoga smo koristili desni donji port Magicbit ploče za povezivanje ultrazvučnog senzora na Magicbit. No, servo motor se koristi 5V za pravilan rad, stoga smo koristili donji lijevi port za povezivanje servo motora s Magicbitom. U ovom slučaju koristimo Magic bit servo konektorski modul. Ali ako nemate taj modul, možete koristiti tri kratkospojne žice za spajanje 5V na 5V, Gnd na Gnd i signalni pin na 26 pinova na magicbit -u.

Nakon izgradnje kola imamo mali mehanički dio za izgradnju. namjestite jednostranu servo konektor na servo motor pomoću male matice. Zatim pričvrstite senzor na taj konektor pomoću držača u obliku slova L ili na odgovarajući način. Nakon cijelog sistema fiksirali smo ploču. No za postavljanje servo i Magicbita možete koristiti drugu površinu.

Korak 4: Postavljanje softvera

Postavljanje softvera
Postavljanje softvera
Postavljanje softvera
Postavljanje softvera

Softverska strana je malo složena. Za pravilno razumijevanje možete se obratiti sljedećim vezama prije nego pređete na sljedeći dio.

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

hello.processing.org/editor/

Pogledajmo Arduino IDE kod i kako taj kod funkcionira.

Za pogon servo -a koristimo ESP32 servo biblioteku. Ova biblioteka gotovo uključuje magični upravitelj ploča u Arduino IDE -u. Za bavljenje ultrazvučnim senzorom koristimo newPing biblioteku. Ovo se može preuzeti sa sljedeće veze.

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

Preuzmite zip datoteku i idite na alate> uključi biblioteku> dodaj Zip biblioteku u Arduino. sada odaberite preuzetu zip datoteku nove biblioteke pin -ova. Za komunikaciju s obradom koristili smo serijsku komunikaciju sa brzinom prijenosa 115200 bauda. Ovo je najprikladnija frekvencija za ESP32. Pod bilo kojim kutom šaljemo naše podatke računaru koristeći ovaj protokol. U ove podatke uključeni su udaljenost od senzora do najbližeg prednjeg objekta, smjer rotacije i kut zakretanja. Koristeći dvije for petlje rotiramo naš servo u dva smjera. Dok smo rotirali za jedan stepen, slali smo serijske podatke 4 puta. Razlog za to možete razumjeti u obradi objašnjenja dijela.

Sada je vrijeme da pogledamo okruženje za obradu. Ovo je java softver za programiranje. U ovu skicu možemo upisati skicu našeg programa u obradi IDE -a. Također možemo generirati vizualni izlaz pokretanjem našeg programa. Također možete uzeti izlaz kao 2D i 3d objekte. I ne samo to, ovo se može koristiti za obradu slika i još mnogo toga.

U skici obrade prvo dizajniramo naše sučelje za prikaz podataka koristeći jednostavne grafičke funkcije. Na početku koda uspostavljamo serijsku komunikaciju uključivanjem serijskih biblioteka. U funkciji postavljanja morate napraviti neke promjene u skladu s USB priključkom koji ste koristili za povezivanje Magicbita s računalom. možete provjeriti svoj port pomoću Arduino IDE -a kada postavite Arduino IDE za postavljanje koda. Zatim promijenite naziv com porta u dijelu za podešavanje u obradi skice. kada su serijski podaci dostupni, funkcija Serialevent se automatski pokreće. Stoga je glavna logika koda uključivanje u serijski događaj radi sprječavanja nedostajanja kutova i podataka. kada su dostupni novi podaci, povlačimo liniju na ekranu prema svom kutu. U to vrijeme, ako nema otkrivenog objekta, puna linija je zelene boje. U suprotnom će dio linije biti crven prema udaljenosti od senzora do objekta. Takođe prema smjeru rotacije povlačimo još 200 linija blizu te linije sa opadajućim nivoom zelene boje. između svake glavne imamo 0,25 stepeni razlike. Zbog toga dobivamo 4 očitanja odjednom iz Magicbita u svakoj rotaciji stupnjeva. Zbog toga možemo stvoriti lijepe ekrane za pretraživanje.

Nakon učitavanja koda uspjeh u potpunosti do čarolije i postavljanje hardverskog dijela uspješno otvorite IDE za obradu i pokrenite kôd klikom na dugme Pokreni. Sada imate vrlo jednostavan radarski sistem.

Kodove možete prilagoditi kako želite ono što želite prikazati.

Korak 5: Rješavanje problema

Obrada skice nije pokrenuta.

  • Sačekaj malo. Zbog vremena pokretanja ovisi o performansama vašeg računala i grafičkog procesora.
  • Provjerite je li serijski priključak ispravan na obradi skice.
  • Provjerite je li USB veza ispravno pričvršćena.
  • Provjerite vezu između ultrazvučnog senzora i Magicbita.
  • Otvorite serijski monitor i provjerite dolaze li podaci iz Arduina. Ako nije, problem je u vašem Arduino kodu ili u USB vezi.

Servo ne radi.

  • Provjerite je li USB veza ispravno pričvršćena.
  • Provjerite ožičenje.
  • Proverite da li je servo u dobrom stanju.

Korak 6: Arduino kod

#include

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // uključi servo biblioteku int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Određuje na koji pin je kašnjenje priključeno na servo motor (3000); } void loop () {// rotira servo motor sa 15 na 165 stepeni za (int i = 0; i <= 180; i ++) {RadarServo.write (i); kašnjenje (50); distance = sonar.ping_cm (); // Poziva funkciju za izračunavanje udaljenosti izmjerene ultrazvučnim senzorom za svaki stepen za (int j = 0; j0) {break; } Serial.print (i); // Šalje trenutni stupanj u Serial Port Serial.print (","); // Šalje znak za dodavanje tik do prethodne vrijednosti potrebne kasnije u IDE -u obrade za indeksiranje Serial.print (j); // Šalje trenutni stupanj u Serial Port Serial.print ("*"); Serial.print (1); // Šalje vrijednost udaljenosti u serijski port Serial.print ("/"); // Šalje znak za dodavanje tik do prethodne vrijednosti potrebne kasnije u IDE -u za obradu za indeksiranje Serial.print (udaljenost); // Šalje vrijednost udaljenosti u Serial Port Serial.print ("."); // Šalje znak za dodavanje pored prethodne vrijednosti potrebne kasnije u IDE-u za obradu za indeksiranje}} // Ponavlja prethodne redove od 165 do 15 stepeni za (int i = 180; i> = 0; i-) {RadarServo.pisati (i); kašnjenje (50); udaljenost = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {nastavi; } Serial.print (i); // Šalje trenutnu diplomu u Serial Port Serial.print (","); // Šalje znak za dodavanje tik do prethodne vrijednosti potrebne kasnije u IDE -u obrade za indeksiranje Serial.print (j); // Šalje trenutni stupanj u Serial Port Serial.print ("*"); Serial.print (-1); // Šalje vrijednost udaljenosti u serijski port Serial.print ("/"); // Šalje znak za dodavanje pored prethodne vrijednosti potrebne kasnije u IDE -u za obradu za indeksiranje Serial.print (udaljenost); // Šalje vrijednost udaljenosti u Serial Port Serial.print ("."); // Šalje znak za dodavanje tik do prethodne vrijednosti potrebne kasnije u IDE -u obrade za indeksiranje}}

}

Preporučuje se: