Simon Boström Introduktionskurs i Datateknik

Relevanta dokument
[Introduktion till programmering ]

Programmera Lego Mindstormsrobotar

Programmering av LEGO NXT Robot

Laboration i datateknik

Labbrapport - LEGO NXT Robot

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet!

Robotprogrammering felsökning & analys.

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

Robotar i NXc. En laboration med Mindstormrobotar. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Laboration - Programmering av LEGO Mindstorm robot

KUNG. TEKNISKA HÖGSKOLAN. Laboration. Programmering av LEGO-robot

Kevin Lane Kungliga Tekniska Högskolan Introduktionskurs i Datateknik (II1310) TIEDB0. [NXT Legorobot] [Programmering och felsökning]

Lego Mindstormprogrammering

Programmering av en Lego robot

Laboration i datateknik

Laborationsrapport av robotprogrammering

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC

Introduktion till programmering med hjälp av Lego Mindstorm

KUNGLIGA TEKNISKA HÖGSKOLAN. Linefollower. Med LEGO Mindstorms och NXC. Paul Coada Introduktion i datateknik II1310

LEGO NXT Robotprogrammering

Introduktion i programmering med språket NXC

LEGO Mindstorm-robot

Labrapport: Programmering i NXC Programmera LEGO Maindstorm med NXC

Felsökande av en Lego Mindstorm robot

Labbrapport LEGO-robot linefollower

PROGRAMMERING AV LEGO-ROBOT VIA NXC

Programmering av LEGO NXT Robot

Simon Johansson Introduktionskurs Datateknik 1310

Labbrapport. Introduktionskurs i datateknik (II1310) Stefan Dalarsson,

Programmera LEGO NXT

Programmering med NXC Lego Mindstorm

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

Programmeringslaboration med LEGOrobot

Programmering av LEGO NXT robot Laborationsrapport för programering av robot för att följa svartmarkerad linje på maken

Praktisk programmering

[Introduktionskurs i Datateknik]

Felsökning av mjukvara

Programmera en NXT Robot

Legorobot. Lär dig programmera en legorobot. Teknikåttan Ola Ringdahl Lena Kallin Westin

INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 3 INLEDNING... 4 ATT ANVÄNDA MOTORERNA... 9 LOOP (UPPREPANDE) FUNKTIONEN SKAPA EN EGEN KLOSS...

Strukturerad problemlösning. Metoder och verktyg för datavetare Ht09

Digitalt lärande och programmering i klassrummet

En resa genom robotarnas värld!

RAM FÖR LEKTIONSPLAN RESULTAT OCH BEDÖMNING LÄRARENS FÖRBEREDELSER. ÖVERBLICK: Lektionsplan 3

Extramaterial till Matematik X

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

Programmering F-3. -dansprogrammering. Del 1

hannalabom.se Alexandra Jonasson Aj222im

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

1DV432 ST14. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Slutrapport Thunderbug

Datorteknik 2 (AVR 2)

Användarhandledning Version 1.2

Välkomna till kursen i grundläggande programmering DVGA08, ISGA04

Betatestning - Solsystem

Den intelligenta dammsugaren

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Programmering. Analogt och med smårobotar. Nina Bergin

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Fakta om parkour LÄSFÖRSTÅELSE. Elevmaterial KALLE GÜETTLER SIDAN 1. Namn: Vad är parkour?

En diskursanalytisk studie av programmering som innehåll i grundskolans teknikämne. Eva Björkholm och Susanne Engström, KTH

Det kan underlätta att utvärdera med eleverna vad de redan har lärt sig innan man går vidare med att lära ut nytt material.

Välkomna till DIT012 IPGO

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

EV3 Roboten. Sida 1 av 13

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Objektorienterad programmering. Grundläggande begrepp

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

3 augusti (G) Programmering: Lego

Programmeringsteknik I

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Programmering. Den första datorn hette ENIAC.

Roboten. Sida 1 av 11

Projektrapport. Till Projektet Bluetoothstyrd bil

RAM FÖR LEKTIONSPLAN RESULTAT OCH BEDÖMNING LÄRARENS FÖRBEREDELSER LEDNING. ÖVERBLICK: Lektionsplan 1

Föreläsning 5: Introduktion av pekare

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Installera nedladdningsterminal

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

TDDD73-funktionell och imperativ programmering i python

Blockly är en av apparna som används för att styra roboten Dash. Den är väldigt enkel i sin utformning och kan med fördel användas av yngre barn.

Laborationer i SME094 Informationsteknologi I för

Programmeringspalett. Pr o gr a mvar a

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Kommentarer och tips från robotanvändare. LEGO WeDo 2.0. Sphero

Programmeringsappar. Av Alex

Mjukvaruprojekt Onlinebooks

Lego Robot [ ] [ ] [ ]

Programmering, dans och loopar

Programmering från början

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

RAM FÖR LEKTIONSPLAN RESULTAT OCH BEDÖMNING LÄRARENS FÖRBEREDELSER. ÖVERBLICK: Lektionsplan 4

Inledande programmering med C# (1DV402) Introduktion till programmering

GRUNDKURS I C-PROGRAMMERING

KOM IGÅNG, UPPDRAG OCH KOMPONENTER

Transkript:

KTH KISTA Linefollower Med parprogrammering i NXC Simon Boström 2014-09-04 simbos@kth.se Introduktionskurs i Datateknik

Sammanfattning Laborationstillfället var till för att man som ny på KTH skulle lära sig enkel programmering. Utöver detta lär man sig även hur man skriver en rapport och hur man navigerar i Bilda och Daisy. En kod med diverse fel skulle rättas till för att få en legorobot att följa en linje. När roboten sedan kör in i väggen skulle den stanna och visa text på displayen. Detta skulle uppnås i par. Efter lite diskuterande hade detta uppnåtts utan allt för stora problem. Efter denna laboration har det kommit fram att detta är ett bra sätt för nybörjare att lära sig programmera och egenskaper som kan komma att behövas i framtiden förvärvas. Innehållsförteckning 1. Inledning... 3 1.1 Bakgrund... 3 1.2 Syfte och målsättning... 3 2. Genomförande... 3 3. Resultat... 4 4. Analys... 4 5. Diskussion... 4 Referenser... 4 Bilagor... 5 ICT KTH Sida 2 av 5

1. Inledning För att komma in i programmeringstänket fick vi i uppgift att felsöka koden till en legorobot som skulle följa en linje på golvet. Koden var skriven i språket NXC, vilket fungerar utmärkt till att både lära sig programmering och friska upp minnet om man så önskar. 1.1 Bakgrund Att programmera just en legorobot känns kanske inte som något man kan förväntas göra i framtiden, men att få lära sig allt som ingår i att anmäla sig till laborationer, navigera Bilda och Daisy, samt att få en inblick i programmering är en vital del som passar bra för en ny student på KTH. 1.2 Syfte och målsättning Syftet med uppgiften är att på ett roligt och relativt enkelt sätt introducera programmering i form av parprogrammering. Syftet är också att introducera arbetsgången vid ingenjörsarbete samt ge träning och arbetsvana i de IT-system för utbildning som finns vid ICT-skolan. Uppgiften syftar även till att ge träning i felsökning och testning och därmed ge en grund till effektivt programmeringsarbete i framtiden. Förhoppningen är även att studenterna ska få en förståelse för hur små enkla fel i koden kan ge oväntade resultat vid körning, och på så sätt bidra till ett noggrannhetstänk. 2. Genomförande Jag kom till lokalen där laborationen skulle hållas och blev hopparad med en annan student. Programmet BrixCC laddades ner och installerades, koden laddades ner, drivrutiner installerades och legoroboten undersöktes. Efter att ha kopplat in roboten till datorn och öppnat koden läste jag och min partner igenom koden för att få en överblick av situationen. Vi läste sedan igenom de felmeddelanden vi fick och jobbade med att lösa dem. Efter att ha fått slut på idéer bestämde vi oss för att läsa instruktionsboken. 50+ sidor senare upptäckte vi att där det skulle stå string stod det int. Efter att ha löst detta problem (vilket tog oss lite för lång tid för den triviala naturen hos problemet) testkörde vi roboten. Den betedde sig lite underligt, men när vi fick stopp på den upptäcktes nästa problem: all text som skulle visas på displayen var på samma rad. Efter att vi lokaliserat den del av koden som styrde detta utfördes en enkel matteberäkning och ett minustecken ändrades till ett plustecken, och en hårdkodad siffra ökades. Vi upptäckte efter att ha löst alla problem med displayen att anledningen till att roboten betedde sig konstigt var att den var felkopplad. Vi ändrade koden istället för att koppla om, då uppgiften inte var att koppla om roboten (och att programmera är betydligt roligare än att koppla). Vi märkte även att två rader kod inte såg bra ut, så vi ordnade detta. Vi satte roboten på den svarta linjen på golvet och körde igång. Den följde linjen bra, men när den skulle svänga fortsatte den rakt fram. Vi kom fram till att det gick för fort så att robotens sensor inte hann uppfatta linjen. Efter att vi sänkt robotens fart fungerade koden prefekt. ICT KTH Sida 3 av 5

Våran parprogrammering var inte av sorten där en person programmerar ett visst antal minuter för att sedan byta, utan vi diskuterade helt enkelt mellan varandra om hur vi bäst skulle lösa problemet. Det kändes smidigare och fungerade bra. 3. Resultat Radnummer Ny kod Kommentar 2 SpeedSlow 30 Den gick för fort. 3 SpeedFast 50 34 Int -> string Man kan inte deklarera text som siffror. 35 Simon Våra namn. 36 Hassan 44 names -> groupmembers Snyggare kod (enl. min åsikt). 46 8*i-16 -> 8*i+8 Bättre layout 92&98 94&100 SpeedSlow SpeedFast Så att roboten kör som den ska. 4. Analys Det största, och i stort sett enda, problemet låg i att förstå vad koden innebar för att sedan kunna förstå robotens beteende och rätta till felen. Då jag har programmerat innan var det inga större problem bortsett från att komma in i tänket igen och att lära mig ett nytt språk. Men i allmänhet gick allting bra. 5. Diskussion Jag har i huvudsak lärt mig hur man anmäler sig till grupper och laborationer via Daisy, samt hur man navigerar i Daisy och Bilda. Utöver det så kom jag även, mer eller mindre, tillbaka in i programmeringstänket. Allt detta kommer definitivt att hjälpa i framtiden. Själva språket, NXC, är utmärkt för nybörjare då det är väldigt enkelt att arbeta i, dock ogillade jag det bland annat på grund av layouten. Medan vårat sätt att programmera (diskutera med varandra istället för att programmera en viss tid var) inte är det mest använde tycker jag att det fungerade bra, särskilt i ett så litet projekt. Referenser https://bilda.kth.se/courseid/11430/content.do?id=22224147 https://bilda.kth.se/node.do?id=22300661 ICT KTH Sida 4 av 5

Bilagor ICT KTH Sida 5 av 5