Båt Autopilot - baserat på Arduino (2 / 13 steg)
Steg 2: Prototyp #1
Den första prototypen av autopiloten var mycket grundläggande. Målet var att bygga en enhet som kunde:
- Läs platsen från en GPS
- Läs bäring från en kompass
- Styra ett roder servo
- Testa formler som är nödvändiga för att göra en riktig autopilot
- Använda rodret för att hålla betydelse
För denna tidiga prototyp beslutade jag att använda en Arduino Uno för hjärnor; Jag skulle gå över till en barebones Arduino design (AtMega328) i den slutliga versionen.
Läsa en GPS
För den första prototypen, jag ville ha den billigaste möjliga GPS jag kunde få mina händer på, så jag gick med de $8 UBlox PCI-5s. För att ansluta GPS till Arduino, allt jag hade att göra var löda fyra kablar på baksidan av kortet, koppla dem till Arduino och fäst en antenn. Jag använde TinyGPS ++-bibliotek för att tolka inkommande seriell data, som tillät mig att få den nuvarande läget, hastighet, riktning och mer! Här är min andra Instructable om hur man genomför detta chip. Jag använde denna GPS fram till den tredje prototypen, där jag ersatte den med en annan.
Läsa en kompass
Kompassen jag använt är de HMC5883L, som förbinder till Arduino genom I2C. Bildr har en mycket trevlig tutorial om hur du ansluter denna kompass till Arduino. För att läsa den som bär använde jag detta Arduino bibliotek.
Styrning Servo
Styrning ett servo med en Arduino är otroligt lätt, men inte när det SoftwareSerial biblioteket (nödvändigt för TinyGPS ++) stör en av den Arduino timers! När SoftwareSerial är igång, kommer det att störa några servon med standard servo biblioteket. En enkel lösning är att använda PWM Servo biblioteket istället.
Implimenting Autopilot formler
I denna prototyp genomfört jag flera funktioner som senare skulle bli kritiska. Dessa funktioner använder haversin formel för att beräkna saker som den: avståndet mellan två waypoints, riktning från en vägpunkt till nästa och real med från en magnetlager. Här är en bygga-logg inlägg jag gjorde på dessa formler.
Att sätta alla ihop
Jag beslöt att göra ett trä fall att hålla allt ihop (se bilder ovan). Så nu när jag visste vad lagret av autopiloten var, var jag kunna jämföra det med en förinställd rubrik och vrid rodret för att hålla som vissa rubrik. Detta skulle bli nödvändigt senare för att resa till en GPS koordinat.