Obsah:

Detekce překážek asynchronně pomocí ultrazvuku: 4 kroky
Detekce překážek asynchronně pomocí ultrazvuku: 4 kroky

Video: Detekce překážek asynchronně pomocí ultrazvuku: 4 kroky

Video: Detekce překážek asynchronně pomocí ultrazvuku: 4 kroky
Video: DJI Fly v 🇨🇿 češtině – rozbor aplikace [🐲 Drak_Alex] 2024, Červenec
Anonim
Detekce překážek asynchronně pomocí ultrazvuku
Detekce překážek asynchronně pomocí ultrazvuku

Stavím pro zábavu robota, kterého chci autonomně pohybovat v domě.

Je to dlouhá práce a dělám ji krok za krokem.

Toto instruktážní zaměření na detekci překážek pomocí Arduino Mega

Ultrazvukové senzory HC-SR04 vs HY-SRF05 jsou levné a snadno se používají, ale jejich integrace do smyčky mikrokontroléru v komplexním robotu může být obtížná. Chtěl jsem spustit detekci překážek asynchronním způsobem.

_

Již jsem publikoval 3 instruktáže o funkcích tohoto robota:

  • Vyrobte si kodér kol
  • Vytvořte si WIFI bránu
  • Použijte jednotku inerciálního modulu

A dokumentaci o kombinaci umělé inteligence a ultrazvuku k lokalizaci robota.

Krok 1: Co je přesně problém s ultrazvukovými senzory a mikrokontroléry?

Co je přesně problémem ultrazvukových senzorů a mikrokontrolérů?
Co je přesně problémem ultrazvukových senzorů a mikrokontrolérů?
Co je přesně problémem ultrazvukových senzorů a mikrokontrolérů?
Co je přesně problémem ultrazvukových senzorů a mikrokontrolérů?

Synchronní čekání a omezení Arduina

Kód mikrokontrolérů běží ve smyčce a nepodporuje více vláken. Ultrazvukové senzory jsou založeny na délce signálu. Tato doba trvá až 30 ms, což je velmi dlouhé čekání uvnitř smyčky, když se mikrokontroléry musí vypořádat s více motory a senzory (například servomotory a stejnosměrné motory s kodéry kol).

Chtěl jsem tedy vyvinout objekt, který běží asynchronně.

Krok 2: Jak to funguje?

Jak to funguje ?
Jak to funguje ?

Byl navržen pro Atmega pro detekci překážek. Podporuje až 4 ultrazvukové senzory.

Díky pravidelnému časovému přerušení může systém monitorovat až 4 ultrazvukové senzory. Hlavní kód musí pouze definovat, který senzor se má aktivovat s podmínkou a prahem. Hlavní bude přerušen pouze v případě, že se objeví (podmínka, práh).

Mezi hlavní funkce patří:

  • Alert je základní detekce překážek a poskytuje přerušení, pokud alespoň 1 ze 4 senzorů detekuje vzdálenost pod prahem
  • Monitor je rozšířená funkce, která poskytuje přerušení při kombinaci vzdálenosti až 4 senzorů. Možné podmínky jsou nad, pod, stejné nebo se nerovná prahovým hodnotám.

Krok 3: Technické detaily

Použijte timer4, takže pin 6 7 8 nelze použít jako PWM.

Pro každý senzor potřebuje objekt spouštěcí PIN a přerušovací PIN.

Nahoře na čidlech přerušení PINů potřebuje objekt jiný přerušení PIN pro používání softwaru.

Krok 4: Jak implementovat?

Jak implementovat?
Jak implementovat?

Připojte senzory výše

Stáhnout z tohoto úložiště GitHub

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • PříkladEchoObstacleDetection.ino

Vytvořte adresář EchoObstacleDetection v knihovně IDE a přesuňte.cpp a.h

Vyzkoušejte to

Otevřete ExampleEchoObstacleDetection.ino.

Toto je jednoduchý příklad detekce překážek, který běží se 2 ultrazvukovými senzory.

Výstup je směrován na sériový monitor. Nejprve vytiskne vzdálenosti detekované 2 senzory a poté vytiskne výstrahy v závislosti na vzdálenostech pod prahovými hodnotami.

Doporučuje: