Search Code

Curs Lecția 6 din 10: Controlul motoarelor DC folosind Kitul de mașină inteligentă 4WD Raspberry Pi Pico

Această lecție face parte din: Mașină inteligentă Raspberry Pi Pico 4WD

Curs Lecția 6 din 10: Controlul motoarelor DC folosind Kitul de mașină inteligentă 4WD Raspberry Pi Pico

Acest ghid de proiect se bazează pe Lecția 6 a cursului Robojax Raspberry Pi Pico Smart Car. În această sesiune, veți învăța cum să integrați un servomotor și un senzor ultrasonic pentru a crea un sistem inteligent de evitare a obstacolelor pentru mașina dvs. 4WD. În loc să se oprească pur și simplu atunci când detectează un obiect, acest proiect transformă mașina dvs. într-un mini robot autonom care scanează activ mediul înconjurător, determină cea mai clară cale și navighează în jurul obstacolelor.

Acesta nu este doar un exercițiu teoretic; este un proiect fundamental pentru construirea unor robotici mai complexe. Iată câteva aplicații practice pentru această logică de evitare a obstacolelor:

  • Robot autonom de explorare: Construiți un robot care poate naviga singur printr-o cameră sau un labirint, fără nicio telecomandă.
  • Aspirator inteligent: Folosiți aceeași logică pentru a crea un robot de aspirare simplu care poate evita mobila și pereții în timp ce curăță podeaua.
  • Robot de patrulare pentru securitate: Programați mașina să patruleze un perimetru și folosiți senzorul ultrasonic pentru a detecta și naviga în jurul obiectelor neașteptate.
  • Platformă educațională de robotică: Folosiți acest proiect ca bază pentru a experimenta cu algoritmi mai avansați de găsire a căii și fuziune a senzorilor.

Conceptul de bază este de a folosi servomotorul pentru a roti senzorul ultrasonic, acționând ca un „radar” care scanează zona de la stânga la dreapta. Măsurând distanțele la diferite unghiuri, mașina poate construi o hartă a împrejurimilor sale imediate și poate lua o decizie de a merge înainte, de a vira la stânga sau la dreapta pentru a găsi o cale liberă (în videoclip la 02:47).

Hardware/Componente

Acest proiect este construit în jurul kit-ului SunFounder Raspberry Pi Pico 4WD Smart Car. Componentele cheie folosite în această lecție sunt:

  • Placa Raspberry Pi Pico
  • Șasiul mașinii inteligente 4WD cu motoare
  • Placa de driver pentru motoare (inclusă în kit)
  • Senzor ultrasonic (tip HC-SR04)
  • Servomotor
  • Pachet de baterii

Ghid de cablare

Videoclipul menționează că kit-ul vine cu documentație completă, instrucțiuni pas cu pas și diagrame de cablare. Cablarea pentru servomotor și senzorul ultrasonic este de obicei conectată la placa de driver pentru motoare, care consolidează conexiunile pentru Pico.

Vă rugăm să consultați diagrama de mai jos pentru conexiunile specifice ale pinilor pentru kit-ul dvs.

Explicația codului

Videoclipul se concentrează pe logica din fișierul obstacle_avoid.py. Deși codul complet este disponibil cu kit-ul, această lecție evidențiază parametrii configurabili de utilizator care controlează comportamentul mașinii. Acestea sunt variabilele pe care probabil veți dori să le ajustați pentru a regla performanța robotului dvs.

La începutul programului principal, veți găsi setările cheie care definesc comportamentul mașinii (în videoclip la 13:07):

# Setări pentru evitarea obstacolelor
RADAR_REFERENCE = 20  # Distanța în cm pentru a considera un obstacol
STEP_ANGLE = 10       # Gradele pe care le mișcă servomotorul la fiecare pas de scanare
FORWARD_SPEED = 30    # Viteza motorului când merge înainte
TURN_SPEED = 50       # Viteza motorului când virează
FORWARD_SCAN_ANGLE = 50  # Gradele pentru o scanare rapidă înainte
  • RADAR_REFERENCE: Aceasta este cea mai crucială setare. Definește distanța minimă de siguranță în centimetri. Dacă senzorul ultrasonic detectează un obiect mai aproape decât această valoare, mașina îl consideră un „pericol” și inițiază rutina de evitare (în videoclip la 22:03).
  • STEP_ANGLE: Aceasta determină rezoluția scanării radarului. O valoare mai mică (de exemplu, 10 grade) face scanarea mai precisă, dar mai lentă. O valoare mai mare o face mai rapidă, dar mai puțin detaliată.
  • FORWARD_SPEED & TURN_SPEED: Acestea sunt valorile PWM (0-100) care controlează puterea motoarelor. Le puteți ajusta pentru a schimba cât de repede merge mașina înainte și cât de repede virează (în videoclip la 13:33).
  • FORWARD_SCAN_ANGLE: După ce un obstacol este evitat, mașina efectuează o scanare rapidă pentru a se asigura că drumul din față este liber. Această variabilă setează unghiul pentru acea scanare. O valoare de 50 înseamnă că scanează de la -25 la +25 de grade față de centru (în videoclip la 13:40).

Proiect live/Demonstrație

În videoclip, instructorul demonstrează proiectul în etape. Mai întâi, rulează un test simplu pentru a arăta cum senzorul ultrasonic măsoară distanța și tipărește valorile în shell, confirmând că „0” reprezintă un obstacol și „1” reprezintă o cale liberă (în videoclip la 03:48).

Apoi explică diagrama de flux a luării deciziilor, care este creierul operațiunii. Mașina folosește o funcție numită get_direction() pentru a analiza datele radarului. Această funcție împarte datele scanării în segmente de spațiu liber și identifică cel mai larg. Pe baza locației acestei căi largi (stânga, centru sau dreapta), mașina decide în ce direcție să vireze (în videoclip la 11:19).

În cele din urmă, instructorul montează un labirint de obstacole și demonstrează mașina navigând prin el. Puteți vedea mașina scanând la stânga și la dreapta, dând înapoi dacă se blochează și, în cele din urmă, găsind o cale pentru a trece prin obstacole fără niciun control manual (în videoclip la 22:53).

Capitole

  • [00:00] Introducere în evitarea obstacolelor cu mașina Pico
  • [01:31] Caracteristicile kitului și prezentarea documentației
  • [02:47] Demonstrarea funcției de evitare a obstacolelor
  • [03:48] Testarea senzorului ultrasonic și măsurarea distanței
  • [07:45] Explicarea algoritmului de evitare a obstacolelor și a diagramei de flux
  • [12:49] Analiza codului principal de evitare a obstacolelor
  • [15:50] Demonstrație live a codului și interpretarea datelor
  • [18:11] Analiză detaliată a logicii de direcție și de virare
  • [22:53] Test live final cu un labirint de obstacole
Nu există cod atașat.

Resurse și referințe

Încă nu sunt resurse.

Fișiere📁

Nu sunt disponibile fișiere.