Innholdsfortegnelse:

Enkelt radarsystem fra Magicbit: 6 trinn
Enkelt radarsystem fra Magicbit: 6 trinn

Video: Enkelt radarsystem fra Magicbit: 6 trinn

Video: Enkelt radarsystem fra Magicbit: 6 trinn
Video: Что будет если купить КИТАЙЦА? 23 СЮРПРИЗА в КАБИНЕ DONGFENG 520 2024, Juli
Anonim

Denne opplæringen viser hvordan du lager et enkelt radarsystem ved hjelp av HC-SR04 sensor og Microbit dev board med prosessering og Arduino IDE.

Rekvisita:

  • SG90 Mikroservomotor
  • Stikkledere (generisk)
  • Brødbrett (generisk)
  • Magicbit
  • USB-A til mikro-USB-kabel
  • Ultralydssensor - HC -SR04 (Generisk)

Trinn 1: Historie

I denne opplæringen vil vi lære om hvordan du lager et enkelt radarsystem ved hjelp av Magicbit core dev -bord. For dette formålet bruker vi HC-SR04 ultralydssensor, og for å vise data bruker vi behandlingsmiljø. La oss komme i gang.

Trinn 2: Teori og metodikk

La oss først diskutere hvordan dette fungerer. Prinsippet er veldig enkelt. Først roterer vi sensoren vår rundt vertikal akse i 180 graders område kontinuerlig. Under denne bevegelsen tar vi dataene om avstand til nærmeste objekt fra ultralydsensor i alle vinkler. For denne prosessen bruker vi Magicbit kjernekort. Etterpå må vi etablere forbindelsen til behandlingsmiljøet for å vise dataene våre. Derfor bruker vi seriell kommunikasjonsprotokoll med passende overføringshastighet. Deretter designer vi vårt radarsystemgrensesnitt ved å bruke prosessering IDE. I den IDE konfigurerer vi vår serielle kommunikasjon for å få sanntidsdata via seriell. Så vi kommuniserer i sanntid med Magicbit og viser dataene som sendes fra Magicbit til behandlings -IDE.

Trinn 3: Maskinvareoppsett

Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett

For dette prosjektet brukte vi hovedsakelig tre maskinvarekomponenter. De er Magicbit, servomotor og ultralydsensor. Forbindelsen mellom alle disse delene er vist i figuren ovenfor.

Ultralydsensor brukte 3,3 v for oppstart. Derfor brukte vi høyre nedre port på Magicbit -kortet for å koble ultralydssensor til Magicbit. Men servomotor brukes 5V for riktig bruk, derfor brukte vi venstre nedre port for å koble servomotor med Magicbit. I dette tilfellet bruker vi Magic bit servokontaktmodul. Men hvis du ikke har den modulen, kan du bruke tre jumper -ledninger til å koble 5V til 5V, Gnd til Gnd og signalpinne til 26 -pins på magicbit.

Etter å ha bygget kretsen har vi en liten mekanisk del å bygge. sett servokontakt på én side til servomotor ved hjelp av liten mutter. Fest deretter sensoren på kontakten med en L -formet brakett eller på riktig måte. Etter hele systemet fikset vi på brødbrett. Men du kan bruke en annen overflate for å montere servo og Magicbit.

Trinn 4: Programvareoppsett

Programvareoppsett
Programvareoppsett
Programvareoppsett
Programvareoppsett

Programvaresiden er lite kompleks. For riktig forståelse kan du henvise til følgende lenker før du går videre til neste del.

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

hello.processing.org/editor/

La oss se på Arduino IDE -koden og hvordan den koden fungerer.

For å kjøre servo bruker vi ESP32 servobibliotek. Dette biblioteket inkluderer nesten i magic bit board manager i Arduino IDE. For å håndtere ultralydssensor bruker vi newPing -biblioteket. Dette kan lastes ned fra følgende lenke.

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

Last ned zip -filen og gå til verktøy> inkluder bibliotek> legg til zip -bibliotek i Arduino. velg nå den nedlastede zip -filen til det nye pin -biblioteket. For kommunikasjon med prosessering brukte vi seriell kommunikasjon med 115200 baudhastighet. Dette er den mest riktige frekvensen for ESP32. I alle vinkler sender vi dataene våre til datamaskinen ved hjelp av denne protokollen. Avstand til nærmeste frontobjekt fra sensoren, rotasjonsretning og rotasjonsvinkel er inkludert i disse dataene. Ved å bruke to for løkker roterer vi servoen vår i to retninger. Mens vi roterte én grad, sendte vi serielle data 4 ganger. Grunnen til det kan du forstå i behandlingen av delforklaringen.

Nå er det på tide å se på behandlingsmiljøet. Dette er Java -basert programmeringsprogramvare. Vi kan skrive skisse av programmet vårt i denne skissen i behandling av IDE. Vi kan også generere visuell utgang fra å kjøre programmet vårt. Du kan også ta utgang som 2D- og 3d -objekter. Ikke bare det, dette kan brukes til bildebehandling og mange flere ting.

I behandlingsskissen først designer vi vårt datavisningsgrensesnitt ved hjelp av enkle grafiske funksjoner. Ved starten av koden etablerer vi vår serielle kommunikasjon ved å inkludere serielle biblioteker. I oppsettfunksjonen må du gjøre noen endringer i henhold til hvilken USB -port du brukte for å koble Magicbit til datamaskinen. du kan sjekke porten din ved hjelp av Arduino IDE når du konfigurerer Arduino IDE for å laste opp koden. Endre deretter navnet på kommandoporten i oppsettdelen i behandlingsskissen. når seriell data er tilgjengelig, utløser Serialevent -funksjonen automatisk. Derfor er hovedlogikken i koden inkludert i seriell hendelse for å forhindre at vinkler og data mangler. når nye data er tilgjengelige, tegner vi en linje i skjermen i henhold til vinkelen vår. På den tiden hvis det ikke er noe objekt detekterer, er hele linjen grønn. Hvis ikke, vil en del av linjen være rød i henhold til avstanden fra sensor til objekt. Også i henhold til rotasjonsretningen tegner vi ytterligere 200 linjer nær den linjen med synkende nivå av grønn farge. mellom hver Main har vi 0,25 graders forskjell. Derfor får vi 4 avlesninger om gangen fra Magicbit i hver graders rotasjon. På grunn av det kan vi lage vakker søkende hånd i skjerm.

Etter å ha lastet opp kodesuksessen helt til magi og angitt maskinvare, velg behandlings -IDE og kjør koden ved å klikke på Kjør -knappen. Nå har du et veldig enkelt radarsystem.

Du kan tilpasse kodene som du ønsker det du vil vise.

Trinn 5: Feilsøking

Behandlingsskissen kjører ikke.

  • Vent litt. På grunn av oppstartstiden er avhengig av PC -en og GPU -ytelsen.
  • Kontroller at serienummeret er riktig på behandlingsskissen.
  • Kontroller at USB -tilkoblingen er riktig festet.
  • Kontroller forbindelsen mellom ultralydsensor og Magicbit.
  • Åpne den serielle skjermen og kontroller at dataene kommer fra Arduino. Hvis ikke, er problemet din Arduino -kode eller på USB -tilkoblingen.

Servo fungerer ikke.

  • Kontroller at USB -tilkoblingen er riktig festet.
  • Sjekk ledningene.
  • Sjekk at servoen er i god stand.

Trinn 6: Arduino -kode

#inkludere

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing ekkolodd (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // inkludere servobibliotek int distanse; Servo RadarServo; ugyldig oppsett () {Serial.begin (115200); RadarServo.attach (26); // Definerer hvilken pin som er servomotoren festet forsinkelse (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 (); // Kaller en funksjon for å beregne avstanden målt av ultralydsensoren for hver grad for (int j = 0; j0) {pause; } Serial.print (i); // Sender gjeldende grad til Serial Port Serial.print (","); // Sender tilleggstegn rett ved siden av den forrige verdien som trengs senere i Processing IDE for indeksering av Serial.print (j); // Sender gjeldende grad til Serial Port Serial.print ("*"); Serial.print (1); // Sender avstandsverdien til Serial Port Serial.print ("/"); // Sender tilleggstegn rett ved siden av den forrige verdien som trengs senere i Processing IDE for indeksering av Serial.print (avstand); // Sender avstandsverdien til Serial Port Serial.print ("."); // Sender tilleggstegn rett ved siden av den forrige verdien som trengs senere i Processing IDE for indeksering}} // Gjentar de foregående linjene fra 165 til 15 grader for (int i = 180; i> = 0; i-) {RadarServo.skrive (i); forsinkelse (50); avstand = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {fortsette; } Serial.print (i); // Sender gjeldende grad til Serial Port Serial.print (","); // Sender tilleggstegn rett ved siden av den forrige verdien som trengs senere i Processing IDE for indeksering av Serial.print (j); // Sender gjeldende grad til Serial Port Serial.print ("*"); Serial.print (-1); // Sender avstandsverdien til Serial Port Serial.print ("/"); // Sender tilleggstegn rett ved siden av den forrige verdien som trengs senere i Processing IDE for indeksering av Serial.print (avstand); // Sender avstandsverdien til Serial Port Serial.print ("."); // Sender tilleggstegn rett ved siden av den forrige verdien som trengs senere i Processing IDE for indeksering}}

}

Anbefalt: