Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:11
Alla versioner av ultraljudsradarer jag har hittat för arduino -enheter (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) är väldigt fina radar men alla är "blinda". Jag menar, radarn upptäcker något men vad upptäcker den?
Så jag föreslår själv att utveckla ett system som kan upptäcka objekt och identifiera dem. Med andra ord ett positioneringssystem utan att använda GPS -enheter utan ultraljudsdetektorer.
Detta är resultatet jag hoppas att du gillar.
Steg 1: Hur fungerar det?
Positioneringssystemen bildas av tre sensorstationer med ultraljudsdetektorer och id_nod 1, 2 och 3 som bildar en rektangel eller kvadrat som sveper en vinkel på 90º och där avstånden mellan dem är kända som visas på bild 1.
const floatavstånd mellan1 och2 = 60,0;
const floatavstånd mellan2and3 = 75,0;
Dessa sensorer mäter avståndet och vinkeln för andra objekt med id_node större än 3 som också har en ultraljudsdetektor som sveper en vinkel på 170 °.
Alla skickar avstånden, uppmätta vinklar och id_noden till en annan huvudstation med hjälp av trådlösa kommunikationer för att analysera, beräkna objektens position med hjälp av trigonometriberäkning och identifiera dem.
För att undvika störningar synkroniserar masterstationen alla ultraljudsdetektorer på det sättet som endast en ultraljudsdetektor mäter vid varje ögonblick
Efter det och med hjälp av en seriell kommunikation skickar masterstationen informationen (vinkel, avstånd, id_objekt) till en bearbetningsskiss för att plotta resultaten.
Steg 2: Hur man konfigurerar de tre sensorstationerna och objekten
Den enda funktionen för varje sensorstation är att detektera objekt och skicka listan över avstånd, vinkel och ID -nod som mäts till masterstationen.
Så du måste uppdatera det maximala detektionsavståndet ("valid_max_distance") som är tillåtet och det minsta ("valid_min_distance") (centimeter) för att förbättra detekteringen och begränsa detekteringszonen:
int valid_max_distance = 80;
int valid_min_distance = 1;
ID -noden för dessa sensorstationer ("denna_nod" i koden nedan) är 1, 2 och 3 och ID -noden för huvudstationen är 0.
const uint16_t this_node = 01; // Adress för vår nod i Octal -format (Node01, Node02, Node03)
const uint16_t other_node = 00; // Adress för huvudnoden (Node00) i Octal -format
Varje sensorstation sveper och vinkel 100º (“max_angle” i koden nedan)
#define min_angle 0
#define max_angle 100
Som ovan är det enda objektet för ett objekt att detektera objekt och skicka listan över avstånd, vinklar och ID -objekt som mäts till huvudstationen. Id för ett objekt ("this_node" i koden nedan) måste vara större än 3.
Varje objekt sveper och vinkel på 170º och enligt ovan är det möjligt att uppdatera det maximala och minsta detektionsavståndet.
const uint16_t this_node = 04; // Adress för vår nod i Octal -format (Node04, Node05, …)
const uint16_t other_node = 00; // Adress för huvudnoden (Node00) i Octal -format int valid_max_distance = 80; int valid_min_distance = 1; #define min_angle 0 #define max_angle 170
Steg 3: Hur man konfigurerar Master Station
Huvudstationens funktion är att ta emot överföringar av sensorstationer och objekt och skicka resultaten med hjälp av serieporten till en bearbetningsskiss för att plotta dem. Dessutom synkroniserar alla objekt och de tre sensorstationerna på det sättet som endast en av dem mäter varje gång för att undvika störningar.
Först måste du uppdatera avståndet (centimeter) mellan sensor 1 och 2 och avståndet mellan 2 och 3.
const floatavstånd mellan1 och2 = 60,0;
const floatavstånd mellan2and3 = 70,0;
Skissen beräknar objektens position på följande sätt:
- För alla sändningar av objekten (id_nod större än 3) leta efter samma avstånd i varje sändning av ultraljudssensorerna (id_nod 1, 2 eller 3).
- Alla dessa punkter utgör en lista över "kandidater" (avstånd, vinkel, id_nod) för att vara positionen för ett objekt ("process_pointobject_with_pointssensor" i skissen).
- För varje "kandidat" i föregående lista beräknar funktionen "kandidat_vald_ mellan_sensor2 och3" ur ultraljudssensor 2 och 3 ur vinkeln vilken av dem matchar följande trigonometri -tillstånd (se bilderna 2 och 3)
float distancefroms2 = sin (radianer (vinkel)) * distans;
float distancefroms3 = cos (radianer (vinkel_kandidat)) * distans_kandidat; // Trigonometri tillstånd 1 abs (distansfroms2 + distansfroms3 - distans mellan2och3) <= float (max_diference_distance)
Som ovan, för varje "kandidat" i den föregående listan, beräknar funktionen "kandidat_vald_mellan_sensor1and2" ur ultraljudssensorn 1 och 2, vilken av dem matchar följande trigonometri -relation (se bild 2 och 3)
float distancefroms1 = sin (radianer (vinkel)) * distans; float distancefroms2 = cos (radianer (vinkelkandidat)) * distans_kandidat; // Trigonometillstånd 2 abs (distansfrom1 + avståndfrom2 - avstånd mellan1och2) <= float (max_diference_distance)
Endast kandidaterna (avstånd, vinkel, id_nod) som matchar trigonometriförhållandena 1 och 2 är identifierade objekt som detekteras av sensorstationerna 1, 2 och 3
Därefter skickas resultaten från masterstationen till en bearbetningsskiss för att plotta dem.
Steg 4: Lista över material
Listan över material som behövs för en sensorstation eller ett objekt är följande:
- Nanotavla
- Ultraljudssensor
- Mikro servomotor
- NRF24L01 trådlös modul
- Adapter NRF24L01
och materiallistan för masterstationen är följande:
- Nanotavla
- NRF24L01 trådlös modul
- Adapter NRF24L01
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man digitaliserar bilder och filmnegativ med en DSLR: 12 steg (med bilder)
Hur man digitaliserar diabilder och filmnegativ med en DSLR: En mångsidig och stabil inställning för digitalisering av diabilder och negativ med en DSLR eller en kamera med ett makroalternativ. Denna instruerbara är en uppdatering av Hur man digitaliserar 35 mm negativ (uppladdad juli 2011) med flera förbättringar för att utöka dess
Ultraljudsbaserat åtkomstsystem: 6 steg (med bilder)
Ultraljudsbaserat åtkomstsystem: Den här gången presenterar jag dig ett ultraljudsbaserat åtkomstsystem som jag tror att det kan vara intressant. att försöka t
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen