MPU6050: Arduino 6 Axis Accelerometer + Gyro - GY 521 Test & 3D Simulatie

Ben je op zoek om je eigen quadcopter-drone of RC-vliegtuig te maken met Arduino, maar weet je niet hoe je de gyroscoop moet laten werken? Misschien heb je al enkele 6-assige MPU6050-modules gekocht (op de GY-521 breakout-boards) om erachter te komen dat ze niet zo eenvoudig te gebruiken waren als je dacht? Probeer dit eens!

Je leert een eenvoudig circuit te bedraden om je MPU6050 te testen met een Arduino en de YAW, PITCH en ROLL te simuleren op een 3D-modelvlak op het scherm. Dit is bedoeld als een leermiddel om u vertrouwd te maken met gyro-modules, breakout-boards en het installeren van de nodige bibliotheken op uw Arduino IDE, zodat u uw MEMS-gyro optimaal kunt gebruiken en tijd kunt besparen in plaats van vanaf nul complexe code te hoeven schrijven.

Wat je nodig hebt, kun je vinden op eBay (links hieronder):

  • 1 x Arduino UNO + USB-kabel
  • 1 x mini prototyping breadboard
  • 1 x GY-521 breakout-bord
  • Enkele mannelijke naar mannelijke startkabels
  • Soldeerbout + soldeer

Stap 1: Draadcircuit zoals hieronder weergegeven:

*** OPMERKING : alle rode kabels zijn VCC (+ 5V) en zwarte kabels zijn GND, controleer zorgvuldig wanneer u uw circuit bedraad. Het breakout-bord wordt geleverd met pinnen maar vereist solderen. ***

Voor je eigen leren:

  • de gyro-module communiceert met de Arduino via I2C seriële communicatie via de seriële klok (SCL) en data (SDA)
  • de MPU6050-chip heeft 3, 3V nodig, maar met een spanningsregelaar op het GY-521-bord kun je hem tot 5V geven
  • Voor meer informatie over de module is er een geweldige bron op deze pagina in de Arduino Playground

Stap 2: Installeer I2Cdev & MPU6050-bibliotheken

Als we de code helemaal opnieuw zouden schrijven, zou het eeuwen duren en zou er veel reverse engineering nodig zijn om goed gebruik te maken van de eigen Digital Motion Processing (DMP) -engine van de module, omdat Invensense opzettelijk minimale gegevens op zijn MPU6050 heeft vrijgegeven. Maar goed dat iemand al het harde werk voor ons heeft gedaan; Jeff Rowberg schreef enkele Arduino-bibliotheken om de accelerometer / gyro-gegevens te verkrijgen en alle berekeningen af ​​te handelen. Ze zijn vanaf hier beschikbaar als zip-bestand:

//github.com/jrowberg/i2cdevlib/zipball/master

Eenmaal uitgepakt, zoek de Arduino-map erin en kopieer de twee mappen "I2Cdev" en "MPU6050" naar uw Arduino "bibliotheken" -map in de volgende map:

C: \ Program Files (x86) \ Arduino \ bibliotheken

Open vervolgens de Arduino IDE en in de sectie met voorbeelden zou je MPU6050_DMP6 binnen MPU6050 moeten vinden. Open het, sluit uw Arduino aan, selecteer de juiste COM-poort en upload de schets. Selecteer in het seriële venster een baudsnelheid van 115200. U moet worden gevraagd of de MPU6050-verbinding is gelukt. U kunt de gegevensverzameling testen door iets in de tekstbalk te typen en op enter te drukken, de gegevens zouden moeten verschijnen.

Nu willen we de code instellen om de theepot-demo uit te voeren om de 3D-simulatie te tonen. Sluit het seriële venster, zoek en becommentarieer de regel #define OUTPUT_READABLE_YAWPITCHROLL en verwijder de commentaar // # define OUTPUT_TEAPOT. Selecteer "opslaan als" en kies waar u de gewijzigde code wilt opslaan. Upload opnieuw, maar open het seriële venster deze keer niet.

Stap 3: Download en installeer de nieuwste versie van Processing & ToxicLibs Library

Om een ​​3D-simulatie van de yaw / pitch / roll-waarden in een vliegtuig op het scherm uit te voeren, voeren we de theepot-demo uit van het MPU6050_DMP6-voorbeeld uit Jeff Rowberg's MPU6050-bibliotheek. De Arduino IDE zal echter alleen de gegevens verzamelen, om de 3D-simulatie weer te geven hebben we extra software nodig: Processing. Download Processing vanaf hier en pak het uit waar je maar wilt:

//processing.org/download/?processing

We hebben een laatste bibliotheek nodig om de zaken draaiende te houden: ToxicLib. Deze bibliotheek gaat naar de map libraries van Processing in plaats van naar Arduino. De nieuwste versie van de ToxicLibs-bibliotheek is hier:

//bitbucket.org/postspectacular/toxiclibs/downloads/

De map "libraries" van Processing is te vinden door te volgen (beginnend vanuit de verwerkingsmap): modes -> java -> libraries. Unzip ToxicLibs en plaats ALLE inhoud daar.

Stap 4: Voer de simulatie uit

Open ten slotte het toepassingsbestand Verwerking en vervolgens

Bestand -> Open -> volg deze map C: \ Program Files (x86) \ Arduino \ libraries \ MPU6050 \ Voorbeelden \ MPU6050_DMP6 \ Processing \ MPUTeapot

en open het MPUTeapot-bestand.

Klik op de afspeelknop en het systeem moet ongeveer 20-30 seconden kalibreren, laat de gyro gedurende die periode stilstaan.

Pak nu de gyroscoop op en test de gier / worp / rol. Als je eenmaal tevreden bent dat het allemaal goed werkt, kun je ermee gaan experimenteren voor je eigen projecten. Als u volledig gebruik wilt maken van de I2Cdev- of MPU6050-bibliotheken en hun functies, raadpleeg dan hun header-bestanden.

Ik hoop binnenkort een instructable te maken over het maken van een DIY-drone, dus als je deze nuttig vindt, blijf dan op de hoogte voor toekomstige projecten door me te volgen op Instructables en op Facebook / Twitter / Google+.

Als je dit instructable leuk vond en je zou meer van dit willen zien, overweeg dan om me te steunen door je materialen voor dit project te kopen via de affiliate links in de materialen sectie of door hieronder te doneren:

PayPal : //www.paypal.me/HobbyTransform

Bitcoin : 1Mqe7et24Lz4DY1RUN4iAQVHkvJsdFArKR

Ethereum : 0x6d8248db1cdea6a783cb6b41ae67bb8e6144f479

Litecoin : LW6PWESqsr8xHw6EJ9WLbsQsAyTvPnwnxJ

Streepje : Xemv7jud697v8tQmKfNFoMxfkd17ZayH2t

Uw steun wordt enorm gewaardeerd! Gelukkig DIY'ing!

Verwante Artikelen