Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Rakennan huvin vuoksi robottia, jonka haluan liikkua itsenäisesti talon sisällä.
Se on pitkä työ ja teen askel askeleelta.
Tämä opettavainen keskittyminen esteiden havaitsemiseen Arduino Megan avulla
Ultraäänianturit HC-SR04 vs HY-SRF05 ovat halpoja ja helppokäyttöisiä, mutta voi olla vaikeaa integroida monimutkaisen robotin mikro-ohjaussilmukkaan. Halusin suorittaa esteiden havaitsemisen asynkronisella tavalla.
_
Olen jo julkaissut kolme ohjekirjaa tämän robotin ominaisuuksista:
- Tee pyörän anturi
- Tee WIFI -yhdyskäytäväsi
- Käytä inertiaalimoduulia
Dokumentaatio tekoälyn ja ultraäänen yhdistämisestä robotin paikallistamiseksi.
Vaihe 1: Mikä tarkalleen on ongelma ultraääni -antureissa ja mikro -ohjaimissa?
Synkroninen odotus ja Arduino -rajoitukset
Mikrokontrollerien koodi kulkee silmukassa eikä tue monisäikeistä. Ultraäänianturit perustuvat signaalin kestoon. Tämä kesto kestää jopa 30 m sekuntia, mikä on erittäin kauan odottamista silmukan sisällä, kun mikro -ohjaimien on käsiteltävä useita moottoreita ja antureita (esimerkiksi servo- ja tasavirtamoottoreita, joissa on pyöränkooderit).
Joten halusin kehittää objektin, joka toimii asynkronisesti.
Vaihe 2: Miten se toimii?
Se on suunniteltu Atmegaa varten esteiden havaitsemiseen. Se tukee jopa 4 ultraäänianturia.
Säännöllisen ajan keskeytyksen ansiosta järjestelmä voi valvoa jopa 4 ultraäänianturia. Pääkoodin on vain määritettävä, mikä anturi aktivoidaan ehdolla ja kynnyksellä.
Päätoiminnot ovat:
- Hälytys on esteen perustunnistus ja tarjoaa keskeytyksen, jos vähintään yksi neljästä anturista havaitsee etäisyyden sen kynnyksen alapuolella
- Monitori on laajennettu toiminto, joka tarjoaa keskeytyksen enintään 4 anturin etäisyystilan yhdistelmällä. Mahdolliset olosuhteet ovat kynnysarvojen yläpuolella, alapuolella, yhtä suuret tai yhtä suuret.
Vaihe 3: Tekniset tiedot
Käytä ajastinta4, joten nasta 6 7 8 ei voi olla PWM.
Kullekin anturille kohde tarvitsee liipaisun PIN -koodin ja keskeytys -PIN -koodin.
Keskeytys -PIN -antureiden lisäksi objekti tarvitsee toisen keskeytys -PIN -koodin ohjelmiston käyttöön.
Vaihe 4: Kuinka toteuttaa?
Liitä anturit kuten edellä
Lataa tästä GitHub -arkistosta
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- EsimerkkiEchoObstacleDetection.ino
Luo EchoObstacleDetection -hakemisto IDE -kirjastoosi ja siirrä.cpp ja.h
Testaa
Avaa ExampleEchoObstacleDetection.ino.
Tämä on yksinkertainen esteiden havaitsemisen esimerkki, jossa on 2 ultraäänianturia.
Lähtö on suunnattu sarjamonitorille. Aluksi se tulostaa kahden anturin havaitsemat etäisyydet ja tulostaa sitten hälytykset kynnysarvon alapuolella olevien etäisyyksien mukaan.