Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Za zabavu gradim robota kojeg želim autonomno kretati unutar kuće.
To je dug posao i radim ga korak po korak.
Ovaj poučni fokus na otkrivanje prepreka s Arduino Mega
Ultrazvučni senzori HC-SR04 vs HY-SRF05 jeftini su i jednostavni za upotrebu, ali ih može biti teško integrirati u petlju mikrokontrolera u složenom robotu. Htio sam pokrenuti otkrivanje prepreka na asinkroni način.
_
Već sam objavio 3 upute o značajkama ovog robota:
- Napravite svoj koder za kotače
- Napravite svoj WIFI Gateway
- Koristite jedinicu s inercijskim modulom
I dokumentaciju o kombiniranju umjetne inteligencije i ultrazvuka za lokalizaciju robota.
Korak 1: Što je točno problem s ultrazvučnim senzorima i mikrokontrolerima?
Ograničenja sinkronog čekanja i Arduina
Kod mikrokontrolera radi u petlji i ne podržava više niti. Ultrazvučni senzori temelje se na trajanju signala. Ovo trajanje traje do 30 m s, što je jako dugo čekati unutar petlje kada se mikrokontroleri moraju nositi s više motora i senzora (na primjer servo i istosmjerni motori s koderima kotača).
Tako sam htio razviti objekt koji radi asinkrono.
Korak 2: Kako to funkcionira?
Dizajniran je za Atmegu za otkrivanje prepreka. Podržava do 4 ultrazvučna senzora.
Zahvaljujući povremenim vremenskim prekidima, sustav može nadzirati do 4 ultrazvučna senzora. Glavni kôd samo mora definirati koji senzor aktivirati sa stanjem i pragom. Glavni će se prekinuti samo u slučaju da se pojavi (stanje, prag).
Glavne funkcije su:
- Upozorenje je osnovno otkrivanje prepreka i pruža prekid ako barem 1 od 4 senzora detektira udaljenost ispod praga
- Monitor je proširena funkcija koja omogućuje prekid u kombinaciji udaljenosti do 4 senzora. Mogući uvjeti su iznad, pod, jednaki ili nisu jednaki pragovima.
Korak 3: Tehnički detalji
Upotrijebite timer 4 tako da se pin 6 7 8 ne može koristiti kao PWM.
Za svaki senzor objekt treba PIN okidača i PIN za prekid.
Na vrhu senzora za prekid PIN -a objekt treba drugi PIN za prekid za korištenje softvera.
Korak 4: Kako implementirati?
Spojite senzore kao što je gore navedeno
Preuzmite s ovog GitHub spremišta
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- ExampleEchoObstacleDetection.ino
Izradite direktorij EchoObstacleDetection unutar svoje IDE knjižnice i premjestite.cpp i.h
Testirajte ga
Otvorite ExampleEchoObstacleDetection.ino.
Ovo je jednostavan primjer otkrivanja prepreka koji se izvodi s 2 ultrazvučna senzora.
Izlaz je usmjeren na serijski monitor. Isprva će ispisati udaljenosti koje su otkrila 2 senzora, a zatim će ispisati upozorenja ovisno o udaljenostima ispod pragova.