Indholdsfortegnelse:

Simpelt radarsystem fra Magicbit: 6 trin
Simpelt radarsystem fra Magicbit: 6 trin

Video: Simpelt radarsystem fra Magicbit: 6 trin

Video: Simpelt radarsystem fra Magicbit: 6 trin
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Juli
Anonim

Denne vejledning viser, hvordan man laver et simpelt radarsystem ved hjælp af HC-SR04 sensor og Microbit dev board med behandling og Arduino IDE'er.

Tilbehør:

  • SG90 Micro-servomotor
  • Jumperwires (generisk)
  • Brødbræt (generisk)
  • Magicbit
  • USB-A til mikro-USB-kabel
  • Ultralydssensor - HC -SR04 (Generisk)

Trin 1: Historie

I denne vejledning lærer vi om, hvordan man laver et simpelt radarsystem ved hjælp af Magicbit core dev board. Til dette formål bruger vi HC-SR04 ultralydssensor, og til visning af data bruger vi behandlingsmiljø. Lad os komme i gang.

Trin 2: Teori og metode

Lad os først diskutere, hvordan dette virker. Princippet er meget let. Først roterer vi vores sensor rundt om den lodrette akse i 180 graders rækkevidde kontinuerligt. Under denne bevægelse tager vi data om afstand til nærmeste objekt fra ultralydssensor i alle vinkler. Til denne proces bruger vi Magicbit core board. Derefter skal vi etablere forbindelsen til behandlingsmiljøet for at vise vores data. Derfor bruger vi seriel kommunikationsprotokol med passende baudhastighed. Derefter designer vi vores radarsystemgrænseflade ved hjælp af behandling IDE. I den IDE konfigurerer vi vores serielle kommunikation til at få data i realtid via seriel. Så vi kommunikerer i realtid med Magicbit og viser de data, der sendes fra Magicbit til behandlings -IDE.

Trin 3: Hardwareopsætning

Hardwareopsætning
Hardwareopsætning
Hardwareopsætning
Hardwareopsætning

Til dette projekt brugte vi hovedsageligt tre hardwarekomponenter. De er Magicbit, servomotor og ultralydssensor. Forbindelsen mellem alle disse dele er vist i figuren ovenfor.

Ultralydssensor brugt 3,3 v til opstart. Derfor brugte vi højre nederste port på Magicbit -kortet til at forbinde ultralydssensor til Magicbit. Men servomotor bruges 5V til korrekt arbejde. Derfor brugte vi venstre nederste port til at forbinde servomotor med Magicbit. I dette tilfælde bruger vi Magic bit servostik modul. Men hvis du ikke har det modul, kan du bruge tre jumper -ledninger til at forbinde 5V til 5V, Gnd til Gnd og signal -pin til 26 pin på magicbit.

Efter opbygningen af kredsløbet har vi en lille mekanisk del at bygge. indstil servostikket på en side til servomotoren ved hjælp af en lille møtrik. Fastgør derefter sensoren på det stik ved hjælp af et L -formet beslag eller den korrekte måde. Efter hele systemet fikserede vi på brødbræt. Men du kan bruge anden overflade til at montere servo og Magicbit.

Trin 4: Softwareopsætning

Opsætning af software
Opsætning af software
Opsætning af software
Opsætning af software

Softwaresiden er lidt kompleks. For korrekt forståelse kan du henvise til følgende links til, før du går videre til næste del.

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

hello.processing.org/editor/

Lad os se på Arduino IDE -kode, og hvordan denne kode fungerer.

Til at køre servo bruger vi ESP32 servobibliotek. Dette bibliotek indeholder næsten i magic bit board manager i Arduino IDE. For at håndtere ultralydssensor bruger vi newPing -bibliotek. Dette kan downloades fra følgende link.

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

Download zip -filen, og gå til værktøjer> inkluder bibliotek> tilføj zip -bibliotek i Arduino. vælg nu din downloadede zip -fil med det nye pin -bibliotek. Til kommunikation med behandling brugte vi seriel kommunikation med 115200 baudrate. Dette er den mest korrekte frekvens for ESP32. I alle vinkler sender vi vores data til computeren ved hjælp af denne protokol. Afstand til det nærmeste frontobjekt fra sensoren, rotationsretning og rotationsvinkel er inkluderet i disse data. Ved hjælp af to til sløjfer roterer vi vores servo i to retninger. Med en graders rotation sendte vi serielle data 4 gange. Årsagen til det kan du forstå ved behandling af delforklaring.

Nu er det tid til at se på behandlingsmiljøet. Dette er java -baseret programmeringssoftware. Vi kan skrive skitse af vores program i denne skitse i behandling af IDE. Vi kan også generere visuelt output fra at køre vores program. Du kan også tage output som 2D- og 3d -objekter. Ikke nok med det, dette kan bruges til billedbehandling og mange flere ting.

I behandlingsskitsen designer vi først vores datavisningsgrænseflade ved hjælp af enkle grafiske funktioner. I starten af koden etablerer vi vores serielle kommunikation ved at inkludere serielle biblioteker. I opsætningsfunktionen skal du foretage nogle ændringer i henhold til hvilken USB -port du brugte til at forbinde Magicbit med computeren. du kan kontrollere din port ved hjælp af Arduino IDE, når du konfigurerer Arduino IDE til at uploade koden. Skift derefter comportnavn i opsætningsdelen i behandlingsskitsen. når serielle data er tilgængelige, udløser Serialevent -funktionen automatisk. Derfor er hovedlogikken i koden inkluderet i seriel hændelse for at forhindre vinkler og data, der mangler. når nye data er tilgængelige, tegner vi en linje i skærmen i henhold til vores vinkel. På det tidspunkt, hvis der ikke er nogen objektdetektering, er hele linjen grøn. Hvis ikke, vil en del af linjen være rød i henhold til afstanden fra sensor til objekt. Også i henhold til rotationsretningen tegner vi yderligere 200 linjer nær den linje med faldende niveau af grøn farve. mellem hver Main har vi 0,25 graders forskel. Derfor får vi 4 aflæsninger ad gangen fra Magicbit i hver graders rotation. På grund af det kan vi skabe smuk søgning hånd i skærm.

Efter at have uploadet kodesucces fuldstændigt til magi og indstillet hardware -del, skal du åbne behandlings -IDE og køre koden ved at klikke på knappen Kør. Nu har du et meget simpelt radarsystem.

Du kan tilpasse koderne, som du ønsker, hvad du vil vise.

Trin 5: Fejlfinding

Behandlingsskitsen kører ikke.

  • Vent lidt. På grund af opstartstiden afhænger af din pc og GPU -ydelse.
  • Kontroller, at det serielle portnummer er korrekt på behandlingsskitsen.
  • Kontroller, at USB -forbindelsen er korrekt rettet.
  • Kontroller forbindelsen mellem ultralydssensor og Magicbit.
  • Åbn den serielle skærm, og kontroller, at dataene kommer fra Arduino. Hvis ikke, er problemet din Arduino -kode eller på din USB -forbindelse.

Servo virker ikke.

  • Kontroller, at USB -forbindelsen er korrekt rettet.
  • Kontroller ledningerne.
  • Kontroller, at servoen er i god stand.

Trin 6: Arduino -kode

#omfatte

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // inkludere servobibliotek int distance; Servo RadarServo; ugyldig opsætning () {Serial.begin (115200); RadarServo.attach (26); // Definerer på hvilken stift servomotoren er forsinket (3000); } void loop () {// roterer servomotoren fra 15 til 165 grader for (int i = 0; i <= 180; i ++) {RadarServo.write (i); forsinkelse (50); distance = sonar.ping_cm (); // Kalder en funktion til beregning af afstanden målt af ultralydssensoren for hver grad for (int j = 0; j0) {pause; } Serial.print (i); // Sender den aktuelle grad til Serial Port Serial.print (","); // Sender tilføjelsestegn lige ved siden af den tidligere værdi, der er nødvendig senere i Processing IDE til indeksering af Serial.print (j); // Sender den aktuelle grad til Serial Port Serial.print ("*"); Serial.print (1); // Sender afstandsværdien til Serial Port Serial.print ("/"); // Sender tilføjelsestegn lige ved siden af den tidligere værdi, der er nødvendig senere i Processing IDE til indeksering af Serial.print (distance); // Sender afstandsværdien til Serial Port Serial.print ("."); // Sender tilføjelsestegn lige ved siden af den tidligere værdi, der er nødvendig senere i Processing IDE til indeksering}} // Gentager de foregående linjer fra 165 til 15 grader for (int i = 180; i> = 0; i-) {RadarServo.skrive (i); forsinkelse (50); afstand = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {fortsæt; } Serial.print (i); // Sender den aktuelle grad til Serial Port Serial.print (","); // Sender tilføjelsestegn lige ved siden af den tidligere værdi, der er nødvendig senere i Processing IDE til indeksering af Serial.print (j); // Sender den aktuelle grad til Serial Port Serial.print ("*"); Seriel.print (-1); // Sender afstandsværdien til Serial Port Serial.print ("/"); // Sender tilføjelsestegn lige ved siden af den tidligere værdi, der er nødvendig senere i Processing IDE til indeksering af Serial.print (distance); // Sender afstandsværdien til Serial Port Serial.print ("."); // Sender tilføjelsestegn lige ved siden af den tidligere værdi, der er nødvendig senere i Processing IDE til indeksering}}

}

Anbefalede: