PROGRAMMERING AV LEGO-ROBOT VIA NXC

Relevanta dokument
Laboration - Programmering av LEGO Mindstorm robot

Programmera Lego Mindstormsrobotar

Labbrapport - LEGO NXT Robot

Programmering av en Lego robot

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

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

Laborationsrapport av robotprogrammering

Programmering av LEGO NXT Robot

LEGO Mindstorm-robot

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

Laboration i datateknik

Simon Johansson Introduktionskurs Datateknik 1310

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

Labrapport: Programmering i NXC Programmera LEGO Maindstorm med NXC

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

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

[Introduktion till programmering ]

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

[Introduktionskurs i Datateknik]

Programmeringslaboration med LEGOrobot

Robotprogrammering felsökning & analys.

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

Introduktion i programmering med språket NXC

Laboration i datateknik

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

Introduktion till programmering med hjälp av Lego Mindstorm

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

LEGO NXT Robotprogrammering

Felsökning av mjukvara

Lego Mindstormprogrammering

Felsökande av en Lego Mindstorm robot

Simon Boström Introduktionskurs i Datateknik

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

Programmera en NXT Robot

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

Labbrapport LEGO-robot linefollower

Labbrapport. Introduktionskurs i datateknik (II1310) Stefan Dalarsson,

Programmering med NXC Lego Mindstorm

Programmering av LEGO NXT Robot

Programmera LEGO NXT

Praktisk programmering

Digitalt lärande och programmering i klassrummet

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

Vilken skillnad gör det var du placerar det? Prova båda.

LarmNet ANVÄNDARANVISNING

GIT L0002B INTRODUKTION TILL PROGRAMMERING OCH C# Information inför kursstart

Roboten. Sida 1 av 11

Programmering av. PADDY mini

Utvecklar sin förmåga att bygga, skapa och konstruera med hjälp av olika tekniker, material och redskap - Naturvetenskap och teknik, Förskola

Föreläsning 3. Programmering, C och programmeringsmiljö

Östbergsskolans loggbok!

JavaScript Block Editor:

Laboration: Whitebox- och blackboxtesting

Programmering. Analogt och med smårobotar. Nina Bergin

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

Digitalt lärande och programmering i klassrummet

Extramaterial till Matematik Y

Projektrapport. Till Projektet Bluetoothstyrd bil

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

FIRST LEGO League. Stockholm

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

K A TRIN J Ä V E RBRING D I G I T A L K O M P E T E N S O C H P R O G R A M M E R I N G I F Ö R S K O L A N

INSTALLATIONSGUIDE PC

Programmeringsappar. Av Alex

Laborationer i SME094 Informationsteknologi I för

Lathund - Konfiguration av PLC och dator

EV3 Roboten. Sida 1 av 13

Programmering eller Datalogiskt tänkande

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

Joppes djurfamilj v2. Planering. Genomförande. Utvärdering och dokumentation

Konstruera, styra, reglera och programmera en röd tråd F-9

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

Bilaga KeyControl Felsökning

Extramaterial till Matematik Y

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Laboration Fuzzy Logic

Temperaturreglering. En jämförelse mellan en P- och en PI-regulator. θ (t) Innehåll Målsättning sid 2

Working with parents. Models for activities in science centres and museums

Slutrapport för JMDB.COM. Johan Wibjer

Objektorienterad Programmering (TDDC77)

Datalogiskt tänkande är mer än Programmering. Fredrik Heintz Linköpings universitet

Filhanterare med AngularJS

Programmering på papper. Datorer, programmering och instruktioner

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Hur ser Blue-Bot ut i aktion?

Linjär algebra med tillämpningar, lab 1

LABORATION 1 Pingpong och Installation av Server 2008 R2

Hur tycker du kursen har varit? Tycker du att kursens upplägg har underlättat för dig att uppnå lärandemålen?

FIRST LEGO League Jr.: Tips om pass, varje vecka

ODIS och erwin. Sida 1

Projektplan. Per-Emil Eliasson, Claes Fälth, Manne Gustafson, Andreas Gustafsson. 29 januari 2003

Instruktioner för dig som ska söka till Mattekollo 2016

EdBuild - EdRoboClaw

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Uppdrag för LEGO projektet Hitta en vattensamling på Mars

Programmering F-3. -dansprogrammering. Del 1

Bruksanvisning M-ANY PreMium MP3 Art I kartongen: Fjärrkontroll, hörlurar, batterier, USB-kabel, Audiokabel, väska, halssnodd, CD-Rom.

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

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I

Transkript:

KTH KISTA PROGRAMMERING AV LEGO-ROBOT VIA NXC FELSÖKNING AV KOD I BricxCC Fredrik Radholm 28082014 Radholm@kth.se Introduktionskurs i datateknik II1310

Sammanfattning Jag och några andra skulle uträtta en laboration. Detta var en parlaboration som handlade om att felsöka en kod i NXC (BricxCC), föra över koden till en robot som sedan skulle följa en svart kurvig linje på marken. Viss gammal kod skulle då ersättas eller rättas till för att få roboten att göra det den skulle. Syftet var att få en uppfattning om vad som skall komma i framtiden i utbildningen, men även inom potentiellt yrke. Dessutom skulle vi få en smak av hur man fungerar som person inom en grupp. Med bara en aning om hur man kodar, lyckades vi som grupp utföra labben med uppnådda mål. Mycket tack vare logiken som ingår i programmering, men som kanske inte alltid klaffar i vissa situationer, vilket ibland drog ut lite på tiden. När vi utförde ändringar, dokumenterade vi det på ett papper vid sidan om. Som resultat ändrade eller raderade vi cirka 9 lines, med en robot som gjorde det den skulle! 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... 5 Referenser... 5 Bilagor... 5 KTH Kista Sida 2 av 5

1. Inledning Det som skulle göras var att felsöka en fil linefollower.nxc. Man skulle bekräfta dessa fel via att överföra programmet till en LEGO-robot och testa sig fram. Uppgiften handlade om att lära sig om hur man som framtida ingenjör går till väga när problem uppstår. Dessutom om hur man även arbetar och kommunicerar i grupp. 1.1 Bakgrund Laborationen var som en simulering av ett reellt problem som kan uppstå på en arbetsplats för en ingenjör. Man skulle försöka uppfatta olika problem som kan uppstå, och hur man går till väga för att lösa dem. 1.2 Syfte och målsättning Syftet med programmeringen var att man skulle få en introduktion om hur vissa labbar kan komma att se ut, och att man oftast jobbar i grupp. Man skulle även få en uppfattning av de potentiella program man kommer tänkas jobba med i framtiden. Som mål skulle man innan slutet av laborationen få roboten att följa en svart linje på marken från början till slut. Dessa var såklart de mål jag satte för mig själv och oss som grupp. 2. Genomförande Det första som gjordes var att titta igenom labb-pm:t. Den hade övergripande information om vad som omfattade laborationen vi skulle genomföra. Denna fick vi även större kunskap om via en genomgång i laborationstillfällets början. Vi skaffade vårt kursmaterial i Bilda, som innefattade nerladdning av vissa program. BricxCC var det program som skulle användas för själva kodningen, som har en grund i NXC (Not exactly C). Drivrutiner behövdes installeras för parkoppling med roboten. Kommentatorsbladet användes för att skriva ner vår dokumentation (vilka ändringar i koden vi gjorde). Till sist, laddade vi ner linefollower.nxc som var själva kommando-filen för roboten, där koden som vi skulle granska var integrerad. Koden öppnades sedan i BricxCC där man kunde börja felsöka. Roboten tittade man på för att undersöka de olika komponenternas namn, exempelvis att A visade sig vara motorn för en av de två hjulen. Efter varje ändring i koden, laddade man in den i roboten, la roboten på den tejpade svarta linjen och startade programmet. I gruppen turades vi om efter varje test, att byta programmerare. Vi dokumenterade vilka ändringar och vart de skedde på ett papper vid sidan om. Efter rad av testande, blev vi tillslut klara med laborationen, med uppnådda mål. KTH Kista Sida 3 av 5

3. Resultat Laborationen resulterade till att man slutligen fick roboten att följa den angivna linjen, och i slutet visa gruppmedlemmarnas namn. Att lösa problemen, gjorde man via flera testanden, identifikation av problemet och sedan försöka felsöka vad som orsakar problemet. Exemeplvis i början, så snurrade roboten runt, vilket vi kunde gissa oss fram till att det var radnummer 115 som orsakade dansen. Detta var vårt kommentatorsblad som innehöll alla ändringar som genomfördes och vilka konsekvenser de fick: Radnummer Ny kod Kommentar 34 string 115 36 87 93 "Linus Mexelin", "Fredrik Radholm", "Kristian Boban" Out_A till Out_B Out_B till Out_A 69 SensorRaw (IN_1) 83 Lightintensity < Topthreshold 1 2 SpeedSlow 13 SpeedFast 30 Bytte int till string, resten av koden var menad att visa namn, inte definiera nummer Raderade hela raden, roboten ska inte dance(); La till våra gruppmedlemmars namn som visas på robotens display else kan inte vara exakt samma som ursprunglig kod, detta får roboten att växla hastighet mellan höger och vänster hjul Var tidigare...(in_3), ändrades för att ljussensorn var i input 1 Vi vill inte att roboten ska överstiga den angivna gränsen, vilket låser funtionen Roboten ska hinna läsa av den svarta linjen 4. Analys Labben gick kanske inte riktigt som förväntat, då man inte riktigt kunde förvänta sig något heller. Därför kunde man inte förutsätta om hur det skulle gå. Vi bad lite om hjälp när det var något vi fastnade på eller inte förstod. Resultaten visade detta, då vi analyserade koderna samt försökte förstå vad de gör och varför. Det som var bra var såklart när vi kunde lösa uppgifter själva, och det mindre bra var kanske när vi inte kunde lösa dem alls. KTH Kista Sida 4 av 5

5. Diskussion Laborationen gick hyfsat fort. Vi som grupp hade kanske inte riktigt programmerat en robot förut, inte heller bekantat oss med NXC. Vi hade dock lite allmän kunskap om hur man kan gå till väga. Ett exempel är hur vi använde oss av logiken. Dance-kommandot visste vi från början att vi kunde skippa eftersom att roboten självklart inte skulle dansa, utan utföra en annan sorts uppgift. Detta var något jag tyckte funka bra. Något som kanske var mindre bra var att vi då inte kanske hade tidigare eller djupare kunskaper om just NXC, som bidrog till att vi kanske fick klura lite extra på vissa problem. Som sagt skulle denna laboration simulera ett problem för en ingenjör. Labben bidrog till vad jag kan förvänta mig i framtiden och förhoppningsvis i mitt yrke. Detta var en del av syftet med uppgiften. Referenser Det som användes inför och efter laborationen var labb-pm:t, men även pdf-filen som smått förklarade hur man använde NXC. Bilagor KTH Kista Sida 5 av 5