Innehållsförteckning:
- Steg 1: Vad vi kommer att behöva:
- Steg 2: Bygg …
- Steg 3: Lite extra information innan vi fortsätter
- Steg 4: Kod:
- Steg 5: Testning och slutsats
Video: Vinkelmätning med hjälp av gyro, accelerometer och Arduino: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:48
Enheten är en grov prototyp av vad som så småningom kommer att bli en självbalansrobot, detta är den andra delen av hålsaken (läs accelerometer och styr en motor för självbalans). Den första delen med endast gyro kan hittas här. På denna instruerbara mäter vi vinkeln med både gyro och accelerometer, och använder en teknik för att slå ihop båda sensorerna för att få en smidig signal. Tekniken kallas "kompletterande filter". Tidigare
Steg 1: Vad vi kommer att behöva:
Några delar kan bytas ut, och vissa ändringar i koden måste göras för att passa din hårdvara. På det här projektet kommer vi att använda:- Brödbräda- Mikrokontroller, jag använde Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (för accelerometern)- Nunchuck Wii-adapter för Arduino
Steg 2: Bygg …
Kretsen består av ett gyroskop som är anslutet direkt till port 0 på din arduino och en nunchuck wii -anslutning vid I2C -porten. Montering av gyro: 1. - anslut gyro på brödbrädan2. - tråd någonting:- Vo-stift från gyro ansluten till analog port0 på arduino (ljusorange ledare)- G-stift från gyro ansluten till jord (vit ledning)- V+ stift från gyro ansluten till Vdd (3.3V) (orange tråd) Montering accelerometern: 1. - Anslut adaptern vid nunchuck2. - anslut nunchuck på arduino med hjälp av adaptern3. - placera accelgivaren som bilden ovan
Steg 3: Lite extra information innan vi fortsätter
Från båda sensorerna kan vi mäta vinkeln men med hjälp av två olika tekniker. För att mäta vinkeln med gyro måste vi integrera signalen. Men varför måste vi göra detta? Eftersom gyro ger oss vinkelhastigheten, så är ett enkelt sätt att få vinkeln att ha vinkelhastigheten multiplicerad med tiden [vinkel = vinkel + w * dt] För att mäta vinkeln med en accelerometer måste vi känna gravitationen i varje accelerometerns axel, vad det betyder, projiceringen av gravitationens acceleration på varje sensorriktning ger oss en uppfattning om vinkeln. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Så varför ska vi använda två sensorer istället en? För att dra fördel av båda sensoregenskaperna. Om du tittar på grafiken för gyrodata kontinuerlig ökning, detta kallas drift och accelerometerdata förändras mycket på en liten tid. Och hur man slår ihop båda signalerna? Vi kommer att använda en teknik som kallas kompletterande filter. Jag vet inte den exakta teorin bakom detta, men det fungerar bra. Det finns lite information på internet, bara googla om du behöver mer information. Denna länk har mycket information och kan vara användbar. Filtered_angle = HPF*(filtered_angle + w*dt) + LPF*(angle_accel); där HPF + LPF = 1Värdena för HPF och LPF finns på denna länk, i filen filter.pdf. Tack ni från "The DIY Segway". Bara för teständamål kommer vi att ställa in dessa värden så här, HPF = 0,98 och LPF = 0,02.
Steg 4: Kod:
Koden är en anpassning från en kod som jag använde i ett annat projekt. Förmodligen finns det några variabler som inte används. Jag använde ett bibliotek för att läsa nunchuckdata från https://todbot.com/blog/. Tack Tod E. Kurt. Kommentarer om koden är på portugisiska, så snart jag har ledig tid kommer jag att översätta den. Kodutmatningen genom serienumret några nummer med detta mönster: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Så du kan spara dessa värden på en seriell terminal och plotta en grafik eller använda vinkeln för andra saker. om du behöver någon förklaring om koden blev du fri att fråga. Koden är dragkedja. Koppla bara av, öppna och ladda upp den till din arduino.
Steg 5: Testning och slutsats
För att testa systemet sparade jag data med ett program som heter Termite, importera sedan dessa data till excel och plotta grafiken för att se hur bra mitt filter är. Resultaten är fantastiska. Självklart kan du använda signalen för att driva en motor eller andra saker. Alla kommentarer, tvivel, all information som saknas, berätta bara för mig och jag rättar den. Snälla, om du gillar det här, betygsätt. Tack alla.
Rekommenderad:
Arduino Control DC -motorhastighet och riktning med hjälp av en potentiometer, OLED -display och knappar: 6 steg
Arduino Control DC -motorhastighet och riktning med hjälp av en potentiometer, OLED -display och knappar: I denna handledning lär vi oss hur man använder en L298N DC MOTOR CONTROL -drivrutin och en potentiometer för att styra en DC -motorhastighet och riktning med två knappar och visa potentiometervärdet på OLED -skärmen. Se en demonstrationsvideo
DC -motor Smidig start, hastighet och riktning med hjälp av en potentiometer, OLED -display och knappar: 6 steg
DC -motor smidig start, hastighet och riktning med hjälp av en potentiometer, OLED -skärm och knappar: I denna handledning lär vi oss hur man använder en L298N DC MOTOR CONTROL -drivrutin och en potentiometer för att styra en likströmsmotor, mjuk start, hastighet och riktning med två knappar och visa potentiometervärdet på OLED -skärmen. Se en demonstrationsvideo
Arduino Control DC -motorhastighet och riktning med hjälp av en potentiometer och knappar: 6 steg
Arduino Control DC -motorvarvtal och -riktning med hjälp av en potentiometer och knappar: I denna handledning lär vi oss hur man använder en L298N DC MOTOR CONTROL -drivrutin och en potentiometer för att styra en DC -motorhastighet och riktning med två knappar. Se en demonstrationsvideo
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse .: 6 steg
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse.: Denna instruktion förklarar hur man gör Arduino -robot som kan flyttas i önskad riktning (framåt, bakåt , Vänster, höger, öst, väst, norr, syd) krävs Distans i centimeter med röstkommando. Roboten kan också flyttas autonomt
Gestkontrollerad Rover med hjälp av en accelerometer och en RF-sändare-mottagarpar: 4 steg
Gestkontrollerad rover med hjälp av en accelerometer och en RF-sändare-mottagare Par: Hej där, någonsin önskat att bygga en rover som du kunde styra med enkla handgester men aldrig kunde våga våga sig in i komplexet med bildbehandling och koppla ihop en webbkamera med din mikrokontroller, för att inte tala om uppförsbacken