Propeller Autopilot (1 / 13 steg)
Steg 1: Välj din Chipset
** PWM/PCM för att kontrollera hobby servon
** Ett sätt att mäta puls bredder för att läsa den rc mottagare (allmänt fulländat med avbryter)
** I2C förvärvande IMU data
** SPI för SD-kort läsa/skriva
** Följetong för GPS och Xbee kommunikation
** Float matematik & matrix matematik för riktad cosinus uträkning
Det finns verkligen många val här. Detta kan vara en bra tid att åka runt och se vad nya. Här är en liten artikel från hackaday (2011) översyn av vissa populära utveckling styrelser:
http://hackaday.com/2011/02/01/What-Development-Board-to-use/
Arduino har naturligtvis mycket väl utvecklade bibliotek för alla dessa paket. Dock för detta projekt slutade jag med en parallax propeller chip. Om du har aldrig använt en propeller chip innan, är här webbplatsen parallax:
http://www.Parallax.com/tabid/407/default.aspx
Propeller chip kör 5 x snabbare än arduino (80 Mhz vs 16 Mhz) och i huvudsak består av 8 32-bitars mikrokontroller, medan arduino bara har 1 8-bitars mikrokontroller (om än med awesome C++-bibliotek och gemenskapens stöd). Propeller chipet kan du ägna 8 individuella "kuggar" till specifika funktioner, men i utbyte du kan inte använda avbrott. Den extra farten och processorkraft ger dig en stor "fudge faktor" om du inte får din algoritm exakt rätt.
Överraskande, en propeller quickstart styrelsen kostar ungefär samma som en arduino uno.
Jag har nyligen köpt en STM32F3 upptäckt ombord från digikey för $10. I discovery styrelsen ingår en 72 Mhz arm-kärna mikrokontroller, acceleromter, gyroskop och magnetometer. Detta kunde göra utveckling mycket lättare eftersom chipet är utvecklat i god gammal C/C++, som tillåter användning av 2D matriser (praktiskt om du ska använda en rotation matrix), och är generellt mer universell. Fångsten är att utveckling programsvit är kommersiell programvara (aka ofritt). Det finns några lösningar, särskilt om du är linux skickliga. Styrelsen kan hittas här: http://www.digikey.com/product-detail/en/STM32F3DISCOVERY/497-13192-ND/3522185
När du har plockat ut din controller behöver du plocka upp din tröghetsbaserad måttenhet (IMU). Denna består av en 3-axlig accelerometer, gyroskop och magnetometer. Viktigaste här är att plocka något kompatibelt med handkontrollen. Alla mems (micro-elektro-mekanisk-system) analoga enheter, och kräver olika digitala gränssnitt för att kommunicera med din controller (vanligtvis I2C eller SPI). Om du har aldrig skrivit en I2C föraren innan, nu är det dags att lära. Annat sätt försöka hitta några exempelkod online din kretsuppsättning.
Jag personligen tycker om ett pololu varumärke IMU:
http://www.Pololu.com/catalog/Product/1268
Massor av online support/exempel. Dessutom har någon redan skrivit en I2C drivrutin för detta chipset i församlingen. Detta gör det mycket lättare att läsa IMU data mycket snabbt. Här är github med propeller församling driver (pasm)
https://github.com/tdeyle/PropellerIMU
Dock fick jag nyligen några JÄTTEBILLIG styrelser på amazon:
http://www.Amazon.com/Attitude-Indicator-L3G4200D-ADXL345-HMC5883L/DP/B00CD239UG/ref=sr_1_cc_1?s=APS&ie=UTF8&qid=1370604682&SR=1-1-catcorr&keywords=sunkee+DOF
http://www.Amazon.com/L3G4200D-ADXL345-HMC5883L-BMP085-breakout-/DP/B008G7T3QQ/ref=sr_1_2?s=Electronics&ie=UTF8&qid=1370605789&SR=1-2&keywords=DOF
Detta chipset verkar ganska vanligt för denna ansökan och propeller object exchange (OBEX) har redan exempelkod till alla dessa marker. Jag har ändrat de exempel koderna så att vi kan inkludera dem som ett bibliotek för vår sista spin fil. Tar en liten under 02 sekunder att läsa och lagra värden från hela kretsuppsättningen. Detta är OK eftersom vi kan ägna processen på egen kogg, men det är fortfarande lite långsam. Jag arbetar på att använda en av I2C församlingen drivrutinerna från OBEX för att påskynda processen, men jag var tvungen att sluta arbeta på det för att göra detta skriva upp :)