
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04

Construiesc pentru distracție un robot pe care vreau să îl mișc autonom în interiorul unei case.
Este o muncă lungă și o fac pas cu pas.
Acest accent instructiv pe detectarea obstacolelor cu Arduino Mega
Senzorii cu ultrasunete HC-SR04 vs HY-SRF05 sunt ieftini și simpli de utilizat, dar pot deveni dificil de integrat în bucla microcontrolerului într-un robot complex. Am vrut să rulez detectarea obstacolelor într-un mod asincron.
_
Am publicat deja 3 instructabile despre caracteristicile acestui robot:
- Faceți codificatorul de roată
- Creați-vă WIFI Gateway
- Utilizați unitatea de modul inerțial
Și o documentație despre combinarea inteligenței artificiale și a ultrasunetelor pentru localizarea robotului.
Pasul 1: Care este problema cu senzorii cu ultrasunete și microcontrolerele?


Așteptare sincronă și limitări Arduino
Codul microcontrolerelor rulează într-o buclă și nu acceptă multi-thread. Senzorii cu ultrasunete se bazează pe durata semnalului. Această durată durează până la 30 m s, care este foarte lungă de așteptat în interiorul buclei atunci când microcontrolerele trebuie să se ocupe de mai multe motoare și senzori (de exemplu, motoare servo și de curent continuu cu codificatoare de roți).
Așa că am vrut să dezvolt un obiect care să ruleze asincron.
Pasul 2: Cum funcționează?

A fost proiectat pentru Atmega pentru detectarea obstacolelor. Suportă până la 4 senzori cu ultrasunete.
Datorită întreruperii periodice a timpului, sistemul poate monitoriza până la 4 senzori cu ultrasunete. Codul principal trebuie doar să definească ce senzor să se activeze cu starea și pragul. Principalul va fi întrerupt numai în cazul în care apare (starea, pragul).
Funcțiile principale sunt:
- Alerta este detecția de bază a obstacolelor și oferă întrerupere dacă cel puțin 1 din cei 4 senzori detectează o distanță sub pragul acesteia
- Monitorul este o funcție extinsă care oferă întreruperi la o combinație de condiții de distanță de până la 4 senzori. Condițiile posibile sunt peste, sub, egale sau nu egale cu pragurile.
Pasul 3: Detalii tehnice
Utilizați timer4, astfel încât pinul 6 7 8 nu poate fi utilizat ca PWM.
Pentru fiecare senzor obiectul are nevoie de un PIN de declanșare și un PIN de întrerupere.
Deasupra senzorilor PIN de întrerupere, obiectul are nevoie de un alt PIN de întrerupere pentru utilizarea software-ului.
Pasul 4: Cum se implementează?

Conectați senzorii ca mai sus
Descărcați din acest depozit GitHub
- EchoObstacleDetection.cpp,
- EchoObstacleDetection.h
- ExampleEchoObstacleDetection.ino
Creați directorul EchoObstacleDetection în biblioteca IDE și mutați.cpp și.h
Testează-l
Deschideți ExampleEchoObstacleDetection.ino.
Acesta este un exemplu simplu de detectare a obstacolelor care rulează cu 2 senzori cu ultrasunete.
Ieșirea este direcționată pe monitorul serial. La început va imprima distanțele detectate de cei 2 senzori și apoi va imprima alerte în funcție de distanțele sub praguri.
Recomandat:
Detectați vibrațiile utilizând un modul senzor piezoelectric de atingere a șocului: 6 pași

Detectarea vibrațiilor folosind un modul senzor piezoelectric de atingere a șocului: În acest tutorial vom învăța cum să detectăm vibrațiile șocului folosind un modul senzor de vibrații senzor piezoelectric și Visuino
Cum să detectați bolile plantelor folosind învățarea automată: 6 pași

Cum să detectăm bolile plantelor folosind învățarea automată: Procesul de detectare și recunoaștere a plantelor bolnave a fost întotdeauna un proces manual și plictisitor care impune oamenilor să inspecteze vizual corpul plantei, ceea ce poate duce adesea la un diagnostic incorect. De asemenea, s-a prezis că, ca lume globală
Detectați mișcarea și distrugeți ținta! Proiect DIY autonom: 5 pași

Detectați mișcarea și distrugeți ținta! Proiect DIY autonom: Detectați mișcarea și distrugeți ținta! În acest videoclip vă arăt cum să construiți un proiect DIY de urmărire a mișcării cu un Raspberry Pi 3. Proiectul este autonom, astfel încât se mișcă și trage pistolul atunci când detectează mișcarea. Am folosit modulul laser pentru acest proiect, dar tu
Robotul care evită obstacolele folosind senzori cu ultrasunete: 9 pași (cu imagini)

Robot de evitare a obstacolelor folosind senzori cu ultrasunete: Acesta este un proiect simplu despre robotul de evitare a obstacolelor folosind senzori cu ultrasunete (HC SR 04) și placa Arduino Uno. proiect tutorial, împărtășește-ți
Crearea unui site web Ajax cu un formular de conectare asincron: 6 pași (cu imagini)

Crearea unui site web Ajax cu un formular de conectare asincron: Problema: instrumentele Spidering nu permit autentificarea AJAX. Acest instructable vă va arăta cum să vă conectați printr-un formular AJAX folosind Python și un modul numit Mechanize. Spiderii sunt programe de automatizare web care devin din ce în ce mai populare