3D tryckta fjärrstyrda BB8 Droid - gör kursen (4 / 8 steg)
Steg 4: Förbereda koden
För att använda den här koden, behöver du ett par bibliotek för Arduino IDE. Du behöver den PID, I2CDev och MPU6050 biblioteken. Dessa bibliotek har skapats av några smarta människor, så se till att tacka dem. Jeff Rowberg skapade bibliotek för MPU6050 och I2CDev. Brett Beauregard skapade PID biblioteket. Jag tog tid att gå igenom exempel och header-filer till fullt förstå koden och räkna ut hur det hela fungerar.
- För att starta, ladda upp dessa bibliotek till din Arduino IDE.
- Börja med MPU6050, kommer vi att testa och kalibrera enheten innan operation.
- Testa det med exempelkod i mappen MPU6050 under exempel >> MPU6050_DMP6. Denna kod kan du testa enheten och kontrollera korrekt drift. Koden är inställd att Visa yaw, pitch, och rulla data till dig genom den seriella porten på Arduino.
- När testning är ifyllda och framgångsrik, öppna mappen MPU6050 kalibrering och öppna filen Arduino. Denna fil kommer att kalibrera MPU6050 till sin givna plats, så se till att placera den på en plan yta. Kalibrering tiden kan ta några minuter, om det låser sig bara starta om den. Det kommer att ge du offset värden som kommer att ställa din MPU6050 nära noll ursprung, det enda värde som är stora z-accelerometer värdet på grund av gravitationen. Ta dessa värden och koppla in dem i koden för MPU6050_DMP6 rå testet. Dina avläsningar bör vara mycket mer exakt.
- HC-06 enheten kan konfigureras för att visa ett önskat namn, har ett önskat lösenord och operera på en önskad baud. För att ändra detta, använda filen BlueTooth_Example_Code. Ta en titt på PDF-filen som anges, detta inkluderar kommandon som gör att du kan ändra namn och baud klassar av enheten. Ändra namnet på enheten är valfritt, men jag rekommenderar ändra baudfrekvens till 57600. Alla kommandon skickas genom den seriella porten på Arduino IDE när HC-06 är ansluten och koden är uppladdade och körs.
- Den app som jag använde för detta projekt kallas "Joystick Bluetooth Commander". Denna app är tillgänglig på Google AppStore. Om du väljer att använda andra bluetooth-program, måste du använda olika kod.
- Använd filen BlueTooth_Joystick_App_Code för att testa att du får data från app. Du kommer att behöva kopplar HC-06-enheten med telefonen före provning. Koden för HC-06 kommer mest sannolikt 1234 eller 0000 som standard
- Testa motorerna med filen Motor_Code_Example. Denna fil kan du köra motorerna och bestämma minsta PWM-signal som kommer att få dem att börja vrida. Tuning motorerna behövs eftersom inte alla motorer starta eller stänga i samma takt.
När alla första provning är klar, kan du gå vidare till filen New_BB8_Code. Du kommer att behöva verifiera pin-anslutningar, MPU6050 förskjutningar och HC-06 överföringshastigheten. När det är gjort, kan du ladda upp koden och testa allt ut. Koden är avsedd att tillåta användaren att styra riktningen att BB8 kommer att roll samtidigt hålla huvudet i upprätt läge. PID-numret behöver stämmas men kan inte vara tills kärnan är monterad.
Jag kommer att förklara funktioner i koden nedan:
- init_imu(); -Används för att initiera MPU6050 och idealiska inställningar. Detta togs från MPU6050 exempelkod.
- motorSetup(); -Detta används för att ange alla stift för motor föraren att utgångar.
- getValues(); -Används för att erhålla avläsningar för yaw, pitch, och rulla från MPU6050.
- blueTooth(); -Används för att installera HC-06 och ta emot data från app på telefonen.
- pidCompute(); -Används för att köra den PID-regulator för att ställa in normvärdet och producera en PWM-signal för motorerna.
- motorControl(); Detta används för att styra BB8 i önskad riktning och även skicka PWM signaler att hålla huvudet i uppåtgående position.