Questo tutorial è parte di: SunFounder Rasberry Pi Pico Pico 4WD Smart Car Kit
I file relativi a questo gruppo verranno visualizzati insieme. I link ad altri video si trovano sotto questo articolo.
Corso Lezione 8 di 10: Auto Intelligente Raspberry Pi Pico – Lezione 8: Servomotore e Inseguimento di Oggetti
Questa lezione del corso Raspberry Pi Pico Smart Car di Robojax esplora la funzionalità di un servomotore e come usarlo per creare un robot che segue oggetti o "segui la tua mano". Il progetto va oltre il semplice controllo del motore, dimostrando come combinare un sensore a ultrasuoni azionato da servo con una logica Python intelligente per creare un'auto che cerca attivamente e segue un oggetto nel suo raggio d'azione. Questo è un concetto fondamentale nella robotica, che ti consente di costruire progetti interattivi come un robot che segue una persona, un animale domestico intelligente che gioca a riportare, o una telecamera di sicurezza autonoma che traccia il movimento. La lezione copre anche un secondo progetto più semplice: un'auto che si avvicina automaticamente, spinge e si allontana da oggetti entro una specifica zona di distanza.
Hardware e Componenti
Questo progetto si basa sul kit auto Raspberry Pi Pico 4WD di SunFounder. I componenti chiave utilizzati in questa lezione sono:
- Scheda Raspberry Pi Pico
- Telaio Smart Car 4WD con motori
- Servomotore (idealmente un servo con ingranaggi in metallo per la durata)
- Sensore di distanza a ultrasuoni (HC-SR04)
- Scheda driver motori (parte del kit auto)
- LED RGB (per feedback visivo)
- Sorgente di alimentazione (pacco batterie per l'auto)
Il servomotore è il cuore della funzionalità di questa lezione. A differenza di un motore DC standard che gira continuamente, un servomotore è progettato per ruotare e mantenere una specifica posizione angolare, tipicamente tra 0 e 180 gradi. Questo lo rende perfetto per puntare con precisione il sensore a ultrasuoni. La qualità di un servo è spesso determinata dal materiale dei suoi ingranaggi (plastica vs. metallo) e dalla sua coppia, che ne determina la forza e la durata.
Come funziona
Il diagramma qui sotto spiega come funziona il codice.
Guida al Cablaggio
Il cablaggio per questa lezione è semplice, poiché si basa sul kit auto preassemblato. La connessione critica è il servomotore, che deve essere collegato a uno specifico pin GPIO sul Pico.
Nel video, l'istruttore collega il servo al pin numero 18 sul Raspberry Pi Pico. Il sensore a ultrasuoni è montato sulla parte superiore del braccio del servo, consentendogli di ruotare a sinistra e a destra per scansionare l'area. Il resto del cablaggio per i motori, il LED RGB e l'alimentazione si presume sia pre-collegato dalle lezioni precedenti del corso.
Per una guida visiva dettagliata, fare riferimento allo schema di cablaggio qui sotto.
Spiegazione del Codice
Il codice Python per questa lezione è costruito attorno a una libreria personalizzata pico_4wd, che semplifica interazioni hardware complesse. Le parti configurabili dall'utente si trovano all'inizio dello script e controllano il comportamento dell'auto.
Ecco le variabili chiave che puoi regolare per personalizzare il comportamento "segui la mano" del tuo robot:
car.RADAR_REFERENCE = 25: Questa è la distanza massima in centimetri che il sensore "vedrà". Qualsiasi oggetto oltre questa distanza viene ignorato. Puoi aumentarla per rendere l'auto più sensibile o diminuirla per richiedere un oggetto più vicino.car.RADAR_MAX_ANGLE = 45&car.RADAR_MIN_ANGLE = -45: Questi definiscono gli angoli più a sinistra (45) e più a destra (-45) che il servo scansionerà. Questo crea un campo visivo di 90 gradi davanti all'auto.car.RADAR_STEP_ANGLE = 10: Questo è l'incremento (in gradi) che il servo usa per muoversi tra i punti di scansione. Un passo più piccolo (es., 5) dà una risoluzione più fine ma richiede più tempo per completare una scansione completa. Un passo più grande (es., 15) scansiona più velocemente ma con minore precisione.MOTOR_FORWARD_POWER = 40: Questo imposta la potenza del motore (0-100) usata quando l'auto si muove in avanti verso l'oggetto rilevato. Regolalo per cambiare la velocità di inseguimento dell'auto.MOTOR_TURNING_POWER = 40: Questo imposta la potenza del motore usata quando l'auto gira per affrontare l'oggetto. Un valore più alto farà girare l'auto in modo più aggressivo.
La logica principale della funzione main() è un ciclo continuo. Prima chiama car.radar_scan(), che restituisce una stringa di '1' e '0' che rappresenta se un oggetto è stato rilevato a ciascun angolo di scansione (un '1' significa che un oggetto è entro la distanza di riferimento). Il codice poi analizza questa stringa per trovare il gruppo più grande di '1' consecutivi, che indica il centro dell'oggetto rilevato. In base a dove si trova questo centro nel campo di scansione, all'auto viene comandato di girare a sinistra, girare a destra o muoversi in avanti per allinearsi con l'oggetto e seguirlo.
Dimostrazione Live del Progetto
Il video fornisce una chiara dimostrazione del progetto in azione. L'istruttore esegue prima uno script di test per mostrare come il servomotore possa essere spostato ad angoli precisi come 90, 0 e -90 gradi. Questo è fondamentale per comprendere il range del servo e per montare correttamente il sensore a ultrasuoni.
Dopo aver montato il sensore, viene mostrata la funzione "segui la mano". Mentre l'istruttore muove la mano davanti all'auto, il sensore montato sul servo esegue una scansione a sinistra e a destra. La logica dell'auto elabora i dati del sensore e gira le ruote per sterzare verso la mano rilevata, seguendola efficacemente sul pavimento. La dimostrazione evidenzia come l'auto possa tracciare un oggetto mentre si muove e regolare la sua direzione di conseguenza. Viene mostrato anche un secondo progetto, in cui l'auto è programmata per avvicinarsi e spingere un oggetto se questo viene rilevato a una distanza compresa tra 10 e 20 centimetri, e per indietreggiare se l'oggetto si avvicina troppo (sotto i 10 centimetri).
Punti Chiave
Questa lezione è un'ottima introduzione all'uso dei servomotori per creare comportamenti robotici interattivi. Combinando un servo con un sensore di distanza, puoi costruire un robot con un "senso della vista" che può tracciare attivamente e rispondere al suo ambiente. La capacità di regolare parametri come angoli di scansione, dimensione del passo e potenza del motore consente un controllo preciso sul comportamento del robot, che è una competenza fondamentale per qualsiasi progetto di robotica.
Capitoli
- [00:00] Introduzione al Servomotore e all'Inseguimento di Oggetti
- [01:48] Caratteristiche e Capacità del Kit del Corso
- [03:08] Comprensione del Funzionamento del Servomotore
- [06:08] Test del Servomotore con Codice Python
- [09:59] Spiegazione della Funzione "Segui la Mano"
- [10:49] Dimostrazione della Funzionalità "Segui la Mano"
- [15:37] Progetto: Spinta e Arretramento da Oggetti
- [18:40] Dimostrazione del Progetto di Spinta di Oggetti
- [19:25] Conclusione e Prossimi Passi
Questo tutorial è parte di: SunFounder Rasberry Pi Pico Pico 4WD Smart Car Kit
- Corso Lezione 1 di 10: Kit Auto Intelligente 4WD Raspberry Pi Pico di SunFounder di Robojax
- Corso Lezione 2 di 10: Python di base per guidare il kit auto intelligente 4WD Raspberry Pi Pico
- Corso Lezione 3 di 10: Assemblaggio del Kit Auto Intelligente 4WD Raspberry Pi Pico di SunFounder di Robojax
- Corso Lezione 4 di 10: Scheda di espansione Raspberry Pi Pico per Kit Auto Intelligente 4WD
- Corso Lezione 5 di 10: Controllo del LED RGB WS2812B Utilizzando Raspberry Pi Pico
- Lezione 6 di 10 del Corso: Controllo dei Motori DC utilizzando il Kit Auto Intelligente 4WD Raspberry Pi Pico
- Lezione 7 di 10: Inseguimento della linea, Rilevamento del precipizio Calibrare il sensore in scala di grigi Auto Raspberry Pi Pico
- Corso Lezione 9 di 10: Evitamento degli ostacoli utilizzando l'auto intelligente 4WD Raspberry Pi Pico
- Corso Lezione 10 di 10: Controllo del Kit Auto Intelligente 4WD Raspberry Pi Pico con App mobile
# 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
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
Nessun file disponibile.