Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a omaggi e promozioni festive.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
Auto a guida autonoma¶
Questo progetto è una combinazione dei due progetti 6. Gioca con il Modulo Ultrasonico e 5. Gioca con il Modulo di Evitamento degli Ostacoli. Due moduli a infrarossi evitano ostacoli a breve distanza o ai bordi, mentre i moduli a ultrasuoni rilevano ostacoli a lunga distanza per garantire che l’auto non colpisca ostacoli durante il processo di guida autonoma.
Componenti necessari
In questo progetto, avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
OGGETTI NEL KIT |
LINK |
|---|---|---|
Kit 3 in 1 |
380+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK D’ACQUISTO |
|---|---|
- |
|
- |
|
Cablaggio
Collega il modulo a ultrasuoni e i due moduli di evitamento ostacoli IR contemporaneamente.
Collega l’ultrasuono alla scheda R3 come segue.
Modulo a ultrasuoni |
Scheda R3 |
|---|---|
Vcc |
5V |
Trig |
3 |
Echo |
4 |
Gnd |
GND |
Il cablaggio dei due moduli IR di evitamento ostacoli alla scheda R3 è il seguente.
Modulo IR sinistro |
Scheda R3 |
|---|---|
OUT |
8 |
GND |
GND |
VCC |
5V |
Modulo IR destro |
Scheda R3 |
|---|---|
OUT |
7 |
GND |
GND |
VCC |
5V |
Codice
Nota
Apri il file
8.self_driving_car.inonel percorso3in1-kit\car_project\8.self_driving_car.Oppure copia questo codice nell’IDE Arduino.
Oppure carica il codice tramite l”Arduino Web Editor.
L’auto guiderà liberamente una volta che il codice sarà stato caricato correttamente. Quando i moduli IR su entrambi i lati rilevano un ostacolo, l’auto si muoverà nella direzione opposta per evitare emergenze; se c’è un ostacolo entro 2~10 cm davanti all’auto, farà retromarcia a sinistra, regolerà la direzione e poi procederà in avanti.
Come funziona?
Il flusso di lavoro di questo progetto è il seguente.
Leggi prioritariamente il valore dei moduli IR sinistro e destro per l’evitamento ostacoli.
Se il modulo IR sinistro restituisce 0 (ostacolo rilevato) e il modulo IR destro restituisce 1, fai retromarcia a sinistra.
Se il modulo IR destro restituisce 0 (ostacolo rilevato), fai retromarcia a destra.
Se entrambi i moduli IR rilevano un ostacolo contemporaneamente, l’auto farà retromarcia.
Altrimenti, leggi la distanza rilevata dal modulo a ultrasuoni.
Se la distanza è maggiore di 50 cm, l’auto avanzerà.
Se la distanza è tra 2 e 10 cm, l’auto farà retromarcia prima di girare.
Se la distanza è tra 10 e 50 cm, l’auto avanzerà a bassa velocità.
void loop() {
int left = digitalRead(leftIR); // 0: Obstructed 1: Empty
int right = digitalRead(rightIR);
if (!left && right) {
backLeft(150);
} else if (left && !right) {
backRight(150);
} else if (!left && !right) {
moveBackward(150);
} else {
float distance = readSensorData();
Serial.println(distance);
if (distance > 50) { // Safe
moveForward(200);
} else if (distance < 10 && distance > 2) { // Attention
moveBackward(200);
delay(1000);
backLeft(150);
delay(500);
} else {
moveForward(150);
}
}
}