1
Autopilot till modellbåt
Andreas Marcusson
EXAMENSARBETE
2010
2
Autopilot till modellbåt
Autopilot for model boat
Andreas Marcusson
Detta examensarbete är utfört vid Tekniska Högskolan i Jönköping inom ämnesområdet Elektronik. Arbetet är ett led i den treåriga
högskoleingenjörsutbildningen. Författaren svarar själv för framförda åsikter, slutsatser och resultat.
Handledare: Lennart Lindh Omfattning: (C-nivå) 15 poäng Datum: 2010-04-27
Abstract
3
Abstract
The work consisted of designing an autopilot for a model boat that can navigate by itself to different GPS coordinates on Munksjön. The model boat can be used at various events.
During the test run of the autopilot a problem was detected. The fault causes the model boat to go in wrong direction when it should go 180 degrees it goes to 270 or 90 degrees. The error occurs because the microcontroller calculates the wrong direction to go to the target position.
The result was a model boat which can be navigated manually or automatically. Hardware for the Auto Navigation was solved with a circuit board mounted between the radio receiver and the rudder and engine. The circuit board controls the model boat when it navigates on its own. The Autopilot is composed of a GPS receiver and a microcontroller that controls the model boat. The autopilot navigates to waypoints that are preprogrammed in the microcontroller. There is a problem with the
navigation. When the boat is moving forward approximately 180 degrees. The problem makes the model boat to go a different way.
Sammanfattning
4
Sammanfattning
Arbetet bestod i att konstruera en autopilot till en modellbåt som kan navigera av sig själv till olika GPS-koordinater på Munksjön. Modellbåten ska kunna användas vid Öppet hus och liknande evenemang.
Under testkörning av autopiloten upptäcktes ett problem. Felet gör att autopiloten inte köra i rätt riktning om den ska köra mot 180 grader när avståndet till målet är 50 meter eller mindre till målet, utan kör mot 270 eller 90 grader. Felet beror på att mikrokontrollen räknar ut fel riktning för komma till målpositionen.
Resultatet blev en modellbåt som kan navigeras manuellt eller automatiskt. Automatisk navigering löstes genom att ett kretskort monterades mellan
radiomottagaren och roder samt motor. Kretskortet styr modellbåten när den ska navigerar av sig själv. Autopiloten består av en mikrokontroller som styr modellbåten med hjälp av en GPS-mottagare. Autopiloten navigerar genom att köra till olika koordinater som är förprogrammerade i mikrokontrollern. Det är ett problem med navigeringen och det är när båten ska köra mot kompassriktningen 180 grader.
Problemet gör att autopiloten styra modellbåten en annorlunda väg, den kommer fram dock ändå. Vid uppvisningen var det ett lock som inte hade kommit med utan fick ersättas av en bit plast och tejp. Det höll inte tät utan lekte in vatten vilket resulterade i kortslutning. Korslutningen gjorde så att båten började uppföra sig konstigt, då
bestämndes det att uppvisningen skulle avbrutas..
Nyckelord
Innehållsförteckning 5
Innehållsförteckning
1
Inledning ... 7
1.1 Bakgrund...7 1.2 Syfte och mål... 7 1.3 Avgränsningar ... 8 1.4 Disposition ... 8 1.5 Arbetets gång ... 82
Teoretisk bakgrund ... 10
2.1 GPS ... 10 2.2 WGS84... 10 2.3 Mikrokontroller ... 10 2.4 UART... 10 2.5 AM och FM... 11 2.6 NMEA ... 11 2.7 ASC II ... 12 2.8 Haversineformel ... 12 2.9 Uträkning av kurs ... 12 2.10 Lysdioder... 122.11 Styrning av rodder med Servo ... 13
2.12 Styrning av fartreglage ... 13
3
Systemkonstruktion ... 14
3.1 Farkost... 14 3.2 Mjukvara ... 14 3.3 Hårdvara... 144
Val av komponenter ... 15
4.1 Val av modellbåt ... 15 4.2 Radio ... 15 4.2.1 Val av radio ... 15 4.3 GPS ... 16 4.3.1 Elfa ... 16 4.3.2 RS-online ... 16 4.3.3 Val av GPS-mottagare ... 17 4.4 Val av batteri ... 17 4.5 Val av mikrokontroller ... 185
Konstruktion av hårdvara ... 19
5.1 Metodik ... 19 5.2 Mikrokontroller ... 195.3 Omvandling av signalnivåer från GPS-mottagare till mikrokontroller ... 19
5.4 Strömbegränsning lysdiod... 20
5.5 Energiförsörjning ... 20
5.6 Kretskort... 21
6
Konstruktion av mjukvara... 22
6.1 Metodik Mjukvara... 22
6.2 Växla mellan automatisk och manuell styrning ... 22
6.3 GPS-mottagaren ... 22
6.4 Konvertering av koordinater ... 23
6
6.6 När är modellbåten framme? ... 24
6.7 Reglering av kurs ... 25
6.8 Störningar på radio ... 25
6.9 Beskrivning av programmet ... 26
6.10 Hur programmet fungerar... 26
6.10.1 Startupp ... 26 6.10.2 Kontroll... 26 6.10.3 Manuellt ... 27 6.10.4 Automatiskt... 27 6.10.5 Interrupt ... 28
7
Testmetodik ... 29
7.1 Test hårdvara... 29 7.2 Tester mjukvara... 29 7.3 Test av autopilot ... 298
Undersökning av navigeringsfel ... 30
9
Resultat... 31
9.1 Navigering... 3210
Slutsats ... 33
11
Förslag på fortsatt arbete ... 34
12
Litteraturförteckning ... 35
13
Sökord ... 36
14
Bilagor ... 38
14.1 Bilaga 1 ... 39 14.2 Bilaga 2 ... 40 14.3 Bilaga 3 ... 59 14.4 Bilaga 4 ... 60 14.5 Bilaga 5 ... 61 14.6 Bilaga 6 ... 63Inledning
7
1
Inledning
Vem har inte drömt om att åka i en bil med autopilot? Tänk om det bara var att trycka på en knapp, bilen startar och kör en hem. Det skulle jag vilja göra! Tyvärr räcker inte ett examensarbete på 15 poäng till för att bygga en autopilot för en bil. Söker man på internet efter autopilot finner man dem både till stora containerbåtar samt fritidsbåtar. Därmed bör det vara möjligt att konstruera en autopilot för en radiostyrd modellbåt. Uppdraget som ligger till grund för rapporten bestod i att ta fram en autopilot till en modellbåt. Autopiloten ska kunna styra en modellbåt till olika koordinater på munksjön. För att kunna köra till olika koordinater används en mikrokontroller som styr modellbåten med en hjälp av en GPS-mottagare. Modellbåten ska kunna styras manuellt med en fjärrsändare eller automatiskt med en mikrokontroller.
Examensarbetet är en del av utbildning på Jönköpings tekniska högskola och krävs för att kunna avsluta Högskoleingenjörsutbildningen.
1.1
Bakgrund
GPS har blivit en vardaglig teknik som finns i allt fler produkter från enklare teknisk utrustning till flygplansnavigering. Jag tycker att det skulle vara spännande och intressant att göra något med en GPS. Efter att jag diskuterat idén med Anders Arvidsson fick jag kontakt med professor Lennart Lindh. Lennart Lindh föreslog en modellbåt som kan köra till olika positioner på Munksjön.
1.2
Syfte och mål
Syftet med examensarbetet är att undersöka om det är möjligt att utveckla en autopilot till en modellbåt som kan navigera till olika GPS-positioner.
Målet med examensarbetet är att ta fram en modellbåt som kan styras automatiskt och manuellt via en radiosändare. Modellbåten ska kunna navigera med GPS-koordinater på Munksjön och ska t ex kunna användas vid Öppet hus och liknande evenemang. Uppdragsgivaren har stället ett krav och det är att modellbåten ska kunna köra till olika positioner i Munksjön. För att veta när arbetet är klart har jag tolkat kravet som fyra punkter.
• Båten ska köra i minst 15 min.
• Det ska vara möjligt att fjärrstyra modellbåten manuellt. • Möjligheter till vidareutveckling.
Inledning
8
1.3
Avgränsningar
Rapporten går inte in på djupet på de matematiska formlerna pga. tidsbrist.
1.4
Disposition
Rapporten är uppdelad i 8 delar:
• Teoretisk bakgrund ska ge läsaren baskunskaper till rapporten.
• Val av komponenter ger läsaren backfrund till hur de olika
elektronikkomponenterna är valda och varför samt funderingar och tankar bakom valen.
• Konstruktion av Hårdvara innehåller hur hårdvaran är konstruerad.
• Mjukvara innehåller hur mjukvaran till autopiloten är konstruerad.
• Testmetodik beskriver hur mjukvaran och hårdvara är testad.
• Undersökning innehåller en undersökning på ett fel som påverkar båtens
navigering.
• Resultat innehåller hur den automatiska navigeringen till modellbåten
fungerar.
• Slutsats innehåller en slutsats på hela arbetet.
1.5
Arbetets gång
Efter att ha diskuterat examensarbetet med Lennart Lindh och tagit fram en
specifikation till arbetet, börjar jag att leta information och skissa på några idéer. För att vara säker på att en ide´ är möjlig simuleras den i Mplabs inbyggda simulator. Bland annat simulerades hur fort och hur bra en mikrokontroll beräknar flyttal. Jag kom fram till en preliminär lösning som kunde fungera.
Arbetet inleds med att strukturera upp det i mindre delar och block. Genom att dela upp arbetet i mindre block blir det lättare att lösa problem som uppstor. Man får en bättre översikt på hela projektet. Jag började med att rita upp ett blockschema för elektronik och byggde upp en prototyp på en labbplatta. För att få en uppfattning om storleken på kretskortet gjordes en cad och för att veta om det kan passa i en
modellbåt skrevs ett PCB (Printed Circuit Board) ut på papper. Modellbåten köps i den lokala hobbyaffären. Modellbåten är utrustad med ett fack som skyddar
Inledning
9
Elektronikkomponenterna kopplades upp på en labbplatta för att testas individuellt. Hela kretsen kopplades upp på en labbplatta under utveckling av programvaran. Koden delas upp i mindre block för att underlätta utvecklingen av programvaran. När kod och tester var klara på börjas arbetet med att slutgöra kretskortet. Alla komponenterna fanns inte i CAD-programmet utan fick göras för hand. När PCB var klar etsades ett testkort. Kortet testades och några korrigeringar gjordes. Det andra kretskortet fungerade mycket bättre. Efter några mindre justeringar på
reglerfunktionen kör autopiloten modellbåten riktigt bra.
Teoretisk bakgrund
10
2
Teoretisk bakgrund
2.1
GPS
GPS står för Global Positioning System och är det vanligaste systemet för navigering. Det drivs av USA’s försvarsdepartement och består av 24 satelliter i en geosynkron omloppsbana runt jorden. På 20 000 km över jordytan har satelliterna en omloppstid på 12 timmar. Satelliterna sänder kontinuerligt ut en signal som innehåller deras identitet, position och tid. Information från 3 satelliterna kan ge en position på jorden med relativt bra noggrannhet. Eftersom signalerna från satelliten går i ljusets hastighet måste satelliten ha en mycket exakt klocka. Varje satellit har fyra atomklockor, en som används och tre i reserv. För att klockorna ska kunna gå med en noggrannhet på Nano sekunden måste de uppdateras var tolfte timme. (1)
2.2
WGS84
WGS84 betyder World Geodetic System 1984. Det är en standard för att bestämma koordinater på jorden. Standarden beskriver jorden med en matematisk modell.
Koordinaterna för en plats i WGS84 anges i latitud och longitud. Koordinater på norra sidan (N) blir positiva och på södra sidan (S) blir negativa. Koordinater på östra sidan (Ö) blir positiva och på västra sidan (V) blir negativa. (2)
2.3
Mikrokontroller
Fördelarna med en mikrokontroll är att den har relativt hög datorkraft på ett litet utrymme och drar lite ström. Den första mikroprocessorn som får plats i en ic-krets kom på 1970-talet. I början var övriga funktioner som minne, räknare och in/utgångar i egna kretsar. Efterhand samlades alla funktioner till en ic-krets. Resultatet har blivit att en mikrokontroller består av en mikroprocessor med minne, portar och en mängd olika extra funktioner i en komponent. Det finns en mängd olika tillverkare av mikrokontroller med olika inriktningar.
En mikroprocessor kan utföra ett visst antal instruktioner. Beroende på typ av
mikroprocessor behöver en instruktion olika antal klockpulser för att utföra uppgiften. (3)
2.4
UART
En UART är en krets som sköter seriell kommunikation till och från en enhet. UART är en förkortning för "Universal Asynchronous Receiver/Transmitter". En UART kan skicka och ta emot seriell data synkront eller asynkront. I synkron kommunikation är det en klocka från mästaren som styr kommunikationstakten och i asynkron
kommunikation skickar sändaren data och mottagaren får ligga och känna av om det kommer data. Förenklat så omvandlar en UART en byte till flera bitar och skickar bit för bit till en mottagaren som omvandlar tillbaka bitarna till en byte. (3)
Teoretisk bakgrund
11
2.5
AM och FM
Radioutrustning till modellbåtar finns på två band AM och FM. Radioutrustning som använder AM-bandet är ofta billiga men har dålig räckvidd. Sändare med FM-bandet innehåller ofta mer komponenter vilket gör att de blir bättre, säkrare och har en längre räckvidd. FM har två överföringstekniker - PPM och PCM. PPM (Pulse Position Modulation) är den vanligaste tekniska standarden för radiostyrda modeller. Signalen är en 18 millisekunder lång slinga där varje servokanal är 2 millisekunder. PCM (Pulse Code Modulation) beskriver den analoga spänningen i digital form. Tekniken ger bäst resultat med digitala servon eller fartreglage. (4)
2.6
NMEA
NMEA 0183 är framtagen av National Marine Electronics Association som är en organisation i USA. NMEA är en standard för kommunikation mellan
marininstrument. Exempel på marininstrument är radar, GPS, kompass och datorer. Standarden är definierad för flera sändare och mottagare samt för seriell
kommunikation. NMEA standarden är definierad för att skicka data i klartext i ASC II tecken. Protokollet är uppbyggt av meddelanden som innehåller information om vilken typ av instrument som sänder, tillverkare och informationsdata. I alla
meddelanden har informationen förutbestämda platser. Alla apparatkategorier såsom GPS och datorer har egna standardmeddelanden.
Varje meddelande börjar med ett dollartecken följt av namn på meddelande, data uppdelade i informationsgrupper och som därefter avslutas med en kontrollsumma följt av tecken för ny rad. För att skilja informationen åt är det ett kommatecken mellan varje informationsgrupp. Precisionen på informationen i ett meddelande kan variera. Till exempel kan riktningen, som en kompass pekar mot, variera med 1, 2 eller 3 ASCI II tecken. Se bild 2.6 för exempel och förklaring av ett NMEA meddelande från en GPS-mottagare. (5)
NMEA meddelande:
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10
Namn Exempel Enhet Beskrivning
Message ID $GPRMC RMC protocol header
UTC Time 161229.487 hhmmss.sss
Status A A=data valid or V=data not valid
Latitude 3723.2475 ddmm.mmmm
N/S Indicator N N=north or S=south
Longitude 12158.3416 dddmm.mmmm
E/W Indicator W E=east or W=west
Speed Over Ground 0.13 0 Knots
Course Over Ground 309.62 Degrees True
Date 120598 Ddmmyy
Magnetic Variation2 Degrees
Checksum *10 E=east or W=west
<CR><LF> End of message termination
Teoretisk bakgrund
12
2.7
ASC II
ISO/IEC 8859-1 är en standard för teckenkodning av det latinska alfabetet, är även känd som ASC II. Standarden består av 191 tecken som är kodade med 8 bitars värden. Se bilaga 1 för teckentabell. (6)
2.8
Haversineformel
Haversineformeln är en formel som har används av sjöfarare sedan 1800-talet. Formeln används för att räkna ut avståndet mellan två punkter på jorden. Formeln är en förbättring av cosinussatsen. (7) Haversineformel utvecklades pga cosinussatsen tog för lång tid att räkna på och är inte tillförlitlig på korta avstånd.
Formel
∆lat = lat2− lat1
∆long = long2− long1
a = sin²(∆lat/2) + cos(lat1).cos(lat2).sin²(∆long/2) c = 2.atan2(√a, √(1−a))
d = R*c
Förklaring lat2 är latituden för mål koordinaterna, lat1 är latituden för start koordinaterna, long1 är latituden för start koordinater, long2 är latituden för mål koordinaterna, R är jordens radie, anges i den längdenheten som man vill få i svaret. (8) (9) (10)
2.9
Uträkning av kurs
För att beräkna kursen som modellbåten ska åka i räknas vinkeln ut från start punkt till målpunkt i förhållande till nordpolen. Det görs med följande formel.
Formel
Riktning= acos((sin(lat2)- sin(lat1)* cos (d)) / (sin(d)*cos(lat1)))
lat2 är latituden för målkoordinaterna, lat1 är latituden för startkoordinaterna, d är avståndet. Alla koordinater är i radianer. För uträkning av avstånd se kapitel 2.8 acos är definierat mellan -1 och 1, om man gör om det till grader blir det -180 och 180. För att undvika att få negativt svar på formeln kontrolleras om sin(lon2-lon1)<0. Om sin(lon2-lon1) är negativt kommer svaret på formeln att bli negativt, för att få svaret positiv beräknas 360 minus svaret för att få det i positiv riktning. (11)
2.10
Lysdioder
Lysdioder är mycket bra för att indikera vad som händer t.ex. att ange vilket tillstånd programmet befinner sig i. Lysdioder är konstruerade av halvledarmaterial och måste kopplas med rätt polaritet för att lysa. När en lysdiod är rätt kopplad går det en ström från anod till katod. Om lysdioden kopplas fel går det en obetydlig ström igenom lysdioden men den avger inget ljus. Lysdioden måste ha ett motstånd som begränsar strömmen för att inte förstöras. (12)
Teoretisk bakgrund
13
2.11
Styrning av rodder med Servo
För att styra rodret på modellbåten behövs någon slags överföring mellan elektrisk signal och mekanik. Till det passar ett servo perfekt. Det består av styrelektronik, en liten motor och en växellåda med högt vridmoment. Elektroniken styr motorn som är kopplad till växellådan. I slutet av växellådan sitter en arm fastmonterad. En
lägesgivare berättar för elektroniken vilken position armen är i. Positionen på servot bestäms av en PWM signal som skickas till servot varje 20 millisekund. Pulsen varar mellan 1 till 2 millisekunder. Längden på pulsen bestämmer läget på servot. Om längden på pulsen är ca 1,5 millisekund ställer servot in sig på mitten. Pulstiden kan variera mellan olika tillverkare. Servot behöver oftast en spänning på mellan 4-6 volt. Bild 6.8 visar hur servot ställer in sig i för hållande till puls längden. (21)
Bild 6.6 visar hur servot ställer in sig i för hållande till puls längden.
2.12
Styrning av fartreglage
För att styra båtens hastighet används ett fartreglage som styr modellbåtens motor. Fartreglaget styrs med en PWM signal som är 1 till 2 millisekunder lång varje 20 ms. Motorn står stilla när pulsen är 1,5 millisekunder lång. Motorn roterar åt det ena hållet om pulsen är längre än 1,5 millisekund och roterar åt andra hållet om den är kortare än 1,5 millisekunder. (21)
Val av komponenter
14
3
Systemkonstruktion
Kapitlet ger en översyn på konstruktionen av farkost, mjukvara och hårvara.
3.1
Farkost
En modellbåt består bland annat av en mottagare som tar emot radiosignaler från en radiosändare. Mottagaren omvandlar radiosignalerna till elektriska signaler som styr bland annat ett fartreglage och ett servo. Fartreglaget används till att styra motorn medan servot styr rodret.
3.2
Mjukvara
Mikrokontroller styr modellbåten till olika GPS-koordinater med förprogrammerade målkoordinater. Från GPS-mottagaren får mikrokontrollen information om kurs och position. Med informationen kan mikrokontrollern beräkna hur båten ska styras till rätt målkoordinater. Modellbåten kan styras manuellt genom att ändra läge på en knapp på fjärsändaren.
3.3
Hårdvara
Konstruktionen består av en modellbåt med mottagare, fartreglage och servo. Mellan mottagare och fartreglaget samt servo är ett kretskort placerat. Till kretskortet är det en GPS-mottagare inkopplad. Se bild 3.3
Bild 3.3 Översikt av styrelektronik.
Kretskortet består av en mikrokontroller, GPS-mottagare och en lampa. Kanal1, kanal2 och kanal3 från mottagaren är kopplade till ingångarna på mikrokontrollen. GPS-mottagaren är kopplad till mikrokontrollens UART.
Val av komponenter
15
4
Val av komponenter
I detta kapitel beskrivs hur och varför de olika komponenterna blev valda.
4.1
Val av modellbåt
För att skydda elektroniken från vatten, valdes en båt med ett speciellt utrymme med en vattentät lucka för elektronik. Modellbåten är en Racing Wild Seeker med en längd på 62 cm, en bredd på 22 cm och med en vikt på 1260 gram. Modellbåten har en topphastighet upp mot 30 km/h. Se bild 4.1.
Bild 4.1 visar bild på Racing Wild Seeker.
4.2
Radio
Det kan finnas situationer då man behöver styra modellbåten manuellt. En sådan situation kan vara för att undvika en olycka eller att köra in båten till stranden. I en sådan situation behövs en pålitlig och driftsäker radioutrustning. Båten ska köra i Munksjön som är ca 800 meter bred och 1600 meter lång. Ett sent önskemål var att båten skulle kunnas styras över hela Munksjön. För att kunna styra båten över hela sjön, bör en radioutrusning med en räckvid på minst 1 km användas. Radio- utrustningen ska kunna styra 3 kanaler för fart, roder samt omkopplare mellan manuellt och automatiskt läge.
4.2.1 Val av radio
Undersökt radiosändare på Webaffären http://www.rchobbysyd.nu.
Valet av radio blev en FM-radio som heter Futaba Megatech 3PM Rattradio FM27 LCD R153F. Valet föll på en radio Radion är enkel att förstå och använda.
Radiosändaren har pistolgrepp med en gas på avtryckaren och styrning med ratten på sidan samt en knapp bredvid ratten. Se bilaga 4.
• med en räckvidd upp till 1 km • PPM överföring.
Val av komponenter
16
4.3
GPS
Jag undersökt två leverantörers utbud av GPS-mottagare på Elfa och RS-online och kommit fram till följande..
4.3.1 Elfa
På Elfas hemsida finns sju stycken GPS-mottagare. Den största skillnaden på modulerna är storlek och strömförbrukning . Det finns två stycken intressanta GPS-mottagare, EM-411 och ET-312. (13)
ET-312 är en liten GPS-mottagare och ska lödas direkt på kretskortet. • En extern antenn bör användas för bäst mottagning .
• ET-312 matas med ca 3,3 volt kommunicerar med seriell kommunikation med lågnivå TTL.
• Antennen har -159 dbm förstärkning.
EM-411 är en GPS-mottagare med inbyggd antenn. • EM-411 kan matas med 5 till 3 volt. (15)
• Kommunikationen sker med seriell kommunikation med lågnivå TTL. • Antennen har -159 dbm förstärkning.
4.3.2 RS-online
På RS-online hemsida finns det ett större utbud, totalt 17 stycken GPS-mottagare. De två GPS-mottagare som är mest intressanta är FASTRAX UP300 och ITRAX 03.
FASTRAX UP300 är utrustad med ett flashminne som ger möjligheten att uppgradera programvaran vid behov. (16)
• Den har en inbyggd antenn och matas med 3,3 volt. • Har en port som kan kommunicera asynkront seriellt. • Antennen har -158 dbm-förstärkning.
ITRAX 03 är en avancerad GPS-mottagare med två st UART portar, en SPI-bus och en MMC-bus port. Det är också möjligt att uppgradera programvaran i mottagaren. (18)
• Behöver en spänning på 3,3 volt.
• Uppdateras med ny position upp till 1-3 gång i sekunden. • Behöver en extern antenn för att ta emot GPS signal.
Val av komponenter
17
4.3.3 Val av GPS-mottagare
ET-312 är en liten GPS-mottagare som monteras på kretskortet. Fördelarna med en extern antenn är att man kan placera antennen där man får bästa möjliga mottagning. Enligt databladet behöver kretskortet ett jordplan och det är specificerat hur
komponenter ska sitter runt ET-312 för att undvika brus på antennsignalen. Det finns risk att det blir komplikationer och det tar tid att få det att fungerar. Jag valde därför inte ET-312.
FASTRAX UP300 har inbyggt flashminne och inbyggd antenn. Flashminnet ger möjligheten att uppgradera programvaran.. Om modellbåten behöver en
GPS-mottagare med programmeringsmöjligheter är det bäst att undersöka det då. Jag valde därför inte FASTRAX UP300.
ITRAX 03 är en avancerad GPS-mottagare och har två stycken UART och kan använda tre olika protokoll. Den monteras på kretskort. ITRAX 03 är avancerad och skulle ta mycket tid från projektet. Jag valde därför inte ITRAX 03.
EM-411 är en GPS-mottagare med inbyggd antenn. GPS-mottagaren bör placeras så att satellit -signalerna inte försvagas. Signalerna försvagas olika mycket beroende på vilket material som de måste gå igenom. Skrovet på båten är tillverkat av plast och då störs signalerna från satelliterna minimalt. Antennen har -158 dbm förstärkning vilket är bra. Eftersom EM-411 kan matas med 5 volt behövs ingen extra
spänningsomvandlare vilket förenklar konstruktionen av kretskortet. EM-411 väljs för projektet.
Bild 4.3.3 visar EM-411.
Bild 4.3.3 bild på GPS-mottagare EM-411.
4.4
Val av batteri
Efter att ha kört båten ett antal gånger är det konstaterat att båten kör i ca 10 min på ett 1700mAh fulladdat batteripaket. Fartreglaget som används med båten stöder NiCd och NiMh batterier. Båten ska kunna köra i minst 15 min. För att vara säker på att batteripaketet ska räcka, behövs det ca 50 % högre batterikapacitet dvs 1700 mAh*1,50= 2550mAh. Batteripaketet ska vara på minst 2550mAh. Det närmsta batteripaketet avrundat uppåt är ett NiMh på 3600mAh som bör räcka i minst 15 min.
Val av komponenter
18
4.5
Val av mikrokontroller
Först var det tänkt att använda pic 16f886. Under programmeringsfasen kom det fram att den har för litet programminne. Pic16f886 ersätts med pic 18f2455 som både har mer minne och fler funktioner. Se bild 4.5 (3)
Bild 4.5 är ett blockschema på en PIC 18F2455.
Mikrokontrollen har speciella funktioner som används i projektet. En funktion i mikrokontrollen är att ett avbrott i programmet genereras när ingångarna 4-7 på PortB ändras. Avbrottet gör att mikrokontrollen utför ett speciellt program. Den funktionen används för att mäta puls längden på kanal3 från radio mottagaren. I mikrokontroller är det en UART som används för att kommunicera med GPS-mottagare. Mjukvaran till autopiloten använder 3 tidtagare till att styra servo och för att styra fartreglaget.
Konstruktion av hårdvara
19
5
Konstruktion av hårdvara
Kapitlet förklarar hur hårdvaran fungerar samt hur energiförsörjningen är löst. Kapitlet avslutas med att beskriva kretskortet och hur det monteras.
5.1
Metodik
Alla hårdvara testas individuellt för att kontroller att de fungerar som de ska. Till varje komponent skrevs ett program som kontrollerade att alla nödvändiga funktioner fungerar. Efter det kopplas allas komponenter ihop efterhand som programmet utvecklades.
5.2
Mikrokontroller
Pic 18f2455 har en intern oscillator och ställs in på 4 MHz . Det finns möjlighet att använda en extern oscillator om det behövs. Mikrokontrollen behöver en
spänningsmatning på 3-5,5 volt. För att kunna ändra mjukvaran enkelt används In-Circuit Serial Programming (ICSP) som gör att mikrokontrollen kan programmeras direkt på kretskortet med ingångar PGD, PGC och MCLR. Se bild 5.2
Se bilaga 3 för blockschema över komponenter som är inkopplade på mikrokontrollen.
Bild 5.2 på ICPS schema
5.3
Omvandling av signalnivåer från GPS-mottagare till
mikrokontroller
Kommunikationssignalerna mellan GPS-mottagare EM-411 och mikrokontrollen är inte kompatibla med varandra och måste omvandlas. Mikrokontrollens ingångar och utgångar är TTL anpassade medan GPS-mottagarens är låg nivå TTL anpassad. Det betyder att det behövs en krets som kan omvandla signalerna från GPS-mottagarens TTL nivåer till mikrokontrollens nivåer. Se bil 5.3 för signaldiagram. En logikkrets från familjen74HCL kan göra det. 74HCT har egenskapen att ingångarna kan tolka låg nivå TTL och utsignalen är på TTL nivåer. Jag har valt en 74HCT04 logikkrets för att den inverterar signalen. Utsignalen från 74HCT04 inverteras och det löses med att
Konstruktion av hårdvara
20
i mikrokontrollen ställa in i registret att insignalen på RX ska vara inverterad. (19) Se Bild 5.3
Bild 5.3 visar signal nivåer för TTL och låg TTL. Grön färg visar spänningen för en etta ut. Röd färg visar spänningen för en nolla ut. Blå färg visar spänningen för en etta in. Rosa färg visar spänningen för en nolla in.
5.4
Strömbegränsning lysdiod
Dioderna som används i projektet klarar 20 mA och har ett framspänningsfall (vf) på 2 volt. För att begränsa strömmen kopplas ett motstånd i serie med dioden.
Motståndet räknas ut med följande formel (5-vf)/x=20mA, där (5V-2V)/20mA=150Ω. (12)
5.5
Energiförsörjning
Motor och elektronik får sin energi från ett NiMh batteri på 3600 mAh och 7,2V. Fartreglaget har en BEC som är en förkortning för battery elimination circuit. Kretsen gör om batterispänningen till 5 volt och kan leverera max 2 ampere. Den känner också av hur mycket energi som finns kvar i batteriet. Om kretsen inte kan leverera 5 volt ut till kretskortet, servo och fartreglaget stänger den av all strömförsörjning.
Konstruktion av hårdvara
21
5.6
Kretskort
Kretskortet är designat i programmet EAGLE. EAGLE är en förkortning för Easily Applicable Graphical Layout Editor från företaget CadSoft Computer, Inc. Jag har använt version 4.16 som var den senaste när projektet startade.
Kretskortet är konstruerat för att vara så litet som möjligt för att så mycket som möjligt ska kunna få plats i det vattentäta utrymmet. Eftersom det speciella
elektronikutrymmet på båten är begränsat kommer mikrokontrollen pic 18f2550 och inverterare 74HCT04 samt alla motstånd och kondensatorer att ytmonteras Vilket gör att kretskortet blir mindre.
Från början var dioderna ytmonterade men ändras till hålmonterade. På grund av att kortet måste ligga längst ner i den vattentäta boxen, blev ytmonterade dioder svåra att se. Se bilaga 5 för schema på kretskortet. Se bilaga 3 för ett blockschema över
kretskortet. Se bild 5.6 för hur kortet ser ut
Det färdiga kortet består av följande komponenter. 1 st. 18f2450 1 st. 74hct04 1 st. EM-411 1 st. Röd diod 3 st. Stiftlist 1*3 1 st. Kretskortskontakt
3 st Servokabel Futaba hylsa 2 st 150 Ohm motstånd
1 st. 470 Ohm
1 st. 10K Ohm
1 st. 1u Farad
Beskrivning av programmet
22
6
Konstruktion av mjukvara
I detta kapitel beskrivs hur mjukvaran är konstruerad.
6.1
Metodik Mjukvara
För att det ska vara lätt att ändra i koden och lätt att lägga till nya funktioner i programmet är koden uppdelad i flera olika block. Varje block är uppdelad i mindre block som har hand om varsin funktion. Programvaran är uppdelat i 4 olika block för att göra det så enkelt som möjligt att programmera och felsöka. Block 1 utvecklar kod till UART och GPS, block 2 avbrottsrutiner och styrning av servo, block 3 matematik och reglerteknik. I block 4 kopplas allt samman och testkörs. Se Bild 6.1
Uppdelningen av programmeringen i block underlättade mycket vid felsökning. För att enkelt kunna konfigurera och ändra inställningar har ett par konfigurations filer skapats till blocken.
Programkoden är skriven i ANSI C och kompilerad med HiTechs C-kompilator 9,63PL2. Programmet utvecklades i Mplab v8,30 från Microchip.
Bild 6.1 Visar uppdelningen av koden.
6.2
Växla mellan automatisk och manuell styrning
För att växla mellan manuellt och automatisk styrning används den tredje kanalen på radiosystemet. När radiosystemet tar emot en lång puls ska fjärrsändaren styra modellbåten och när den är kort ska mikrokontrollern styra.
Funktionen för val av styrning fungerar genom att räkna tiden på pulsen på kanal 3 från radiomottagaren. Varje gång som kanal 3 blir etta startar timer1 och börjar räkna upp. Timer 1 stoppas när kanal 3 blir noll. En kort puls under 1,5 ms är manuellt läge medan en längre puls är automatiskt läge.
6.3
GPS-mottagaren
I projektet kommunicerar GPS-mottagaren och mikrokontroller med seriell
kommunikation med en hastighet av 4800 bit/sec med en start bit, 8 data bit och en stop bit. Se bild 6.3. (15) (20)
Beskrivning av programmet
23
Bild 6.3 visar en start bit, en byte och en stopbit.
GPS-mottagaren EM-411 konfigureras till att skicka meddelandet GPRMC en gång i sekunden. GPRMC innehåller koordinater vart GPS-mottagaren är på jorden och i vilken kurs den färdas i.
När mikrokontrollern tar emot ett GPRMC meddelandet sparas bara nödvändig data. Först kontrolleras att det är rätt data genom att kontrollera att tecknen. Det ska börja på tecknen $,G,P,R,M,C. Eftersom data kommer i en bestämd följd med bestämt antal siffror och med kommatecken ”,” som skiljer data åt, går det att sortera data genom att räkna kommatecken ”,”. Latitud beskrivs med 8 siffror och longitud beskrivs med 9 siffror. Siffrorna sparas i en 9*2 byte matris. Riktning kan bestå av 1 till 3 tecken dvs. 0 till 360 grader. För att veta om det är en, två eller tre siffror, känner programmet av om det är ett komma efter en siffra eller efter två siffror. Det sparas i en 3 *8 bit matris.
6.4
Konvertering av koordinater
Koordinaterna som kommer från GPS-mottagaren är i WGS84 formatet
decimalgrader och är uppdelade i grader och minuter. Det är svårt för mikrokontrollen att räkna matematiskt på det formatet. För att kunna räkna på koordinaterna måste de omvandlas till koordinater i decimalform. Eftersom det på varje grad går 60 minuter och varje minut går det 60 sekunder är det lätt att konvertera. Till exempel
koordinaterna till Jönköpings Högskola är 5746,695 N och 1409.836 E.
Koordinaterna omvandlas till decimala koordinater genom att dela minuter och grader med 60. Om man gör denna uträkning får man följande 57+46,695/60 =57,7783 och 14 +9,836/60=14,1639. (22)
6.5
Uträkning av avstånd och kurs
AvståndMed koordinaterna från GPS-mottagaren räknar mikrokontrollern ut avståndet från där modellbåten är till målpositionen. Formel se nedan.
Formel
∆lat = lat2− lat1
∆long = long2− long1
a = sin²(∆lat/2) + cos(lat1).cos(lat2).sin²(∆long/2) c = 2.atan2(√a, √(1−a))
d = R*c
Se kapitel 2.8 för förklaring.
Kurs
Med hjälp av avståndet mellan modellbåten och målposition går det att räkna ut vilken riktning det är till målposition. Formel se nedan.
Beskrivning av programmet
24
Riktning= acos((sin(lat2)- sin(lat1)* cos (d)) / (sin(d)*cos(lat1))) Se kapitel 2.9 för förklaring.
6.6
När är modellbåten framme?
Det finns en mängd olika faktorer som påverkar båten som t.ex. vind och strömmar i vattnet. GPS-mottagarens signal påverkas av väder, norrsken och andra störningar. Det gör att det blir svårt för GPS-mottagaren att ta ut rätt riktning och att räkna ut exakt vart båten är. För att veta att båten är nära önskad position räknas avståndet mellan båtens nuvarande position och önskad position ut. Eftersom båten är i rörelse hela tiden och positionen som GPS-mottagaren räknar fram kan hamna 20 meter fel, blir det svårt att komma exakt på positionen som båten ska gå till. Därför måste mikrokontrollen räkna ut om modellbåten är inom en radie av minst 20 meter från den önskade målpositionen.
Beskrivning av programmet
25
6.7
Reglering av kurs
Kursreglering sker genom reglering av rodret med en P-regulator med återkoppling. Där u(t) är utsignal, K är förstärkning och e(t) är kursavvikelsen.
Modellbåtens nuvarande kurs är betecknad ”Ф” och är kursen som modellbåten kör i enligt GPS-mottagaren. Den önskade riktningen för modellbåten är ” Фref”.
” Фref” värdet räknas fram enligt formeln i kapitel 6.3 Se bild 6.7 för blockschema. (23)
Reglerfelet definieras e = Фref – Ф
Styrsignalen u i tidpunkt k beräknas med u(t)=K[e(t)]
Styrsignalen måste begränsas. uMax om u(t) > uMax u = uMin om u(t) < uMin
Bild 6.7 visar blockschema kursreglering.
6.8
Störningar på radio
Under tester har det förekommit störningar på Kanal3. Störningar har främst uppkommit på långa avstånd mellan sändaren och mottagaren. Det har gjort att mikrokontrollen har sporadiskt trott att pulsen har varit kort. Det resulterade i att båten hackar sig fram i automatiskt tillstånd. Problemet löstes genom att räkna antalet gånger pulsen är kort eller lång. Genom att räkna antalet pulser t.ex. 20 gånger och sen kontroller hur många av pulserna är långa respektive kort. Är det t.ex. 15 st. långa pulser och 5 st. korta pulser ska båten styras av fjärsändaren.
Beskrivning av programmet
26
6.9
Beskrivning av programmet
Kort beskrivning av programmetDet första programmet gör, är att kontrollera om båten ska styras automatiskt med mikrokontroller eller manuellt med radio. Se bild 6.9 för enkelt flödesschema. När båten styrs manuellt kommer mikrokontroller att vidarebefordra signalerna från radiomottagaren till servon och fartkontrollen. När båten styrs automatiskt hämtar mikrokontrollen information från GPS-mottagare. Mikrokontrollen använder
informationen från GPS-mottagaren för att beräkna fram avstånd och önskad riktning för båten. Därefter kan mikrokontrollen reglera båtens riktning med rodret.
Bild 6.9 för enkelt flödesschema.
6.10
Hur programmet fungerar
I detta kapitel beskrivs hur mjukvaran fungera. Under varje kapitel beskrivs en funktion av programmet.
6.10.1 Startupp
Det första som görs när mikrokontrollen får ström är att köra en Startupp kod. Se bild 6.9 Startupp koden har till uppgift att ställa in mikrokontrollen. Den laddar start-värden för den första positionen, ställer in båten på Manuellt läge, konfigurerar räknare och interrupt samt startar upp den inbyggda UART:en.
6.10.2 Kontroll
Funktionen Kontroll kontrollerar hur modellbåten ska styras. Båten kan styras manuellt med radio eller av mikrokontrollen. Funktionen kan växla mellan två lägen automatiskt eller manuellt.
Beskrivning av programmet
27
6.10.3 Manuellt
När båten styrs manuellt vidarebefordrar mikrokontrollen signalerna från radio- mottagaren till fartreglaget och roder. Mikrokontrollen fungerar som en buffert för signalerna. Se bild 6.10.3 för flödesschema och kod för Manuellt
kod
UtFart = InFart; UtStyra = InStyr; Kod för manuell styrning.
Bild 6.10.3 flödesschema över Manuellt.
6.10.4 Automatiskt
Den här funktionen styr modellbåten automatiskt. Se bild 6.10.4 för flödesschema.
Bild 6.10.4 för flödesschema.
Funktionen börjar med att hämta vilken position och riktning modellbåten har från GPS-mottagaren. Koordinaterna och riktningen omvandlas till decimaltal. Med koordinaterna beräknar mikrokontrollern fram avstånd och riktning till
målkoordinatorn. Är avståndet till målkoordinatorn litet ska nästa målkoordinator väljas och till den beräkna en ny riktning. Med den nya riktningen regleras rodret med en P-regulator.
Beskrivning av programvara
28
6.10.5 Interrupt
När båten körs med autopilot styrs den genom att timer2 skapar ett interrupt varje 10 millisekund. Avbrottet gör att timer 0 och 3 skickar en puls varje 20 millisekund. Timer3 styr pulsen till rodret och Timer0 styr pulsen till fartreglaget.
Se bild 6.13.
Varje gång ingången PortB plats 4 ändras sätts flaga RBIF. Den funktionen används till att räkna tiden på pulsen för tillståndsstyrning.
TMR2IF blir aktiverad varje 10 millisekund. Varannan gång aktiveras TMR1 och TMR2.
(3)
Se bild 6.10.5.
Undersökning
29
7
Testmetodik
7.1
Test hårdvara
All hårvara testas individuellt för att kontrollera att allt fungerar som det ska T.ex. GPS-mottagaren testades för att se att den hittade satteliter och att det går att skicka och ta emot data. Radiosystemet räckvid testades först för sig själv i ett villa område. Testet genomfördes genom att gå hundra meter och se om servona ändrade sig i förhållande till hur knappar och rattar ändrades på fjärsändaren. Därefter testades radiosystemet tillsammans med modellbåten.
7.2
Tester mjukvara
Mplab har inbyggt simuleringsprogram som utnyttjas för simulering av programmets kod. Till simulering med hårdvara användes GPS-mottagaren, Pikkit2 från Microchip, en LCD display, tre dioder och en pic 16f2550 på en kopplingsplatta. Varje
programfunktion i programmet testades för sig innan den kopplas samman med övriga funktioner.
7.3
Test av autopilot
Testet genomfördes på samma plats varje gång förutom att koordinaterna
ändrades.
Plats
Testet är utfört i Råå ån strax utanför Helsingborg. Programmering av autopilot
Autopiloten är programmerad att köra till punkt 1 sen punkt 2 och därefter fortsätta till punkt 3. Efter det ska den börja om på punkt 1.
Genomförande
Först aktiveras sändaren och därefter mottagaren och modellbåt. När GPS-mottagaren har fått kontakt och skickar data körs båten ut manuellt. Modellbåten placerats i mellan punkterna, där aktiveras autopiloten.
Undersökning
30
8
Undersökning av navigeringsfel
Bakgrund
Under test av autopiloten upptäcktes att när den styr mot en sydlig riktning navigerar den fel. Genom felsökning kom det fram att felet hade att göra med uträkningen av riktningen mellan två punkter.
Syfte och Mål
Syftet är att undersöka formeln som räknar ut riktningen.
Målet att ta reda på varför autopiloten navigerar fel när den ska köra söderut.
Genomförande
Med hjälp av Google Earth togs en mittpunkt ut på Munksjön. Från mittpunkten utgår det 36 linjer med 10 grader emellan varandra. Linjerna består av 20 till 40 punkter med en meters mellanrum. De linjer som är mellan 170 och 210 grader är 40 meter långa. Alla 36 linjerna simuleras i Mplab. Simuleringen genomfördes genom att från mittpunkten beräkna avstånd och riktning till varje punkt på varje linje.
Beräkningar med mikrokontroller simulerades med pic 18f2550 med 32 bitars flyttal. Som referens användes en 32 bitars pc med samma formel med GNU Compiler Collection version 4.2.4. Referensen räknade ut avstånd och riktning med både 32 bitar och 64 bitar flyttal. I alla uträkningar har 9 delsvar sparats för manuell kontroll. Kod se bilaga 2.
Resultat
För resultat av uträkningar se bilaga 2.1 och 2.2. När blir det fel beräkningar
Mikrokontrollen räknar ut fel när båten ska köra i riktning mellan 160 till 200 grader samt att avståndet mellan punkterna är mindre än 20 meter. Men runt 180 grader räknar mikrokontrollen ut fel över 40 meter bort. Övriga riktningar räknar den fel när avståndet är under 10 meter. Bilaga 2.1
Pc 32 bitars räknar lika mycket fel som mikrokontrollern. Däremot visar pc 64 bitar uträkningar bar något enstaka fel på 1 meters avstånd. Bilaga 2.2
Varför blir det fel ?
På grund av att 32 bitar flyttal inte kan representera alla decimaltal utan avrundas till ett tal i närheten som kan representeras. Det resulterar i att uträknad riktning blir någon grad fel. Det skapar ett problem som är att trigonometriska funktioner matas med tal som ligger utanför sin definitionsmängd. T.ex. arcos som är definierat mellan -1 till 1 ges ett värde utanför sin definitionsmängd. T.ex. 1.2 Då svara den med 0. Varför 0 det beror på kompilatorn.
Resultat
31
9
Resultat
Resultatet blev en modellbåt som det går att styra manuellt med radioutrusning eller med autopilot. Autopiloten består av en mikrokontroller som använder en GPS-mottagare för att styr modellbåten. Vägen som autopiloten ska köra är
förprogrammerad i mikrokontrollern. Vägen består av koordinater till olika punkter. Med hjälp av data från GPS-mottagaren beräknar mikrokontrollern ut riktningen och avstånd till de koordinater som modellbåten ska köra till.
Elektroniken är skyddad mot vatten genom att båten har ett speciellt utrymme som är tätat mot vatten. Luckan till utrymmet måste tejpas för att vara helt vattentätt.
Fjärrstyrning av modellbåten fungerar med en rattradio som sänder på 27 MHz bandet. Det går att köra autopiloten i 15 minuter. Vid uppvisningen i Munksjön hade jag glömt locket till batteriet utan ersätter det med en bit plast och tejp. Det visade sig inte vara helt tät utan det kom in vatten i båten som resulterade i kortslutning. Mellan batterifacket och elektronik facket finns det en enkel plast tätning som inte höll. Vilket resulterade i att båten började bra men sen började uppföra sig konstigt. Bilder på modellbåten Se bild 9.1 och bild 9.2
Bild 9.1 visar modellbåten utan huven.
Resultat
32
9.1
Navigering
Navigeringen med autopiloten fungerar bra utom när modellbåten ska köra söderut. Uträkningen av kurs är inte optimal utan det blir fel på uträknad riktning när
riktningen ska vara runt 180 grader. I stället för att köra rakt i 180 grader kör båten i en kurva till målet. Felet uppstår desto närmare riktningen är 180 grader och i
förhållande till avståndet mellan punkterna. Avstånd som behövs stiger när riktningen för att köra till nästa punkt närmar sig 180 grader. Se bild 9.1
Bild 9.1 visar vilket avstånd som behövs för att rätt riktning ska kunna räknas fram. X axeln är grader och y axeln är i meter.
Problemet beror på att mikrokontrollern inte kan räknar ut trigonometriska funktioner tillräckligt exakt. Problemet kommer ifrån att 32 bitar flyttal inte är tillräckligt exakta. Vid manuell kontroll av beräkningarna från pc och mikrokontrollern visar det sig att mikrokontrollern räknar fel ibland. Noggrannheten på 32 bitars flyttal är för liten. Hur påverkas modellbåten av felet? När modellbåten ska köra i en riktning mellan 160 och 200 kommer den komma fram till målpositionen, men den kommer att ta en krånglig väg dit. Modellbåten kommer att köra i ett hackigt cirkel liknande mönster mot målpositionen. Se bild 9.2
Färgerna grön, gul, turkos och lilla visar riktningen som modellbåten bör köra till målpositionen. Svart färg visar vilken väg modellbåten kör. Stor svart cirkel är målposition.
Bild 9.2 visar hur båten beter sig om den ska köra till
Slutsats
33
10
Slutsats
Navigering kan bli bättre. Med hjälp av en kompass kan båten köra i högre hastighet och mer rakt. Nu används GPS-mottagaren som kompass och det blir inte bra på grund av att det uppstår instabilitet i reglersystemet i högre hastigheter.
Det finns stora möjligheter för vidareutveckling till projektet. Det finns ett par ut och ingångar på mikrokontrollen som inte används, bland annat en analog ingång. Där går det att koppla in en termometer.
Planeringen kunde varit mer hård t.ex. att delmål ska vara klara ett bestämt datum. Nu var det delmål som var tvungna att vara uppfyllda innan det var möjligt gå vidare. Vilket medförde att det tåg lite längre tid att göra projektet.
Det svåraste i projektet var navigeringen av modellbåten hur reglersystemet ska fungerar. Det behövde betydligt mer tid och var mer komplicerat än det var planerat. Men det vara intressant och utmanade.
Slutsats
34
11
Förslag på fortsatt arbete
• För att förbättra navigeringen skulle en elektriskkompass kunna användas. De har högre uppdaterings av data. Det skulle innebära att båten kan styras i en högre fart samt rakare reglering av kursen.
• Nuvarande p-reglering är enkel och har mycket dötid. Med en bättre regler funktion i mjukvara t.ex. en PID-regulator skulle navigeringen bli finnare. Men tar längre tid att utföra vilket kan innebära att klockfrekvensen behöver ökas.
• Styrningen av modellbåtens hastighet kan förbättras genom att ändra
hastigheten i förhållande till avståndet till målkoordinaterna. I stället för 3 m/s som det är nu. Kan modellbåten köra i 10m/s om det är över 100 m till
målkoordinaterna.
• Fjärrstyrningen kan förbättras med tex zigbee eller xbee modul. De fungerar som en trådlös brygga för seriell kommunikation. De har moduler som har räckvidd över 1 km. Då kan det också vara tvåvägs kommunikation mellan båten och fjärsändaren, kan t.ex. användas för att visa båten på en karta.
Litteraturförteckning
35
12
Litteraturförteckning
1. GPS. Wikipedia. http://sv.wikipedia.org. [Online] den 29 06 2009. http://sv.wikipedia.org/wiki/GPS.
2. WGS84. Wikipedia . [Online] 8009-11-10.
http://en.wikipedia.org/wiki/World_Geodetic_System.
3. Microchip. http://www.microchip.com. [Online] den 03 05 2009. http://ww1.microchip.com/downloads/en/DeviceDoc/39632D.pdf.
4. ppm, Radio FM AM. Svensk modelflyg. http://www.svensktmodellflyg.se/. [Online] den 11 06 2009. http://www.svensktmodellflyg.se/beginner_radio.asp.
5. NMEA. Gpsinformation. http://www.gpsinformation.org. [Online] den 20 06 2009. http://www.gpsinformation.org/dale/nmea.htm.
6. ASCII. http://sv.wikipedia.org/. [Online] den 05 11 2009. http://sv.wikipedia.org/wiki/ASCII.
7. Usenet replayer. http://www.usenet-replayer.com. [Online] den 29 06 2009. http://www.usenet-replayer.com/faq/comp.infosystems.gis.html.
8. Haversine. Wikipedia. http://en.wikipedia.org/. [Online] den 03 05 2009. http://en.wikipedia.org/wiki/Haversine_formula.
9. Lennart Råde, Bertil Westergren. Mathematics Hanbook for science and Engeenring. 2002. ISBN 91-44-03109-2.
10. Haversine. Mathforum. http://mathforum.org. [Online] den 29 06 2006. http://mathforum.org/library/drmath/view/51879.html .
11. Mathforum. http://mathforum.org/. [Online] den 19 06 2009. http://mathforum.org/library/drmath/view/55417.html.
12. Hans, Lundqvist. Analog Kretselektronik. u.o. : ISBN 91-47-00800-8, 1999. 13. Elfa. http://www.elfa.se. [Online] den 03 05 2009. http://www.elfa.se. 14. Et-312. Elfa. http://WWW.elfa.se. [Online] den 03 05 2009.
https://www1.elfa.se/data1/wwwroot/webroot/Z_DATA/07840044.pdf. 15. EM-411. Elfa. https://www.elfa.se. [Online] den 03 05 2009. https://www1.elfa.se/data1/wwwroot/webroot/Z_DATA/07840002.pdf.
16. RS online. http://www.rsonline.se. [Online] den 03 05 2009. http://www.rsonline.se. 17. Fastrax. http://www.fastraxgps.com. [Online] den 03 05 2009.
18. ITRAX. Ovrem. http://www.orvem.net. [Online] den 03 05 2009.
http://www.orvem.net/SPECIFICHE%20TECNICHE/Fastrax/ITRAX03.pdf. 19. 74HCT04. Elfa. https://www.elfa.se. [Online] den 11 06 2009.
https://www1.elfa.se/data1/wwwroot/webroot/Z_STATIC/sv/pdf/fakta.pdf. 20. UART. Maxim. http://pdfserv.maxim-ic.com. [Online] den 11 06 2009. http://pdfserv.maxim-ic.com/en/an/AN2141.pdf.
21. Batterisföreningen. http://www.batteriföreningen.com. [Online] den 31 05 2009. http://www.batteriforeningen.a.se/Fakta-Sekundaer.html.
22. [bokförf.] Wilmshurst Tim. Designing Embedded systems whit pic Microcontrollers. u.o. : ISBN 987-0-7506-6755-5, 2005.
23. Hanbo, Christer. Förarintyg. 2007. ISBN 91-44-03109-2. 24. Identsys. http://www.identsys.se/. [Online] den 04 06 2009.
http://www.identsys.se/website/index.php?option=com_content&view=article&id=20&Itemid =61.
25. Tengstrand, Anders. Åtta kapitel om Geomaetri. 2005.
Sökord 36
13
Sökord
Abstract... 2 Dioder ... 19 GPS... 15 Konvertering ... 22 Mikrokontroller... 10 NMEA ... 10 Pic 18f2455... 18 Radio... 14 Sammanfattning ... 3 Servo ... 23 Slutsats och diskussion ... 33 UART ... 19 Uppladdningsbara batterier ... 9Sökord
Bilagor 38
14
Bilagor
Bilaga 1
Teckentabell
Bilaga 2
Tabell
Bilaga 3
Blockschema
Bilaga 4
Manual
Bilaga 5
Schema
Bilaga 6
Kod
Bilagor
39
14.1
Bilaga 1
Teckentabell från wikipedia (6)
Tabellen innehåller förutom tecken även styr koder som blanksteg och ny rad. ISO-8859-1
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1x DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC IS4 IS3 IS2 IS1
2x SP ! " # $ % & ' ( ) * + , - . / 3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4x @ A B C D E F G H I J K L M N O 5x P Q R S T U V W X Y Z [ \ ] ^ _ 6x ` A b c d e f g h i j k l m n o 7x p Q r s t u v w x y z { } ~ DEL
8x PAD HOP BPH NBH IND NEL SSA ESA HTS HTJ VTS PLD PLU RI SS2 SS3 9x DCS PU1 PU2 STS CCH MW SPA EPA SOS SGCI SCI CSI ST OSC PM APC
Ax NBSP ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ SHY ® ¯ Bx ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ Cx À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Dx Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß Ex à Á â ã ä å æ ç è é ê ë ì í î ï Fx ð Ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
Bilagor
40
14.2
Bilaga 2
Kod för rikningsberäkning
Char16 KalkyleraRikning (double DataM, double alat1, double alat2, double alon1, double alon2)
{
double dlo,d,la1,la2,lo1,lo2,s,a,c; Char16 rikning;
#define C 180/3.141592
la1 = (alat1 )* C ; //Del beräkning 1 la2 = (alat2 )* C ; //Del beräkning 2 lo1 = (alon1 )* C ; //Del beräkning 3 lo2 = (alon2 )* C ; //Del beräkning 4 //**********'
dlo = lo2-lo1; //Del beräkning 5 s=sin(la2)-sin(la1); //Del beräkning 6 a= s*cos(DataM); //Del beräkning 7 c=sin(DataM)*cos(la1); //Del beräkning 8 d = acos((a)/(c)); //Del beräkning 9
if (dlo>0.0) { rikning = d*180.0/pi; } else { rikning = 360.0-(d*180.0/pi); }
return rikning; //Del beräkning 10 }
Bilaga 2.1
Ett urval av beräkningar på mikrokontroller. Visar beräknad kurs och del uträkningar. //Önskad uträknad kurs 190
Avstånd 00m
DataM=0.00000 alat1=5.77770 alat2=5.77770 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00840 lo1=2.47237 lo2=2.47237
s=0.00000 a=0.00000 c=0.00000 d=1.57079 Beräknad Kurs 270
Bilagor
41 Avstånd 00m
DataM=1.23373 alat1=5.77770 alat2=5.77770 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00840 lo1=2.47237 lo2=2.47237
s=-1.7881 a=-1.7881 c=6.57845 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 01m
DataM=2.44820 alat1=5.77770 alat2=5.77770 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47237
s=-1.7881 a=-1.7881 c=1.30541 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 02m
DataM=3.68152 alat1=5.77770 alat2=5.77770 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47237
s=-2.3841 a=-2.3841 c=1.96304 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 03m
DataM=6.06337 alat1=5.77770 alat2=5.77770 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47237
s=-4.1723 a=-4.1723 c=3.23308 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 04m
DataM=7.27898 alat1=5.77770 alat2=5.77770 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47237
s=-4.7683 a=-4.7683 c=3.88126 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 05m
DataM=8.50983 alat1=5.77770 alat2=5.77770 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-4.7683 a=-4.7683 c=4.53757 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 06m
DataM=9.72552 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-5.9604 a=-5.9604 c=5.18579 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 07m
DataM=1.21124 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-7.1525 a=-7.1525 c=6.45853 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 08m
DataM=1.33572 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-7.1525 a=-7.1525 c=7.12228 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 09m
Bilagor
42
DataM=1.45293 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-8.9406 a=-8.9406 c=7.74725 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 10m
DataM=1.57735 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-9.5367 a=-9.5367 c=8.41072 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 10m
DataM=1.69745 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-9.5367 a=-9.5367 c=9.05108 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 11m
DataM=1.81901 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.0728 a=-1.0728 c=9.69925 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 13m
DataM=2.06067 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.0728 a=-1.0728 c=1.09878 d=2.92403 Beräknad Kurs 192
________________________________________ Avstånd 13m
DataM=2.18369 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.0728 a=-1.0728 c=1.16438 d=2.74251 Beräknad Kurs 202
________________________________________ Avstånd 14m
DataM=2.30525 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.1324 a=-1.1324 c=1.22919 d=2.74226 Beräknad Kurs 202
________________________________________ Avstånd 15m
DataM=2.42535 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.3113 a=-1.3113 c=1.29323 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 16m
DataM=2.54690 alat1=5.77770 alat2=5.77769 alon1=1.41656 alon2=1.41656 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.3709 a=-1.3709 c=1.35805 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 17m
Bilagor
43 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236 s=-1.5497 a=-1.5497 c=1.48690 d=1.57079
Beräknad Kurs 270
________________________________________ Avstånd 18m
DataM=2.90868 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.6093 a=-1.6093 c=1.55095 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 19m
DataM=3.03024 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.6093 a=-1.6093 c=1.61577 d=3.05224 Beräknad Kurs 185
________________________________________ Avstånd 20m
DataM=3.15471 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.6689 a=-1.6689 c=1.68214 d=3.01616 Beräknad Kurs 187
________________________________________ Avstånd 21m
DataM=3.39490 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.8477 a=-1.8477 c=1.81021 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 22m
DataM=3.51646 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.8477 a=-1.8477 c=1.87503 d=2.97077 Beräknad Kurs 189
________________________________________ Avstånd 23m
DataM=3.63657 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47236
s=-1.9073 a=-1.9073 c=1.93907 d=2.96044 Beräknad Kurs 190
________________________________________ Avstånd 23m
DataM=3.75813 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.0265 a=-2.0265 c=2.00389 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 25m
DataM=3.99980 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.1457 a=-2.1457 c=2.13275 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 26m
DataM=4.11992 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
Bilagor 44 s=-2.2649 a=-2.2649 c=2.19680 d=1.57079 Beräknad Kurs 270 ________________________________________ Avstånd 27m
DataM=4.24436 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.3245 a=-2.3245 c=2.26315 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 27m
DataM=4.36592 alat1=5.77770 alat2=5.77768 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.3245 a=-2.3245 c=2.32797 d=3.08757 Beräknad Kurs 183
________________________________________ Avstånd 29m
DataM=4.60328 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.5033 a=-2.5033 c=2.45454 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 30m
DataM=4.72769 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.5630 a=-2.5630 c=2.52087 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 30m
DataM=4.84924 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.6226 a=-2.6226 c=2.58569 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 31m
DataM=4.96936 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.6226 a=-2.6226 c=2.64974 d=2.99835 Beräknad Kurs 188
________________________________________ Avstånd 32m
DataM=5.09381 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.8014 a=-2.8014 c=2.71610 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 33m
DataM=5.33116 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.8014 a=-2.8014 c=2.84265 d=2.97104 Beräknad Kurs 189
________________________________________ Avstånd 34m
DataM=5.45271 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
Bilagor
45 Beräknad Kurs 270
________________________________________ Avstånd 35m
DataM=5.57714 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-2.9802 a=-2.9802 c=2.97381 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 36m
DataM=5.70015 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-3.0398 a=-3.0398 c=3.03941 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 37m
DataM=5.81880 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-3.0398 a=-3.0398 c=3.10267 d=2.93998 Beräknad Kurs 191
________________________________________ Avstånd 38m
DataM=6.06047 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-3.2186 a=-3.2186 c=3.23154 d=3.05224 Beräknad Kurs 185
________________________________________ Avstånd 39m
DataM=6.18059 alat1=5.77770 alat2=5.77767 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-3.2782 a=-3.2782 c=3.29559 d=3.03898 Beräknad Kurs 185
________________________________________ Avstånd 40m
DataM=6.30215 alat1=5.77770 alat2=5.77766 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-3.2782 a=-3.2782 c=3.36040 d=2.92002 Beräknad Kurs 192
________________________________________ Avstånd 40m
DataM=6.42514 alat1=5.77770 alat2=5.77766 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-3.4570 a=-3.4570 c=3.42598 d=1.57079 Beräknad Kurs 270
________________________________________ Avstånd 42m
DataM=6.66681 alat1=5.77770 alat2=5.77766 alon1=1.41656 alon2=1.41655 la1=1.00840 la2=1.00839 lo1=2.47237 lo2=2.47235
s=-3.5166 a=-3.5166 c=3.55484 d=2.99491 Beräknad Kurs 188
________________________________________ Bilaga 2.2
Beräkningar på pc. I de två första kolumnerna visar beräkning på 32bitars flyttal. I de två sista visar 64bitars beräkningar.
Bilagor
46
Float Float Double Double
Riktning 10 Avstånd Avstånd Rikning
0 0 0 109 0 23 0 10 2 22 1 10 3 22 2 10 3 22 3 10 4 22 4 9 6 22 5 10 6 0 6 10 7 22 7 10 8 0 8 10 10 5 9 10 10 8 10 10 11 9 11 10 12 11 12 10 13 12 13 10 13 13 13 10 15 14 14 10 Riktning 20 0 90 0 51 1 24 1 19 2 26 2 19 3 28 3 20 4 28 4 20 5 0 5 20 6 27 6 19 7 10 7 19 8 28 8 20 8 16 9 20 10 17 10 20 11 18 11 20 12 19 12 20 12 20 13 20 14 20 13 20 15 21 15 19 16 22 15 20 16 22 17 19 18 16 17 20 19 23 19 19 20 17 19 20