Robot self balancing che sta in piedi con 4 LED

Ciao ragazzi, ormai mi conoscete eheheh e conoscete la mia paranoia sui LED Beh sono riuscito a concludere un tutorial abbastanza pregno sull'applicazione di due semplici sensori analogici basati su una coppia di LED mostrati nell'articolo di qualche giorno fa -> http://www.gioblu.com/tutorials/sensori/285-sensore-distanza-led-analogico

Con questo tutorial vedremo come costruire e programmare un robot self balancing senza aver bisogno di una IMU come nel tutorial del Filtro di Kalman -> http://www.gioblu.com/tutorials/programmazione/98-filtro-di-kalman-con-arduino, o di due sensori Sharp come nel tutorial sull'applicazione del calcolo differenziale della distanza -> http://www.gioblu.com/tutorials/robotica/100-self-balancing-robot-per-noobs-p

Eccolo -> http://www.gioblu.com/tutorials/robotica/295-robot-self-balancing-con-arduino-e-4-led

Ovviamente spero di ottenere consigli dai mostri sacri del forum. Vi auguro una buona giornata!

Spettacolo! Ricordo ancora la prima versione, l'avevi portata all'ArduinoCamp :D

Ovviamente spero di ottenere consigli dai mostri sacri del forum.

ahhhn, solo da loro? :P

E' vero avevo rimosso lo avevo portato :grin:!! Ed effettivamente hai ragione, non ha alcun senso la frase dei mostri sacri :grin:, chiunque abbia voglia dica la sua :grin:

EDIT: la primissima versione era questa: (ma qui uso ben due sensori Sharp - quasi 25 euro buttati nel xxxxx) http://www.youtube.com/watch?v=wMXOHRbkQsk

Ecco il primo degli ultimi: complimenti davvero ;) Una domanda: ma gli spostamenti sono casuali oppure gli hai dato anche un minimo di movimento sul piano?

No è random o meglio hehehe la cosa divertente è che la finitura del pavimento lo destabilizza, quindi diciamo che si muove in rapporto alle venature del mio parquet. Su un foglio bianco sta immobile, su una superficie cosi' poco omogenea invece ha un po' di sussulti, come puoi vedere meno che con la versione reverse biasing.

EDIT quello che sarebbe divertente provare è un array di sensori per ogni lato, per esempio 3 (cosi' da finire le 6 analogiche disponibili :grin:). Cosi' sarebbe di certo piu' stabile, anche se ovviamente verrebbe rallentato tutto il processo di azione...

E mettere 2 Tiny84, ognuno a gestire 3 coppie di led+motore per lato?

Sarebbe pazzesco!! Potrebbe anche seguire una linea credo a questo punto :grin: mentre sta in piedi (con 3 sensori) Sto pensando di integrare al PID un modulo predittivo, che capisca quando la percezione dell'inclinazione è falsata. Per esempio, puo' capitare che la percezione dell'inclinazione del robot venga falsata dalla luce ambientale o dalla finitura non omogenea del terreno e questo lo porta ad avanzare in una direzione...Sarebbe carino spiegargli che se sta avanzando in una direzione e la sua correzione non lo porta a rallentare deve correggere piu' del dovuto...

Cmq trovo che questo tipo di robot sia pazzesco e abbia possibili sviluppi tendenti a infinito :grin: :grin:

leo72: E mettere 2 Tiny84, ognuno a gestire 3 coppie di led+motore per lato?

Non credo che il controllo possa funzionare su ciascun motore indipendente dall altro. Devono essere coordinati. Ciao Uwe

Non saprei da dove cominciare ti lacio solo un feedback per il gran lavoro che hai fatto!

Complimenti.

gbm: Ovviamente spero di ottenere consigli dai mostri sacri del forum.

Complimenti per la realizzazione, però dagli un po di l-Dopa perché ha l'alzheimer :grin: Dopo la parte scherzosa la critica seria, scordati di fare con i led quello per cui è necessaria una IMU, pure buona, con la tua soluzione il limite rimane sempre l'impossibilità di salire/scendere una pendenza e di marciare a velocità che non siano pochi cm/s.

COMPLIMENTI.

Come riuscire a realizzare un bel progetto con il minimo delle risorse..... non sarà perfetto ma FUNZIONA !

E' così che si diventa GRANDI ! BRAVO.

PS: Ma i microservi li hai modificati per farli ruotare in continua VERO ?

ottimo rapporto costo/efficacia dei sensori ;)

Indubbiamente Astro ha ragione, non puo' percorrere una salita o una discesa per ovvi motivi!! Nei prossimi giorni vi postero' risultati migliori spero :grin:.

Grazie a tutti dei complimenti, per rispondere a GS si sono microservi modificati a rotazione continua e come vedi se la cavano piuttosto bene!

gbm: Nei prossimi giorni vi postero' risultati migliori spero :grin:.

Ogni giorno un robot si sveglia e sa che deve correre più veloce del suo creatore per non essere modificato. Ogni giorno un creatore si sveglia e sa che deve correre più veloce del suo robot se vuole prenderlo e modificarlo. Non importa se sei un robot o un creatore, comincia a correre.

Ok, ho sempre il coprocessore filosofico, e pure quello stocastico, in overflow :D

complimenti, anche il codice è steso bene

gbm: Nei prossimi giorni vi postero' risultati migliori spero :grin:.

Beh, visto dal giusto punto di vista, e cioè che hai usato 4 led, mi pare che tu abbia già fatto un lavoro coi czz, complimenti! il mio consiglio è: continua in questo studio dei led, tutto ciò che ne tirerai fuori che non sia luce sarà ben accetto dalla comunità, a patto di saperne riconoscere i limiti.

astrobeed: Ogni giorno un robot si sveglia e sa che deve correre più veloce del suo creatore per non essere modificato. Ogni giorno un creatore si sveglia e sa che deve correre più veloce del suo robot se vuole prenderlo e modificarlo. Non importa se sei un robot o un creatore, comincia a correre. Ok, ho sempre il coprocessore filosofico, e pure quello stocastico, in overflow :D

ROTFL grande adattamento della storia del leone e della gazzella, insuperabile la scena di Aldo Baglio in "Tre uomini e una gamba" XD XD XD

il problema di fondo dei sistemi a riflessione è che non è possibile astrarre il dato (distanza) dalla diversa riflettività dei materiali inquadrati e questo effetto si sente maggiormete a distanze più elevate anche perchè il segnale percepito si attenua con il quadrato della distanza, quindi l'errore cresce esponenzialmente. Anche sapendo a priori il colore degli oggetti puntati, in modo da poter compensare il valore della lettura in base alla riflettività di questo all'infrarosso, resta sempre il problema della finitura superficiale degli oggetti, un oggetto liscio e lucido riflette più luce di uno rugoso. Ma ogni cosa ha il suo ambito di utilizzo... e evidentemente in questo caso e per questa applicazione questi problemi sono trascurabili.

complimenti come al solito per la tua testardaggine. Sei un mito, con i led ci andrai sulla luna :)

senti posso comprare tutto il necessario da te, in modo da non dover cercare in giro ? on mi sembra sia possibile o sbaglio, tipo psso comprare gli erer, i servo,ma non la batteria. Quanto costa tutto ?

Ciao Testato, mandami una mail, se sei interessato posso farti avere in assoluta anteprima questo kit, ancora prima di aver stampato il packaging :grin:

Cmq, ieri sera invece che uscire ho lavorato fino a tardi su un algoritmo predittivo del tipo:
Se P = e 0 la I > 0 aggiungi 1, se I < 0 aggiungi -1, stupidissimo, e devo dire aiuta molto perchè spesso lo 0 varia per colpa della finitura / colore / luce ambientale del pavimento e questo valore sommato all’inclinazione aiuta a ridurre questo problema, utilizzando come “senso”, l’inerzia accumulata. In poche parole, se raggiungi l’equilibrio ma è stato accumulato del moto, il punto di equilibrio drifta nella direzione opposta al moto. So che assomiglia molto al lavoro che fa la I ma in questo caso, questo controllo viene variato e aggiornato solo quando il robot si trova in equilibrio, permettendogli di valutare dove sta sbagliando e in che direzione dovrebbe rivedere la sua percezione dell’inclinazione in rapporto alla velocità e alla direzione del moto attuale.

Ho lavorato sul setting di P e I, e ho ottenuto risultati migliori, il consiglio di Astro è stato molto utile. La smania di mostrarvelo mi ha impedito di settarlo con calma :grin:. Altra cosa, mi sono reso conto che sto facendo un calcolo differenziale su due distanze quando potrei usare gli angoli, e, conoscendo la distanza tra i due sensori, e le due distanze percepite posso determinare proprio l’angolo di inclinazione del robot, direi che è piu’ pulito rispetto a come siamo messi ora.

immagino che tu dai in pasto al PID la tua posizione... e se invece gli dai in pasto la tua velocità angolare? gli dici che vuoi ottenere un'inerzia pari a 0, e vedi che succede