
LEGO è sicuramente uno dei marchi più noti al mondo. Tra le numerose serie prodotte dalla casa danese, una che suscita particolare interesse tra gli hobbisti è LEGO Technic, che consente di realizzare piccoli veicoli in plastica. C’è poi un altro marchio che piace tanto a noi, ovvero Raspberry Pi. Ma cosa succede quando si mettono insieme le enormi potenzialità di queste due realtà? Una delle infinite risposte possibili è WallPi, un veicolo cingolato dotato di webcam e controllabile over IP.
Introduzione
Quando si acquista un kit LEGO Technic, il gioco consiste nell’assemblare un veicolo seguendo un libretto di istruzioni che descrive l’esatta sequenza di step partendo da una collezione di pezzi elementari, dai semplici mattoncini alle meccaniche e agli snodi, tutto rigorosamente in plastica. Una volta che il veicolo è stato assemblato, il gioco prosegue apportando modifiche al modello di base realizzato in maniera del tutto libera, eliminando alcune parti del veicolo che ci interessano meno e assemblandone di nuove. I veicoli sono poi spesso associati a kit di estensione che includono specifici motorini, di vario tipo e formato, che consentono di movimentare la struttura meccanica assemblata. Per la realizzazione di WallPi è stato scelto il kit 42038, mostrato in Figura 1, sulla base di raffinatissime considerazioni di alta ingegneria: il case del Raspberry Pi si adattava perfettamente, per forma e dimensioni, al suo vagone posteriore!

Figura 1: manuale del kit LEGO Techinc 42038. Il modello rappresentato, detto "Arctic Truck", è stato il punto di partenza per la realizzazione di WallPi.
Il modello finale di WallPi, mostrato in copertina, è evidentemente una semplificazione del veicolo di partenza: mentre sono stati mantenuti, seppure con qualche modifica, il vagone posteriore e la cabina di controllo, la struttura dei cingolati è stata semplificata ai minimi termini e resa rigida (nel senso che non è più possibile sterzare), molti dettagli puramente estetici, così come tutta la parte di trasmissione, sono stati rimossi per riciclarne i componenti o anche solo per alleggerire la struttura. Nel modello finale di WallPi, i cingolati vengono movimentati a partire dalle ruote anteriori cui sono direttamente applicati i due motorini DC, particolarmente evidenti in Figure 2 e 3: la rotazione del veicolo su sé stesso viene quindi ottenuta movimentando in senso opposto i due cingolati. Nella parte alta del veicolo, nella stessa Figura, è poi riconoscibile una struttura realizzata con lo scopo di consentire una ampia movimentazione verticale (tilt) della webcam: il servomotore è ben fissato al veicolo e i suoi terminali di controllo sono anch’essi, come quelli dei motori DC, riportati su un circuito controllato da Raspberry Pi.

Figura 2: modello finale di WallPi, vista frontale. I motorini, riconoscibili in basso, sono applicati direttamente alle ruote anteriori del cingolato.

Figura 3: modello finale di WallPi, vista laterale. Il servomotore, riconoscibile in alto, è dedicato al tilt di una struttura meccanica solidale alla webcam.
Elenco dei componenti
A questo punto, facciamo un elenco dei principali componenti, di qualunque natura, che sono stati necessari alla realizzazione di WallPi:
- LEGO 42038 – Arctic Truck;
- LEGO 88003 – Power Functions L-Motor (2x);
- LEGO 88004 – Power Functions Servo Motor;
- LEGO 8886 – Power Functions Extension Wire (2x);
- Raspberry Pi 2 Starter Kit (comprensivo di case e WiFi dongle, O.S. Raspbian Jessie);
- Webcam Logitech C170;
- USB Power Bank;
- Portabatterie per 8 Stilo AA;
- Breadboard a 300 fori;
- STMicroelectronics L298 - Dual Full Bridge Driver;
- Vishay Siliconix DG419 – Precision CMOS Analog Switches.
Come si può evincere facilmente, anche soltanto guardando i costi dei componenti LEGO, WallPi non è propriamente un campione di economia: con cifre paragonabili o addirittura più basse sono già disponibili sul [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 4581 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Nooooooooo!!! Non potete mixare i Lego e la Raspberry proprio sotto Natale…Ma sapete quanti soldi mi farete spendere? 🙂
A parte gli scherzi, complimenti per l’articolo, che e’ pieno di spunti interessanti.
Proprio in questi giorni mi e’ balzata in mente un’idea balzana, che ho visto, Googlando, essere gia’ diffusa in una certa qual misura.
Volevo studiare TensorFlow su RaspberryPI, allenando una rete neurale e usando il tutto con OpenCV. Questo potrebbe benissimo adattarsi proprio anche a questo progetto.
Grazie mille Riccardo 🙂
Sono assolutamente d’accordo con te: non appena hai messo in piedi qualcosa che può muoversi nelle due direzioni catturando allo stesso tempo le immagini dall’ambiente circostante ti viene quasi subito la voglia di provare a renderlo “intelligente”, elaborando quelle immagini magari anche soltanto per correggere i comandi dell’utente al fine di aggirare gli ostacoli o di evitare rovinose cadute da superfici elevate 😀
L’AI è sicuramente uno degli ambiti più interessanti dell’ingegneria di questi tempi e non c’è da dubitare che lo resterà ancora a lungo; oltretutto stanno emergendo una serie di strumenti e piattaforme che non vedo l’ora di provare! In particolare, mi viene in mente il Movidius NCS di Intel, che da poco pare supporti anche TensorFlow e che credo renderebbe il piccolo Raspberry Pi 2 di questo progetto adatto anche alle applicazioni di AI più ambiziose 🙂
Se ti interessa cmq, l’altro giorno ho trovato questo bel libro girando per gli scaffali di quel paradiso che e’ la Hoepli a Milano:
https://books.google.it/books/about/Beginning_Artificial_Intelligence_with_t.html?id=ZMcmDwAAQBAJ&printsec=frontcover&source=kp_read_button&redir_esc=y#v=onepage&q&f=false
Il libro costa veramente poco (lo trovi sia online sul sito della Hoepli o su Amazon.it a 14 euro, ma se lo prendi la’ (visto che lavori a Milano) costa intorno ai 10 euro) rispetto alla quantita’ di cose che spiega. Descrive l’uso diretto di TensorFlow direttamente in Python su Raspberry.
Carino.
Non conoscevo il Movidius, sembra molto interessante e infatti supporta anche TensorFlow come dicevi tu. Ora mi metto li’ e cerco di capire come funziona (se c’e’ del codice da scrivere, come spero, e come allenare la rete).
In realta’ ho sempre fatto progetti sulle reti neurali, ma mi piacerebbe avere una libreria fatta da me, magari usante TensorFlow, ma che giri nativa sul Linux della Raspberry.
Realizzare un proprio Wall-e con lego e Raspberry credo sia una idea geniale, tra l’altro l’articolo è spiegato benissimo in ogni sua forma! Anche io come Riccardo mi stavo cimentando sulle capacità di TensorFlow applicabili su una Raspberry-Pi3. Tra l’altro ho optato di sviluppare il tutto in ambiente “Android IoT” che mi sembra avere molto del potenziale e i vari componenti fisici di stamparli in 3D. 🙂
Grazie mille Matteo, troppo buono! =D La versione di Android per l’IOT non l’avevo mai sentita nominare prima…approfondirò, o quantomeno spero di riuscire presto a trovare un po’ di tempo da dedicarci! :\ Nel frattempo, dedicherei sicuramente un’attenta lettura ad un buon articolo sull’argomento TensorFlow/Android IOT 🙂
È un ambiente nato circa 2 anni fa, non è ancora molto conosciuto, ma a parer mio puoi davvero creare il mondo. 😀
Se sai programmare Android non avrai problemi e in caso contrario ci sono delle ottime guide che ti daranno degli ottimi input per realizzare davvero il mondo 😛
Puoi anche collegare schermo touch, videocamere, sensori di ogni genere… Da provare. 😉