KUNGLIGA TEKNISKA HÖGSKOLAN PROGRAMMERING I NXC Namn: Michel Bitar 2012-08- 25 E- post: mbitar@kth.se Introduktionskurs i datateknik, II1310 Sammanfattning Intressant och lärorik laboration om att programmera en Lego robot med NXC. Roboten ska sedan klara av att utföra några specifika uppgifter, bland annat att följa en svart linje på bordet och sedan stanna till när den stöter på ett objekt. Detta är möjligt att utföra eftersom roboten är utrustad med sensorer. Under laborationen så får man lära sig felsökning och testning som är en viktig grund för produktivt programmerings arbete senare i utbildningen eller i arbetslivet. Under laborationen så gick det mesta rätt bra men vi stötte på ett litet problem som vi sedan lyckades rätta till.
Innehållsförteckning 1. Inledning... 3 1.2 Syfte och målsättning... 3 2. Genomförande... 3 3. Resultat... 4 4. Analys... 4 5. Diskussion... 5 Referenser... 5 Bilagor... 5 ICT KUNGLIGA TEKNIKSA HÖGSKOLAN Sida 2 av 5
1. Inledning Ett av ingenjörens viktigaste verktyg är just programmering, därför är det viktigt att introducera programmering tidigt under utbildningen samt på ett roligt sätt. I vår vardag så kan vi se att programmering finns i nästan allt runt omkring oss allt från mobiler och datorer till bilar och mikrovågsugnar. Därför är det viktigt att man är van med programmering så att man kan prestera effektivare vid obligatoriska moment under utbildningen eller senare i arbetslivet. 1.1 Syfte och målsättning Syftet med laboration är att få en mjukstart inom programmering och hur det går till att programmera i par. Under utbildningen så kommer man att stötta på flera obligatoriska moment som bygger på just programmering därför är det bra om man har fått en grundläggande uppfattning om felsökning, testning, skrivning och körningar. Målet med laborationen är att få en lego robot att utföra olika uppgifter med koder skrivna i NXC. 2. Genomförande För att lyckas med laborationen ska man installera följande program: Lego NXT Drivrutin BricxCC (packas bara upp) Med programmet BricxCC redigerar man all källkod och sedan överför det till Lego roboten. För att börja arbeta med roboten så kopplar man in en usb kabel från datorn till roboten. Datorn ska sedan känna av att roboten är inkopplad. Sedan kan man starta programmet BricxCC. Med BricxCC ska man öppna upp filen linefollowe.nxc. Det är en färdigt skriven kod som kan överföras till roboten och köras men roboten kommer inte utföra de uppgifter vi önskar. Uppgiften blir då att felsöka igenom koden och skriva dit nya koder så att roboten utför de uppgifter vi vill. Laborationen utfördes i par så kallad par- programmering där den ena personen skrev ny kod och den andra observerade allt som skrevs dit och så sedan byter man position mellan varandra. Innan ny kod skrevs in så gick vi igenom hur roboten är uppbyggd och i vilka portar kablarna var inkopplade i samt så observerade vi hur roboten uppförde sig med original koden under testkörningen. Därefter gick vi igenom koden noggrant då kunde vi se vad som behövdes bytas ut som till exempel hastighet på roboten och den angivna portingången för lasern. Efter flera testkörningar och lika många ändringar så fick vi roboten att följa en svart linje med hjälp av lasern som sitter längst fram på roboten och sedan att stanna till när den stöter på ett hinder samt att visa upp våra namn på displayen som avslut. ICT KUNGLIGA TEKNIKSA HÖGSKOLAN Sida 3 av 5
3. Resultat Här är ändringarna som gjordes för att få roboten att utföra de uppgifter vi önskade. 4. Analys Efter att ha redigerat original koden med nya koder (se resultat) så fick vi roboten att utföra rätt arbetsuppgift, att följa en svart tejp på bordet och sedan stanna när den sammanstöter med ett hinder. Sedan ska roboten visa namnen på gruppmedlemmarna som avslut. Original koden hade en onödig dance funktion som kommenterades bort. Lasern var inkopplad i port 3 därför fick den nya koden (IN_3) istället för (IN_1). Sedan kunde man se att roboten var alldeles för snabb därför sänkte vi ner hastigheten på motor A och B till en lämplig hastighet. Vi prövade oss fram med olika hastigheter tills vi blev nöjda. ICT KUNGLIGA TEKNIKSA HÖGSKOLAN Sida 4 av 5
5. Diskussion Laborationen var mycket lärorik och intressant. Själv har jag aldrig sysslat med någon form av programmering men jag tycker ändå att denna laboration gick rätt bra. Att arbeta i par gjorde att laborationen fick mer fart vilket var kul, tillsammans kunde vi hjälpas åt med att hitta felen samtidigt kunde vi utväxla idéer med varandra. Vi började med att test köra roboten med original koden bara för att se hur roboten skulle uppföra sig. Efter det så gick vi genom koderna för att se vad som behövdes bytas ut och vad som skulle kommenteras bort. Det tog en stund tills vi listade ut vad som skulle ändras. Efter varje ny kod så test körde vi roboten för att se vad som har ändrats. Vi lärde oss att små ändringar kunde ge helt nya resultat. Sakta men säkert så testade vi oss fram och när vi såg att roboten utförde de uppgifter vi krävde så byggde vi vidare på det. Koderna för roboten skrevs i NXC vilket var ett relativt enkelt program att använda vilket passade mig som nybörjare. Referenser LABB- PM https://bilda.kth.se/courseid/8498/content.do?id=19150198 Programming LEGO NXT Robots usning NXC.pdf Bilagor ICT KUNGLIGA TEKNIKSA HÖGSKOLAN Sida 5 av 5