Cuprins:

Detectați obstacolele asincron cu ultrasunete: 4 pași
Detectați obstacolele asincron cu ultrasunete: 4 pași

Video: Detectați obstacolele asincron cu ultrasunete: 4 pași

Video: Detectați obstacolele asincron cu ultrasunete: 4 pași
Video: Unboxing Kit Senzori de parcare cu afișaj 2024, Iulie
Anonim
Detectați obstacolele asincron cu ultrasunetele
Detectați obstacolele asincron cu ultrasunetele

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?

Care este problema cu senzorii cu ultrasunete și microcontrolerele?
Care este problema cu senzorii cu ultrasunete și microcontrolerele?
Care este problema cu senzorii cu ultrasunete și microcontrolerele?
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ă?

Cum functioneazã ?
Cum functioneazã ?

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ă?

Cum se implementează?
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: