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
© Copyright 2024