Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Za zabavo gradim robota, ki ga želim avtonomno premikati v hiši.
Delo je dolgo in delam ga korak za korakom.
Ta poučni poudarek na odkrivanju ovir z Arduino Mega
Ultrazvočni senzorji HC-SR04 proti HY-SRF05 so poceni in enostavni za uporabo, vendar jih je težko vključiti v zanko mikrokrmilnika v zapletenega robota. Hotel sem asinhrono izvesti odkrivanje ovir.
_
O funkcijah tega robota sem že objavil 3 navodila, ki jih lahko naročite:
- Naredite dajalnik koles
- Naredite svoj WIFI Gateway
- Uporabite enoto za inercijski modul
In dokumentacijo o združevanju umetne inteligence in ultrazvoka za lokalizacijo robota.
1. korak: Kaj je točno težava z ultrazvočnimi senzorji in mikrokrmilniki?
Sinhrone omejitve čakanja in Arduino
Koda mikrokrmilnikov teče v zanki in ne podpira več niti. Ultrazvočni senzorji temeljijo na trajanju signala. To trajanje traja do 30 m s, kar je zelo dolgo čakati v zanki, ko se morajo mikrokrmilniki spopasti z več motorji in senzorji (na primer servo motorji in enosmerni motorji s kodirnimi dajalniki).
Zato sem želel razviti objekt, ki deluje asinhrono.
2. korak: Kako deluje?
Zasnovan je bil za Atmega za odkrivanje ovir. Podpira do 4 ultrazvočne senzorje.
Zaradi rednih časovnih prekinitev lahko sistem spremlja do 4 ultrazvočne senzorje. Glavna koda mora samo določiti, kateri senzor naj se aktivira s pogojem in pragom. Glavni se bo prekinil le, če se pojavi (stanje, prag).
Glavne funkcije so:
- Opozorilo je osnovno zaznavanje ovir in zagotavlja prekinitev, če vsaj 1 od 4 senzorjev zazna razdaljo pod pragom
- Monitor je razširjena funkcija, ki omogoča prekinitev pri kombinaciji razdalje do 4 senzorjev. Možni pogoji so nad, pod, enaki ali ne enaki pragom.
3. korak: Tehnične podrobnosti
Uporabite časovnik 4, da pin 6 7 8 ne morete uporabiti kot PWM.
Za vsak senzor predmet potrebuje sprožilno kodo in prekinitveno kodo.
Na vrhu senzorjev za prekinitev PIN -a objekt potrebuje še eno PIN za prekinitev za uporabo programske opreme.
4. korak: Kako izvajati?
Senzorje priključite na zgornji način
Prenesite iz tega skladišča GitHub
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- PrimerEchoObstacleDetection.ino
Ustvarite imenik EchoObstacleDetection v knjižnici IDE in premaknite.cpp in.h
Preizkusite
Odprite ExampleEchoObstacleDetection.ino.
To je preprost primer odkrivanja ovir, ki se izvaja z dvema ultrazvočnima senzorjema.
Izhod je usmerjen na serijski monitor. Sprva bo natisnil razdalje, ki jih zaznata dva senzorja, nato pa natisnil opozorila, odvisno od razdalj pod pragom.