Cuprins:

Sistem radar simplu de la Magicbit: 6 pași
Sistem radar simplu de la Magicbit: 6 pași

Video: Sistem radar simplu de la Magicbit: 6 pași

Video: Sistem radar simplu de la Magicbit: 6 pași
Video: Турбина питания РЛС - 9И56 - каков КПД этого двигателя ? 2024, Iulie
Anonim

Acest tutorial arată cum să creați un sistem radar simplu folosind senzorul HC-SR04 și placa de dezvoltare Microbit cu procesare și ID-uri Arduino.

Provizii:

  • Micro-servo motor SG90
  • Sârme jumper (generice)
  • Breadboard (generic)
  • Magicbit
  • Cablu USB-A la Micro-USB
  • Senzor cu ultrasunete - HC-SR04 (Generic)

Pasul 1: Poveste

În acest tutorial vom învăța despre cum să faci un sistem radar simplu folosind placa de bază Magicbit. În acest scop folosim senzorul cu ultrasunete HC-SR04 și pentru afișarea datelor, folosim mediul de procesare. Să începem.

Pasul 2: Teorie și metodologie

În primul rând, să discutăm cum funcționează acest lucru. Principiul este foarte ușor. Mai întâi ne rotim senzorul în jurul axei verticale în interval de 180 de grade continuu. În timpul acelei mișcări, luăm datele despre distanța până la cel mai apropiat obiect de la senzorul ultrasonic la fiecare unghi. Pentru acest proces folosim placa de bază Magicbit. După aceea, trebuie să stabilim conexiunea cu mediul de procesare pentru afișarea datelor noastre. Prin urmare, folosim protocolul de comunicație serială cu o rată de transmisie adecvată. Apoi ne proiectăm interfața sistemului radar utilizând IDE de procesare. În acel IDE configurăm comunicația noastră serială pentru a obține date în timp real prin serial. Așadar, comunicăm în timp real cu Magicbit și afișăm datele care se trimit de la Magicbit către IDE-ul de procesare.

Pasul 3: Configurare hardware

Configurare hardware
Configurare hardware
Configurare hardware
Configurare hardware

Pentru acest proiect am folosit în principal trei componente hardware. Sunt Magicbit, servomotor și senzor cu ultrasunete. Conexiunea dintre toate aceste părți este prezentată în figura de mai sus.

Senzorul cu ultrasunete a folosit 3,3 v pentru pornire. Prin urmare, am folosit portul inferior drept al plăcii Magicbit pentru a conecta senzorul cu ultrasunete la Magicbit. Dar servomotorul este folosit 5V pentru o funcționare corectă, de aceea am folosit portul inferior stâng pentru a conecta servomotorul cu Magicbit. În acest caz, folosim modulul conector servo bit Magic. Dar dacă nu aveți acel modul, puteți utiliza trei fire jumper pentru a conecta 5V la 5V, Gnd la Gnd și pinul de semnal la 26 de pini pe magicbit.

După construirea circuitului avem de construit o mică parte mecanică. setați conectorul servo lateral unic pe servomotor folosind piulița mică. Apoi fixați senzorul pe acel conector folosind o consolă în formă de L sau în mod corespunzător. După întregul sistem ne-am fixat pe panou. Dar puteți utiliza alte suprafețe pentru a monta servo și Magicbit.

Pasul 4: Configurare software

Configurare software
Configurare software
Configurare software
Configurare software

Latura software este puțin complexă. Pentru o înțelegere corectă, puteți consulta următoarele linkuri înainte de a trece la următoarea parte.

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

hello.processing.org/editor/

Să ne uităm la codul IDE Arduino și cum funcționează acel cod.

Pentru conducerea servo folosim servoteca ESP32. Această bibliotecă include aproape în managerul de placă de biți magici în IDE Arduino. Pentru a face față senzorului cu ultrasunete, folosim noua bibliotecă Ping. Acesta poate fi descărcat de pe următorul link.

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

Descărcați fișierul zip și mergeți instrumentele> includeți biblioteca> adăugați biblioteca Zip în Arduino. acum selectați fișierul zip descărcat al noii biblioteci de pini. Pentru comunicarea cu procesarea am folosit comunicații seriale cu o rată de 115200 baud. Aceasta este frecvența cea mai adecvată pentru ESP32. În orice unghi, ne trimitem datele către computer folosind acest protocol. Distanța de cel mai apropiat obiect frontal de la senzor, direcția de rotație și unghiul de rotație sunt incluse în aceste date. Folosind două pentru bucle, ne rotim servo-ul în două direcții. În timp ce rotația de un grad am trimis date seriale de 4 ori. Motivul pentru care îl puteți înțelege în procesarea explicației părții.

Acum este timpul să analizăm mediul de procesare. Acesta este un software de programare bazat pe Java. Putem scrie schița programului nostru în această schiță în procesarea IDE. De asemenea, putem genera ieșiri vizuale din rularea programului nostru. De asemenea, puteți lua ieșire ca obiecte 2D și 3D. Nu numai asta, acest lucru poate fi folosit pentru procesarea imaginilor și multe altele.

Mai întâi în schița de procesare proiectăm interfața noastră de afișare a datelor folosind funcții grafice simple. La începutul codului, stabilim comunicarea noastră serial, incluzând biblioteci seriale. În funcția de configurare trebuie să faceți o schimbare în funcție de portul USB pe care l-ați folosit pentru a conecta Magicbit la computer. vă puteți verifica portul folosind Arduino IDE când configurați Arduino IDE pentru încărcarea codului. Apoi schimbați numele portului com în partea de configurare din schița de procesare. când datele seriale sunt disponibile, funcția Serialevent se declanșează automat. Prin urmare, logica principală a codului este includerea în eveniment serial pentru a preveni lipsa unghiurilor și a datelor. când sunt disponibile date noi, trasăm o linie pe ecran în funcție de unghiul nostru. În acel moment, dacă nu există detectarea obiectului, atunci linia completă este de culoare verde. Dacă nu, o porțiune a liniei va fi roșie în funcție de distanța de la senzor la obiect. De asemenea, în funcție de direcția de rotație, trasăm încă 200 de linii în apropierea acelei linii cu un nivel descrescător de culoare verde. între fiecare Main avem diferență de 0,25 grade. Prin urmare, primim câte 4 citiri la Magicbit în fiecare rotație de grad. Din acest motiv, putem crea o căutare frumoasă mână în ecran.

După încărcarea completă a codului în magie și setarea piesei hardware, deschideți IDE-ul de procesare și executați codul făcând clic pe butonul Executare. Acum aveți un sistem radar foarte simplu.

Puteți personaliza codurile după cum doriți ceea ce doriți să afișați.

Pasul 5: Depanare

Schița de procesare nu rulează.

  • Așteaptă puțin. Datorită timpului de pornire depinde de performanța computerului și a GPU-ului.
  • Verificați dacă numărul portului serial este corect la schița de procesare.
  • Verificați dacă conexiunea USB este corectă.
  • Verificați conexiunea dintre senzorul cu ultrasunete și Magicbit.
  • Deschideți monitorul serial și verificați dacă datele provin de la Arduino. Dacă nu, problema este codul Arduino sau conexiunea USB.

Servo-ul nu funcționează.

  • Verificați dacă conexiunea USB este corectă.
  • Verificați cablajul.
  • Verificați dacă servo-ul este în stare bună.

Pasul 6: Cod Arduino

#include

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 Sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // include servo biblioteca int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Definește pe care pin este întârzierea atașată servomotorului (3000); } void loop () {// roteste servomotorul de la 15 la 165 de grade pentru (int i = 0; i <= 180; i ++) {RadarServo.write (i); întârziere (50); distance = sonar.ping_cm (); // Apelează o funcție pentru calcularea distanței măsurate de senzorul cu ultrasunete pentru fiecare grad pentru (int j = 0; j0) {break; } Serial.print (i); // Trimite gradul curent în Serial Port Serial.print (","); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (j); // Trimite gradul curent în Serial Port Serial.print ("*"); Serial.print (1); // Trimite valoarea distanței în Serial Port Serial.print ("/"); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (distanță); // Trimite valoarea distanței în Serial Port Serial.print ("."); // Trimite caracterul de adaos chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexare}} // Repetă liniile anterioare de la 165 la 15 grade pentru (int i = 180; i> = 0; i -) {RadarServo.scrie (i); întârziere (50); distanță = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continua; } Serial.print (i); // Trimite gradul curent în Serial Port Serial.print (","); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (j); // Trimite gradul curent în Serial Port Serial.print ("*"); Serial.print (-1); // Trimite valoarea distanței în Serial Port Serial.print ("/"); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (distanță); // Trimite valoarea distanței în Serial Port Serial.print ("."); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară mai târziu în IDE de procesare pentru indexare}}

}

Recomandat: