Inizio con questo post a documentare un progettino che mi ha occupato nel tempo libero per circa 3 mesi. Era quasi una sfida personale riuscire a progettare e realizzare un progetto di self balancing robot, ovvero un dispositivo in grado di mantenersi in equilibrio su 2 ruote basandosi sui principi del pendolo inverso.
Avendo concluso l'università da quasi un ventennio, ho ben presto realizzato quanto le mie competenze nel campo della matematica e della fisica, necessarie per questo progetto, fossero ormai svanite e ridotte praticamente a zero. Sono uno sviluppatore, lo faccio di professione, programmare Arduino è facile per me quanto preparare un caffè, ma qui la sfida vera e propria era riuscire a realizzare il tutto senza tornare pesantemente sui libri di scuola.
A dispetto di quanto si può facilmente trovare in rete, dove la problematica viene affrontata e spiegata a colpi di teoremi di fisica e matematica, il mio obiettivo era basarsi su pochi concetti e arrivare a una soluzione del problema in modo sperimentale, per successivi tentativi, senza troppe formule e simulazioni a tavolino.
Il percorso è stato molto lungo, perchè a differenza dei molti problemi di ingegneria del software che quotidianamente seguo, in questo caso la soluzione del problema era non solo legata alla pura traduzione di algoritmi in codice, ma al trovare la giusta ed unica combinazione di variabili necessarie a permettere al sistema di ottenere la situazione di equilibrio e di riportarla in tutti i casi in cui l'equilibrio venisse alterato.
Gli errori sono stati molti, forse inevitabili, e cercherò di documentarli qui nei prossimi post il più possibile.
Da dove partire? Cosa serve?
Per la realizzazione del progetto servono relativamente poche cose:
- un microcontroller Arduino
- 2 motoriduttori con encoder
- una scheda controller per i motori
- una IMU (non la tassa!)
- minuteria elettronica: qualche resistenza, dei led, interruttori e pulsanti
- 2 ruote, nel mio caso ottenute in pieno stile DIY (Do It Yourself)
- ovviamente un computer dove programmare
- tanto ma tanto tempo (ed altrettanta pazienza).
Nel prossimo post: quali motori scegliere
Nessun commento:
Posta un commento