risorse | robodojo con mbot

RoboDojo con mBot

L'11 e 18 novembre 2018 CoderDojoFVG assieme ai volontari dell'associazione Famigliattiva di Palmanova ha organizzato il primo RoboDojo regionale (qui la pagina ufficiale dell'evento). In questa pagina ho raccolto il materiale tecnico che ho preparato per l'occasione.

Slide

Progetti mBlock

La tabella sottostante raccoglie i progetti realizzati a supporto della conduzione del RoboDojo, tutti verificati con mBlock v. 3.4.11 su Windows 7 e mBlock 4.0.4 su Ubuntu 16.04. Sono riferiti per nome nelle note delle slide.

NomeDescrizionev. 3.4.11v. 4.0.4
01-led_red.sb2accende i LED di rossodownloaddownload
02-led_red-temporized.sb2accende i LED di rosso per pochi secondidownloaddownload
03-led_flashing.sb2fa lampeggiare i LEDdownloaddownload
04-led_red-alternate-flashing.sb2fa lampeggiare i LED in modo alternatodownloaddownload
05-led_semaphore.sb2simula un semaforo temporizzatodownloaddownload
06-led_random-colors.sb2cambia colore ai LED ogni secondodownloaddownload
07-led_police-lights.sb2emula il lampeggiante della poliziadownloaddownload
08-buzzer_single-note.sb2suona una notadownloaddownload
09-buzzer_diatonic-scale.sb2suona la scala maggiore di dodownloaddownload
10-buzzer_police-siren.sb2riproduce la sirena della poliziadownloaddownload
11-buzzer_happy-birthday.sb2suona la melodia di “tanti auguri”downloaddownload
12-button_police-siren.sb2suona la sirena quando si preme il pulsantedownloaddownload
13-button_led-control.sb2accende i LED quando si preme il pulsantedownloaddownload
14-button_random-colors.sb2cambia colore ai LED quando si preme il pulsantedownloaddownload
15-button_led-control_optimized.sb2come #13, ottimizzatodownloaddownload
16-motor_forward-risky.sb2muove mBot in avanti (attenzione!)downloaddownload
17-motor_forward-safe.sb2muove mBot in avanti in modo sicurodownloaddownload
18-motor_trajectory-s.sb2muove mBot lungo una traiettoria a “S”downloaddownload
19-motor_trajectory-m.sb2muove mBot lungo una traiettoria a “M”downloaddownload
20-motor_1m-diameter-circle.sb2muove mBot su una circonferenza di 1m di diametrodownloaddownload
21-motor_random-walk.sb2fa compiere a mBot una passeggiata casualedownloaddownload
22-ultrasonic-sensor_theremin.sb2riproduce un theremindownloaddownload
23-ultrasonic-sensor_led-radar.sb2usa il colore dei LED per indicare la distanzadownloaddownload
24-ultrasonic-sensor_parking-sensor.sb2emula un sensore di parcheggiodownloaddownload
25-wall-avoidance_naive.sb2arresta mBot davanti agli ostacolidownloaddownload
26-wall-avoidance_simplified.sb2scansa-ostacoli con sterzatadownloaddownload
27-wall-avoidance_complete.sb2scansa-ostacoli con sterzata e retro-sterzatadownloaddownload
28-wall-avoidance_alternative.sb2scansa-ostacoli con rotazione sul postodownloaddownload
29-line-follower_naive.sb2inseguitore di lineadownloaddownload
30-line-follower.sb2inseguitore di linea con memoriadownloaddownload
31-line-follower_safety-distance_stop.sb2inseguitore con frenata di emergenzadownloaddownload
32-line-follower_safety-distance_adaptive-steps.sb2inseguitore con cruise control adattativo incrementaledownloaddownload
33-line-follower_safety-distance_adaptive-linear.sb2inseguitore con cruise control adattativo linearedownloaddownload

Scaletta di massima

Questa che segue è la scaletta che avevo preparato come canovaccio a supporto delle slide (qui l'originale in formato testuale). Per ragioni di tempo non mi è stato possibile seguirla passo per passo; in grigio sono riportati i punti che ho tralasciato.

Introduzione

Premesse

Introduzione a mBot

Primo programma - LED

Esercitazione

Intermezzo n. 1: sintesi additiva RGB

Intermezzo n. 2: la programmazione

Intermezzo n. 3: hardware, software e firmware

Secondo programma - Cicalino

Esercitazione

Prestazioni

La ridotta potenza di calcolo di mCore non consente di suonare la sirena e al contempo far lampeggiare i LED. La scheda non regge il confronto con un sistema “analogo” noto, per esempio iPhone 7:

mCore (ATMega328)iPhone 7 (A10)fattore
8 bit64 bit×8
1 core2 core(1)×2
16MHz2.34GHz×150
32KB flash32GB×1000000
2KB RAM2GB×1000000

(1) A10 ha 4 core ma vengono usati solo due alla volta; ha pure una GPU hexa-core.

Programma n. 3 - Pulsante

Individuare il pulsante di bordo, posto sulla parte anteriore della scheda.

Esercitazione

Montaggio di mBot

Programma n. 4 - Motori

Occorre fare attenzione quando si lavora con i motori. Senza i necessari accorgimenti può accadere che il robot si muova non appena il programma è stato trasferito su mCore. Se non si è pronti, si rischia di venir presi di sorpresa. Urti e cadute possono danneggiare mBot, usare le dovute cautele. Conviene anche prevedere un modo per arrestare i motori, per non essere costretti a spegnere mBot per fermarlo. La riprogrammazione in queste condizioni può rivelarsi particolarmente scomoda.

Esercitazione

Programma n. 5 - Sensore ultrasonico

Sfide

Programma n. 6 - Inseguimento della linea

Conclusioni

Spunti per esercitazioni supplementari

Altre risorse

Pagina modificata il 21/11/2018