KTH [Introduktionskurs i Datateknik] [Laboration] Armin Arya [6-09/12] E-post (aarya@kth.se) Högskoleingejör i datateknik och kurskod Sammanfattning: Labben gick ut på att man skulle programmera en del koder och sedan stoppa in de i roboten och sedan få roboten att åka på den svarta linjen. Jag och min grupp medlem har inga starka kunskaper inom programmering men kan ändå en del, så det var ändå en utmaning för oss. Efter att vi förstått uppgiften satt vi igång o försökte förstå vad de olika koderna handla om och vad de hade som uppgift. Sedan jobbade vi med att hitta felen i koden och försökte rätta till det. Vi pröva ett par gånger med att få roboten att gå från start till mållinjen och efter några försök lyckades vi till slut, vilket var en härlig känsla. Vi jobbade bra tillsammans vi delade på arbetet och ibland turades vi om.
Innehållsförteckning 1. Inledning... 1.1 Bakgrund... 1.2 Syfte och målsättning... 2. Genomförande... 3. Resultat... 4. Analys... 5. Diskussion... Referenser... Bilagor... Institution KTH Sida 2 av 5
1. Inledning Denna laboration handla om att programmera koder i ett program som heter bricx där vi överförde kodarna till en robot. Vår uppgift var att med hjälp av en sensor som var monterad på roboten, få denna robot att åka på ett svart sträck från start linjen till mål linjen. Man fick ändra och hitta felen i koden för att få den att åka hela vägen i mål. 1.1 Bakgrund Jag tycker det var en viktig samt nyttig laboration för oss som ska plugga inom programmering, även för de som pluggar i andra linjer eftersom i grunden är allt IT. Det var roligt att få kunna lära sig att koda och pyssla med robotar att ha en sådan kunskap är viktigt inom arbetsmarknaden. Det är viktigt även att kunna följa kriterierna samt jobba ihop som grupp och hjälpa varandra. Att även testa sin egen förmåga och kunskap. 1.2 Syfte och målsättning Syftet med laborationen är ju att vi ska öka våra kunskaper inom programmering och kunna testa själva våra kunskaper att använda robotar och överföra de rätta koden till roboten för att den ska kunna arbeta som tillsagd. Syftet med rapporten är att vi ska kunna analysera reflektera och kunna titta bakåt det vi har gått igenom, vad vi lärt oss fick vi något resultat utav vår laboration var det problem i gruppen eller funkade allt bra o.s.v. Jag antar även att vi kommer få göra ett antal rapporter därför är det bara positivt att vi får träna på sådan labb. Jag är inte expert på programmering men är engagerad för att lära mig mer inom området därför var det en spännande och lärorik labb. 2. Genomförande Genomförandet av laborationen gick till att efter att vi förstått uppgiften, blev vi tillsagda att ladda ner ett program som heter bricx. Efter nedladdningen var klar försökte vi granska och kolla koderna vad de olika koderna betydde och vad de hade som uppgift. Sedan letade vi efter felen och rätta till dem. Själva programmeringen gick bra eftersom vi hade förstått vad koderna betydde. Vi testa roboten ett få antal gånger på den svarta linjen som till slut gick hela vägen. Vi tog det steg för steg och vi lyckades med genomförandet 3. Resultat Vi hitta ett antal fel i kodningen som finns här nedan: Rad nr Gamla kod Nya kod Kommentar 2 och 3 #define SpeedSlow 80 #define SpeedFast 100 34 och 35 string groupmembers[] = "person1" #define SpeedSlow 30 #define SpeedFast 50 string groupmembers[] = "Alfred","Armin"" Vi fick ha en lägre hastighet för att den hoppade av banan annars. Vi skrev in ett komma tecken för att definiera båda namnen. 41 och 43 TextOut(0, LCD_LINE1, "Gruppmedlemmar:") extout(0, LCD_LINE1, "groupmembers"); I koden definerar den inte for(i = 0; i < ArrayLen(names); for(i = 0; i < ArrayLen(groupMembers); 45 lightintensity = lightintensity = Light intensity Institution KTH Sida 3 av 5
SensorRaw(IN_1); SensorRaw(IN_3) koden skrev att den var kopplat i 1an men den var kopplat i 3an därför fick vi ändra på det. 68 lightintensity = SensorRaw(IN_1); 82 och 86 if(lightintensity < TopThreshold) } else 88 och 92 if(lightintensity > BotThreshold) } else 97 och 114 void dance() 87); 20); Wait(SEC_3); } //Main-aktiviteten (körs alltid först!) task main() Precedes(readTouchSensors, followline); SetSensorType(IN_1, SetSensorMode(IN_1, SetSensorType(IN_3, IN_TYPE_LIGHT_ACTIVE); SetSensorMode(IN_3, IN_MODE_RAW); SetSensorType(IN_4, lightintensity = SensorRaw(IN_3); if(lightintensity < TopThreshold) } else if(lightintensity > BotThreshold) } else task main() Precedes(readTouchSensors, followline); SetSensorType(IN_1, SetSensorMode(IN_1, SetSensorType(IN_3, IN_TYPE_LIGHT_ACTIVE); SetSensorMode(IN_3, IN_MODE_RAW); SetSensorType(IN_4, SetSensorMode(IN_4, OnFwd(OUT_AB, } Raderat Koden stod att den var kopplat i 1an fast den var kopplat i 3an. Vi måste ha jämn hastighet på sensorn och ljuset. Samma gäller här. Void dance hade som uppgift att få roboten att snurra runt (dansa) vilket var inte effektivt. Institution KTH Sida 4 av 5
SetSensorMode(IN_4, dance(); 4. Analys Varför det gick så bra i vår grupp är att vi jobbade bra och effektivt tillsammans, vi hade en strategi vi använde oss av en enkel metod, vilket var att vi gjorde laborationen steg för steg samtidigt som vi förstod vad vi gjorde blev det mer roligare för vi var hela tiden närmre målet. I kodningen fanns det koder där det stod void dance som hade som uppgift att roboten fortsatte att snurra runt (dansa) så det fick vi ändra på, vi satte även en lägre hastighet än vad det stod vilket fungerade bättre. Vi ändrade lightsensitivity till en lägre hastighet iaffall till en hastighet där både sensorn och ljuset hängde med och kunnde följa den svarta linjen. 5. Diskussion Syftet med laborationen var ju att lära sig att programmera i bricx och sådan överföra det till roboten, men svårigheten med uppgiften var att hitta de olika felen i kodningen som gjorde att roboten gick av den svarta linjen. Jag lärde mig att använda bricx och kunna koda iallafall lite grann. Eftersom jag aldrig har använt bricx förut så var det lite svårt i början men sen kom man igång och lärde sig rätt snabbt det var ett enkelt program att arbeta med. Att kunna programmera är alltid ett plus inom IT arbetsmarknaden, att kunna programmera är bara positivt och en stor fördel när man ska söka jobb.. Referenser Använde Labb mallen som finns på bilda under Introduktion datateknik och sedan kursmaterial: Mall rapport.doc Institution KTH Sida 5 av 5