INHOUDSOPGAWE:

Eenvoudige radarsisteem van Magicbit: 6 stappe
Eenvoudige radarsisteem van Magicbit: 6 stappe

Video: Eenvoudige radarsisteem van Magicbit: 6 stappe

Video: Eenvoudige radarsisteem van Magicbit: 6 stappe
Video: رسم بالذكاء الاصطناعي : استكشف إمكانات Leonardo AI وودع Midjourney ! 2024, Julie
Anonim

Hierdie handleiding wys hoe u 'n eenvoudige radarstelsel kan maak met behulp van HC-SR04-sensor en Microbit dev-bord met verwerking en Arduino IDE's.

Benodighede:

  • SG90 Mikro-servomotor
  • Springdrade (generies)
  • Broodbord (generies)
  • Magicbit
  • USB-A na mikro-USB-kabel
  • Ultrasoniese sensor - HC -SR04 (generies)

Stap 1: Verhaal

In hierdie tutoriaal leer ons hoe u 'n eenvoudige radarstelsel kan maak met behulp van die Magicbit -kern -ontwikkelbord. Vir hierdie doel gebruik ons die HC-SR04 ultrasoniese sensor en om die data te vertoon, gebruik ons die verwerkingsomgewing. Laat ons begin.

Stap 2: Teorie en metodiek

Kom ons bespreek eerstens hoe dit werk. Die beginsel is baie maklik. Eers draai ons ons sensor deurlopend om die vertikale as in 'n 180 grade reeks. Tydens die beweging neem ons die gegewens oor die afstand na die naaste voorwerp van die ultrasoniese sensor in elke hoek. Vir hierdie proses gebruik ons Magicbit -kernbord. Daarna moet ons die verband met die verwerkingsomgewing vestig om ons data te wys. Daarom gebruik ons seriële kommunikasieprotokol met 'n geskikte baud -tempo. Dan ontwerp ons ons radarstelsel -koppelvlak deur verwerking van IDE te gebruik. In die IDE stel ons ons seriële kommunikasie op om real -time data via reeks te kry. Ons kommunikeer dus intyds met Magicbit en wys die data wat van Magicbit na die verwerkings -IDE gestuur word.

Stap 3: hardeware -opstelling

Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling

Vir hierdie projek het ons hoofsaaklik drie hardeware -komponente gebruik. Dit is Magicbit, servomotor en ultrasoniese sensor. Die verband tussen al hierdie dele word in figuur hierbo getoon.

Ultrasoniese sensor gebruik 3,3 v om aan te skakel. Daarom het ons die onderste onderste poort van die Magicbit -bord gebruik om die ultrasoniese sensor aan Magicbit te koppel. Maar die servomotor word 5V gebruik om behoorlik te werk, daarom het ons die onderste onderste poort gebruik om die servomotor met Magicbit te verbind. In hierdie geval gebruik ons die Magic bit servo connector module. Maar as u nie die module het nie, kan u drie springdrade gebruik om 5V na 5V, Gnd met Gnd aan te sluit en 'n pin op 26 pin op magicbit te koppel.

Na die bou van die stroombaan het ons 'n klein meganiese onderdeel om te bou. stel 'n enkelsydige servo -aansluiting op die servomotor met 'n klein moer. Bevestig dan die sensor op die aansluiting met 'n L -vormige beugel of op die regte manier. Na die hele stelsel het ons dit op die broodbord vasgemaak. Maar u kan 'n ander oppervlak gebruik om servo en Magicbit te monteer.

Stap 4: sagteware -opstelling

Opstelling van sagteware
Opstelling van sagteware
Opstelling van sagteware
Opstelling van sagteware

Die sagteware -kant is klein kompleks. Vir 'n goeie begrip, kan u na die volgende skakels verwys voordat u na die volgende deel gaan.

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

hello.processing.org/editor/

Kom ons kyk na die Arduino IDE -kode en hoe die kode werk.

Vir die bestuur van servo gebruik ons die ESP32 servobiblioteek. Hierdie biblioteek bevat byna die bestuurder van die magic bit board in Arduino IDE. Om die ultrasoniese sensor te hanteer, gebruik ons die newPing -biblioteek. Dit kan afgelaai word vanaf die volgende skakel.

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

Laai die zip -lêer af en gaan na gereedskap> sluit biblioteek in> voeg zip -biblioteek by in Arduino. kies nou die afgelaaide zip -lêer van die nuwe penbiblioteek. Vir kommunikasie met verwerking gebruik ons seriële kommunikasie met 115200 baud rate. Dit is die mees geskikte frekwensie vir ESP32. In elke hoek stuur ons ons data na die rekenaar met behulp van hierdie protokol. Afstand tot die naaste voorste voorwerp van die sensor, rotasie rigting en draaihoek word by hierdie data ingesluit. Deur twee vir lusse te gebruik, draai ons ons servo in twee rigtings. Terwyl ons een graad draai, het ons 4 keer seriële data gestuur. Die rede hiervoor kan u verstaan tydens die verwerking van die gedeeltelike verduideliking.

Dit is nou tyd om na die verwerkingsomgewing te kyk. Dit is 'n Java -gebaseerde programmeersagteware. Ons kan 'n skets van ons program in hierdie skets in die verwerking van IDE skryf. Ons kan ook visuele uitset lewer deur die uitvoering van ons program. U kan ook uitvoer as 2D- en 3d -voorwerpe neem. Nie net dit nie, dit kan gebruik word vir beeldverwerking en nog vele meer.

In die verwerkingsskets ontwerp ons eers ons data -koppelvlak met behulp van eenvoudige grafiese funksies. Aan die begin van die kode vestig ons ons seriële kommunikasie deur seriële biblioteke in te sluit. In die opstelfunksie moet u 'n paar veranderinge aanbring volgens die USB -poort wat u gebruik het om Magicbit aan 'n rekenaar te koppel. u kan u poort met Arduino IDE kontroleer wanneer u die Arduino IDE opstel om die kode op te laai. Verander dan die naam van die poort in die opstelgedeelte in die verwerking van die skets. As die reeksdata beskikbaar is, word die Serialevent -funksie outomaties geaktiveer. Daarom is die hooflogika van die kode ingesluit in die seriële gebeurtenis om hoeke en data te vermy. as nuwe data beskikbaar is, trek ons 'n streep in die skerm volgens ons hoek. In daardie tyd, as daar geen objekopsporing is nie, is die volle lyn groen. Indien nie, dan is 'n gedeelte van die lyn rooi volgens afstand van sensor tot voorwerp. Ook in die ooreenstemmende rotasie rigting trek ons nog 200 lyne naby die lyn met 'n dalende groen kleur. tussen elke hoof het ons 'n verskil van 0.25 grade. Daarom kry ons 4 lesings op 'n slag van Magicbit in elke graadrotasie. As gevolg hiervan kan ons 'n pragtige soekende hand -in -skerm skep.

Nadat u die sukses van die kode heeltemal opgelaai het en die hardeware -deel suksesvol opgestel het, maak die verwerkings -IDE oop en voer die kode uit deur op die run -knoppie te klik. Nou het u 'n baie eenvoudige radarstelsel.

U kan die kodes aanpas soos u wil, wat u wil vertoon.

Stap 5: Probleemoplossing

Die verwerking van die skets loop nie.

  • Wag 'n rukkie. As gevolg van die aanvangstyd hang dit af van u rekenaar en GPU -prestasie.
  • Kontroleer of die reekspoortnommer korrek is op die verwerkingskets.
  • Kontroleer of die USB -verbinding korrek is.
  • Kontroleer die verband tussen die ultrasoniese sensor en Magicbit.
  • Maak die seriële monitor oop en kyk of die data van Arduino afkomstig is. Indien nie, dan is die probleem met u Arduino -kode of u USB -verbinding.

Servo werk nie.

  • Kontroleer of die USB -verbinding korrek is.
  • Gaan die bedrading na.
  • Kyk of die servo in 'n goeie toestand is.

Stap 6: Arduino -kode

#insluit

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // sluit servobiblioteek in op afstand; Servo RadarServo; ongeldige opstelling () {Serial.begin (115200); RadarServo.attach (26); // Definieer op watter pen die servomotor aangehegte vertraging (3000) is; } leemte -lus () {// draai die servomotor van 15 tot 165 grade vir (int i = 0; i <= 180; i ++) {RadarServo.write (i); vertraging (50); distance = sonar.ping_cm (); // Roep 'n funksie op vir die berekening van die afstand wat deur die ultrasoniese sensor gemeet word vir elke graad vir (int j = 0; j0) {break; } Serial.print (i); // Stuur die huidige graad na die Serial Port Serial.print (","); // Stuur byvoegingskarakter langs die vorige waarde wat later in die verwerkings -IDE benodig is vir die indeksering van Serial.print (j); // Stuur die huidige graad na die Serial Port Serial.print ("*"); Reeks.afdruk (1); // Stuur die afstandwaarde na die Serial Port Serial.print ("/"); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE benodig word om Serial.print (afstand) te indekseer; // Stuur die afstandwaarde na die Serial Port Serial.print ("."); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings-IDE nodig was vir indeksering}} // Herhaal die vorige reëls van 165 tot 15 grade vir (int i = 180; i> = 0; i-) {RadarServo.skryf (i); vertraging (50); afstand = sonar.ping_cm (); vir (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {vervolg; } Serial.print (i); // Stuur die huidige graad na die Serial Port Serial.print (","); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE benodig word vir die indeksering van Serial.print (j); // Stuur die huidige graad na die Serial Port Serial.print ("*"); Reeks.afdruk (-1); // Stuur die afstandwaarde na die Serial Port Serial.print ("/"); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE benodig word om Serial.print (afstand) te indekseer; // Stuur die afstandwaarde na die Serial Port Serial.print ("."); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE nodig was vir indeksering}}

}

Aanbeveel: