INHOUDSOPGAWE:

Hoekmeting met behulp van gyro, versnellingsmeter en Arduino: 5 stappe
Hoekmeting met behulp van gyro, versnellingsmeter en Arduino: 5 stappe

Video: Hoekmeting met behulp van gyro, versnellingsmeter en Arduino: 5 stappe

Video: Hoekmeting met behulp van gyro, versnellingsmeter en Arduino: 5 stappe
Video: Tek Tok late night 7 Technologietrends en onderwijs deel 2 2024, Julie
Anonim
Hoekmeting met behulp van Gyro, versnellingsmeter en Arduino
Hoekmeting met behulp van Gyro, versnellingsmeter en Arduino

Die toestel is 'n rowwe prototipe van wat uiteindelik 'n selfbalansrobot sal word; dit is die tweede deel van die gat (lees versnellingsmeter en beheer 'n motor om self te balanseer). Die eerste deel met slegs die gyro kan hier gevind word. Op hierdie instruksies sal ons die hoek meet met behulp van beide gyro en versnellingsmeter, en met behulp van 'n tegniek om beide sensors saam te smelt om 'n gladde sein te kry. Die tegniek word "aanvullende filter" genoem. Vorige

Stap 1: Wat ons nodig het:

Wat ons nodig het
Wat ons nodig het
Wat ons nodig het
Wat ons nodig het
Wat ons nodig het
Wat ons nodig het
Wat ons nodig het
Wat ons nodig het

'N Gedeelte kan vervang word, en 'n paar wysigings aan die kode moet aangebring word om by u hardeware te pas. Op hierdie projek gebruik ons:- Broodbord- Mikrocontroller, ek gebruik die Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (vir die versnellingsmeter)- Nunchuck Wii-adapter vir Arduino

Stap 2: Bou …

Bou…
Bou…
Bou…
Bou…
Bou…
Bou…

Die kring bestaan uit 'n gyroscoop wat direk aan poort 0 by u arduino gekoppel is en 'n nunchuck wii -aansluiting by die I2C -poort. - prop die gyro aan die broodbord2. - draad ooit ding:- Vo pin van gyro gekoppel aan analoog poort 0 by arduino (lig oranje draad)- G pin van gyro gekoppel aan grond (wit draad)- V+ pen van gyro gekoppel aan Vdd (3.3V) (oranje draad) Montering die versnellingsmeter: 1. - steek die adapter by die nunchuck2. - prop die nunchuck by die arduino met die adapter3. - plaas die akselsensor soos op die foto hierbo

Stap 3: 'n Paar ekstra inligting voordat ons verder gaan

'N Paar ekstra inligting voordat ons verder gaan
'N Paar ekstra inligting voordat ons verder gaan
'N Paar ekstra inligting voordat ons verder gaan
'N Paar ekstra inligting voordat ons verder gaan
'N Paar ekstra inligting voordat ons verder gaan
'N Paar ekstra inligting voordat ons verder gaan

Van beide sensor kan ons die hoek meet, maar met behulp van twee verskillende tegnieke. Om die hoek te meet met behulp van die gyro, moet ons die sein integreer, maar waarom moet ons dit doen? Omdat die gyro ons die hoeksnelheid gee, is 'n eenvoudige manier om die hoek te kry, die hoeksnelheid vermenigvuldig met die tyd [hoek = hoek + w * dt] Om die hoek te meet met behulp van 'n versnellingsmeter, moet ons die swaartekrag in elke as van die versnellingsmeter, wat dit beteken, gee die projeksie van die gravitasieversnelling in elke rigting van die sensor ons 'n idee van die hoek. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Waarom gebruik ons dan twee sensors in plaas daarvan een? Om voordeel te trek uit albei sensoreienskappe. As u na die grafiek kyk, word die gyrodata deurlopende toename genoem, dit word drift genoem en die versnellingsmeter se data verander baie op 'n klein tydstip. En hoe kan u beide seine saamsmelt? Ek weet nie die presiese teorie hieragter nie, maar dit werk goed. Daar is 'n paar inligting op die internet, google dit net as u meer inligting benodig. Hierdie skakel het baie inligting en kan nuttig wees.filtered_angle = HPF*(filtered_angle + w*dt) + LPF*(angle_accel); waar HPF + LPF = 1 Die waardes van HPF en LPF kan gevind word by hierdie skakel, op die filter.pdf lêer. Dankie julle van "The DIY Segway". Net vir toetsdoeleindes stel ons hierdie waardes soos volg, HPF = 0.98 en LPF = 0.02.

Stap 4: Kode:

Die kode is 'n aanpassing van 'n kode wat ek op 'n ander projek gebruik het. Waarskynlik is daar 'n paar veranderlikes wat nie gebruik word nie. Ek het 'n biblioteek gebruik om die nunchuck -data van https://todbot.com/blog/ te lees. Dankie Tod E. Kurt. Die kommentaar op kode is in Portugees, sodra ek vrye tyd het, sal ek dit vertaal. filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Sodat u hierdie waardes op 'n seriële terminale kan stoor en 'n grafiek kan uitbeeld of die hoek kan gebruik vir ander dinge. met rits. Maak net oop, maak dit oop en laai dit op na u arduino.

Stap 5: Toetsing en gevolgtrekking

Toetsing en gevolgtrekking
Toetsing en gevolgtrekking
Toetsing en gevolgtrekking
Toetsing en gevolgtrekking

Om die stelsel te toets, het ek die data gestoor met 'n program genaamd Termite, en dan hierdie data in Excel ingevoer en 'n grafiese grafiek gemaak om te sien hoe goed my filter is. Die resultate is verstommend. U kan natuurlik die sein gebruik om 'n motor te bestuur of ander dinge. Enige kommentaar, enige twyfel, enige inligting ontbreek, vertel my net en ek stel dit reg. As u hiervan hou, beoordeel dit. Dankie almal.

Aanbeveel: