Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Jag bygger för roligt en robot som jag vill flytta autonomt inuti ett hus.
Det är ett långt arbete och jag gör steg för steg.
Detta instruerbara fokus på hinder upptäckt med Arduino Mega
Ultraljudssensorer HC-SR04 vs HY-SRF05 är billiga och enkla att använda men kan bli svåra att integrera i mikrokontrollerslingan i en komplex robot. Jag ville köra hinderdetektering på ett asynkront sätt.
_
Jag har redan publicerat 3 instruktioner om funktioner i denna robot:
- Gör din hjulkodare
- Skapa din WIFI -gateway
- Använd tröghetsmodulenhet
Och en dokumentation om att kombinera artificiell intelligens och ultraljud för att lokalisera roboten.
Steg 1: Vad är exakt problemet med ultraljudssensorer och mikrokontroller?
Synkron väntan och Arduino -begränsningar
Mikrokontrollerkoden körs i en loop och stöder inte multi-thread. Ultraljudssensorer baseras på signallängd. Denna varaktighet varar upp till 30 m s som är mycket lång att vänta inuti slingan när mikrokontrollerna måste hantera flera motorer och sensorer (till exempel servo- och likströmsmotorer med hjulkodare).
Så jag ville utveckla ett objekt som körs asynkront.
Steg 2: Hur fungerar det?
Den har utformats för Atmega för att upptäcka hinder. Den stöder upp till 4 ultraljudssensorer.
Tack vare periodiskt tidsavbrott kan systemet övervaka upp till 4 ultraljudssensorer. Huvudkoden behöver bara definiera vilken sensor som ska aktiveras med villkor och tröskel. Huvudkoden avbryts endast om (tillstånd, tröskel) visas.
Huvudfunktionerna är:
- Varning är den grundläggande hinderdetekteringen och ger avbrott om minst en av de fyra sensorerna detekterar ett avstånd under tröskeln
- Monitor är en utökad funktion som ger avbrott i en kombination av avståndstillstånd med upp till 4 sensorer. De möjliga villkoren är över, under, lika med eller inte lika med trösklar.
Steg 3: Tekniska detaljer
Använd timer4 så att stift 6 7 8 inte kan användas som PWM.
För varje sensor behöver objektet en trigger -PIN och en avbrottskod.
Ovanpå sensorerna avbryter PIN -koder objektet behöver en annan avbrottskod för mjukvaran.
Steg 4: Hur implementeras?
Anslut sensorerna enligt ovan
Ladda ner från detta GitHub -arkiv
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- ExempelEchoObstacleDetection.ino
Skapa EchoObstacleDetection -katalogen i ditt IDE -bibliotek och flytta.cpp och.h
Testa det
Öppna exempelEchoObstacleDetection.ino.
Detta är ett enkelt exempel på att upptäcka hinder med två ultraljudssensorer.
Utmatningen styrs på seriell bildskärm. Först kommer det att skriva ut avstånd som detekteras av de 2 sensorerna och sedan skriva ut varningar beroende på avstånd under trösklar.