Tento návod je súčasťou: Inteligentná súprava do auta SunFounder Rasberry Pi Pico Pico 4WD
Súbory súvisiace s touto skupinou sa zobrazia spolu. Odkazy na ďalšie videá nájdete pod týmto článkom.
Kurz Lekcia 8 z 10: Raspberry Pi Pico Smart Car – Lekcia 8: Servomotor a sledovanie objektov
Táto lekcia z kurzu Raspberry Pi Pico Smart Car od Robojax skúma funkčnosť servomotora a to, ako ho použiť na vytvorenie robota sledujúceho objekt alebo „nasleduj svoju ruku“. Projekt presahuje rámec jednoduchého ovládania motora a ukazuje, ako skombinovať servom riadený ultrazvukový senzor s inteligentnou logikou v Pythone a vytvoriť auto, ktoré aktívne vyhľadáva a sleduje objekt vo svojom dosahu. Toto je základný koncept v robotike, ktorý vám umožňuje vytvárať interaktívne projekty, ako je robot sledujúci osobu, inteligentný domáci miláčik, ktorý aportuje, alebo autonómna bezpečnostná kamera sledujúca pohyb. Lekcia tiež pokrýva druhý, jednoduchší projekt: auto, ktoré sa automaticky približuje k objektom v určitej vzdialenostnej zóne, tlačí ich a cúva od nich.
Hardvér a komponenty
Tento projekt je založený na súprave auta SunFounder Raspberry Pi Pico 4WD. Kľúčové komponenty použité v tejto lekcii sú:
- Doska Raspberry Pi Pico
- Podvozok inteligentného auta 4WD s motormi
- Servomotor (ideálne s kovovými prevodmi pre odolnosť)
- Ultrazvukový senzor vzdialenosti (HC-SR04)
- Doska ovládača motora (súčasť súpravy auta)
- RGB LED (pre vizuálnu spätnú väzbu)
- Zdroj napájania (batériový blok pre auto)
Servomotor je jadrom funkčnosti tejto lekcie. Na rozdiel od štandardného jednosmerného motora, ktorý sa otáča nepretržite, je servomotor navrhnutý tak, aby sa otočil do špecifickej uhlovej polohy a udržal ju, zvyčajne medzi 0 a 180 stupňami. Vďaka tomu je ideálny na presné nasmerovanie ultrazvukového senzora. Kvalita serva sa často určuje podľa materiálu prevodov (plast vs. kov) a jeho krútiaceho momentu, ktorý určuje jeho silu a odolnosť.
Ako to funguje
Graf nižšie vysvetľuje, ako kód funguje.
Sprievodca zapojením
Zapojenie pre túto lekciu je jednoduché, pretože nadväzuje na vopred zostavenú súpravu auta. Kritickým spojením je servomotor, ktorý musí byť pripojený ku konkrétnemu GPIO pinu na Pico.
Vo videu inštruktor pripája servo na pin číslo 18 na Raspberry Pi Pico. Ultrazvukový senzor je namontovaný na vrchu ramena serva, čo mu umožňuje otáčať sa doľava a doprava a skenovať oblasť. Zvyšok zapojenia pre motory, RGB LED a napájanie sa považuje za vopred pripojený z predchádzajúcich lekcií kurzu.
Podrobný vizuálny sprievodca nájdete v schéme zapojenia nižšie.
Vysvetlenie kódu
Python kód pre túto lekciu je postavený okolo vlastnej knižnice pico_4wd, ktorá zjednodušuje zložité hardvérové interakcie. Používateľom konfigurovateľné časti sa nachádzajú v hornej časti skriptu a riadia správanie auta.
Tu sú kľúčové premenné, ktoré môžete upraviť na prispôsobenie správania „nasleduj ruku“ vášho robota:
car.RADAR_REFERENCE = 25: Toto je maximálna vzdialenosť v centimetroch, ktorú senzor „vidí“. Akýkoľvek objekt za touto vzdialenosťou sa ignoruje. Môžete ju zvýšiť, aby bolo auto citlivejšie, alebo znížiť, aby sa vyžadoval bližší objekt.car.RADAR_MAX_ANGLE = 45&car.RADAR_MIN_ANGLE = -45: Tieto definujú najľavejší (45) a najpravejší (-45) uhol, ktorý servo skenuje. To vytvára 90-stupňové zorné pole pred autom.car.RADAR_STEP_ANGLE = 10: Toto je prírastok (v stupňoch), ktorý servo používa na pohyb medzi bodmi skenovania. Menší krok (napr. 5) poskytuje jemnejšie rozlíšenie, ale trvá dlhšie dokončiť celé skenovanie. Väčší krok (napr. 15) skenuje rýchlejšie, ale s nižšou presnosťou.MOTOR_FORWARD_POWER = 40: Toto nastavuje výkon motora (0-100) použitý, keď sa auto pohybuje vpred smerom k detekovanému objektu. Upravte to na zmenu rýchlosti prenasledovania auta.MOTOR_TURNING_POWER = 40: Toto nastavuje výkon motora použitý, keď sa auto otáča smerom k objektu. Vyššia hodnota spôsobí, že sa auto bude otáčať agresívnejšie.
Hlavná logika funkcie main() je nepretržitá slučka. Najprv zavolá car.radar_scan(), ktorá vráti reťazec jednotiek a núl predstavujúcich, či bol objekt detekovaný v každom uhle skenovania („1“ znamená, že objekt je v referenčnej vzdialenosti). Kód potom analyzuje tento reťazec, aby našiel najväčšiu skupinu po sebe idúcich jednotiek, čo označuje stred detekovaného objektu. Na základe toho, kde sa tento stred nachádza v poli skenovania, dostane auto príkaz otočiť sa doľava, doprava alebo sa pohybovať vpred, aby sa zarovnalo s objektom a sledovalo ho.
Živá ukážka projektu
Video poskytuje jasnú ukážku projektu v praxi. Inštruktor najprv spustí testovací skript, aby ukázal, ako možno servomotor nastaviť na presné uhly, ako sú 90, 0 a -90 stupňov. To je kľúčové pre pochopenie rozsahu serva a pre správne upevnenie ultrazvukového senzora.
Po upevnení senzora je predstavená funkcia "sledovanie ruky". Keď inštruktor pohybuje rukou pred autom, senzor namontovaný na serve skenuje doľava a doprava. Logika auta spracúva údaje zo senzora a otáča kolesá, aby sa nasmerovalo k detegovanej ruke, čím ju efektívne sleduje po podlahe. Ukážka zdôrazňuje, ako auto dokáže sledovať objekt, keď sa pohybuje, a prispôsobovať svoj smer. Je tiež predstavený druhý projekt, kde je auto naprogramované tak, aby sa priblížilo k objektu a tlačilo ho, ak je detegované vo vzdialenosti 10 až 20 centimetrov, a aby cúvalo, ak je objekt príliš blízko (menej ako 10 centimetrov).
Kľúčové poznatky
Táto lekcia je vynikajúcim úvodom do používania servomotorov na vytváranie interaktívnych robotických správaní. Kombináciou serva so vzdialenostným senzorom môžete postaviť robota so "zmyslom pre zrak", ktorý dokáže aktívne sledovať a reagovať na svoje prostredie. Schopnosť nastaviť parametre, ako sú uhly skenovania, veľkosť kroku a výkon motora, umožňuje jemné doladenie správania robota, čo je kritická zručnosť pre každý robotický projekt.
Kapitoly
- [00:00] Úvod do servomotora a sledovania objektov
- [01:48] Vlastnosti a možnosti kurzu
- [03:08] Pochopenie fungovania servomotora
- [06:08] Testovanie servomotora s Python kódom
- [09:59] Vysvetlenie funkcie "sledovanie ruky"
- [10:49] Ukážka funkcie "sledovanie ruky"
- [15:37] Projekt: tlačenie objektu a cúvanie
- [18:40] Ukážka projektu tlačenia objektu
- [19:25] Záver a ďalšie kroky
Tento návod je súčasťou: Inteligentná súprava do auta SunFounder Rasberry Pi Pico Pico 4WD
- Kurz Lekcia 1 z 10: Raspberry Pi Pico 4WD Smart Car Kit od SunFounder od Robojax
- Kurz Lekcia 2 z 10: Základný Python na ovládanie 4WD Smart Car Kitu s Raspberry Pi Pico
- Kurz Lekcia 3 z 10: Zostavenie Raspberry Pi Pico 4WD Smart Car Kit od SunFounder od Robojax
- Kurz Lekcia 4 z 10: Rozširujúca doska Raspberry Pi Pico pre 4WD Smart Car Kit
- Kurz Lekcia 5 z 10: Ovládanie RGB LED WS2812B pomocou Raspberry Pi Pico
- Kurz Lekcia 6 z 10: Ovládanie jednosmerných motorov pomocou Raspberry Pi Pico 4WD Smart Car Kit
- Lekcia 7 z 10: Sledovanie čiary, detekcia útesu Kalibrácia stupňa šede senzora Raspberry Pi Pico auto
- Kurz Lekcia 9 z 10: Vyhýbanie sa prekážkam pomocou inteligentného auta Raspberry Pi Pico 4WD
- Kurz Lekcia 10 z 10: Ovládanie Raspberry Pi Pico 4WD Smart Car Kit pomocou mobilnej aplikácie
# Lesson 8/10 Pi Car Pico 4WD: Follow hand
# Download and resource page https://robojax.com/RJT630
import pico_4wd as car
car.RADAR_REFERENCE = 25
car.RADAR_MAX_ANGLE = 45
car.RADAR_MIN_ANGLE = -45
car.RADAR_STEP_ANGLE = 10
MOTOR_FORWARD_POWER = 40
MOTOR_TURNING_POWER = 40
def main():
while True:
radar_data = car.radar_scan()
if isinstance(radar_data, int):
continue
radar_data = [str(i) for i in radar_data]
radar_data = "".join(radar_data)
paths = radar_data.split("1")
length_list = []
for path in paths:
length_list.append(len(path))
if max(length_list) == 0:
car.move("stop")
else:
i = length_list.index(max(length_list))
pos = radar_data.index(paths[i])
pos += (len(paths[i]) - 1) / 2
delta = len(radar_data) / 3
if pos < delta:
car.move("right", MOTOR_TURNING_POWER)
elif pos > 2 * delta:
car.move("left", MOTOR_TURNING_POWER)
else:
#if radar_data[int(len(radar_data)/2-1)] == "0":
# car.move("stop")
#else:
car.move("forward", MOTOR_FORWARD_POWER)
try:
main()
finally:
car.move("stop")
car.set_light_off()
Common Course Links
- Purchase SunFounder Pico 4WD Smart Car Kit from AliExpress
- Purchase SunFounder Pico 4WD Smart Car Kit from eBay
- Amazon Canada: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon France: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Germany: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Italy: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Japan: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Spain: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon UK: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon USA: Purchase Pico 4WD Smart Car Kit buy SunFounder
- Purchase Pico 4WD Smart Car Kit from SunFounder.com
- SunFounder Pico-4wd Car Kit Documentation
- Video Play List of 10 lesson on SunFounder Pico 4WD Smart Car Kit
Zdroje a referencie
Zatiaľ žiadne zdroje.
Súbory📁
Žiadne súbory nie sú k dispozícii.