Questo progetto realizza un sistema di controllo remoto atto a guidare a distanza un dispositivo di tipo IoT Linux-based attraverso un gamepad, in modo intuitivo ed efficiente. L’implementazione presentata all’esame in oggetto lo applica ad un robot LEGO MINDSTORMS EV3 (estensivamente studiato ai fini del progetto), ma per la sua natura modulare ed il codice ben strutturato può essere facilmente riadattata ad un qualunque dispositivo IoT basato su Linux ed in grado di collegarsi in modo wireless ad una rete locale, anche – e soprattutto - a bassa potenza di calcolo.
Il codice sorgente qui presente include:
Programmazione Python di un dispositivo LEGO MINDSTORMS EV3.pdf, la documentazione esaustiva presentata in sede d'esame durante la discussione del progetto nell'ambito del corso di Laboratory of Automatic Control con il prof. Michele Basso;client.pyeserver.py, i due programmi principali del sistema di controllo remoto;auto_nav_micro.pyeauto_nav_python.py, due script di navigazione autonoma ideati per confrontare le prestazioni dei due sistemi operativi supportati dal robot (LEGO MINDSTORMS EV3 MicroPython ed ev3dev);plot.py, uno script per la generazione di grafici a partire dai dati di logging, assieme ad alcuni plot esemplificativi da esso creati (cartellaplots);log.json, un file di log di esempio;demo.mp4, un breve video dimostrativo realizzato durante lo sviluppo del progetto in laboratorio.
Il sistema si avvale delle librerie SocketServer e inputs.