Cykelstiplan for Vordingborg Kommune

Transcription

Cykelstiplan for Vordingborg Kommune
2009
DIY SegWay Projektrapport
Jesper Aagaard Vuholm 04230
Daniel Christoffersen 06523
29-05-2009
DIY SegWay Projektrapport
DIYS
Forfattere:
Jesper Aagaard Vuholm 04230 & Daniel Christoffersen 06523
Vejleder:
Henning Hargaard
Projektnummer:
Dokument-id: (filnavn)
Antal sider:
Kunde:
08126
Projektrapport.pdf
38
IHA
Jesper Aagaard Vuholm
Daniel Christoffersen
Version 1
side 2 af 38
DIY SegWay Projektrapport
DIYS
RESUMÉ
I denne rapport beskrives arbejdsprocessen med udarbejdelsen af afgangsprojektet ”DIY SegWay”. Projektet består i
udviklingen af en SegWay, der er et selvbalancerende tohjulet køretøj til persontransport. Formålet, udover at løse de
ingeniørmæssige problemstillinger, har været at konstruere et billigt hjemmelavet alternativ til de kommercielle
SegWays. Der er taget udgangspunkt i en ældre kasseret el-kørestol doneret af firmaet Roltec. Den benyttede
udviklingsmetode i dette projekt har bestået af en fornuftig blanding af de to agile udviklingsmetoder ”Extreme
Programming XP” og ”Rational Unified Process RUP”. Projektet spænder i store træk over SegWay’ens fysiske
konstruktion, programmering af Atmels mega644P microcontroller, software filtrering af sensor inputs, software
genereret PWM modulering, BlueTooth kommunikation, PD motorregulering, C# programmering af et debug og
analyse program til PC samt et parameterindstillingsprogram til Windows Mobile platformen. For at begrænse
opgavens omfang er der, hvor det har været muligt, benyttet færdigindkøbte hardware moduler. Rapporten beskriver
de faser projektet har gennemgået for til sidst at nå målet, nemlig en kørende og billig SegWay.
SYNOPSIS
The following report describes the preparation and methods used in completing our final project “DIY SegWay”. The
project’s principal goal is the development of a SegWay which is a self balancing two wheeled vehicle used for
personnel transportation. Besides the engineering problems involved in this sort of project the main purpose has been
to construct a cheap “Do It Yourself” SegWay compared to the commercial ones. The starting point of this project was
based on an older discarded electric wheelchair donated from Roltec. The developmental method used in the project
consists of a sensible blend of the two development methods, “Extreme Programming XP” and “Rational Unified
Process RUP”. The project covers the physical construction of our SegWay, programming of Atmel mega644P
microcontroller, software filtering of sensor inputs, software generated PWM modulation, BlueTooth communication,
motor regulation using PD, C# programming of a debug and analyze tool for PC and a parameter based tuning
program for the Windows Mobile platform. To limit the tasks involved in this project we have used premade hardware
modules where possible. This report describes the different phases the project has undergone to reach its goal - a
running and cheap SegWay.
Version 1
side 3 af 38
DIY SegWay Projektrapport
DIYS
FORORD
Dette projekt har været en del anderledes end de projekter vi har gennemført på IHA tidligere, hvilket også vil afspejle
sig i denne projektrapport. Meget af det udførte arbejde er foregået i arbejdsområder, som vi hverken har haft
erfaring med eller fået undervisning i. De aspekter og problemstillinger vi harmødt i de forskellige arbejdsområder vil
blive beskrevet i denne projektrapport. Der vil derfor være en del teknisk information i projektrapporten, da vi har
vurderet dette som nødvendigt for en fuld forståelse af de processer, vi har været igennem, samt forståelse af
problemstillingerne omkring det at lave en hjemmelavet SegWay.
Version 1
side 4 af 38
DIY SegWay Projektrapport
DIYS
INDHOLDSFORTEGNELSE
Forord ................................................................................................................................................................................. 4
Indledning ........................................................................................................................................................................... 7
Projektbeskrivelse............................................................................................................................................................... 8
Projektafgrænsning ........................................................................................................................................................ 8
Projektgennemførelsen .................................................................................................................................................. 9
Overordnet tidsplan.................................................................................................................................................... 9
Metoder ....................................................................................................................................................................... 11
Extreme programming XP ......................................................................................................................................... 11
Rational Unified Process RUP ................................................................................................................................... 12
Specifikations- og analysearbejdet............................................................................................................................... 12
Kørestolen ................................................................................................................................................................. 13
Motorstyringen ......................................................................................................................................................... 15
Konstruktionen ......................................................................................................................................................... 16
Måling af hældningsvinkel ........................................................................................................................................ 19
Regulering af motorerne ud fra den målte hældningsvinkel .................................................................................... 25
Software.................................................................................................................................................................... 26
Designprocessen .......................................................................................................................................................... 29
Udviklingsværktøjer ..................................................................................................................................................... 29
Generelt .................................................................................................................................................................... 29
PC Udviklingsværktøjer ............................................................................................................................................. 30
mobil Udviklingsværktøjer ........................................................................................................................................ 30
Microcontroller udviklingsværktøjer software ......................................................................................................... 30
Microcontroller udviklingsværktøjer hardware ........................................................................................................ 30
Resultater ..................................................................................................................................................................... 31
Diskussion af opnåede resultater ................................................................................................................................. 32
Opnåede erfaringer ...................................................................................................................................................... 32
Gcc i Eclipse .............................................................................................................................................................. 32
Version 1
side 5 af 38
DIY SegWay Projektrapport
DIYS
DC motor driver ........................................................................................................................................................ 33
Software filtrering ..................................................................................................................................................... 33
PD regulering ............................................................................................................................................................ 33
Windows Presentation Foundation .......................................................................................................................... 33
BlueTooth ................................................................................................................................................................. 33
ADC Fejl grundet overclockning ................................................................................................................................ 33
ADC Fejl grundet Interrupt problem ......................................................................................................................... 33
STK500 afbryderen ................................................................................................................................................... 34
Projektets fortræffeligheder ........................................................................................................................................ 34
Bluetooth kalibrering ................................................................................................................................................ 34
Konstruktionen ......................................................................................................................................................... 34
Motorstyringen ......................................................................................................................................................... 34
ADC konstruktionen .................................................................................................................................................. 34
Hældningsvinklen ..................................................................................................................................................... 34
Forslag til forbedringer af DIYS ..................................................................................................................................... 35
Konklusion ........................................................................................................................................................................ 35
Referencer ........................................................................................................................................................................ 37
Net kilder ...................................................................................................................................................................... 37
Bøger ............................................................................................................................................................................ 37
Bilag .................................................................................................................................................................................. 38
Vinkelestimering........................................................................................................................................................... 38
Logbog .............................................................................................................................................................................. 38
Version 1
side 6 af 38
DIY SegWay Projektrapport
DIYS
INDLEDNING
De fleste har vist prøvet at balancere en pind opret på en finger. Får pinden overbalance i den ene eller anden retning,
forsøger man at flytte hånden i den retning pinden falder. Gør man det hurtigt nok, taber man ikke pinden. Men gør
man det for hurtigt, får pinden overbalance i modsatte retning.
Dette ustabile system kan kaldes for et omvendt pendul. Altså et pendul der vender på hovedet. Og det er netop dette
princip der ligger til grund for en SegWay, dermed også for dette projekt.
En SegWay er et 2-hjulet, selvbalancerende transportmiddel, som kun har et formål, nemlig at holde balancen. Når
man står på en SegWay, bruger man sin vægt til at påvirke denne balance. Vil man fremad, laver man en lille
overbalance fremad med sin vægt. Denne overbalance resultere i en hældning, der registreres af systemet, som så
reagere ved at køre fremad for at rette op på ubalancen. Opretholdes overbalancen, kører man dermed fremad. Det
samme gælder for at køre bagud.
For at vide om systemet er i balance eller ej, skal der bruges nogle sensorer, der kan detektere dette. Når man står
med pinden på fingeren og prøver at holde den i balance, bruger man synet og følesansen til at holde balancen med.
Men disse sanser kan vi desværre ikke benytte i en SegWay. I stedet bruges sensorer, der kan måle hældningen på
SegWay’ens konstruktion. Der bruges en kombination af gyroskop- og accelerometersensorer. SegWay’en står i
balance, når hældningen på den plade man står på er nul grader i forhold til vandret. Ændres denne hældningsvinkel,
er det fordi der overbalance i den ene eller den anden retning.
Når man prøver at balancere en pind på fingeren, finder man hurtigt ud af, at det ikke er nok at vide hvilken retning
pinden falder. Der er også en sammenhæng mellem hvor hurtigt pinden falder og hvor hurtigt man skal reagere. Det
samme gælder for SegWay'en. Til det kan man bruge forskellige reguleringsteknikker, som kan omsætte ændringerne i
hældningen og hastigheden af dem, til hastigheden af den bevægelse, der er nødvendig for forsat at holde balancen.
I forbindelse med faget >>Digital kontrol i en fysisk verden<< som vi fulgte ved datalogi på Århus Universitet i efteråret
2008, stiftede vi bekendtskab med denne problemstilling. Vi lavede en model af systemet i Lego, Den fik vi til at holde
balancen, men det var ikke helt tilfredsstillende nok. Vores model kunne ikke andet end at holde balancen, den kunne
ikke rette op, hvis man skubbede til den. Efter projektet var vi meget sikre på, at vi kunne gøre det bedre. Det var også
en smule svært at lave en model i Lego, som man ville kunne stå på - vores model var ca. 40 cm høj! Så vi besluttede,
at hvis vi skulle prøve at lave en SegWay selv, så skulle det være en som man vil kunne stå på og kunne bruge som den
originale SegWay.
At bygge sin egen SegWay giver nogle problemstillinger, som vi ikke rigtigt har fået noget undervisning i. Der skal laves
en konstruktion, findes noget mekanik, som f.eks. motor og gearing. Desuden skal der laves noget elektronik til styring
af motorerne osv. Så for ikke at gabe over mere end vi kunne tygge, besluttede vi at finde de ting, som vi ikke har
kompetencer til at lave selv, i færdige hardware moduler, således at vi kunne bevare fokus på områder der ligger
indenfor vore kompetencer.
Konstruktionen har været en af de store usikkerheder, da det ikke lige er til at købe en færdig konstruktion, som vi
ville kunne bruge. Heldigvis har IHA et metalværksted med nogle meget kompetente medarbejdere, som har været
meget behjælpelige med konstruktionen.
For at undgå at skulle lave stærktstømselektronikken til motorstyringen, besluttede vi os for at undersøge
virksomhederne omkring Århus, for at se, om der ikke skulle være en virksomhed, som beskæftiger sig med dette og
som kunne være interesseret i at hjælpe os. Vi kontaktede Roltec Elkørestole A/S i Lystrup, som laver elektriske
kørestole. De var meget villige til at hjælpe og donerede en gammel kørestol til os. Den var fuldt funktionel, dog uden
stol. I denne kørestol var der flere af de dele vi havde brug for: Hjul, gear og motorer, samt motorkontrollere, som er
Version 1
side 7 af 38
DIY SegWay Projektrapport
DIYS
dimensioneret til de motorer som var i kørestolen. Herfra var det blot et spørgsmål om at få fundet de resterende
komponenter, samt få det hele til at gå op i en højere enhed.
Vi har haft nogle milepæle, som har været afgørende for om projektet lykkedes:
•
•
•
•
Få konstruktionen på plads
Styre motorerne fra egen software
Få omsat sensor input til en pålidelig hældningsvinkel
Få lavet en regulering af motorerne i forhold til denne hældningsvinkel
Når der var sat flueben ud for disse fire milepæle, vidste vi at projektet ville komme i mål.
PROJEKTBESKRIVELSE
Følgende opgaveformulering er fra vores forprojekt i efteråret 2008. Denne formulering dækker de tanker vi
oprindeligt havde tænkt.
Projektet vil omhandle at lave en SegWay (en selvbalancerende 2-hjulet el-scooter) der kan benyttes til
persontransport. Denne transporttype findes allerede på markedet, hvor priserne dog ligger på omkring 45-55.000kr.
Vi vil gerne vise at man kan lave en SegWay selv, til en noget anden pris, anslået pris på 6-9.000kr.
Projektet vil bestå af følgende:
•
•
•
•
•
•
•
•
2 x DC motorer med gearing.
xxx x Batteri(er) enten NiMH ell. Lith-ion. Der skal en del battericeller til for at få dækket det nominelle og
peak drain.
2 x Hjul
xx x Motordriver FET. Evt. OSMC (Open Source Motor Control)
x Gyroskop
x Accelerometer
x Aluminium ell. stål til at konstruere chassis-rammen med.
x x Atmel mega16 microcontrollere. Microcontrollerne er kontrolenheden i systemet, det er denne enhed som
projektet vil fokusere på.
Hardwaren kan i stor udstrækning anskaffes i moduler, dette gør det muligt at ligge meget af fokus på softwaren i
kontrolenheden. Dette giver mulighed for nemt og hurtigt at skifte styringen ud. Dvs. det bliver en platform for at teste
forskellige software-reguleringsteknikker, som f.eks. PID, Space State, Fuzzy Logic osv. En mulig vinkel på dette projekt
kunne være at undersøge styrker og svagheder ved de forskellige softwareimplementerede reguleringsteknikker.
Udover dette kunne der implementeres en MMI med knapper til tænd/sluk, hastighedsbegrænser mm., display med
information om batterilevetid, hastighed mm.
Der skal interfaces til den modulbaserede hardware, via UART, I2C, SPI alt efter hvad modulet kan, eller hvad der findes
hensigtsmæssigt.
PROJEKTAFGRÆNSNING
Tidligt i forløbet kunne vi se, at opgaveformuleringen fra forprojektet var lidt for omfattende. Så vi har lavet en
afgrænsning af den opgaveformulering, som vi mener, er mere realistisk.
Version 1
side 8 af 38
DIY SegWay Projektrapport
DIYS
Formålet med dette projekt er, at vise at det er muligt at lave sin egen hjemmelavede SegWay. Til dette vil vi benytte
en Atmel microcontroller som hjerne, samt en kombination af gyroskop og accelerometer til at måle hældningsvinklen
på konstruktionen. Det resterende vil være baseret på en gammel elektrisk kørestol fra Roltec. Selve konstruktionen
laves i aluminium på IHAs værksted ud fra vores skitser. Vi har stadig et budget på omkring 10.000kr.
Vi vil ikke implementere andre reguleringsteknikker end PID, som vi har lidt erfaring med fra et tidligere SegWay
projekt i Lego. Vi har ikke fået undervisning i reguleringsteknik, så vi holder os til PID, da vi i det mindste har prøvet at
implementere den før. For at have muligheden for at komme i mål med projektet, bliver vi nødt til at holde os på
kendt grund, der hvor det er muligt.
Det skal påpeges at det er en prototype med fokus på at få det endelige produkt til at fungere og derigennem drages
erfaringer, som vil kunne bruges i forbindelse med fremtidige projekter på denne prototype. Vi vil ikke fokusere på det
æstetiske i hardware, men det funktionelle.
Vi mener stadig at det kunne være spændende at afprøve forskellige reguleringsteknikker, og vurdere styrker og
svagheder i de forskellige teknikker, i forhold til at løse problemet med at holde balancen. Men det er helt projekt i sig
selv og vil ikke være et fokuspunkt i dette projekt. Dog vil vi stræbe efter at gøre prototypen så fleksibel, at det vil
være muligt at implementere andre løsninger i fremtidige projekter.
PROJEKTGENNEMFØRELSEN
OVERORDNET TIDSPLAN
Følgende tabel viser tidsplanen, som vi havde tænkt det i forprojektet.
Måned
December 08
Januar 09
Februar 09
Marts 09
April 09
Maj 09
Juni 09
Beskrivelse
Vejleder, budget på plads
Indkøb af dele, konstruktion sat i gang
Planlægning af ledningstræk, og controller print
Samling af første prototype
Videre samling af prototype samt tweak af software control algoritmen
Test af SegWay samt debug interface
Eksamen
Det tog et par uger mere at lave konstruktionen, end vi regnede med. Trods dette havde vi en færdig prototype i
første uge af maj, hvilket kun var lille en uge over tiden. Det må siges at være acceptabelt, da overstående tidsplan
blev lavet i december.
Dette projekt har været gennemført lidt anderledes end vi har været vant til, da vi tog udgangspunkt i et eksisterende
produkt og brugte dette på en ny og anden måde, end det var tiltænkt. Kørestolen fra Roltec, som havde tjent et
noget andet formål tidligere, blev skrællet for komponenter og af disse bjergede vi, hvad vi kunne bruge og
sammensatte dem på ny.
Denne fremgangsmetode har givet en masse spørgsmål, og endnu flere usikkerheder.
Vi har bevæget os omkring forskellige faggrupper, som vi ikke er vant til: Vi har været forbi en elektronik, mekanik og
konstruktionsdesign. Dette har gjort at vi har taget mange og små trin for at kunne holde styr på helheden. Følgende
diagram giver et overblik over de trin vi har taget og den tid det har taget.
Version 1
side 9 af 38
DIY SegWay Projektrapport
DIYS
Uge 5
Finde mulige sponsorer
Uge 6
Undersøge hvad vi har fået
sponsoreret
Iterativ proces der
har kørt resten af
forløbet
Test
Udvikling af
software til
MIC
Finde og bestille
komponenter
Uge 7
Få tegnet et skitse til
konstruktionen, og få
fremstillingen af denne i gang
Uge 8
Uge 9
Test af kommunikation
mellem MIC og PC
eller mobil
Test
Udvikling af
software til
PC
Starte på softwareudvikling
mens vi venter på
konstruktion og komponenter
Få placeret komponenter i
konstruktion.
Test
Udvikling af
software til
mobil
Ledningsnet
Uge 14
Uge 15
Uge 16
Konstruktion af kontrolpanel
Testopstilling til
vinkelmålinger
Uge 17
Beregninger på testdata fra
vinkelmålingstesten
Implementering af vinkel
approximering
Beregninger af PWM ud fra
vinkelberegningerne
Uge 18
Implementering af regulering
Fintuning og test
DIYS done
Uge 19
Rapportskrivning
Version 1
Uge 22
side 10 af 38
DIY SegWay Projektrapport
DIYS
METODER
I dette projektforløb har vi, populært sagt, shoppet os til de bedste og for projektet meste relevante værdier fra
metoderne ”Extreme Programming(XP)” samt ”Rational Unified Process (RUP)”.
EXTREME PROGRAMMING XP
Extreme Programming, populært kaldet XP, er en agil udviklingsmetode, der er karakteriseret ved at være åben for
tilpasninger løbende i udviklingsprocessen. Det er ikke alle idéer og koncepter fra XP der har passet lige godt ind i
vores projekt. Vi har derfor udvalgt de ting i XP metoden, som ville tilføre vores projekt værdi.
XP metoden har fire hovedprincipper, hvor af vi benytter de 3:
• Kommunikation:
I dette hovedprincip lægges der normal meget vægt på, at brugere og udviklere er i konstant kommunikation om det
kommende system. Netop dette hovedprincip har ikke været relevant eller brugbart i vores projektforløb, da vi ikke
har brugere før i slutningen af projektet og disse brugere er da os selv.
• Simplicitet:
Her lægges der vægt på, at udviklerne til hver en tid kun skal skrive den kode, der netop løser det aktuelle problem.
Dette princip er blevet flittigt benyttet. Alle drivere blev skrevet efter dette princip og der blev fokuseret på den
aktuelle driver indtil denne var færdig, jf. den igangværende iteration.
• Feedback:
Dette hovedprincip foreskriver at tests skal bruges, idet de er af afgørende betydning. Basalt set giver det udviklerne
svar på, om det de har lavet er korrekt. Dette feedback princip er fra start til slut i projektet blevet flittigt benyttet.
Specielt fordi tests ofte var den eneste mulighed for at finde den optimale løsning på et problem, f.eks.
protokoldesign, streamrate, batterivalg, baudrate, m. f.
• Mod:
Man skal turde. Vi havde inden dette projekt ikke alle de nødvendige forudsætninger for at give os i kast med et
projekt, der involverer flere aspekter inden for strømstyring, elektronik, filtre og regulering. Vi tog opgaven på os og er
efterfølgende blevet fortrolige med disse emner, hvilket har været en stor gevinst.
Desuden opererer XP med tolv punkter ("core practices"), der beskriver den ideelle arbejdspraksis i et XP-projekt. Igen
er det ikke nødvendigvis alle 12 punkter, der har passet lige godt ind i dette projekt. Vi har derfor kun valgt at benytte
de punkter, som giver mening og værdi til netop vores projekt og følgende otte punkter er udvalgt:
•
•
•
•
•
•
Planlægning ("Planning game")
Små udgivelser med korte mellemrum
Simpelt design
Test
Hyppig refaktorering
Parprogrammering
Version 1
side 11 af 38
DIY SegWay Projektrapport
•
•
DIYS
Fælles ejerskab til programkoden
Kontinuerlig integration
RATIONAL UNIFIED PROCESS RUP
Rational Unified Process er en objektorienteret agil softwareudviklingsproces. RUP bruger UML som notationssprog. I
modsætning til XP er det kun få metoder vi i dette projekt har benyttet fra RUP. Der har nærmere været tale om at
udnytte metoden som en portion fornuftige tanker og koncepter i forbindelse med projektudvikling. Specifikt er det
følgende fra RUP vi har benyttet:
• Inkrementel:
Tanken er her, at hver iteration i princippet giver en udvidelse af det færdige system. Dog kan der næppe, efter en
afsluttet iteration i DIYS projektet, være tale om en udvidelse af et færdigt produkt, men snarere blot endnu en
mursten til det byggemateriel som projektet slutteligt skal bestå af.
• Use case drevet:
I RUP er det use cases som er kernen i udviklingen og disse bruges under såvel analyse, design, implementering samt
test. Hver iteration vil normalt handle om at foretage en fuldstændig udvikling af en eller flere use cases. Igen har vi,
grundet projektets specielle karakter, kun benyttet os af use cases i et meget begrænset omfang, da formålet med det
endelige produkt er meget simpelt og indeholder få use cases.
• Risikodrevet:
Her er tanken at risici skal identificeres tidligt i forløbet. De største risici findes ved en risikovurdering. Herved
udvælges de største risici i projektet. I DIYS var der helt klart tre større kampe/risici, som var afgørende for om
projektet ville lykkedes. Disse er identificeret som: En god og tidlig fysisk konstruktion, få en god styring af motorerne
på plads og slutteligt at få filtreret gyro- og accelerometerinput og herefter få udregnet en brugbar hældningsvinkel.
SPECIFIKATIONS- OG ANALYSEARBEJDET
Også her i analyse- og designprocessen har forløbet været en smule anderledes end hvad vi har prøvet før. Det har
ikke kun været softwareudvikling, som vi er vant til. Vi har bl.a. været omkring konstruktionsdesign, elektronik, filtre
og regulering. Dette afsnit vil beskrive de processer vi har været igennem.
Version 1
side 12 af 38
DIY SegWay Projektrapport
DIYS
KØRESTOLEN
Vi fik doneret en kørestol af Roltec, som vi har brugt som base for DIYS. Vi har genbrugt hjul, motorer, gearing og de to
motorkontrollerer, der var monteret på kørestolen.
Figur 1 Roltec kørestol
Overstående billede er en nyere model, men platformen er meget ens. Vi fik en fuldt funktionel kørestol, dog uden
sæde.
Første indtryk af kørestolen, var at den var tung, meget tung. Så vi skulle helt sikkert have skrællet noget af vægten. Vi
kunne ikke bruge chassiset fra kørestolen, så her skulle der laves en konstruktion, som passede til formålet.
Roltec benytter sig af 2 x 12V Bly-gel akkumulatorer, som både er store og tunge. Så vi kunne meget hurtigt
konstatere, at vi blev nødt til at finde nogle andre batterier. For at finde nogle batterier som passer til opgaven, måtte
vi finde ud af hvor meget strøm motorerne drænede. Det blev dog et større problem, da skolen ikke umiddelbart
ligger inde med et amperemeter, som kunne måle så store strømme. Løsningen blev målinger lavet med en shunt
modstand. Se afsnittet ”Måling af motordræn” i systemdesignet.
Version 1
side 13 af 38
DIY SegWay Projektrapport
DIYS
BATTERIVALG
Figur 2 Brainstorm på mulige batteriløsninger
Ifølge vores shunt målinger var der et absolut maksimum strømdræn på 110A ved 24V. Grundet netop dette til tider
store strømforbrug, samt en gunstig pris, endte vores batterivalg med 40 D-celler á 1,2V 10000mAh af typen
NiMH(Nickel-metal hydride). Disse 40 celler er inddelt i fire pakker bestående af 10 D-celler i serie, hvilket giver 12V og
10Ah. pr. pakke. Disse fire pakker kobles nu som vist i nedenstående setup:
Dette setup kan klare kortvarige strømdræn på op til 100A, hvilket er rigeligt jf. de voldsomme strømdræntests der
blev udført mens motorerne sad i deres oprindelige konstruktion. I denne nye konstruktion vil der ved afvekslende
kørsel typisk være et strømdræn på 5-20A. Dette er også godt under de 40A der maksimalt er tilladt for kontinuerligt
strømdræn. Skulle DIYS ved fejlbrug eller skade på et tidspunkt overstige det absolut tilladte strømdræn på 100A, er
hver batteripakke desuden udstyret med et sikkerhedsprint, der vil slå fra inden batterierne bliver beskadiget.
Version 1
side 14 af 38
DIY SegWay Projektrapport
DIYS
OPLADNING
Hver af de fire pakker kan lades med en medfølgende Smart Charger (9.6V-18V). Denne kan lade batteripakkerne til
fuld kapacitet på syv timer når der lades med 1,8A. Det giver strøm til ca. 2 timers kørsel.
MOTORSTYRINGEN
Inden dette projekt havde vi kun ganske lidt erfaring med motorstyringer og disse var spinkle og opnået gennem "leg"
med nogle ganske små stepper-motorer. Disses strømdræn var ganske anderledes i forhold til de aflagte elkørestolsmotorer, vi nu skulle benytte til at fremdrive DIYS med. Det stod klart ret tidligt i projektet, at hvis projektet skulle
ende med succes, skulle der lægges meget fokus på de faser der er involveret i motorstyringen. Til at styre disse store
elkørestols-motorer, benyttes der to til formålet specielt byggede motorkontrollere. Grunden til at disse to
motorkontrollere, en til hver motor, skal bruges, er at der benyttes så store strømme til at drive motorerne, at vi ikke
på andre måder kan levere strømmen, samtidig med at vi også skal kunne styre den. De to motorkontrollere var taget
ud af deres oprindelige konstruktion, befriet fra andre print, og skulle nu bruges på en ganske anderledes måde og til
et andet formål end det de var bygget til. Roltec var så flinke at give os eldiagrammerne over motorkontrollerne,
hvilket lettede "reverse engineer" arbejdet en hel del. Hovedproblemet med motorkontrollerne var begrænset til
"blot" at levere de rette input som kræves af motorkontrollerne for at kunne fungere. Ledningerne til disse input var
dog ikke på nogen måde markeret. Vi brugte derfor en del tid på at få styr på hvilke signaler der skulle på hvilke
kabler.
MOTORKONTROLLERNE
Figur 3 Kobling mellem motor og microcontroller
1
Motorkontrollernes funktion er at omsætte PWM signalet fra microcontrolleren til et stærkstrømsignal, således at
motorerne responderer jf. den nuværende duty-cycle på PWM signalet fra microcontrolleren. Kort forklaret går PWM
signalet fra microcontrolleren ind på en af de to MOSFET-driverkredse(LT1160). Denne styrer fire af de otte 75A 55V
MOSFETs. Det er disse MOSFETs, der "åbner" for stærkstrømmen til motoren. De otte MOSFETs er sat op omkring
motoren i en almindelig H-bro opkobling. Af samme grund er det yderst vigtigt at der ikke sendes et PWM signal fra
1
Pulse Wide Modulation – Se systemdesign Microcontroller afsnittet for implementeringsdetaljer.
Version 1
side 15 af 38
DIY SegWay Projektrapport
DIYS
begge ender af H-broen på samme tid, da dette vil medføre en kortslutning. Se evt. systemdesign bilag
motorkontroller diagram.
INPUT TIL MOTORKONTROLLER
Et af de større og mere tidskrævende problemer i forbindelse med dette projekt, har været at få skaffet de
nødvendige input til motorkontrollerne. Se nedenstående inputoversigt med tilhørende forklaring.
•
Shutdown: Dette signal ANDes med PWM signalet. Da vi kun benytter vores PWM til at styre motorerne med,
er shutdown sat konstant høj vha. 5V forsyningen fra STK500.
•
PWM1V: Et af de to PWM input som kommer fra microcontrolleren.
•
PWM2V: Et af de to PWM input som kommer fra microcontrolleren.
•
5V: 5V forsyningen benyttes primært til at forsyne motorkontrollerens styrelogik. Leveres fra STK 500
forsyningen.
•
12V: 12V forsyningen benyttes primært til at forsyne de to MOSFET-driverkredse.
•
-12V: Benyttes ikke.
•
36V: Bruges af MOSFET-driverkredsene til at åbne gates med. Det var et problem at få lavet 36V i et system,
hvor vi ellers kun har 24V til rådighed. En simpel og effektiv løsning var at benytte en DC-DC konverter, der
2
laver 24V om til 12V. For at dette trick kan lykkes, er det et krav at DC-DC konverterens output er galvanisk
adskilt fra dens input. Når dette er tilfældet, kan man koble de 12V fra outputtet oveni de 24V, der allerede
eksisterer. Hvilket medfører at der nu er 36V i forhold til stel. Dette trick virkede perfekt, og vores problem
med at skaffe motorkontrollerne 36V var løst.
•
24V: Dette er de 24V som MOSFETerne åbner for, altså den stærkstrøm som driver motorerne.
KONSTRUKTIONEN
Motorerne har været toneangivende for designet af konstruktionen. Da motorerne er forholdsvis store, er det en
udfordring at holde konstruktionen så lille som muligt. Et andet problem er, at der i toppen af gearhuset er et lille hul,
som udligner det overtryk der må komme i gearingen under kørsel. Vi vil gerne have en konstruktion, hvor man ikke
står for højt over centeraksen på hjulene, men dette ville i så fald betyde, at motorerne skulle vende mere eller
mindre på hovedet, i forhold til den måde de sad i kørestolen. Dette gav os et problem med oliehullet. Når motor og
gearkonstruktionen vender nedad, løber olien ud af gearingen. Vi diskuterede flere løsninger på dette problem, bl.a.
om det var muligt at lave en snorkel, som kunne flytte hullet eller lave en prop, som kunne lukke hullet. Løsningen på
problemet blev at tømme motorerne for olie, da vi vurderede, at DIYS ikke vil blive brugt i et omfang, hvor dette ville
være et problem. Dog skal man være opmærksom på at give gearingen olie en gang imellem.
2
Ved galvanisk adskillelse forstås det at der ikke er direkte forbindelse mellem inputtet og outputtet, typisk vil
overførelsen bestå vha. magnetfelter eller lys.
Version 1
side 16 af 38
DIY SegWay Projektrapport
DIYS
Figur 4 Motor, gear og hjul konstruktion
For at holde produktionstiden og kompleksiteten nede, har vi valgt
valgt et meget simpelt design. Konstruktionen er reelt
bare en kasse som motorerne er monteret på. Da DIYS
YS er en prototype, har filosofien været fleksibilitet
fle
frem for
æstetik, hvorfor kasse-designet her har været optimalt. Alle komponenter er fastgjort vha. enten velcrobånd eller
strips. På den måde kan man nemt flytte rundt på, eller skifte komponenterne.
Figur 5 DIYS skitse
Vi har valgt at få lavet konstruktionen i aluminium. Dette giver en lettere konstruktion end hvis den var lavet i stål.
Selve kassen er blevet bukket af en aluminiumsplade, og for stabilitet er der lavet en ramme
ramme i toppen af kassen i
aluminiumsprofilrør. Selve motorbeslagene har vi ladet smeden konstruere selv. Det tog omkring halvanden måned
før konstruktionen var færdig. Her viste
ste vores uerfarenhed i konstruktionsdesign sig. Pga. kassen, kunne
konstruktionen ikke tilte mere end
d ca. 10 grader til hver side. Dette
D
er et problem, da selv den mindste kantsten ville
være en uoverkommelig forhindring for DIYS. Vi
V fik derfor ændret lidt på kassens design,, så der nu er ca. 20 graders
tilt til hver side. Derudover konstruerede
truerede vi et kontrolpanel,
kontrolpanel, hvor det er muligt at starte og stoppe DIYS. Der er også et
e
lille joystick til højre/venstre styring. Derudover er der et RS-232
R 232 stik, så det er hurtigt og nemt at flashe nyt software i
microcontrolleren.
Version 1
side 17 af 38
DIY SegWay Projektrapport
DIYS
Figur 6 Kontrolpanel
Vi har 2 konfigurationer, enten med en akrylplade eller metalplade til at stå på.
Figur 7 DIYS med akrylplade
Version 1
side 18 af 38
DIY SegWay Projektrapport
DIYS
Figur 8 DIYS med metalplade
MÅLING AF HÆLDNINGSVINKEL
Det at måle en hældningsvinkel, er i princippet ikke så svært. Flere nyere mobiltelefoner og kameraer kan dette. De
benytter et eller flere accelerometre.
Et accelerometer måler acceleration i g, som navnet også antyder. Hvis et accelerometer er placeret korrekt i forhold
til de akser den måler på og jorden, kan den bruges til at måle en hældningsvinkel vha. tyngdeaccelerationen. Men i
vores kontekst vil dette ikke kunne fungere alene, da vi også introducerer en horisontal acceleration, når vi bevæger
os. Denne horisontale acceleration vil komme med i målingerne, og give et forkert billede af hældningsvinklen. For at
løse dette problem, skal vi bruge et gyroskop.
Gyroskopet måler rotationshastighed i grader/sekund. Det vil sige gyroskopet ikke påvirkes af den horisontale
acceleration og vil derfor kunne give os et klart billede af hvor mange grader vi har bevæget os i løbet af en bestemt
tid. Dette giver dog andre problemer. Et gyroskop vil aldrig kunne måle 0 præcist, hvilket kaldes drift. For at måle
vinklen vha. et gyroskop, bliver man nødt til at summere målingerne over tid. Måden man gør det på er ved at starte
et stopur mellem hver måling. Når man har en ny måling, forholder man den til tiden der er gået siden sidste måling.
Dette resultat summeres hele tiden, og dermed har man et billede af hældningsvinklen. Dette giver dog nogle
problemer. For det første skal man vide hvor man starter, da gyroskopet kun måler rotationshastighed og ikke vinkel.
Et andet problem er, at den drift et gyroskop har, også vil komme med i summeringen. Det vil sige, at jo længere tid
der går, des mere usikker bliver hældningsvinklen.
En kombination af disse to sensorer vil være den bedste løsning, da de to sensorer opvejer hinandens svagheder.
Gyroskopet påvirkes ikke af den horisontale acceleration og accelerometret drifter ikke.
Version 1
side 19 af 38
DIY SegWay Projektrapport
DIYS
VALG AF SENSORER
Med valg af sensorer havde vi ikke det store erfaringsgrundlag. Vi vidste vi skulle bruge et accelerometer og et
gyroskop, men derudover var vi helt nye i felten. Vi valgte derfor at kigge et lignende projekt over skulderen. Den
løsning, der var mest hensigtsmæssig, var en hjemmelavet SegWay, hvor konstruktøren havde erfaringer med
yderligere en DIY. Han havde derfor gjort sig nogle praktiske erfaringer omkring valg af sensorer. I hans anden version
af en SegWay, var det især valget af sensorer, han havde ændret i. På baggrund af hans erfaringer har vi valgt følgende
sensorer:
Accelerometer: ADXL320 ±5g fra Analog devices. Denne sensor kan måle op til ±5g på 2 akser, og kan købes på et
færdigt lille print. Grunden til at der er valgt en sensor der kan måle en høj g-påvirkning, er for at sensor ikke så nemt
saturerer, når SegWay’en kører over bump eller lignende.
Gyroskop: CRS03-02 Angular Rate Sensor. Dette er en dyrere sensor, men også meget præcis. Sensoren drifter ikke
mere end ±0,55°/s.
Begge sensorer er analoge og varierer deres output spænding i forhold til det de måler. For at vi kan aflæse
sensorerne, skal vi lave en analog/digital konvertering af denne spænding. Derefter omsættes den aflæste værdi til
reel data.
ANALOG DIGITAL KONVERTERING [ADC]
ADC-driveren er skrevet specifik til dette projekt. Der er 3 input fra hhv. accelerometer, gyroskop og joystick. A/D
konverteringerne laves kontinuert, da DIYS løbende skal beregne hældningsvinklen samt PWM ud fra accelerometret
og gyroskopet. Disse to input er derfor prioriteret højere end inputtet fra joysticket. Det anbefales på det kraftigste at
læseren kaster et blik på ADC delen i systemdesignrapporten, hvor bl.a. udledningen af ADC præcision og ADC
frekvensen samt tilhørende design er uddybet.
Version 1
side 20 af 38
DIY SegWay Projektrapport
DIYS
HÆLDNINGSVINKEL
Vi har valgt at benytte os af en PD kontrol til at regulere motorerne. Forklaringen af PD regulering, og hvorfor vi har
valgt en PD regulering, findes i afsnittet om regulering.
Vores regulering vil se ud som følgende
Motor output = Kp*vinkel + Kd*vinkelhastighed
Omregningen af aflæsningerne fra sensorerne til brugbare data gennemgås i systemdesignet under afsnittet
”Aflæsning af vinkelsensorer”. Kort fortalt har vi fundet en lineær sammenhæng mellem den målte værdi fra A/D
konverteringen og henholdsvis vinkel for accelerometret og vinkelhastighed for gyroskopet.
For at lave reguleringen, som skal holde DIYS i balance, skal vi bruge to ting: Hældningen, og hastigheden af
ændringen af denne hældning. Man kan illustrere det som følgende.
Vi har de 2 input, som bliver sendt igennem en black box. På den anden side, får vi en hældningsvinkel og en vinkel
hastighed ud.
Med de to sensorer vi har, er den åbenlyse løsning som følgende:
Vinkelhastigheden har vi direkte fra gyroskopet, så dette kræver ikke meget beregning. Vi mangler blot en pålidelig
hældningsvinkel.
Der er flere måde at måle hældningsvinklen på, men ikke alle metoder er lige optimale for vores system. Den direkte
tilgang er at overføre accelerometerværdien direkte. Dette ville virke, hvis bare DIYS står stille. Accelerometret
fungerer vha. tyngdekraften. Desværre kan den ikke skelne mellem tyngdeacceleration og horisontal acceleration.
Dette medfører, at når vi bevæger os bliver målingerne ukorrekte, pga. denne horisontale kraft, som motorerne
introducerer.
Version 1
side 21 af 38
DIY SegWay Projektrapport
DIYS
For at løse dette problem, kunne man implementere et lavpasfilter på accelerometret.
f.eks. som en simpel gennemsnitsmåling.
0,75 · 0,25 · Dette vil fjerne de korte udsving som den horisontale acceleration giver, men lade de længere udsving fra
tyngdekraften slippe igennem. Dette giver en forsinkelse i målingerne, så denne løsning er heller ikke den optimale.
En tredje måde kunne være kun at bruge gyroskopet.
Dette kan gøres ved at lave en numerisk integration af målingerne fra gyroen.
· Dette giver dog et problem, da gyroens nulpunkt altid vil flytte sig lidt – det, som kaldes gyro drift. Denne drift vil lige
så langsomt blive akkumuleret til et større problem. Så denne metode er heller ikke optimal.
En fjerde løsning kunne være ”magi” også kaldet Kalman filtrering.
Version 1
side 22 af 38
DIY SegWay Projektrapport
DIYS
Kalman filtrering er en matematisk/fysisk model som, hvis lavet rigtigt, kan estimere hældningsvinklen og
vinkelhastighed ud fra de to sensorinputs. Vi har ikke den fornødne viden til at konstruere filteret og alle vi har
snakket med om Kalman filtrering siger, at det skal vi ikke give os i kast med, da det er meget komplekst, og et projekt
i sig selv. Så Kalman filtrering er udelukket fra dette projekt!
Den femte løsning er at kombinere de to sensorer.
Hvis vi laver lavpasfilteret på accelerometeret og et højpasfilter på den numeriske integration af gyroskopet, vil vi
opnå både at fjerne den horisontale acceleration, da den er forstyrrelser over kortere tid, og gyrodriften, som er
forstyrrelser over længere tid. Dette kan gøres på den som følgende.
· · 1 · Filterkonstanten a skal selvfølgelig indstilles til den ønskede effekt. Dette har vi fundet nemmest ved at lave
beregningseksempler og derefter praktiske forsøg. Bestemmelsen af filterkonstanten a, kan findes ved at bestemme
tidskonstanten for filteret, dvs. den grænse, hvor vi tror mere på den ene sensor frem for den anden.
Sammenhængen mellem tidskonstanten τ og filterkoefficienten a er som følgende.
· 1
Eksempel:
0,98 · · 0.005 1 0,98 · Hvor dt er tiden mellem hver udregning. I dette eksempel reguleres der 200 gange i sekundet, så dt er 1/200 = 0,005.
Her kan vi regne tidskonstanten ud, altså tidsgrænsen for, hvor når vi skal tro på gyroen eller accelerometret.
0,98 · 0,005
0,245
1 0,98
Dette betyder at 0,245s er grænsen for hvornår vi stoler på gyroen frem for accelerometret. Hvis accelerometret
holder den samme værdi i over 0,245s, vil det være accelerometret vi stoler på, og ellers er det gyroskopet. En
tydeliggørelse af dette, kan ses på følgende figur.
Version 1
side 23 af 38
DIY SegWay Projektrapport
DIYS
Her kan man se at jo større a er, des mere stoler man på gyroskopet.
Der er to fremgangsmåder til at bestemme filterkoefficienterne: Enten bestemmer man sig for en tidskonstant, eller
også prøver man sig frem med nogle test data. Vi prøvede først at bestemme os for en tidskonstant, og derefter
rettede vi på a, indtil den ønskede effekt var opnået.
Gennemløbstiden for vores regulering er ca. på 3,7ms. Vi ved fra databladet for gyroskopet, at den er meget præcis,
og drifter ikke mere end ±0,55°/s, så vi vil gerne bruge gyroskopet meget, ved at vælge en forholdsvis høj tidskonstant
på 0,8s. Så skal det fyldes i formlen, så vi kan udregne vores filterkoefficienter.
0,8
0,995
0,8 0,0037
Herefter kan vi konstruere filtret, og teste det.
0,995 · · 1 0,995 · 0,995 · · 0,005 · Efter filterkoefficienten var fundet implementerede vi filtret og lavede nogle tests på vores vinkeltestopstilling.
Følgende figur viser tydeligt resultatet.
I den grønne markering, har vi forsøgt at lave en horisontal acceleration, hvilket kan ses ved at accelerometret giver
nogle små udslag, men gyroskopet læser nul. I den nederste graf er de to sensorers bud på hældningsvinkel afbilledet,
Version 1
side 24 af 38
DIY SegWay Projektrapport
DIYS
samt den filtrede vinkel, her både filtreret på PC og på microcontrolleren. I den blå markering, kan man se, at
gyroskopet drifter en smule, men den holder filteret styr på og fjerner driften. Det skal dog siges at ’Gyro angle Est’ er
udregnet i Microsoft Excel, og med en fast dt, som godt kan afvige fra den egentlige dt. Derfor kan man også se, at
’MIC angle’ er en bedre estimering af vinklen, end den Microsoft Excel udregner. Men alt i alt har vi den ønskede
effekt - vi får fjernet den horisontale acceleration, samt gyrodriften. Så filtret fungerer efter hensigten og vi kan
fortsætte med at få lavet en regulering af motorerne ud fra denne vinkel.
REGULERING AF MOTORERNE UD FRA DEN MÅLTE HÆLDNINGSVINKEL
Vi har besluttet at bruge en PD regulering, pga. egne erfaringer fra Lego SegWay’en. Desuden kan vi se på lignende
projekter, at denne form for regulering løser opgaven ganske udmærket. Så vi holder os til det vi ved der virker, samt
er simpelt at implementere. Og begge dele opfylder PD reguleringen.
For at holde balancen, skal vi have omsat vores målte hældningsvinkel til en reaktion på motorerne. Det vil sige, at når
vi tipper fremad, skal motorerne køre nøjagtigt så stærkt fremad at DIYS ikke vælter. Men hvis motorerne kører for
stærkt, vil DIYS stå og oscillere og ikke køre fremad.
PD reguleringen består af 2 led. P-leddet er den proportionelle afvigelse, altså hvor meget vi skal reagere på baggrund
af den aktuelle afvigelse. Denne styres af en konstant, Kp, som multipliceres med den aktuelle afvigelse. Altså vil den
fungere som en forstærkning af afvigelsen. Dette vil i princippet kunne fungere alene, men vil nok give en noget
oscillerende, og ikke særlig behagelig, kørsel. Dette løses med D-leddet, som er den afledte funktion af afvigelserne
over tid. Med andre ord fortæller dette led os noget om, hvilken retning vi bevæger os i, og med hvilken hastighed vi
gør det. Dette led bruges som en dæmper på P-leddet. Reguleringen vil blive mere blød, og give en mere rar
fornemmelse når man kører på DIYS.
Den matematiske formel for PD reguleringen er følgende:
" #$ #%
Man kan sige at P-leddet vil fungere som en fjeder, og D-leddet som en dæmper (se Figur 9 regulering). Ved at styre
disse to led med to konstanter, Kp og Kd, kan vi bestemme hvor aggressivt vi vil regulere.
Figur 9 regulering
Implementeringen af reguleringen er meget simpel, og vi har gjort som følgende
Version 1
side 25 af 38
DIY SegWay Projektrapport
DIYS
"'" #$ · ()* #% · ()*+ )+
Der er flere måde at finde frem til de rette Kp og Kd konstanter. Vi regnede os først frem til nogle konstanter, som vi
vidste ikke var for aggressive og derefter har vi, via vores PC eller mobil program, prøvet os frem.
60
40
20
0
-20
Angle
0
5
10
15
20
25
30
35
40
PWM
-40
-60
-80
Her er PWM afbilledet sammen med den udregnede vinkel. Dog er PWM afbilledet med en faktor 10, altså PWM/10,
for at kunne have de to grafer sammen. I overstående regulering er Kp=25 og Kd=2. Disse 2 tal er vi kommet frem til,
ved at lave nogle forskellige beregninger, som ligner den ovenstående. D-leddet bidrager til at vi reagerer på forkant
med ændringerne. Dermed får vi en god reaktion på ændringerne i hældningsvinklen, men også en blød og behagelig
reaktion.
Vores motordriver kan giver et output på mellem -255 og 255 til motorerne. Den overstående PWM udregning vil
derfor bliver klippet til, så den er indenfor de givne grænser, inden signalet sendes til motorerne.
SOFTWARE
Når alle de trivielle ting er overstået, som at læse værdier fra sensorerne og styre motorerne, er systemet egentlig
meget simpelt og fylder ikke mange liniers kode. Princippet kan illustreres som følgende.
Version 1
side 26 af 38
DIY SegWay Projektrapport
DIYS
På baggrund af erfaringerne fra Lego projektet, vidste vi at regulering godt kunne være noget besværlig at få på plads.
Derfor har vi udviklet et bluetooth interface, hvor det er muligt at se data fra beregningerne fra DIYS, samt mulighed
for at ændre på de to gain konstanter i PD-reguleringen (Kp og Kd). Derudover er det muligt at stille på en gain
konstant til styringen Ks. Denne konstant multipliceres med joystickets ADC værdi. På denne måde har vi kunnet
”tune” os ind på nogle indstillinger, som giver en behagelig fornemmelse, når man kører.
Når DIYS tændes, går der lige et par sekunder inden den er klar til at køre. Når DIYS startes, går den igennem en
initialiseringsfase, hvor bl.a. vinklen bliver initialiseret. Dette bliver gjort ved at midle over accelerometeret, og
derefter initialisere vinklen med denne værdi. Dette gøres for at undgå unødige pulsning af motorerne, pga. en forkert
startvinkel. Afslutningen af initialiseringen markeres med et beep og herefter er DIYS klar til brug.
Kommunikationen foregår via en GridConnect FireFly serial to Bluetooth adapter. Grunden til at vi valgte denne
løsning, var igen at holde kompleksiteten nede. Da FireFly adapteren er en transparent seriel til Bluetooth adapter,
skal vi blot lave koden, som om det var en almindelig kablet seriel forbindelse. Så sørger FireFly’en for at sende det via
Bluetooth.
Til streaming af data, har vi konstrueret en simpel protokol, hvor karakteren ’,’ benyttes til at adskille de forskellige
værdier, karakteren ’$’ markere at datadelen af pakken er slut. Det sidste i pakken er den medsendte
checksumsberegning. Denne checksumsberegning sker både på microcontrolleren og på PC eller mobil. Beregning er
meget enkel: Efter datadelen af strengen er lavet, summeres hver enkelt karakter af strengen i microcontrolleren
indtil transmission-end karakteren ’$’ nås. Resultatet af denne summering placeres efter ’$’, hvorefter pakken sendes
afsted. Hos modtageren vil der foregå akkurat den samme checksumsberegning af den indkomne pakke. Forskellen er
Version 1
side 27 af 38
DIY SegWay Projektrapport
DIYS
at her sammenlignes resultatet af summeringen blot med den medsendte checksum. Passer de ikke, kasseres pakken
og næste pakke afventes. Passer checksumsberegningen derimod, sendes pakken videre til fortolkning i systemet.
Figur 10 Stream datapakke
Kommunikationen den anden vej, altså fra PC eller mobil til DIYS, foregår via nogle få kommandoer. Vi har lavet en
kommandoprotokol, som ser ud som følgende:
[Kommando][Værdi]~
Mulige kommandoer er
Kommando
P
D
S
T
Beskrivelse
Ny værdi til Kp, værdi sendes over med en faktor 10
Ny værdi til Kd, værdi sendes over med en faktor 10
Ny værdi til Ks, værdi sendes over med en faktor 10
Toggle Bluetooth Radio [ ON / OFF ], starter eller stopper stream
For at bekræfte at microcontrolleren har modtaget og forstået kommandoer, har vi implementeret en buzzer, som
kan give en auditiv tilkendegivelse på kommandoer. Dette er igen en erfaring vi har taget med fra Lego projektet, hvor
netop denne tilgang viste sig meget brugbar.
På PC programmet er det muligt at se live data fra DIYS visualiseret på nogle XY-plots. Derudover er det muligt at
sende kommandoer til DIYS og på den måde konfigurere den. Der er også mulighed for at logge valgfrit data fra DIYS.
Disse data bliver logget direkte i et Excel ark.
Efter DIYS kom op at køre kunne vi hurtigt se, at det ville være rart med en mere mobil løsning, når der ændres på
konstanterne i DIYS. For at løse det problem, lavede vi et lille program til en Windows Mobile, hvorfra det er muligt at
ændre på konstanterne i DIYS. Det er også muligt at se live data herfra. Denne kommunikation foregår også via
Bluetooth. Programmet har vist sig ganske anvendeligt, da det nu er hurtigt og nemt at ændre på konfigurationen af
DIYS.
Vi har også konstateret, efter at have fået en del køretimer, at der er en sammenhæng mellem hvor lang tid man har
kørt og hvor følsom regulering skal være. Hvis det er første gang man prøver DIYS, skal den ikke være så følsom, da
man lige skal have fornemmelsen af hvordan det fungerer. Og hvis DIYS er for følsom når man prøver første gang, har
man tendens til at prøve at holde balancen selv og dette kan give en noget oscillerende kørsel. For at gøre første tur så
rar som muligt, skal reguleringen derfor ikke være for aggressiv. Hermed mister man dog også lidt af topfarten og
reaktionstiden. Når man har fået lidt øvelse føles det rarere, hvis DIYS reagerer lidt mere aggressivt. For hurtigt at
kunne ændre på disse indstillinger, har vi implementeret tre profiler på mobilen, som man nemt kan skifte imellem.
Version 1
side 28 af 38
DIY SegWay Projektrapport
DIYS
DESIGNPROCESSEN
Figur 11 Designprocessen
Designprocessen har været noget anderledes end vi har bekendt med hidtil. Overstående figur er en skitse over den
designproces vi har været igennem. Vi startede med at analysere kørestolen og vurdere hvad vi kunne bruge og hvad
vi skulle købe. Derefter lavede vi en skitse af konstruktionen, da vi vidste værkstedet skulle i gang så tidligt som muligt,
hvis de skulle have mulighed for at nå det. Efter værkstedet var sat i gang og komponenterne bestilt, gik vi i gang med
udviklingen af softwaren. Her har vi kørt to parallelle forløb. Jesper havde hovedansvaret for softwareudviklingen til
microcontrolleren og Daniel havde hovedansvaret for softwareudviklingen til PC og mobil. Da konstruktionen var
færdig og alle komponenter ankommet, begyndte vi at samle en prototype og trække ledninger til det hele. Herefter
begyndte vi at lave nogle målinger af hældningsvinkel i en testopstilling. Da vinkelmålingen var på plads, lavede vi PD
reguleringen. Da vi var tilfredse med reguleringen, prøvede vi at sætte det hele sammen. Da vi kunne konstatere at
det hele fungerede som forventet, lavede vi test og tweaks, hvor vi har fundet konstanter til reguleringen som er
behagelige.
UDVIKLINGSVÆRKTØJER
GENERELT
•
•
Bray Terminal
o Et terminalprogram, som vi har brugt til at skrive og læse data til og fra DIYS. En hurtig terminal,
intuitiv og let at bruge. Desuden har den en god log funktion, som blev benyttet til at opsamle data
med, til senere analyse.
Microsoft Office 2007
o Word
Brugt til dokumentationen
o Excel
Brugt til beregninger, logging og simulering
o Visio
Brugt til diverse diagrammer
Version 1
side 29 af 38
DIY SegWay Projektrapport
•
•
•
•
•
DIYS
Paint.net
o Gratis tegneprogram, har mulighed for at arbejde i layers
TortoiseSVN, AnkhSVN og SubClipse
o Klienter til versionsstyring af softwaren
Googlecode
o Versionsstyring – vi har oprettet et projekt på code.google.com. Dette har fungeret meget fint, dog
var det lidt kompliceret at sætte op i Eclipse.
Dropbox
o Gratis plads på nettet, hvor man kan dele filer og mapper. Indeholder en simpel versionsstyring af de
delte filer. Har været en god oplevelse, og virkelig lettet delingen af filer.
Wordpress
o Et weblog værktøj, som vi har brugt som logbog. Kan ses på http://diys.daller.dk
PC UDVIKLINGSVÆRKTØJER
•
•
Microsoft Visual Studio 2008
o Har fungeret upåklageligt. Der er udviklet i C#.net 3.5 sp1
Microsoft Expression Blend 2.5
o Værktøj til at lave WPF brugerflader visuelt
MOBIL UDVIKLINGSVÆRKTØJER
•
•
Microsoft Visual Studio 2008
o Har igen fungeret upåklageligt. Der er udviklet til Windows Mobile 6.1 i C#.net 3.5 Compact
HTC Touch Diamond mobiltelefon
MICROCONTROLLER UDVIKLINGSVÆRKTØJER SOFTWARE
•
•
•
Eclipse IDE
o Super open source udviklingsmiljø, der indeholder mange gode elementer, man normalt ikke finder i
C udviklingsmiljøer.
WinAvr Gcc compiler
o WinAvr installeres for at få GCC compileren og dennes system paths sat korrekt på en nem og
elegant måde.
The AVR Eclipse Plugin
o Open source plugin til Eclipse, der i kombination med GCC compileren, muliggør udvikling på
størsteparten af AVRs microcontrollere i Eclipse udviklingsmiljøet.
MICROCONTROLLER UDVIKLINGSVÆRKTØJER HARDWARE
•
•
•
•
20 MHz Oscilloskop
o Flittigt benyttet i forbindelse med diverse tests af motordriveren.
Multimeter
o Ofte benyttet i forbindelse med fejlsøgning af hardwaren.
Shunt modstand
o Benyttet sammen med multimetret til at bestemme strømdræn med.
Laboratorie strømforsyning
o Brugt i diverse forskellige testopstillinger.
Version 1
side 30 af 38
DIY SegWay Projektrapport
•
DIYS
STK500 kit
o Projektets hardware platform.
RESULTATER
DIYS fungerer! Den kan holde balancen, den kan køre frem og tilbage, og dreje med hjælp af joysticket. Tænde og
slukke vha. nøglen. Afbryde motorerne vha. dødemandsknappen. Desuden kan man følge med i, hvad der sker vha.
Bluetooth streamen, både på PC og på mobilen. Alt i alt fungerer det og skal opleves. På den medfølgende CD, er der
nogle billeder og video af DIYS.
En af de vigtigere dele af DIYS er vinkelmåling. Hvis vi ikke kan aflæse en stabil og præcis vinkel, vil det være meget
svært at holde balancen, da vinklen er den eneste reference DIYS har til omverdenen. Følgende tabel viser aflæsninger
af vinklen vha. henholdsvis DIYS og den mekaniske vinkelmåler fra testopstillingen. Vi har kun testet indenfor ±20°, da
det er i dette område vinkelmålingen er optimeret til.
Vinkel aflæst med mekanisk vinkelmåler
-20°
-15°
-10°
-5°
0°
5°
10°
15°
20°
DIYS
-21°
-15°
-10°
-5°
0°
5°
10°
15°
20°
Afvigelse
1°
0°
0°
0°
0°
0°
0°
0°
0°
Et af målene for dette projekt, har været at holde et budget på under 10.000kr. Budgettet for projektet ser ud som
følgende
Enhed
Motor
Hjul
Motorstyring
Gearing
Aluminiumskonstruktion
NiMH
Lader NiMH
Relæer
Bluetooth
Dødemandsknap
Buzzer
STK500
On/Off switch
Microcontroller
Gyro
Version 1
Enhedspris Antal Samlet pris Beskrivelse
Heavy duty HW & konstruktion
kr 0,00
2
kr 0,00
Roltec
kr 0,00
2
kr 0,00
Roltec
kr 0,00
2
kr 0,00
Roltec
kr 0,00
2
kr 0,00
Roltec
kr 0,00
1
kr 0,00
Lavet på IHAs værksted af IHA
Batterier
kr 744,74
4
kr 2.978,98 NiMH 12V 10Ah battery pack
kr 0,00
4
kr 0,00
Inkluderet i batteripakken
Elektronik
kr 0,00
2
kr 0,00
Roltec
Transparent Gridconnect firefly udlånt af
kr 0,00
2
kr 0,00
HH
kr 0,00
1
kr 0,00
Roltec
kr 0,00
1
kr 0,00
Fra IHA
kr 0,00
1
kr 0,00
Fra IHA
kr 30,94
1
kr 30,94
Standard SPST Key Switch
kr 64,00
1
kr 64,00
ATmega644PV-10PU MCU DIL40
kr 1.602,00 1
kr 1.602,00 CRS03-02 - Angular Rate Sensor
side 31 af 38
DIY SegWay Projektrapport
Accelerometer
DC/DC 24V-12V Konverter
Thumb Joystick
I alt
DIYS
kr 244,00
kr 175,00
kr 22,63
1
1
1
30
kr 244,00
kr 175,00
kr 22,63
kr 5.117,54
ADXL320EB Evalboard
DC/DC-konverter TEN3-2412
Bruges til at styre dreje til højre/venstre
Til dette skal der dog knyttes en bemærkning, told og transport er ikke indregnet i budget. Det er købspriser, som de
er noteret hos sælgerne. Vi har desuden brugt forskellige småting, som velcrobånd, træplader og akrylplade, som alt
sammen er fra IHA.
DISKUSSION AF OPNÅEDE RESULTATER
At vi kom mål med dette projekt, og at DIYS fungerer upåklageligt, er en klar identifikation af at vi har gjort noget
rigtigt. Gennem hele projektet har vi arbejdet disciplineret for at komme sikkert i mål. Måden vi har arbejdet på, har
helt klart været en medvirkende årsag til at vi kom i mål. Vi har ikke på noget tidspunkt bekymret os om noget vi ikke
var klar til endnu. Eksempelvist kan nævnes, at da vi arbejdede med at få motorerne til at køre, brugte vi overhovedet
ikke tid på f.eks. vinkeludregningen. DIYS er bygget op af nogle elementer som er afhængige af hinanden. Vi har ikke
lavet mere end det der var nødvendig for at løse det aktuelle problem vi stod med. Hvis vi ikke kunne styre motorerne,
så var der igen grund til at fortsætte. Så det var noget af det første vi kiggede på. Da motordriverne var på plads,
kunne vi begynde at aflæse en hældningsvinkel og det var først da det var på plads at vi begyndte at kigge på
reguleringen. Igen fordi reguleringen var afhængig af hældningsvinklen. Hele arbejdsmetoden med at lave
fundamentet først og derefter bygge ovenpå i et højt, men overkommeligt, tempo har fungeret perfekt for os.
Vinkelmålingen fungerer perfekt indenfor vores arbejdsområde. Vi skal dog sige, at testopstillingen ikke har været
optimal, da vi kun har haft en mekanisk vinkelmåler som reference. Det er meget svært at aflæse i mere end 1°
opløsning. Dette har dog vist sig at være nok. Filtreringen af de to sensorer til én vinkel, har vist at være meget
effektiv. Det er ingen drift fra gyroskopet og kun en meget lille påvirkning af horisontal acceleration. Denne
horisontale acceleration er dog så lille, at den ikke kan mærkes. Alt i alt er vi meget tilfredse med løsningen af
vinkelmålingsproblemet.
Vi har klart holdt os indenfor det budgetterede, men vi har også fået mange af de dyrere ting sponseret. Motor, gear,
hjul og motorkontrollerne fra Roltec, ville have været en meget stor post i budgettet. At Roltec har doneret kørestolen
til os har klart været udslagsgivende for at vi kunne holde budgettet. Aluminiumskonstruktionen er lavet af
værkstedet på IHA, så her har vi heller ikke måtte ud og købe en løsning. Dette ville også have været en stor post i
budgettet. Vi mener derfor stadig, at vi har lavet et prisbilligt alternativ til den originale SegWay.
OPNÅEDE ERFARINGER
Da vi har vores baggrund i softwareverdenen, er langt de fleste erfaringer i dette projekt opnået gennem det
omfattende hardwarearbejde. Det at arbejde med et så hardwareorienteret projekt, har til tider givet anledning til grå
hår, også selvom vi begge er under 30! Det skal så rettelig nævnes, at da vi så endelig fik ”hul” på diverse
hardwareproblemer, var glæden også stor. Nedenfor er de væsentligste opnåede erfaringer beskrevet:
GCC I ECLIPSE
Det var en smule bøvlet at få Eclipse til at virke med gcc kompileren, versionsstyringen samt kodebackup. Man skulle
selv installere diverse plugins, og herefter pille ved en del forskellige indstillinger, for at få det sat perfekt op. Heldigvis
var der meget gode guides, og vejledninger at finde på nettet. Da det først kørte, var tiden brugt på opsætningen
glemt. Det var uden tvivl, det mest komfortable og elegante c udviklingsmiljø vi til dato har arbejdet med.
Version 1
side 32 af 38
DIY SegWay Projektrapport
DIYS
DC MOTOR DRIVER
Der er draget gode erfaringer i arbejdet med at få lavet en motordriver til DC motorerne, hvor der gennem hele
forløbet blev lavet grundige signalanalyser vha. Oscilloskopet. Efter at driverne var færdig lavet, var der en god
forståelse af hele emnet.
SOFTWARE FILTRERING
Det har bestemt ikke været let at få vores høj-lavpasfiltrene til at fungere perfekt. Der er blevet investeret meget tid i
forståelse af filterteorien. Dette var nødvendigt for at kunne beregne korrekte filter konstanter. Da filteret først var
korrekt indstillet, og implementeret i softwaren, virkede det forbløffende godt.
PD REGULERING
Igen har denne form for regulering været en god oplevelse. På baggrund af de erfaringer vi havde fra Lego projektet,
implementerede vi et trådløst debug miljø, DIYS debug, hvor det er muligt at følge med i hvad der sker, og ændre på
reguleringskonstanterne. Dette har været en stor hjælp i forbindelse med fintuningen af reguleringen, som ellers kan
være en noget besværlig og tidskrævende proces.
WINDOWS PRESENTATION FOUNDATION
Det har været en rigtig god oplevelse at lave brugerflader i Windows Presentation Foundation. Især Microsoft
Expression Blend har været en god oplevelse. Det er meget intuitivt og let at gå til. Alt det visuelle laves visuelt, hvilket
gør udviklingen af brugerfladen meget hurtig.
BLUETOOTH
BlueTooth modulet fra Gridconnect var en fornøjelse at arbejde med, det tog en god time at få den korrekt opsat vha.
jumperne, og herefter kørte modulet upåklageligt. Efter akrylpladen blev monteret, fik vi også en noget bedre
rækkevidde, hvilket bare gjorde oplevelsen med adapteren endnu bedre. Vil helt sikkert komme med i relevante
fremtidige projekter.
ADC FEJL GRUNDET OVERCLOCKNING
Tidligt i projektforløbet blev der benyttet en 16Mhz krystal som clock til microcontrolleren, dette fungerede
umiddelbart fint. Denne overclockning ville give os en faktor 1,6 på antallet af gennemløb pr. sekund af vores
reguleringsloop, resultatet heraf ville medføre en mere glidende regulering. Dog begyndte der at komme
regelmæssige bit fejl i A/D konverteringerne, disse fejl kom frem under en af vores mange tests, hvor vi forventede at
den konverterede værdi skulle ligge fast på 512. Dog var værdien ca. 2 % af tiden 768 eller 256, der var altså tale om
en binær aflæsningsfejl. Mistanken rettes efter nogen tid til samplehold registrene i ADC konverterne og timingen af
disse. Da mega644P microcontrolleren ikke officielt understøtter en clock hastighed større end 10Mhz. blev 16Mhz
krystallen nu byttet ud med en 10Mhz. Dette løste problemet.
ADC FEJL GRUNDET INTERRUPT PROBLEM
Denne fejl blev IKKE fundet i forbindelse med de tests der ellers blev udført. Fejlkonverteringerne viste sig ca. hvert 5
sekund, og da vi læser 11.942 samples pr. sekund, må det betyde at fejlraten var på ca. en ud af 59.710 samples.
Fejlkonverteringerne "røbede" først sig selv i den endelige konstruktion, ved at DIYS lavede et lille hop ca. hvert 5
sekund. Dette problem havde reelt ikke nogen betydning for kørslen, men det var til stort irritation for os. Heldigvis
drejede fejlen sig om en "tanketorsk". Når vi benytter de konverterede værdier, blev de hentet direkte fra det samme
array, hvor ADC interruptet også skriver de nyeste konverteringer i. Løsningen var simpel, imens den seneste sample
Version 1
side 33 af 38
DIY SegWay Projektrapport
DIYS
hentes, bliver interrupts disabled, seneste sample gemmes i en variabel, interrupts enables igen, og variablen med
den seneste sample returneres. Efter dette var implementeret kørte DIYS helt perfekt uden hop eller lignende.
STK500 AFBRYDEREN
Efter at havde brændt logikkredsene på motorkontrollerne 2 gange, fandt vi ud af, at afbryderkontakten på STK500kittet, afbryder kransen på stikket, og ikke centerpinden som forventet. Vi havde, som man normalt gør, sat stel på
kransen af stikket og forsyningen i centeret. Dette betød så bare, at når vi afbrød STK500 på dens afbryder, så afbrød
vi stel, (Se evt. nederst side 6 og øverst side 7 i ’Datablad over STK500-kittet’). Hvilket så gjorde at vi fik en strøm den
forkert vej igennem motorkontrolleren, som forsynede STK500-kittet. Løsningen på dette var bare, at vende
polariteten på stikket, altså bytte om på stel og forsyning. Efter dette var gjort, har der ikke været nogen problemer.
Så helt klar en dyr og tidskrævende erfaring, som vi tager med. Heldigvis har Roltec været flinke til, at hjælpe med
fejlsøgning af motorkontrollerne, samt reparere dem.
PROJEKTETS FORTRÆFFELIGHEDER
BLUETOOTH KALIBRERING
Der er sparet - rigtig - meget tid ved at muliggøre kalibrering af diverse forskellige parametre via BlueTooth. Havde vi
ikke implementeret BlueTooth interfacet, skulle vi alternativet omprogrammere microcontrolleren hver gang, der
skulle ændres på nogle parametre. Dette har helt klart hjulpet, på det ellers stramme tidsbudget.
KONSTRUKTIONEN
Vi er stolte af den endelige fysiske konstruktion. Desuden bør panelet, der fungere som MMI, specielt fremhæves. Via
den er det muligt at komme med flere forskellige inputs til DIYS. Joystick løsningen samt placeringen fungerer rigtig
godt, og gør det meget let at styre DIYS.
MOTORSTYRINGEN
Motorstyringen bør også nævnes, der var en mange ting der skulle fungere i sammenspil, før det var muligt at få
kontrol over motorerne. Da elektronikken omkring motorkontrollerne var på plads, begyndte testen af motordriveren.
Denne driver er skrevet specielt til netop dette projekt, og løser opgaven perfekt.
ADC KONSTRUKTIONEN
Vi syntes at vores ADC implementering er en elegant og smart løsning. Hvor der er tænkt på at få hvert ADC sample
afviklet på den hurtigste måde, uden at der er gået på kompromis med andre parametre.
HÆLDNINGSVINKLEN
Kombinationen af to sensorer til en vinkel, fungere rigtig godt. Vi investerede en del tid til at løses denne opgave, da vi
vidste at det var af stor betydning for om DIYS ville fungere. Hvis vi ikke ville kunne finde den rigtige hældningsvinkel,
ville kørslen med DIYS være meget ubehagelig, hvis den overhovedet ville kunne køre.
Version 1
side 34 af 38
DIY SegWay Projektrapport
DIYS
FORSLAG TIL FORBEDRINGER AF DIYS
Der er helt klar plads til forbedringer af konstruktionen, rent faktisk skal konstruktionen repareres. Efter et par styrt i
overmod, er styret blevet en smule skævt, og svejsningen mellem styr og kasse er revnet. Dette kan løses ved at flytte
kraften fra styret væk fra svejsningen, og ned i selve kassen. Vi har snakket med smeden om det, men har vurderet at
det ikke er noget vi kan nå at få lavet.
Frihøjden kunne også være større. Man vil have problemer med at komme over kanter på mere end 4-5cm. Dette kan
løses ved at bruge nogle større hjul.
Drift, den ene motor er dårligere end den anden, og dette giver sig udslag i at DIYS drifter en smule til den ene side. Vi
kompenserer for dette med en drift-faktor i vores motordriver, der gør den gode motor tilsvarende dårligere. Men der
er ikke en lineær sammenhæng mellem hastighed og drift. Så faktoren løser ikke drift problemet ved alle hastigheder.
Dette kunne løses med f.eks. en ekstra gyro, som monteres så den måler sidelæns rotation. På denne måde kan man
holde styr på driften ved alle hastigheder. Denne løsning vil også løse andre problemer. Hvis man f.eks. kører over en
forhindring med det ene hjul, skal der mere kraft til den side for at komme over. Dette vil også kunne måles med det
ekstra gyroskop, og man vil kunne styre hastigheden på den enkelte motor mere dynamisk.
Det vil også være en stor forbedring, at få de fire ladere ind i konstruktionen, så det vil være nemmere at sætte DIYS til
ladning. Lige nu skal man pille låget af konstruktionen, pille batterierne fra, og sætte dem til at lade. Det er en lidt
omstændelig proces, og kunne sagtens gøres smartere.
KONKLUSION
Dette projekt har været en fornøjelse at lave. Det har hele vejen igennem være spændende og meget udfordrende.
Det har betydet rigtigt meget for os, at bevise vi kunne løse opgaven med vores softwarebaggrund. Men det har heller
ikke været uden ofre. Vi har brugt en del mere tid, end man nok normalt vil bruge på et projekt af denne størrelse.
Men det har vi været nød til, for at forstå de ting, som vi ikke har prøvet før. Samarbejdet har fungeret rigtig godt, og
vi har begge haft den samme indstilling til dette projekt, nemlig at det skulle lykkes.
Der har været mange usikkerheder i projektet. Kunne motorerne og motorkontrollere klare opgaven. Kunne vi filtrere
sensorerne til en brugbar vinkel? lave en brugbar regulering? på trods af vores manglede erfaring med begge dele.
Men med en god portion gå-på-mod, og en ingeniørmæssig tilgang til problemerne. Er de en efter en blevet løst, og til
sidst sat sammen til den endelige prototype.
Vi har ikke haft de store problemer, udover de par gange motorkontrollerne gik i stykker. Heldigvis har Roltec været
flinke til at hjælpe, når vi ikke selv har kunnet rette fejlene på motorkontrollerne. Vi har arbejdet med den filosofi, at
mindre er godt. Altså små men sikre skridt. Vi har hele vejen været meget forsigtige, da vi har at gøre med nogle
meget kraftige motorer, og stærke strømme. Denne filosofi betød så også, at første gang vi prøvede DIYS, virkede det
fuldstændig som forventet. DIYS kunne holde balancen, og man kunne køre frem og tilbage, dreje til højre og venstre.
Det var en meget tilfredsstillende følelse, at se DIYS fungerede fra første forsøg af.
Vi tager en del erfaringer med fra dette projekt, og det er sikkert ikke den sidste SegWay lignende projekt vi laver. De
emner vi har været omkring, har været udfordrende og spændende. Og man kan næste ærgrer sig over, at man ikke
har fået mere undervisning i discipliner, som filtrering, regulering og elektronik generelt.
Vi mener stadig det kunne være meget spændende, at kigge på forskellige reguleringsteknikker. Og se hvilke der ville
klare opgaven bedst. Desuden kunne det også være meget spændende at få implementeret et Kalman-filter på
accelerometer og gyroskop inputtene. Men dette vil vi lade andre om. Vi har hele vejen igennem, forsøgt at lave en
Version 1
side 35 af 38
DIY SegWay Projektrapport
DIYS
platform, så andre vil kunne lave projekter på DIYS. Det eneste der er fastmonteret i konstruktionen, er motorerne og
kontrolpanelspladen, mens alt andet enten ikke sidder fast, eller er monteret med velcrotape. Så der er helt klart base
for, at man ville kunne bruge DIYS i andre projekter. Vi vil se det som opfyldes af et uskrevet mål, hvis der bliver
arbejdet videre med DIYS, og gøre os endnu mere stolte af projektet.
Version 1
side 36 af 38
DIY SegWay Projektrapport
DIYS
REFERENCER
NET KILDER
•
•
•
•
•
Extreme programming - http://da.wikipedia.org/wiki/Extreme_Programming
PID regulering - http://en.wikipedia.org/wiki/PID_controller
RUP - http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process
Lego SegWay projektet - http://lego.daller.dk
Lignende SegWay projekt - http://tlb.org/scooter2.html
BØGER
Titel:
Forfatter:
Embedded C programming and the Atmel AVR
Barnett,Richard; O'Cull,Larry; Cox,Sarah
2006, 19, 532 s., Thompson Delmar Learning, Clifton Park, N.Y., 2. ed.
Titel:
Forfatter:
Håndbog i struktureret programudvikling
Biering-Sørensen,Stephen
2002, 361 sider, ill., Ingeniøren-Bøger, Kbh., 1. Udgave
Titel:
Forfatter:
UML distilled: a brief guide to the standard object modeling language
Fowler,Martin
2003, xxx, 175 sider, Addison-Wesley, Reading, Mass., 3. Edition
Titel:
Forfatter:
C-programmering : The C programming language
Kernighan,B.W.; Ritchie,D.M.
1991, 284 s., Hempstead : Prentice Hall ; København : Teknisk Forlag, 2. udg.
Titel:
Applying UML and patterns: an introduction to object-oriented analysis and design and iterative
development
Larman,Craig
2005, xxv, 703 s., ill., Prentice Hall Professional Technical Reference, Upper Saddle River, N.J., 3. ed.
Forfatter:
Titel:
Forfatter:
Version 1
Digital design: principles and practices
Wakerly,John F.
side 37 af 38
DIY SegWay Projektrapport
DIYS
BILAG
VINKELESTIMERING
LOGBOG
Til logføring har vi benyttet os af ”WordPress Blog and publishing tool”. Dette har fungeret rigtigt godt, hver gang der
var lavet noget i forbindelse med projektet, blev det løbende tilføjet til bloggen.
Version 1
side 38 af 38