Labbrapport 2

KTH
Felsöknig NXC program
Patrik Eriksson
2015-08-30
pateriks@kth.se
Introduktionskurs i datateknik II0310
Felsökning NXC program
Patrik Eriksson
2015-08-30
Sammanfattning
En första insikt i NXC se programmering och hur en logisk kontrollenhet kan fungera i symbios med
programmet. Under labben ska vi undersöka en fullständig kod men med fel som förhindrar dess
funktion. Vi ska få koden att fungera felfritt och i och med det lära oss och bli bekanta med NXC men
även med själva arbetsgången vid ingenjörsarbete. Att hitta fel är inte alltid det lättaste i en obekväm
miljö men efter lite forskning flöt arbetsprocessen på bra och vi lyckades få fram ett väl fungerande
program med ändringar såsom ett annat ingångsvärde för vissa sensorer. Däremot har programmet
några smärre brister så som att roboten inte följde linjen till hundra procent och att tänket i koden
blivit förändrat men i slutändan uppnåddes syftet med labben.
Innehållsförteckning
Sammanfattning ...................................................................................................................................... 2
Innehållsförteckning ................................................................................................................................ 2
1. Inledning .............................................................................................................................................. 3
1.1 Bakgrund ....................................................................................................................................... 3
1.2 Syfte och målsättning .................................................................................................................... 3
2. Genomförande .................................................................................................................................... 3
3. Resultat................................................................................................................................................ 4
4. Analys .................................................................................................................................................. 5
5. Diskussion ............................................................................................................................................ 5
Referenser ............................................................................................................................................... 5
Bilagor...................................................................................................................................................... 6
Informationsteknik
KTH
Sida 2 av 6
Felsökning NXC program
Patrik Eriksson
2015-08-30
1. Inledning
Den här labben ger en grundläggande insikt av programmering i NXC och hur kodningen kan vara
utformarad för att styra hårdvarukomponenter mm, vilket kan vara till nytta vid vidare bekantskap av
NXC och kodning i allmänhet. Labben ger också en idé för arbetsprocessen vid ingenjörsarbete och
hur man på ett smidigt sätt kan utveckla produkter och tjänster inom programmering.
1.1 Bakgrund
Kunskaperna som behandlas under laborationen är grundläggande för fortsatt programmering och
par programmering. Att förstå logiken bakom koden, t.ex. att om en task kallar på ett värde som är i
annat format en anropet går det inte igenom. Man blir mer införstådd i tänket vid programmering,
vilket är nyttigt vid all form av fortsatt arbete inom ämnet, att man behöver tänka essentiellt, det
som skapas i programmeringen kommer från essentiella byggstenar.
1.2 Syfte och målsättning
Det huvudsakliga syftet med labben är att introducera programmeringsmiljön i form av par
programmering men även en del av programmerings processen, dvs. felsökning, verifiering och test. I
och med labben förväntas en förståelse för hur fel i koder kan se ut, hur ett enkelt fel kan göra stor
skada. Labben ska dessutom ge arbetsvana i de IT-system som finns tillgängliga vid ICT-skolan.
Målet med uppgiften är att få ett färdigt program skrivet i NXC (Not eXactly C) att fungera och dvs. få
en LEGO-robot att utföra sina uppgifter på önskat sätt.
2. Genomförande
1.
2.
3.
4.
5.
6.
7.
8.
Förstå och bekanta sig med NXC språket
Nedladdning och installation av programvara.
Den givna koden genomläses
Roboten testades utan ändringar i koden
Utifrån vad roboten gör för fel lokaliseras felet i koden (i viss mån med hjälp av lab. assistent)
Ny kod skrivs av valfri gruppmedlem medan den andre verifierar.
Steg 4-6 upprepas tills att inga fler fel hittas.
Slutgiltigt test som verifieras av lab. assistent
Informationsteknik
KTH
Sida 3 av 6
Felsökning NXC program
Patrik Eriksson
2015-08-30
3. Resultat
Efter ett flertal praktiska försök utförde roboten den begärda
uppgiften.
Informationsteknik
KTH
Sida 4 av 6
Felsökning NXC program
Patrik Eriksson
2015-08-30
4. Analys
Dance utförandet som initierades i början var något som förhindrade oss från att se den verkliga
förändringen direkt när vi testade roboten. Detta bidrog även till att roboten fellokaliserades. Ett
ytterligare fel som bromsade upp fellokaliseringen var fel input värde för sensorerna. Det här var ett
fel som bidrog till att utförandet inte fungerade som väntat och vi inte såg de förändringar vi hade
gjort i utförandet. I slutändan fick vi roboten att genomföra rätt uppgift men med förändringar som
kan vara förvirrande för den som skrivit koden, eftersom vi ändrade i grund tänket med koden. T.ex.
använde oss utav av förförandet ”dance” för att svänga, vilket kanske inte är det ”dance” egentligen
är ämnat för. I övrigt följer roboten huvudsakligen linjen.
5. Diskussion
Problem som uppkom var att vi inte lyckades lokalisera fel i koden vilket vi sedan löste genom att lära
in oss koden mer ingående och vad alla utföranden gör för någonting mha. webbsidan Sourceforge
(Sorceforge, u.d.). Vi upptäckte att det är svårt att lära in hur hela språket fungerade innan labben
och att research under labbens fortskridning var nödvändigt. Under labbens gång blev vi mer och
mer bekväma med språket och var vi kunde lokalisera fel. Förutom en grundläggande inblick och
förståelse av språket har jag fått en större inblick i hur man kan använda sig utav hårdvara i sin
programmering och få den att styra annan hårdvara, t.ex. hur man definerar inputs i
programmeringen.
Utomstående felkällor till att roboten inte utför rätt resultat kan vara tejpremsan som roboten följer,
veck eller liknande kan ha en inverkan på ljussensorn.
Referenser
II0310 Introduktionskurs i datateknik (H15). (2015). Hämtat från Bilda:
https://bilda.kth.se/courseId/12708/content.do?id=23767349
NXC. (u.d.). Hämtat från Sorceforge: http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/asm.html
Informationsteknik
KTH
Sida 5 av 6
Felsökning NXC program
Patrik Eriksson
2015-08-30
KTH
Sida 6 av 6
Bilagor
Informationsteknik