Innehållsförteckning:

Enkelt radarsystem från Magicbit: 6 steg
Enkelt radarsystem från Magicbit: 6 steg

Video: Enkelt radarsystem från Magicbit: 6 steg

Video: Enkelt radarsystem från Magicbit: 6 steg
Video: Inside the World’s Most Advanced Radar Factory 2024, Juli
Anonim

Denna handledning visar hur man gör ett enkelt radarsystem med hjälp av HC-SR04-sensor och Microbit dev-kort med bearbetning och Arduino IDE: er.

Tillbehör:

  • SG90 Micro-servomotor
  • Bygelkablar (generiska)
  • Brödbräda (generisk)
  • Magicbit
  • USB-A till mikro-USB-kabel
  • Ultraljudssensor - HC -SR04 (Generisk)

Steg 1: Berättelse

I denna handledning lär vi oss hur man gör ett enkelt radarsystem med hjälp av Magicbit core dev board. För detta ändamål använder vi HC-SR04 ultraljudssensor och för att visa data använder vi bearbetningsmiljö. Låt oss komma igång.

Steg 2: Teori och metodik

Låt oss först diskutera hur detta fungerar. Principen är väldigt lätt. Först roterar vi vår sensor runt vertikal axel i 180 graders intervall kontinuerligt. Under den rörelsen tar vi data om avstånd till närmaste föremål från ultraljudssensor i varje vinkel. För denna process använder vi Magicbit core board. Därefter måste vi upprätta anslutningen till behandlingsmiljön för att visa våra data. Därför använder vi seriekommunikationsprotokoll med lämplig överföringshastighet. Sedan designar vi vårt radarsystemgränssnitt med hjälp av bearbetnings -IDE. I den IDE konfigurerar vi vår seriella kommunikation för att få realtidsdata via seriell. Så vi kommunicerar i realtid med Magicbit och visar data som skickas från Magicbit till bearbetnings -IDE.

Steg 3: Hårdvaruinstallation

Hardware Setup
Hardware Setup
Hardware Setup
Hardware Setup

För detta projekt använde vi främst tre hårdvarukomponenter. De är Magicbit, servomotor och ultraljudssensor. Förbindelsen mellan alla dessa delar visas i figuren ovan.

Ultraljudssensor används 3,3 v för uppstart. Därför använde vi den högra nedre porten på Magicbit -kortet för att ansluta ultraljudssensorn till Magicbit. Men servomotorn används 5V för korrekt funktion, därför använde vi vänster nedre port för att ansluta servomotor med Magicbit. I det här fallet använder vi Magic bit servokontaktmodul. Men om du inte har den modulen kan du använda tre bygelkablar för att ansluta 5V till 5V, Gnd till Gnd och signalstift till 26 -stift på magicbit.

Efter att ha byggt kretsen har vi en liten mekanisk del att bygga. ställ in enstaka servokontakt på servomotorn med hjälp av en liten mutter. Fixera sedan sensorn på kontakten med någon L -formad hållare eller på rätt sätt. Efter hela systemet fixade vi på brödbräda. Men du kan använda annan yta för att montera servo och Magicbit.

Steg 4: Programvaruinstallation

Programvaruinstallation
Programvaruinstallation
Programvaruinstallation
Programvaruinstallation

Programvarusidan är lite komplex. För korrekt förståelse kan du hänvisa till följande länkar innan du går vidare till nästa del.

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

hello.processing.org/editor/

Låt oss titta på Arduino IDE -koden och hur den koden fungerar.

För att köra servo använder vi ESP32 servobibliotek. Detta bibliotek innehåller nästan i magic bit board manager i Arduino IDE. För att hantera ultraljudssensor använder vi newPing -biblioteket. Detta kan laddas ner från följande länk.

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

Ladda ner zip -filen och gå till verktyg> inkludera bibliotek> lägg till zip -bibliotek i Arduino. välj nu din nedladdade zip -fil i det nya pin -biblioteket. För kommunikation med bearbetning använde vi seriell kommunikation med 115200 baudhastighet. Detta är den mest korrekta frekvensen för ESP32. I varje vinkel skickar vi våra data till datorn med hjälp av detta protokoll. Avståndet till närmaste främre objekt från sensorn, rotationsriktning och rotationsvinkel ingår i dessa data. Med två för slingor roterar vi vår servo i två riktningar. Med en graders rotation skickade vi seriell data vid 4 gånger. Anledningen till det kan du förstå i bearbetningen av delförklaringen.

Nu är det dags att titta på bearbetningsmiljön. Detta är Java -baserad programmeringsprogramvara. Vi kan skriva skiss av vårt program i denna skiss vid bearbetning av IDE. Vi kan också generera visuell produktion från att köra vårt program. Du kan också ta ut som 2D- och 3d -objekt. Inte bara det, det här kan användas för bildbehandling och många fler saker.

I bearbetningsskissen designar vi först vårt datavisningsgränssnitt med enkla grafiska funktioner. I början av koden etablerar vi vår seriella kommunikation genom att inkludera seriebibliotek. I installationsfunktionen måste du göra vissa ändringar enligt vilken USB -port du använde för att ansluta Magicbit till datorn. du kan kontrollera din port med Arduino IDE när du konfigurerar Arduino IDE för att ladda upp koden. Ändra sedan komportnamnet i installationsdelen i bearbetningsskissen. när seriell data är tillgänglig utlöses Serialevent -funktionen automatiskt. Därför är kodens huvudlogik inkluderad i seriell händelse för att förhindra att vinklar och data saknas. när ny data är tillgänglig drar vi en linje i skärmen enligt vår vinkel. Vid den tidpunkten om det inte finns något objekt detekterar, är hela linjen grönfärgad. Om inte så blir en del av linjen röd beroende på avståndet från sensor till objekt. Också i enlighet med rotationsriktningen drar vi ytterligare 200 linjer nära den linjen med minskande nivå av grön färg. mellan varje Main har vi 0,25 graders skillnad. Därför får vi 4 avläsningar åt gången från Magicbit i varje graders rotation. På grund av det kan vi skapa vackra sökande hand i skärm.

Efter att ha laddat upp kodsuccén helt till magi och ställt in hårdvarudelen öppnar du bearbetnings -IDE och kör koden genom att klicka på kör -knappen. Nu har du ett mycket enkelt radarsystem.

Du kan anpassa koder som du vill vad du vill visa.

Steg 5: Felsökning

Bearbetningsskissen körs inte.

  • Vänta en stund. På grund av starttiden beror det på din dator och GPU -prestanda.
  • Kontrollera att serienummerporten är korrekt på bearbetningsskissen.
  • Kontrollera att USB -anslutningen är rätt inställd.
  • Kontrollera anslutningen mellan ultraljudssensorn och Magicbit.
  • Öppna den seriella bildskärmen och kontrollera att data kommer från Arduino. Om inte, är problemet din Arduino -kod eller på din USB -anslutning.

Servo fungerar inte.

  • Kontrollera att USB -anslutningen är rätt inställd.
  • Kontrollera ledningarna.
  • Kontrollera att servon är i gott skick.

Steg 6: Arduino -kod

#omfatta

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing -ekolod (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #inkludera // inkludera servobibliotek int distans; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Definierar på vilken stift är servomotorn ansluten fördröjning (3000); } void loop () {// roterar servomotorn från 15 till 165 grader för (int i = 0; i <= 180; i ++) {RadarServo.write (i); fördröjning (50); distance = sonar.ping_cm (); // Anropar en funktion för att beräkna avståndet mätt av ultraljudssensorn för varje grad för (int j = 0; j0) {break; } Serial.print (i); // Skickar den aktuella graden till Serial Port Serial.print (","); // Skickar tilläggstecken bredvid det tidigare värdet som behövs senare i Processing IDE för indexering av Serial.print (j); // Skickar den aktuella graden till Serial Port Serial.print ("*"); Serial.print (1); // Skickar avståndsvärdet till Serial Port Serial.print ("/"); // Skickar tilläggstecken bredvid det tidigare värdet som behövs senare i Processing IDE för indexering av Serial.print (avstånd); // Skickar avståndsvärdet till Serial Port Serial.print ("."); // Skickar tilläggstecken bredvid det tidigare värdet som behövs senare i Processing IDE för indexering}} // Upprepar föregående rader från 165 till 15 grader för (int i = 180; i> = 0; i-) {RadarServo.skriv (i); fördröjning (50); avstånd = sonar.ping_cm (); för (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {fortsätt; } Serial.print (i); // Skickar den aktuella graden till Serial Port Serial.print (","); // Skickar tilläggstecken bredvid det tidigare värdet som behövs senare i Processing IDE för indexering av Serial.print (j); // Skickar den aktuella graden till Serial Port Serial.print ("*"); Serial.print (-1); // Skickar avståndsvärdet till Serial Port Serial.print ("/"); // Skickar tilläggstecken bredvid det tidigare värdet som behövs senare i Processing IDE för indexering av Serial.print (avstånd); // Skickar avståndsvärdet till Serial Port Serial.print ("."); // Skickar tilläggstecken bredvid det tidigare värdet som behövs senare i Processing IDE för indexering}}

}

Rekommenderad: