Programmering med NXC Lego Mindstorm

Relevanta dokument
Programmera Lego Mindstormsrobotar

Labbrapport - LEGO NXT Robot

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

LEGO Mindstorm-robot

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

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

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

Laboration - Programmering av LEGO Mindstorm robot

Lego Mindstormprogrammering

[Introduktion till programmering ]

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

Laboration i datateknik

Laborationsrapport av robotprogrammering

Felsökande av en Lego Mindstorm robot

Programmering av LEGO NXT Robot

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

Introduktion i programmering med språket NXC

Programmeringslaboration med LEGOrobot

Programmering av en Lego robot

Labrapport: Programmering i NXC Programmera LEGO Maindstorm med NXC

Laboration i datateknik

Introduktion till programmering med hjälp av Lego Mindstorm

Programmera LEGO NXT

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

Simon Boström Introduktionskurs i Datateknik

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

LEGO NXT Robotprogrammering

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

Robotprogrammering felsökning & analys.

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

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

PROGRAMMERING AV LEGO-ROBOT VIA NXC

Programmering av LEGO NXT Robot

Simon Johansson Introduktionskurs Datateknik 1310

Felsökning av mjukvara

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

Labbrapport LEGO-robot linefollower

Programmera en NXT Robot

[Introduktionskurs i Datateknik]

Labbrapport. Introduktionskurs i datateknik (II1310) Stefan Dalarsson,

Praktisk programmering

Roboten. Sida 1 av 11

Lego Robot [ ] [ ] [ ]

Laborationer i SME094 Informationsteknologi I för

Om NXTprogrammering. Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT?

Kojo med Inga Ingenjör. Lär dig programmera Nybörjaruppdrag

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

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

WeDo 2.0-mattan. MV-Nordic Lucernemarken Odense S Danmark Telefon mv-nordic.com

Grundkurs i programmering - intro

Den intelligenta dammsugaren

1. Vi satte ut ett körblock med standardinställningar 2. Ett till körblock sattes men varaktighet en ställdes istället på 3,55 rotationer (se bild)

Digitalt lärande och programmering i klassrummet

Programmering F-3. -dansprogrammering. Del 1

Tidigare elever berättar Teknikprogrammet

JavaScript del 3 If, Operatorer och Confirm

Forskningsrapport Söråkers Champions 2014

Logik och kontrollstrukturer

Programmering som språk

LPP Programmering. Syfte, övergripande mål Lära känna och kunna utföra enkla programmeringar i Scratch samt Lego Mindstorms.

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

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.

Programmeringspalett. Pr o gr a mvar a

Extramaterial till Matematik Y

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

Edison roboten som går at bygga ihop med LEGO

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

Programmering. Analogt och med smårobotar. Nina Bergin

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

Kursvärdering 1DV433 Strukturerad programmering med C++ LP Lärare: Tommy Löfqvist 17 svar

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

Marking System Software Easy to use and freedom of choice INSTALLATIONSGUIDE. Printer cab, FLEXIMARK Software

Programmering. ur ett ämnesövergripande perspektiv

INSTALLATIONSGUIDE PC

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Installation av WinPig Slakt

INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 3 ANVÄNDANDET AV SENSORER... 4

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

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

Extramaterial till Matematik Y

Goda råd från studenterna som gjorde kandidatprojektet 2018

Elnät HT av :38. Kursutvärdering. Lägg till ett block

Digitalt lärande och programmering i klassrummet

Installation av WinPig

Robot- och Automatiseringsteknik grund (RAG 100)

Lärarhandledning FÖRBEREDELSE & STRUKTUR

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.

Editering, Kompilering och Exekvering av Javaprogram

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 1: Intro till kursen och programmering

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

3 augusti (G) Programmering: Lego

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

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

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Användarhandledning Version 1.2

En resa genom robotarnas värld!

Transkript:

KUNGLIGA TEKNISKA HÖGSKOLAN Programmering med NXC Lego Mindstorm INTRODUKTIONSKURS I DATATEKNIK (II1310), LABB Klawi@Kth.se Kasper Wikman 2013-08-27

Sammanfattning: Många har sedan lång tid tillbaka varit lite rädda för att programmering är något som bara handlar om att läsa kod och inget annat. Detta är en intressant uppstart för alla dem som ska starta en datainriktad linje som får en rolig uppgift med mycket självreflektion och samarbete. Genom att felsöka ett kodstycke och sedan använda den på en Lego Mindstorm-robot är något som gör att intresse väcks. Roboten ska utföra ett uppdrag som går ut på att följa en svart linje i en halvcirkel och sedan stötta in i en vägg och därefter spela ett ljusstycke samt printa ut gruppens namn. Denna laboration gick superbt, vi lyckades få roboten att utföra det vi ville att den skulle göra genom rättningar och egna korrigeringar av koden. Detta lede till att vi fick en inblick och en smak av de ingenjörs metoder som används i det vardagliga livet. Vi fick även en smak av vad för saker som kan hända om vissa förhållanden inte är uppfyllda. Innehållsförteckning Inledning... 2 Bakgrund... 2 Syfte & målsättning... 2 Material:... 2 Genomförande... 3 Resultat... 3 Analys... 6 Diskussion... 6 Referenser... 7 Bilagor... 7 ICT KTH Kungliga tekniska högskolan, Kista Sida 1 av 7

Inledning: Denna laboration är menad att lära oss grunderna inom programmering, då vi ska lära oss lite lätt hur man arbetar med kod på ett roligt sätt med en typisk ingenjörsuppgift. Uppgiften i laborationen var att lyckas med att få en robot att åka längst med en svart linje i en halvcirkel in i en vägg, spela ett ljudstycke och skriva gruppens namn på skärmen. Bakgrund: Det är en par-baserad övning som handlar om samarbete mellan två parter vilket förekommer inom arbetslivet. Laborationen är på ett teknologiskt plan, vilket innebär att en viss dator- och programmeringskunskap krävs. Det gäller att kunna använda kreativa lösningar, men även se de fel som finns i lösningarna för att få fram det man vill. Allt detta är förekommande mer eller mindre i arbetslivet för en ingenjör. Syfte & målsättning: Att ge oss en rolig introduktionsövning in i programmeringen. Då får vi se lite kod, som vi får rätta och se hur våra ändringar påverkar roboten. Även för att introducera oss till den arbetsprocess som ingenjörer har och det ITsystem ICT skolan använder t.ex. bilda & KTH social. Övningen ger en lätt grund i att felsöka kod och på så sätt öka effektiviteten för vår programmering. Genom detta kan vi se att små fel i en kod kan leda till något helt annat. På så sätt kan detta ge eleven en bättre förståelse för att perfektion är viktigt i sin kod. Visa studenten att de kan tillämpa programmering på ett intressant sätt, så de inte tror att de sitter och präntar en massa kod hela dagarna. Material: Drivrutin till LEGO NXT för Windows, Bricx Command Center, Programming LEGO NXT Robots using NXC, NXC Programmer s guide (API), Monteringsspecifikationer & laptop med windows. (liknande) ICT KTH Kungliga tekniska högskolan, Kista Sida 2 av 7

Genomförande: 1. Laborationen startade med att materialet samlades ihop. Så som Lego-roboten, sladd och dator. Sedan installerades och laddades koden och mjukvaran ner. 2. Efter att installationerna av programmen var klara så checkades roboten igenom för att se så att alla sladdar satt bra. Annars kanske det blir stora fel om t.ex. hjulet var kopplat till en sensor. På så sätt såg man att allt var i ordning. 3. NXC-kompilatorn startades upp och tog emot koden. Genom att testköra koden direkt kan det verifieras om koden har något fel. 4. Efter att koden har undersökts, så korrigerades koden för att få den att utföra den funktion som efterfrågades. Målet är att hitta den kod som ger roboten funktionen att följa efter den svarta linjen och korrigerar misstag på ett visst sätt om den skulle röra sig bort ifrån linjen. 5. Efter att allt var korrigerat, tillämpades den kod som hade rättats för att kunna utföra uppgiften korrekt. Resultat: Vi fick roboten att följa den svarta linjen i en halvcirkel, med hjälp av en ljussensor. Sedan åka in i en vägg och trycka in två trycksensorer. Då spelade roboten en serie toner och sedan skrev den gruppens namn på skärmen. 1. Ändring av robotens hastighet. ICT KTH Kungliga tekniska högskolan, Kista Sida 3 av 7

2. Int i den andra raden ändrades till string. Vi tog bort stycket i vår kod senare då det inte funkade och ful kodade istället två separata stycken. Vi vet efter senare förklaring att ett ytterligare fel fanns i slutet då det står (8*i-16), minus 16 ska bort för annars printar den inte grupp namnen. 3. Tog bort dance() funktionen då man ville att roboten skulle åka rakt under vissa förhållanden och inte snurra runt i en cirkel konstant. 4. Vi ändrade texten i rutan, egentligen påverkade det inte så mycket. Felet fanns längre upp i koden. Som vi ändrade i början av steg 2 i den andra raden av kod. 5. Ljussensorn var kopplad till IN_3 inte IN_1 därför ändrades detta i koden för att få ljussensorn att läsa av linjen. ICT KTH Kungliga tekniska högskolan, Kista Sida 4 av 7

6. Här tog vi bort det originella stycket kod via /*, */ markering. Då utformade vi ett nytt stycke som gjorde de saker vi ville om förhållandet var sant. Vi hade märkt att roboten svängde lite höger så vi kalibrerade den att svänga vänster vid övergång av linjen. Detta gjorde via olika hjulhastigheter. 7. Vi kommenterade bort funktionen att den börjar åka direkt. För vi ville att den enbart skulle köra om den såg den svarta linjen. Här stod även dance(); tidigare men den märkte jag var borttagen i vår slutliga kod. ICT KTH Kungliga tekniska högskolan, Kista Sida 5 av 7

Analys: Det som gick bra i labben var att kolla igenom koden och att förstå hur det hela hänger samman. Om instruktionerna hade lästs igenom så skulle man förstå vilka koder som gav roboten en viss funktion. Genom att observera koden kunde vi se att det fanns lite om detta förhållande stämmer så gör detta, annars använder roboteten denna funktion, den funktionen för ljussensorn fungerade på det visset genom if- och else satser. Även sådana funktioner som om de inträffar så ska roboten göra detta. Då trycksensorn kom till väggen och spelade upp en ljudsekvens. Diskussion: Jag tycker att i denna labb nådde min grupp målen bra. Vi fick prova på en rolig programmeringstillämpning med en logisk och utmanande uppgift. I laborationen fick alla tillämpa saker de kunde till en stor del, vilket var skönt. Jag känner att jag lärt mig lite mer om vad programmering kan användas till och känner mig mer sugen på att starta upp med det hela. Jag tror att detta kan bygga upp ett intresse och öka mina kunskaper. Detta var en ganska grundbaserad labb men jag tror det här ändå på något sätt öppnar upp vyerna för ett allt mer öppet sinne gentemot programmering. Kanske inte tillämpar denna nivå i kommande arbetsliv men tror detta är en grund för vad som komma skall. Uppgiften var lite problematiskt till en början, då vi trodde allt var fel och var tvungna att gissa lite på att roboten inte riktigt använde vår kod, då vi skulle starta koden i roboten. Då kommenterade vi bort lite saker som var centrala men som ändå körde då vi startade roboten. Det visade sig vara så att roboten inte hade rensats sedan förra gången den användes. Därför körde roboten istället en annan tidigare inlagd kod och det var därför tog det lite extra tid att komma i mål. Efter problemets upptäcktes gick det ganska fort. Jag tycker programmen som gavs ut var lätthanterliga. Det var lätt att ladda ner och hantera så länge alla instruktioner följdes korrekt. NXC ett helt okej språk, det var inte speciellt svårt. Där gällde det även att läsa i powerpointen men även i texten om roboten så var man väl förberedd. De ändringar vi gjorde i koden tyckte jag var kreativa och intressanta. Runt en hel del saker kunde kreativiteten bara flöda omkring. Vid slutet av uppgiften kunde roboten spela nästan vilken ton som helst om koden justerades. I min grupp ful kodade vi oss runt ett problem t.ex. och tog och ändrade en annan del helt. Samtidigt får roboten att utföra det den skulle göra. På så sätt blev det en rolig och intressant uppgift. ICT KTH Kungliga tekniska högskolan, Kista Sida 6 av 7

Referenser: Labb-PM på Bilda, https://bilda.kth.se/courseid/10164/content.do?id=21060042 Programming LEGO NXT Robots using NXC.pdf, på Bilda. Bilagor: ICT KTH Kungliga tekniska högskolan, Kista Sida 7 av 7