Obsah:

Detekcia prekážok asynchrónne pomocou ultrazvuku: 4 kroky
Detekcia prekážok asynchrónne pomocou ultrazvuku: 4 kroky

Video: Detekcia prekážok asynchrónne pomocou ultrazvuku: 4 kroky

Video: Detekcia prekážok asynchrónne pomocou ultrazvuku: 4 kroky
Video: Тест навигации Garmin Edge 540 против 840 2024, Júl
Anonim
Detekujte prekážky asynchrónne pomocou ultrazvuku
Detekujte prekážky asynchrónne pomocou ultrazvuku

Staviam pre zábavu robota, ktorého chcem autonómne pohybovať v dome.

Je to dlhá práca a robím ju krok za krokom.

Toto poučenie sa zameriava na detekciu prekážok pomocou Arduino Mega

Ultrazvukové snímače HC-SR04 vs HY-SRF05 sú lacné a ľahko sa používajú, ale je ťažké ich integrovať do slučky mikrokontroléra v komplexnom robote. Chcel som spustiť detekciu prekážok asynchrónnym spôsobom.

_

Už som zverejnil 3 návody na funkcie tohto robota:

  • Vyrobte si kodér kolies
  • Vytvorte si svoju WIFI bránu
  • Použite jednotku inerciálneho modulu

A dokumentácia o kombinácii umelej inteligencie a ultrazvukov na lokalizáciu robota.

Krok 1: Čo je presne problém s ultrazvukovými snímačmi a mikrokontrolérmi?

Aký je presne problém s ultrazvukovými snímačmi a mikrokontrolérmi?
Aký je presne problém s ultrazvukovými snímačmi a mikrokontrolérmi?
Aký je presne problém s ultrazvukovými snímačmi a mikrokontrolérmi?
Aký je presne problém s ultrazvukovými snímačmi a mikrokontrolérmi?

Synchrónne obmedzenia čakania a Arduina

Kód mikrokontroléra beží v slučke a nepodporuje viacvláknové. Ultrazvukové snímače sú založené na trvaní signálu. Toto trvanie trvá až 30 m s, čo je veľmi dlhé čakanie vo vnútri slučky, keď sa mikrokontroléry musia vysporiadať s viacerými motormi a snímačmi (napríklad so servomotormi a jednosmernými motormi s enkodérmi kolies).

Preto som chcel vyvinúť objekt, ktorý beží asynchrónne.

Krok 2: Ako to funguje?

Ako to funguje ?
Ako to funguje ?

Bol navrhnutý pre Atmega na detekciu prekážok. Podporuje až 4 ultrazvukové senzory.

Vďaka pravidelnému časovému prerušeniu môže systém monitorovať až 4 ultrazvukové senzory. Hlavný kód musí iba definovať, ktorý senzor sa má aktivovať s podmienkou a prahom. Hlavný bude prerušený iba v prípade, že sa objaví (podmienka, prah).

Medzi hlavné funkcie patria:

  • Výstraha je základnou detekciou prekážok a poskytuje prerušenie, ak najmenej 1 zo 4 senzorov detekuje vzdialenosť pod jeho prahom
  • Monitor je rozšírená funkcia, ktorá poskytuje prerušenie pri kombinácii vzdialenosti až 4 senzorov. Možné podmienky sú prahové hodnoty, sú pod nimi, rovnajú sa alebo sa im rovnajú.

Krok 3: Technické detaily

Použite timer4, takže pin 6 7 8 nemožno použiť ako PWM.

Pre každý senzor potrebuje objekt spúšťací PIN a PIN prerušenia.

Na vrchu senzorov prerušovacie PINy potrebuje objekt iný prerušovací PIN na používanie softvéru.

Krok 4: Ako implementovať?

Ako implementovať?
Ako implementovať?

Pripojte snímače podľa vyššie uvedeného postupu

Stiahnite si z tohto úložiska GitHub

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • PríkladEchoObstacleDetection.ino

Vytvorte adresár EchoObstacleDetection vo svojej knižnici IDE a presuňte súbory.cpp a.h

Otestujte to

Otvorte PríkladEchoObstacleDetection.ino.

Jedná sa o jednoduchý príklad detekcie prekážok, ktorý beží s 2 ultrazvukovými snímačmi.

Výstup je smerovaný na sériový monitor. Najprv vytlačí vzdialenosti detekované dvoma senzormi a potom vytlačí výstrahy v závislosti od vzdialenosti pod prahovými hodnotami.

Odporúča: