Sadržaj:

Jednostavan radarski sustav iz Magicbita: 6 koraka
Jednostavan radarski sustav iz Magicbita: 6 koraka

Video: Jednostavan radarski sustav iz Magicbita: 6 koraka

Video: Jednostavan radarski sustav iz Magicbita: 6 koraka
Video: СТРАННЫЕ НОВОСТИ НЕДЕЛИ - 22 | Таинственный | Вселенная | НЛО | Паранормальный 2024, Srpanj
Anonim

Ovaj vodič pokazuje kako napraviti jednostavan radarski sustav pomoću HC-SR04 senzora i Microbit dev ploče s obradom i Arduino IDE-ima.

Pribor:

  • SG90 Mikro servo motor
  • Kratkospojne žice (općenito)
  • Oglasna ploča (općenito)
  • Magicbit
  • USB-A do mikro-USB kabel
  • Ultrazvučni senzor - HC -SR04 (generički)

Korak 1: Priča

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

Korak 2: Teorija i metodologija

Prvo, raspravimo kako to funkcionira. Princip je vrlo jednostavan. Prvo neprestano rotiramo senzor oko okomite osi u rasponu od 180 stupnjeva. Tijekom tog kretanja uzimamo podatke o udaljenosti do najbližeg objekta od ultrazvučnog senzora pod svakim kutom. Za ovaj proces koristimo Magicbit jezgru. Nakon toga moramo uspostaviti vezu s okruženjem za obradu za prikazivanje naših podataka. Stoga koristimo serijski komunikacijski protokol s odgovarajućom brzinom prijenosa. Zatim dizajniramo sučelje našeg radarskog sustava pomoću IDE -a za obradu. U tom IDE -u konfiguriramo našu serijsku komunikaciju za dobivanje podataka u stvarnom vremenu putem serijske veze. Tako komuniciramo 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 priključak Magicbit ploče za povezivanje ultrazvučnog senzora na Magicbit. No, servo motor se koristi 5V za pravilan rad, stoga smo koristili donji lijevi priključak za povezivanje servo motora s Magicbitom. U ovom slučaju koristimo Magic bit servo priključni modul. Ali ako nemate taj modul, možete upotrijebiti tri kratkospojne žice za spajanje 5V na 5V, Gnd na Gnd i signalni pin na 26 pin na magicbit -u.

Nakon izgradnje sklopa moramo izgraditi male mehaničke dijelove. namjestite jednostranu servo konektor na servo motor pomoću male matice. Zatim pričvrstite senzor na taj priključak pomoću nekog držača u obliku slova L ili na odgovarajući način. Nakon cijelog sustava 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 prijeđ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 knjižnica gotovo uključuje čarobni upravitelj ploča u Arduino IDE -u. Za rad s ultrazvučnim senzorom koristimo knjižnicu newPing. Ovo se može preuzeti sa sljedeće veze.

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

Preuzmite zip datoteku i idite alati> uključi biblioteku> dodaj Zip biblioteku u Arduino. sada odaberite preuzetu zip datoteku nove knjižnice pin -ova. Za komunikaciju s obradom koristili smo serijsku komunikaciju sa brzinom prijenosa 115200 bauda. Ovo je najprikladnija frekvencija za ESP32. Pod svim kutom šaljemo naše podatke na računalo pomoću ovog protokola. U ove podatke uključeni su udaljenost od senzora do najbližeg prednjeg objekta, smjer rotacije i kut zakretanja. Koristeći dvije petlje okrećemo naš servo u dva smjera. Dok smo za jedan stupanj rotacije slali 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 slike i još mnogo toga.

U skici obrade prvo dizajniramo naše sučelje za prikaz podataka pomoću jednostavnih grafičkih funkcija. Na početku koda uspostavljamo serijsku komunikaciju uključivanjem serijskih knjižnica. U funkciji postavljanja morate napraviti neke promjene u skladu s USB priključkom koji ste koristili za povezivanje Magicbita s računalom. svoj port možete provjeriti pomoću Arduino IDE -a kada postavite Arduino IDE za prijenos koda. Zatim promijenite naziv com porta u dijelu za postavljanje 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 crtu na ekranu prema našem 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đer prema smjeru rotacije povlačimo još 200 linija blizu te linije sa smanjenom razinom zelene boje. između svake glavne imamo 0,25 stupnjeva razlike. Stoga dobivamo 4 očitanja odjednom od Magicbita u svakoj rotaciji stupnjeva. Zbog toga možemo stvoriti lijepe ručne 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 gumb Pokreni. Sada imate vrlo jednostavan radarski sustav.

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

Korak 5: Rješavanje problema

Obrada skice nije pokrenuta.

  • Pričekajte malo. Zbog vremena pokretanja ovisi o performansama vašeg računala i grafičkog procesora.
  • Na obradi skice provjerite je li broj serijskog porta točan.
  • 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 ne, problem je u vašem Arduino kodu ili USB priključku.

Servo ne radi.

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

Korak 6: Arduino kod

#uključi

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // uključi servo knjižnicu int udaljenost; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Određuje na kojem je pinu kašnjenje priključeno na servo motor (3000); } void loop () {// rotira servo motor od 15 do 165 stupnjeva 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 stupanj 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 za obradu za indeksiranje Serial.print (j); // Šalje trenutni stupanj u Serial Port Serial.print ("*"); Serijski.ispis (1); // Šalje vrijednost udaljenosti u Serial Port Serial.print ("/"); // Šalje znak za dodavanje tik do prethodne vrijednosti potrebne kasnije u IDE -u obrade za indeksiranje Serial.print (udaljenost); // Šalje vrijednost udaljenosti u Serial Port Serial.print ("."); // Šalje znak za dodavanje tik uz prethodnu vrijednost koja je potrebna kasnije u IDE-u obrade za indeksiranje}} // Ponavlja prethodne retke od 165 do 15 stupnjeva 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 trenutni stupanj u Serial Port Serial.print (","); // Šalje znak za dodavanje tik do prethodne vrijednosti potrebne kasnije u IDE -u za obradu za indeksiranje Serial.print (j); // Šalje trenutni stupanj u Serial Port Serial.print ("*"); Serijski.ispis (-1); // Šalje vrijednost udaljenosti u Serial 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 tik do prethodne vrijednosti potrebne kasnije u IDE -u obrade za indeksiranje}}

}

Preporučeni: