11-Il Pilota Remoto (Controllo Radio con Joystick) πΉοΈποΈ β
Fase 1: Brainstorming e Teoria π§ β
Domanda alla classe: "Qual Γ¨ la differenza tra l'interruttore della luce di casa e la manopola del volume dello stereo?"
Digitale vs Analogico: Un pulsante normale (Digitale) dice solo ACCESO (1) o SPENTO (0). Il Joystick Γ¨ Analogico: ci dice esattamente in che posizione si trova, restituendo un numero da 0 a 1023.
Gli Assi: Il joystick si muove su due linee immaginarie:
- Asse X (Orizzontale): Destra e Sinistra.
- Asse Y (Verticale): Su e GiΓΉ.
- Quando lasciamo la levetta al centro (a riposo), il valore non Γ¨ 0, ma Γ¨ esattamente a metΓ strada: circa 512.
Il Segreto della "Zona Morta": Le molle del joystick non sono perfette. Al centro potrebbero leggere 505 o 525. Se dicessimo al robot "Fermati solo se leggi 512", il robot tremerebbe di continuo! Per questo, nel codice, creeremo una "Zona Morta" di sicurezza (tra 400 e 600): in questo spazio, il robot ignorerΓ i comandi e resterΓ fermo.
Fase 2: Il Trasmettitore (Programmare il Joystick)π» β
Prendiamo il primo Micro:bit (il telecomando). Qui tradurremo i movimenti fisici della levetta, letta attraverso i Pin, in numeri segreti da inviare via radio. (Nota: verificate lo schema elettrico. Solitamente l'asse X Γ¨ su P1 e l'asse Y Γ¨ su P2, o viceversa).
| Sezione | Blocco | Azione e Funzione |
|---|---|---|
| Radio | on start | radio set group 11(Il canale privato! Ogni gruppo in classe deve avere un numero diverso per non pilotare le macchine degli altri). |
| Basic | forever | Il ciclo di ascolto continuo. |
| Logic | if... | if (analog read pin P4) > 700 then(Se spingo Su) radio send number 1 |
| Logic | else if... | else if (analog read pin P4) < 300 then(Se spingo GiΓΉ) radio send number 2 |
| Logic | else if... | else if (analog read pin P3) > 700 then(Se spingo in Destra) radio send number 3 |
| Logic | else if... | else if (analog read pin P3) < 300 then(Se spingo Sinistra) radio send number 4 |
| Logic | else | else(La Zona Morta: se il joystick Γ¨ al centro tra 400 e 600) radio send number 0 |
Fase 3: Il Ricevitore (Programmare la Mini Car)π» β
Mettiamo da parte il telecomando e prendiamo il secondo Micro:bit (quello da inserire nel robot). Questo non deve leggere nessun joystick: deve solo "ascoltare" la radio ed eseguire gli ordini!
| Sezione | Blocco | Azione e Funzione |
|---|---|---|
| Radio | on start | radio set group 11(Fondamentale: deve essere identico al numero scelto per il joystick!) |
| Radio | on radio received | on radio received receivedNumber(Questo blocco si sveglia solo quando arriva un pacchetto radio). |
| Logic | if... | if receivedNumber = 1 then motor All Forward speed 100 |
| Logic | else if... | else if receivedNumber = 2 then motor All Backward speed 100 |
| Logic | else if... | else if receivedNumber = 4 then motor All Turn_Right speed 100 |
| Logic | else if... | else if receivedNumber = 3 then motor All Turn_Left speed 100 |
| Logic | else | else motor All Forward speed 0 (Freno!). |
Fase 4: Collaudo, Cablaggio e "Tuning" π§ β
Questa Γ¨ la fase dove i ragazzi si trasformano in veri ingegneri e affrontano i problemi del mondo reale.
- Controllo del Cablaggio (Joystick Micro:bit):
- Assicurarsi che il filo del GND sia su GND e il VCC/3V sia sui 3 Volt.
- Verificare che l'asse X (VRx) sia nel pin giusto (es. P3) e l'asse Y (VRy) nel pin giusto (es. P4).
- Debugging Attivo (Problem Solving in Classe):
- Problema: "Prof, spingo in avanti ma la macchina va a sinistra!"
- Causa: Assi invertiti! Il filo dell'asse Y Γ¨ stato collegato al Pin che il codice crede sia l'asse X.
- Soluzione Hardware: Scambiate fisicamente i fili di P3 e P4 sul Micro:bit del joystick.
- Problema: "Spingo in avanti e la macchina va all'indietro!"
- Causa: Il joystick Γ¨ montato capovolto, oppure la logica dei numeri 3 e 4 Γ¨ invertita.
- Soluzione Software: Sul codice del Robot, scambiate le istruzioni
ForwardeBackwarddentro gliifdei numeri 3 e 4.
π Bonus didattico a fine lezione: β
Fate notare ai ragazzi la pulizia del codice: il Micro:bit sulla macchina non sa cos'Γ¨ un joystick e non sa cos'Γ¨ una "zona morta". Fa solo quello che gli dice il numero in arrivo. Γ il Micro:bit del telecomando ad essere il vero "Cervello" che fa tutti i calcoli matematici!.