Search Code

Kurs Lekcija 9 od 10: Izbjegavanje prepreka koristeći Raspberry Pi Pico 4WD pametni automobil

This lesson is part of: Raspberry Pi Pico 4WD Smart Car

Kurs Lekcija 9 od 10: Izbjegavanje prepreka koristeći Raspberry Pi Pico 4WD pametni automobil

Uvod

Ovaj vodič, zasnovan na lekciji 9 od 10 iz kursa Robojax, pokazuje kako napraviti robota koji izbjegava prepreke koristeći SunFounder Raspberry Pi Pico 4WD Smart Car komplet. Projekat kombinuje servo-upravljani ultrazvučni senzor sa kontrolom motora kako bi se stvorio robot koji može samostalno navigirati svojim okruženjem. Pomicanjem senzora poput radara, automobil detektuje prepreke i inteligentno bira slobodan put za nastavak, što ga čini savršenim uvodom u robotiku, integraciju senzora i autonomnu navigaciju.

Ovaj projekat nije samo igračka; to je temelj za mnoge praktične primjene. Evo nekoliko ideja koje će vas inspirisati:

  • Autonomni istraživački robot: Napravite robota koji može mapirati i istraživati prostoriju ili vanjsko područje bez ljudske intervencije.
  • Pametni usisivač: Koristite iste principe za stvaranje robota koji navigira prostorijom, izbjegavajući namještaj i zidove dok čisti.
  • Sigurnosni patrolni bot: Programirajte automobil da patrolira perimetrom i koristi ultrazvučni senzor za otkrivanje i prijavljivanje neočekivanih prepreka ili upada.
  • Obrazovna platforma za AI: Koristite ovaj projekat kao odskočnu dasku za učenje o složenijim algoritmima poput pronalaženja puta i simultane lokalizacije i mapiranja (SLAM).

Ova lekcija se fokusira na osnovnu logiku i kod koji omogućavaju automobilu da donosi odluke. Automobil koristi servo motor za rotaciju ultrazvučnog senzora, koji djeluje kao radar za mjerenje udaljenosti od 0 do 180 stepeni. Kod analizira ove podatke kako bi pronašao najširi slobodan put i usmjerava automobil da se kreće naprijed, lijevo ili desno u skladu s tim. Video demonstrira cijeli proces, od testiranja pojedinačnih komponenti do pokretanja finalnog algoritma za izbjegavanje prepreka u stvarnom lavirintu.

Hardver/Komponente

Ovaj projekat je zasnovan na SunFounder Raspberry Pi Pico 4WD Smart Car kompletu. Osnovne komponente korištene u ovoj lekciji su:

  • Raspberry Pi Pico mikrokontrolerska ploča
  • SunFounder 4WD Smart Car šasija sa četiri motora
  • Ploča za upravljanje motorima
  • Ultrazvučni senzor udaljenosti (HC-SR04 tip)
  • Servo motor (za rotaciju ultrazvučnog senzora)
  • Napajanje (baterije za automobil)

Vodič za povezivanje

SunFounder komplet je dizajniran za laku montažu, a povezivanje je obično unaprijed spojeno putem namjenske proširujuće ploče. Ultrazvučni senzor je montiran na servo motor, koji je zatim povezan na glavnu upravljačku ploču. Ova postavka omogućava rotaciju senzora za skeniranje okruženja. Za detaljan dijagram povezivanja specifičan za vaš komplet, pogledajte službenu SunFounder dokumentaciju.

Osnovne veze uključuju trigger i echo pinove ultrazvučnog senzora, te signalni pin servo motora, koji su svi povezani na specifične GPIO pinove na Raspberry Pi Pico. Upravljač motora je također povezan na Pico za kontrolu četiri pogonska motora. Video spominje da je puna dokumentacija, uključujući dijagrame povezivanja, dostupna za preuzimanje uz komplet.

Objašnjenje koda

Ova lekcija se fokusira na logiku unutar primjera obstacle_avoid. Kod je napisan u MicroPython-u. Iako je cijeli program dostupan za preuzimanje, fokusirat ćemo se na ključne, korisnički podesive parametre koji kontrolišu ponašanje automobila. Oni se obično nalaze na vrhu skripte.

Evo glavnih varijabli koje možete prilagoditi za fino podešavanje performansi vašeg robota:


# Radarski i parametri kretanja
radar_reference = 20  # Minimalna udaljenost u cm koja se smatra sigurnom
step_angle = 10       # Povećanje ugla za svaki korak radarskog skeniranja
forward_speed = 30    # Brzina motora za kretanje naprijed (0-100)
turn_speed = 50       # Brzina motora za okretanje (0-100)
forward_scan_angle = 50  # Ugao koji servo skenira kada nema prepreke
  • radar_reference: Ovo je ključna sigurnosna udaljenost u centimetrima. Ako se prepreka otkrije bliže od ove vrijednosti, automobil će je smatrati "opasnošću" i pokrenuti manevar izbjegavanja. U videu je ovo postavljeno na 20 cm.
  • step_angle: Ovo definiše rezoluciju radarskog skeniranja. Manja vrijednost (npr. 10 stepeni) znači detaljnije skeniranje, ali traje duže. Veća vrijednost bi bila brža, ali bi mogla propustiti uske prepreke.
  • forward_speed i turn_speed: Ovi kontrolišu snagu koja se šalje motorima. Možete ih prilagoditi za promjenu ukupne brzine i okretnosti automobila. Brzina okretanja je često postavljena više kako bi se osiguralo da se automobil može efikasno okretati.
  • forward_scan_angle: Kada nema neposredne opasnosti ispred, automobil sužava svoje skeniranje na ovaj ugao (centriran na pravac naprijed) kako bi češće provjeravao prepreke na svom direktnom putu, omogućavajući glatkije kretanje naprijed.

Video također objašnjava glavnu logiku donošenja odluka. Funkcija get_direction() analizira listu očitanja udaljenosti (pretvorenih u 1 i 0 za sigurno/nesigurno) kako bi pronašla najširi kontinuirani put "1". Na osnovu toga gdje se taj najširi put nalazi, funkcija vraća smjer: "naprijed", "lijevo" ili "desno". Glavna petlja zatim izvršava odgovarajuću akciju, okrećući automobil i ponovo skenirajući dok put ispred ne bude čist.

Uživo projekat/Demonstracija

Video pruža temeljitu demonstraciju projekta. Počinje testiranjem ultrazvučnog senzora samog kako bi se pokazalo kako mjeri udaljenost i ispisuje vrijednosti u ljusku. Instruktor zatim objašnjava algoritam za izbjegavanje prepreka koristeći dijagram toka, detaljno opisujući proces donošenja odluka za skretanje lijevo i desno. Na kraju, automobil se postavlja u mali lavirint napravljen od kutija kako bi se demonstriralo kompletno ponašanje izbjegavanja prepreka u praksi. Automobil uspješno prolazi kroz lavirint, skrećući lijevo i desno kako bi pronašao jasan put naprijed.

Poglavlja videa

  • [00:00] Uvod u izbjegavanje prepreka
  • [01:31] Pregled SunFounder Smart Car kita i karakteristika
  • [02:47] Kako funkcionira funkcija izbjegavanja prepreka
  • [03:34] Testiranje ultrazvučnog senzora
  • [07:45] Objašnjenje algoritma i dijagrama toka za izbjegavanje prepreka
  • [12:49] Analiza glavnog koda za izbjegavanje prepreka
  • [15:43] Živa demonstracija logike izbjegavanja prepreka
  • [22:53] Završna demonstracija s lavirintom prepreka
  • [24:35] Zaključak i sljedeći koraci
No code attached.

Resources & references

No resources yet.

Files📁

No files available.