Innehållsförteckning:

Upptäck hinder asynkront med ultraljud: 4 steg
Upptäck hinder asynkront med ultraljud: 4 steg

Video: Upptäck hinder asynkront med ultraljud: 4 steg

Video: Upptäck hinder asynkront med ultraljud: 4 steg
Video: Стабилизация биохимических показателей крови. Большой восстановительный рефлекторный каскад 2024, Juli
Anonim
Upptäck hinder asynkront med ultraljud
Upptäck hinder asynkront med ultraljud

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?

Vad är exakt problemet med ultraljudssensorer och mikrokontroller?
Vad är exakt problemet med ultraljudssensorer och mikrokontroller?
Vad är exakt problemet med ultraljudssensorer och mikrokontroller?
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?

Hur fungerar det ?
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?

Hur man implementerar?
Hur man implementerar?

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.

Rekommenderad: