Ciao,
l'idea mi sembra molto affascinante e anche io sto da pochi giorni provando a realizzare un segway "fatto in casa". Vi racconto i passi che ho fatto finora, magari possono esservi utili:
Hardware utilizzato fino ad ora:
Arduino Leonardo
Triple axis gyroscope and accelerometer sen-11028
Arduino Motor Shield 3
Calcolo dell'angolo di inclinazione.
Prima di tutto mi sono posto il problema di come estrarre l'informazione dell'angolo e quindi ho fatto una ricerca sui vari giroscopi ed accelerometri con relativa teoria di calcolo. Dopo una breve ricerca e un po' di ragionamento viene da se che utilizzando le due misure, giroscopio e accelerometro, insieme è la cosa migliore. Per fare questo si possono usare varie board che si trovano sul mercato e che in maniera relativamente semplice comunicano i valori grezzi (raw) degli angoli misurati. Il problema di lavorare con dati grezzi è che vanno elaborati per arrivare ad una misura espressa in gradi.
Io ho scelto quindi una board della sparkfun (
https://www.sparkfun.com/products/11028) il sen-11028 con chip MPU6050. Questo ha un processing a bordo e quindi fornisce direttamente i valori in gradi degli angoli misurati dal giroscopio e dall'accelerometro. Per unire i due contributi ho scelto il filtro complementare e sono arrivato ad una misura che mi sembra molto valida e stabile. Ovviamente ha un po di offset (circa 1,5°) che ovviamente si può correggere o manualmente (magari con un potenziometro) oppure con qualche algoritmo che ancora non ho provato.
Il tutto lo estraggo usando una board Arduino Leonardo.
Software di controllo
Al momento sto iniziando le prime prove a pilotare dei piccoli motori elettrici in funzione dei valori dell'angolo. In particolare con angolo bassi vario la direzione dei motori ed uso velocità basse, con angoli più grandi aumento proporzionalmente la velocità e sempre la direzione.
Il problema ora è più di rapporti ed ingranaggi per avere la la giusta torsione al momento appropriato e qui io vacillo un po' essendo un ingegnere elettronico

Saluti,
Manuel