Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Əylənmək üçün bir evin içərisində müstəqil şəkildə hərəkət etmək istədiyim bir robot qururam.
Uzun bir işdir və addım -addım edirəm.
Arduino Mega ilə maneələrin aşkarlanmasına bu təlimatlı diqqət
Ultrasonik sensorlar HC-SR04 vs HY-SRF05 ucuz və istifadəsi asandır, lakin kompleks bir robotda mikrokontroller döngəsinə inteqrasiya etmək çətin ola bilər. Maneələrin aşkarlanmasını asinxron şəkildə aparmaq istədim.
_
Bu robotun xüsusiyyətləri haqqında 3 təlimat dərc etmişəm:
- Təkər kodlayıcınızı düzəldin
- WIFI Ağ Geçidinizi yaradın
- İnertial Modul Vahidindən istifadə edin
Robotu lokallaşdırmaq üçün süni intellekt və ultrasəsin birləşdirilməsi ilə bağlı sənədlər.
Addım 1: Ultrasonik Sensorlar və Mikrodenetleyicilerde Həqiqətən Nə Problem Var?
Sinxron gözləmə və Arduino məhdudiyyətləri
Mikro nəzarətçilər kodu bir döngədə işləyir və çox iş parçacığını dəstəkləmir. Ultrasonik sensorlar siqnal müddətinə əsaslanır. Bu müddət 30 m s -ə qədər davam edir ki, mikrokontrollerlər birdən çox mühərrik və sensorlar ilə (məsələn, təkər kodlayıcıları olan servo və DC mühərrikləri ilə) məşğul olduqda, döngənin içərisində gözləmək çox uzun çəkir.
Buna görə asinxron işləyən bir obyekt inkişaf etdirmək istədim.
Addım 2: Necə işləyir?
Maneələrin aşkarlanması üçün Atmega üçün hazırlanmışdır. 4 -ə qədər ultrasəs sensoru dəstəkləyir.
Periyodik fasilə sayəsində sistem 4 -ə qədər ultrasəs sensoru izləyə bilir. Əsas kod yalnız şərt və eşik ilə hansı sensorun aktivləşdiriləcəyini təyin etməlidir.
Əsas funksiyalar bunlardır:
- Xəbərdarlıq əsas maneə aşkarlamasıdır və 4 sensordan ən azı biri eşik altındakı bir məsafəni algılarsa, kəsilmə təmin edir.
- Monitor, 4 sensora qədər məsafə şərtlərinin birləşməsində kəsilmə təmin edən genişləndirilmiş bir funksiyadır. Mümkün olan şərtlər hədddən artıq, altında, bərabərdir və ya eşiklərə bərabər deyil.
Addım 3: Texniki Təfərrüatlar
Taymer4 istifadə edin, buna görə pin 6 7 8 PWM olaraq istifadə edilə bilməz.
Hər bir sensor üçün obyektin tetikleyici PİN və kəsmə PIN koduna ehtiyacı var.
Sensorların PİN -lərini kəsmək üçün obyektin proqram istifadəsi üçün başqa bir kəsmə PIN koduna ehtiyacı var.
Addım 4: Necə həyata keçirilməli?
Sensorları yuxarıdakı kimi bağlayın
Bu GitHub deposundan yükləyin
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- MisalEchoObstacleDetection.ino
IDE kitabxananızda EchoObstacleDetection kataloqunu yaradın və.cpp və.h hərəkət edin
Test edin
ExampleEchoObstacleDetection.ino açın.
Bu, 2 ultrasəs sensoru ilə işləyən sadə maneələrin aşkarlanması nümunəsidir.
Çıxış serial monitora yönəldilir. Əvvəlcə 2 sensör tərəfindən aşkar edilən məsafələri çap edəcək və sonra eşiklər altındakı məsafələrdən asılı olaraq siqnallar yazacaq.