Mäta lutning med en MPU6050, accelerometer + gyroskop

Mäta lutning med en MPU6050, accelerometer + gyroskop

Robotar som rör sig på något sätt, eller som blir förflyttade av omgivningen, kan dra nytta av att veta i vilken riktning eller vinkel de befinner sig. Genom att känna till accelerationen och lutningen kan tex en drönare blixtsnabbt justera kraften till de olika motorerna för att hålla sig plan i luften.

En MPU6050 är en mikrokontroller med accelerometer, gyroskop och temperatursensor. Den har också en processor för att förfina rådatan från sensorerna till högkvalitativ data som vi kan använda. Kombinationen av accelerometer och gyroskop gör att processorn kan filtrera ut brus från sensorerna och leverera en högre datakvalitet.

Att använda en MPU6050 är mycket enkelt. De sitter ofta monterade på ett kort med spänningsregulering mm. Sensorn på bilden hittade vi i en gammal gimbal för drönarfotografering. Det finns en massa olika varianter på kort med MPU6050, så det är bara att välja ett som passar det du vill ha den till.

Kommunikationen med MPU6050 sker över I2C som är en vanlig standard som de flesta plattformar kan prata. I det här exemplet använder jag en ESP8266 på ett NodeMCU-kort och Arduino-ramverket för att programmera den. Det jag behövde göra för att få igång sensorn var helt enkelt att koppla in GND till jord, 5V till spänning (jag använde 3,3 V för det är vad mitt kort går på och det verkar fungera fint men beror på vilket kort din MPU6050 sitter på), SDA till D1(?) och SDC till D2(?) på NodeMCU (standardpinnarna för I2C-kommunikation).

Det finns mängder av färdiga bibliotek till Arduino för att läsa av den här sensorn. Jag har dock hittat ett bibliotek som även kan räkna ut vilken vinkel kretsen befinner sig i. Alla bibliotek har inte det inbyggt utan ger bara acceleration och gyro-värden för respektive axel. Biblioteket som jag har hittat heter MPU6050_light.

Som du ser i exemplet så kan du anropa GetAngle för att få ut vinkeln på sensorn. Tänk på att om du vill ha ut Z-vinkeln (alltså rotation om du har monterat sensorn plant) måste du först kalibrera sensorn i ca en sekund. Detta är med i exempelkoden. Om du inte bryr dig om rotationen i Z-led kan du hoppa över kalibreringen.

Välja rätt motor till roboten

Välja rätt motor till roboten

Motorer finns överallt omkring oss och numera tar vi dem för givet. Det finns stora motorer som de i bilar och flygplan och små motorer som driver fläkten i datorn eller som snurrar på hårddisken.…

Koppla upp dina IoT-prylar trådlöst, de 4 vanligaste sätten

Koppla upp dina IoT-prylar trådlöst, de 4 vanligaste sätten

Inför bygget av vår robot har jag undersökt vilka alternativ det finns för datakommunikation för IoT, Internet of Things, alltså uppkopplade prylar. I den här artikeln går jag igenom de fyra vanligaste sätten att koppla upp elektronik med omvärlden. Den här gången har jag enbart tittat på trådlös teknik. Varje teknik har sina för- och nackdelar och det finns ingen som är bäst på allt. Vilken teknik du ska välja för ditt projekt eller pryl beror på hur och var den ska användas.…

Styr en RGB-list med en Arduino

Styr en RGB-list med en Arduino

Att styra en LED-list med RGB-dioder är inte särskilt svårt med lite Arduino-kunskap. RGB-lister är roliga att lägga till i sitt elektronikprojekt för att skapa lite stämning eller för att illustrera status på sin maskin.…

« Till start