Sommario:
- Passaggio 1: cosa ci servirà:
- Passaggio 2: costruzione…
- Passaggio 3: alcune informazioni aggiuntive prima di procedere
- Passaggio 4: codice:
- Passaggio 5: test e conclusione
Video: Misurazione dell'angolo con giroscopio, accelerometro e Arduino: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:06
Il dispositivo è un prototipo approssimativo di quello che alla fine diventerà un robot di autobilanciamento, questa è la seconda parte della faccenda del buco (leggere l'accelerometro e controllare un motore per l'autobilanciamento). La prima parte con solo il giroscopio può essere trovata qui. Su questa istruzione misureremo l'angolo utilizzando sia il giroscopio che l'accelerometro e utilizzando una tecnica per unire entrambi i sensori per ottenere un segnale uniforme. La tecnica si chiama "filtro complementare".precedente
Passaggio 1: cosa ci servirà:
Alcune parti possono essere sostituite e alcune modifiche al codice devono essere apportate per adattarsi al tuo hardware. In questo progetto utilizzeremo:- Breadboard- Microcontrollore, ho usato la scheda Arduino- Wire- Jumper Wires- Giroscopio XV-8100- Nunchuck Wii (per l'accelerometro)- Adattatore Wii Nunchuck per Arduino
Passaggio 2: costruzione…
Il circuito è costituito da un giroscopio collegato direttamente alla porta 0 del tuo arduino e un nunchuck wii connesso alla porta I2C. Assemblaggio del giroscopio:1. - collegare il giroscopio alla breadboard2. - filo per ogni cosa:- pin Vo dal giroscopio collegato alla porta analogica 0 su arduino (filo arancione chiaro)- pin G dal giroscopio collegato a massa (filo bianco)- pin V+ dal giroscopio collegato a Vdd (3,3 V) (cavo arancione) Assemblaggio l'accelerometro: 1. - collegare l'adattatore al nunchuck2. - collegare il nunchuck all'arduino utilizzando l'adattatore3. - posiziona il sensore di accelerazione come nella foto sopra
Passaggio 3: alcune informazioni aggiuntive prima di procedere
Da entrambi i sensori possiamo misurare l'angolo ma usando due tecniche distinte. Per misurare l'angolo usando il giroscopio dobbiamo integrare il segnale. Ma perché dobbiamo farlo? Poiché il giroscopio ci dà la velocità angolare, quindi un modo semplice per ottenere l'angolo è moltiplicare la velocità angolare per il tempo [angolo = angolo + w * dt]Per misurare l'angolo usando un accelerometro dobbiamo percepire la gravità in ogni asse dell'accelerometro, cosa significa, la proiezione dell'accelerazione di gravità su ogni direzione del sensore ci danno un'idea dell'angolo. [angle_accel = arctg(Ay / sqrt(Ax^2 + Az^2))]Allora perché useremo due sensori invece di uno? Per sfruttare entrambe le proprietà del sensore. Se guardi il grafico, i dati del giroscopio aumentano continuamente, questo si chiama deriva ei dati dell'accelerometro cambiano molto in poco tempo. E come unire entrambi i segnali? Useremo una tecnica chiamata filtro complementare. Non conosco la teoria esatta dietro questo, ma funziona bene. Ci sono alcune informazioni su Internet, basta cercarle su Google se hai bisogno di maggiori informazioni. Questo collegamento contiene molte informazioni e può essere utile.filtered_angle = HPF*(filtered_angle + w* dt) + LPF*(angle_accel); dove HPF + LPF = 1I valori di HPF e LPF si trovano a questo link, nel file filter.pdf. Grazie ragazzi di "The DIY Segway". Solo a scopo di test imposteremo questi valori in questo modo, HPF = 0,98 e LPF = 0,02.
Passaggio 4: codice:
Il codice è un adattamento di un codice che ho usato su un altro progetto. Probabilmente ci sono alcune variabili inutilizzate. Ho usato una libreria per leggere i dati del nunchuck da https://todbot.com/blog/. Grazie Tod E. Kurt. I commenti sul codice sono in portoghese, appena ho tempo libero lo traduco. Il codice emette attraverso la linea seriale alcuni numeri con questo schema:dt: w: teta: pitch: filter_teta $time:angular_velocity:gyro_angle:accel_angle:filtered_angle$Quindi puoi salvare questi valori su un terminale seriale e tracciare un grafico o usare l'angolo per altre cose. Se hai bisogno di spiegazioni sul codice non esitare a chiedere. Il codice è zippato. Basta decomprimerlo, aprirlo e caricarlo sul tuo arduino.
Passaggio 5: test e conclusione
Per testare il sistema ho salvato i dati utilizzando un programma chiamato Termite, quindi importare questi dati su excel e tracciare il grafico per vedere quanto è buono il mio filtro. I risultati sono sorprendenti. Ovviamente puoi usare il segnale per guidare un motore, o altre cose. Qualsiasi commento, dubbio, informazione mancante, dimmelo e lo correggo. Per favore, se ti piace, vota. Grazie a tutti.
Consigliato:
WetRuler - Misurazione dell'altezza dell'oceano: 8 passaggi (con immagini)
WetRuler--Misurazione dell'altezza dell'oceano: L'annuncio è arrivato all'inizio di questa estate che l'area in Alaska chiamata Prince William Sound sarebbe stata inaspettatamente colpita da uno tsunami innescato dal riscaldamento globale. Gli scienziati che hanno fatto la scoperta hanno indicato un'area di ghiaccio in rapida ritirata che ha
Accelerometro/giroscopio per controller Xbox 360 Mod: 7 passaggi
Accelerometro/giroscopio per controller Xbox 360: ho giocato ad Assetto Corsa con il mio controller Xbox 360. Sfortunatamente, lo sterzo con lo stick analogico è molto ingombrante e non ho lo spazio per una configurazione delle ruote. Ho provato a pensare a come potrei inserire un meccanismo di sterzo migliore in t
Simulatore di gioco per smartphone: gioca a giochi per Windows utilizzando il controllo gestuale IMU, accelerometro, giroscopio, magnetometro: 5 passaggi
Simulatore di gioco per smartphone: gioca a giochi per Windows utilizzando il controllo gestuale IMU, accelerometro, giroscopio, magnetometro: supporta questo progetto: https://www.paypal.me/vslcreations donando a codici open-source & supporto per un ulteriore sviluppo
Arduino Nano e Visuino: convertire l'accelerazione in angolo da accelerometro e giroscopio MPU6050 Sensore I2C: 8 passaggi (con immagini)
Arduino Nano e Visuino: convertire l'accelerazione in angolo da accelerometro e giroscopio MPU6050 Sensore I2C: Tempo fa ho pubblicato un tutorial su come collegare l'accelerometro, il giroscopio e il sensore bussola MPU9250 ad Arduino Nano e programmarlo con Visuino per inviare dati a pacchetto e visualizzare su un oscilloscopio e strumenti visivi. L'accelerometro invia X, Y
Arduino Nano: Accelerometro Giroscopio Bussola MPU9250 Sensore I2C con Visuino: 11 passaggi
Arduino Nano: Accelerometro Giroscopio Bussola Sensore MPU9250 I2C con Visuino: MPU9250 è uno dei più avanzati sensori combinati accelerometro, giroscopio e bussola di piccole dimensioni attualmente disponibili. Hanno molte funzionalità avanzate, tra cui il filtro passa basso, il rilevamento del movimento e persino un processore specializzato programmabile