3D tryckt Arduino Quadricopter (4 / 7 steg)
Steg 4: I2C Accelerometer-gyroskop setup
TL; DR:
1. ANSLUT INTE TILL 5V.
2. inte galen.
3. använda detta bibliotek: https://github.com/jrowberg/i2cdevlib
4. Använd inte lödtenn din styrelse i tills du har kört en kalibrering.
Vi använde en MPU6050 från SparkFun, https://www.sparkfun.com/products/11028. Dessa kan hittas på Amazon för bara $10, och jag har den på bra ord som de fungerar bra, men ledningarna kommer att bli lite annorlunda från bilderna. Detta steg kommer att fungera som en allmän bakgrund och handledning för att installera och använda en I2C accelerometer, eftersom de flesta av denna information är spridda bland ett dussin Forumtrådar.
Vad är I2C?
Du kanske har sett enkla styrelser som https://www.sparkfun.com/products/9269 med individuella analoga utgångar för X, Y och Z. De vettiga; varje utgång korrelerar mot en axel av accelerometern. Då du ser en I2C ombord och missfoster ut lite insidan. I2C är en kommunikationsstandard där styrelsen kommunicerar massor av information med digital logik pulser i stället för analoga utgångar. MPU6050 har 6-axlar (3-gyro, 3-accelerometer) så om de var analog skulle de använda upp alla portar på din Arduino. Summan av kardemumman är Arduino skickar en digital signal till styrelsen, och läser in information digitalt från input stiften.
Ledningar:
Ledningarna för våra specifika MPU6050 är som följer. Observera bibliotek koden förutsätter att dessa är de insatsvaror som används. Andra styrelser kommer att likna.
VDD -> 3.3V
GND -> marken
INT -> digital 2
SCL -> A5
SDA -> A4
VIO -> marken
Rinnande 5v genom styrelsen kan och kommer att bryta det, så inte. Vissa MPU6050 styrelser har spänningsregulatorer som ska skydda det, men det är inte värt risken. Om din styrelse har en AD0 stift, ska du ansluta till marken. På vår styrelse VIO porten är ansluten till en inre AD0, så den fungerar som AD0 PIN-koden. Om AD0/VIO är ansluten till marken eller VDD faktiskt bestämmer den minnesadressen som styrelsen gränssnitt med Arduino (0x68 eller 0x69). Om detta är förvirrande, inte oroa sig för det, bara koppla det till marken. Om du har problem att försöka byta VIO/AD0 från marken till VDD.
Kod:
Nu blir det lite knepigt. Förhoppningsvis har du lite kodning / jävlas med programvara erfarenhet. Om du inte gör det, bara gå långsamt och google något du inte vet. Det finns en hel del information där ute. Jag ska försöka vara så tydlig som möjligt, men jag kan inte täcka alla problem
När du har din MPU wired till Arduino, slå på den och ladda upp här I2C scanner koden: http://playground.arduino.cc/Main/I2cScanner#.Uxh...
Bläddra längst ned och kopiera-klistra in koden i en tom skiss och köra den. Öppna den seriella monitor (Verktyg -> Serial Monitor) och kontrollera att du är på port 9600 (nederst till vänster). Det är i koden, men du läsa inte den ändå.
Om allt fungerar ska det hitta en I2C enhet och ger dig en minnesadress 0x68 eller 0x69. Skriva ner. Om du får fel kontrollera ledningarna.
Du ska nu vill installera kod som faktiskt talar till accelerometer/gyroskop. Det finns en massa grejer där ute men den som jag har hittat som fungerar bäst är https://github.com/jrowberg/i2cdevlib. Klicka på "Hämta Zip," kom ihåg var du men det (förmodligen skrivbordet) och sedan packa upp den. Öppna upp programmet Arduino IDE. Nu gå till skiss -> Importera bibliotek -> lägga till bibliotek. Du bör lägga till både mappen I2Cdev och MPU6050 mappar som bibliotek (de är under Arduino i mappen).
När de är installerade bör du öppna upp den MPU6050_DMP6 (den har under MPU6050 -> exempel) fil i Arduino. Jag föreslår att läsa den (även om du inte vet mycket kod), det är väl kommenterade och har en vissa alternativ för hur det utgångar avläsningar från styrelsen. Om du fick på 0x69 från skannern, måste du ta bort en rad överst i koden (efter #includes, bara läsa kommentarerna dumt) eftersom standard är 0x68. Programmet bör nu sammanställa.
Ladda upp koden, öppna serieporten (115200 denna gång) och följ instruktionerna. Grattis, ska du få arbeta avläsningar från styrelsen. Om det verkar glida först, oroa dig inte det behöver ca 10 SEK är fortfarande att komma till vila. Också kommer att gir utdata glida (lite), eftersom det har ingen referensram. Styrelsen använder accelerometern få allvar och hitta "down" som fungerar som referens för pitch och rulla. Lite finare skivor innehåller en kompass för referens.
Nu innan du går vidare, ska du kalibrera din styrelse. Hitta en plan yta och se till din styrelse är platt med etiketteringen uppåt.
Sedan bör du köra här praktisk-dandy kalibrering koden tillgänglig på toppen, tack vare Luis Ródenas. Igen standarden det 0x68, men du kan ändra detta. Kontrollera att du skriver ner förskjutningsvärdena det ger dig. Du kan och bör använda dessa som förskjutningarna i MPU6050_DMP6 kod (och senare vår quadcopter kod).
Nu har du ett fungerande och användbara accelerometer/gyroskop. Jag föreslår nu du spendera lite tid jävlas med MPU6050_DMP6 koden och försöker de olika utdata typerna.