Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 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ženog robota. Htio sam pokrenuti otkrivanje prepreka na asinhroni način.
_
Već sam objavio 3 uputstva o karakteristikama 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: U čemu je problem ultrazvučnih senzora i mikrokontrolera?
Ograničenja sinkronog čekanja i Arduina
Kod mikrokontrolera radi u petlji i ne podržava višestruku nit. Ultrazvučni senzori zasnovani su na trajanju signala. Ovo trajanje traje do 30 m s, što je jako dugo za čekanje unutar petlje kada mikrokontroleri moraju raditi s više motora i senzora (na primjer servo i istosmjerni motori s enkoderima na kotačima).
Zato sam htio razviti objekt koji radi asinhrono.
Korak 2: Kako to funkcionira?
Dizajniran je za Atmegu za otkrivanje prepreka. Podržava do 4 ultrazvučna senzora.
Zahvaljujući periodičnim vremenskim prekidima, sistem 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 uslovi su preko, ispod, jednaki ili nisu jednaki pragovima.
Korak 3: Tehnički detalji
Koristite tajmer 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 prekidanje PIN -a objektu je potreban drugi PIN za prekid za korištenje softvera.
Korak 4: Kako implementirati?
Povežite senzore kao što je gore navedeno
Preuzmite sa ovog GitHub spremišta
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- ExampleEchoObstacleDetection.ino
Kreirajte direktorij EchoObstacleDetection unutar svoje IDE biblioteke i premjestite.cpp i.h
Testirajte ga
Otvorite ExampleEchoObstacleDetection.ino.
Ovo je jednostavan primjer otkrivanja prepreka s 2 ultrazvučna senzora.
Izlaz je usmjeren na serijski monitor. Prvo će ispisati udaljenosti koje su otkrila 2 senzora, a zatim će ispisati upozorenja ovisno o udaljenostima ispod pragova.