Robotprogrammering felsökning & analys.



Relevanta dokument
Laboration i datateknik

[Introduktion till programmering ]

LEGO Mindstorm-robot

Lego Mindstormprogrammering

Simon Boström Introduktionskurs i Datateknik

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

Labbrapport - LEGO NXT Robot

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

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

Programmera Lego Mindstormsrobotar

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

Laborationsrapport av robotprogrammering

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

PROGRAMMERING AV LEGO-ROBOT VIA NXC

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

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

LEGO NXT Robotprogrammering

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Laboration i datateknik

Programmering av en Lego robot

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

Programmering av LEGO NXT Robot

Introduktion i programmering med språket NXC

Introduktion till programmering med hjälp av Lego Mindstorm

Programmera LEGO NXT

Felsökande av en Lego Mindstorm robot

Laboration - Programmering av LEGO Mindstorm robot

Programmering av LEGO NXT Robot

Felsökning av mjukvara

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

Simon Johansson Introduktionskurs Datateknik 1310

Labbrapport LEGO-robot linefollower

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

Programmering med NXC Lego Mindstorm

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

[Introduktionskurs i Datateknik]

Programmeringslaboration med LEGOrobot

Praktisk programmering

Labrapport: Programmering i NXC Programmera LEGO Maindstorm med NXC

Programmera en NXT Robot

Labbrapport. Introduktionskurs i datateknik (II1310) Stefan Dalarsson,

Digitalt lärande och programmering i klassrummet

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

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

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

Laborationens mål är att få displayen att visa timmar, minuter och sekunder samt att kunna ställa klockan.

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

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

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

3 augusti (G) Programmering: Lego

Lego Robot [ ] [ ] [ ]

Att använda pekare i. C-kod

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

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

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

Bilaga KeyControl Felsökning

Micro:bit. Börja skapa egna program

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

Edison roboten som går at bygga ihop med LEGO

Datorteknik 2 (AVR 2)

TUTORIAL: KLASSER & OBJEKT

Extramaterial till Matematik X

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Att felsöka din iphone

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

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

Ladda ned Manual till: CM-840/842

EV3 Roboten. Sida 1 av 13

Objektorienterad programmering i Java I

Välkomna till DIT012 IPGO

PROGRAMMERING I SKOLAN Utbildning av kollegor på Carlssons skola CECILIA CHRISTIANSEN ULRIHCA MALMBERG

Grundkurs i programmering - intro

Objektorienterad programmering Föreläsning 2

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Lathund - Konfiguration av PLC och dator

Aptussystemet - från säkerhetsinventering till en trevlig och trygg flerbostadsfastighet. vit

Föreläsning 2. Operativsystem och programmering

En introduktion till L A TEX

Installera nedladdningsterminal

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Användning Dessa rollkort kan användas som stöd i produktutvecklingsprocessen eller för sig själva. De beskriver olika yrken och vilken roll

L-Advantage Solutions AB. WinMore Systems Hippo PC & MAC Start

============================================================================

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

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Digitalt lärande och programmering i klassrummet

Aktivitetsbank. Matematikundervisning med digitala verktyg II, åk 1-3. Maria Johansson, Ulrica Dahlberg

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Telia Touchpoint Plus. Användare

BESTÄLLARSKOLAN #4: VEM SKA GÖRA MIN FILM?

Redovisning av inlämningsuppgifter

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Bett mässa i London 2013

Transkript:

KUNGLIGA TEKNISKA HÖGSKOLAN Robotprogrammering felsökning & analys. Användning utav BricX Command Center Haval Amir Rabiee 2013-09-03 E-post havalsr@kth.se Introduktionskurs i datateknik II1310

Sammanfattning Framtida ingenjörer behöver arbeta i grupp och att kommunicera med sina medarbetare är ett bra verktyg för lösa problem, att parprogrammera för att lära sig felsöka och analysera kod man har skrivit (ändrat i det här fallet) är bra för att kunna strukturera sitt arbete där individens jobb spelar roll då både måste jobba för att lösa problemen, då en felsöker och den andra analyserar legorobotens agerande. BrixCC användes för den här laborationen med hjälp utav en drivrutin samt en färdig mall för programmet. Parprogrammeringen resulterade i ett bra samarbete där vi lyckades lösa de olika problem som fanns och legoroboten klarade av målet som sattes upp för laborationen. Ett fåtal ändringar i koden som tillexempel namnändring och avmarkeringen av kod resulterade i en färdig laboration där trial-and-error -metoden applicerades eftersom två nybörjare måste testa sig fram när det kommer till att koda med ett användarvänligt program som BricxCC då det erbjuder oss lätta alternativ till att ändra koden samt kompilera den. 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... 6 ICT Kungliga Tekniska Högskolan Sida 2 av 6

1. Inledning Att kunna programmera en legorobot för någon som inte har skrivit en enda rad kod förut kan vara svårt men med hjälp utav en färdig mall med några rader med fel kod samt en laborationspartner går det att lösa, kommunikationen var A och O i det här fallet. 1.1 Bakgrund För att kunna lösa framtida problem som samhället står inför så måste en ingenjör lära sig att arbeta i grupp och nå gemensamma mål så smidigt som möjligt, vare sig det är universella problem eller lokala, därför är det viktigt för ingenjörer att kunna kommunicera med människorna man jobbar med samt dom man jobbar för. Att hitta fel i kod eller produkter själv kan vara svårt men med hjälp utav människor omkring en går allting att lösa tillsammans. 1.2 Syfte och målsättning Att kunna hitta småfel i kod som man själv skrivit eller fått är bra för både en nybörjare och en erfaren programmerare för att kunna lokalisera vart problemet/problemen ligger och på så sätt få en klar vision om att alltid vara pedant när det kommer till problemlösning. Mitt mål var framförallt att försöka lösa problemet samt att kunna bidra med lösningar. 2. Genomförande Med hjälp utav BricX Command Center och en färdig fil med felaktig kod i så skulle man försöka få en legorobot med display att följa en svart linje på golvet och på slutet vid krock med en vägg få den att skriva gruppmedlemmarnas namn på displayen. Till att börja med så laddades en drivrutin ner för att kunna hitta roboten som man kopplat med en usb-kabel. BricX CC laddades ner och installerades med hjälp utav en.zip läsare som tillexempel WinRAR. Den färdiga mallen med koden laddades ner och startades med hjälp utav det nyinstallerade programmet. Koden granskades tillsammans för att smidiggöra lösningarna och för att inte missa någonting utav viktig substans. Vid fåtal ändringar utav koden som gjorde en skillnad på hur roboten agerade testkörde man den för att se vad det egentligen man har ändrat i koden. ICT Kungliga Tekniska Högskolan Sida 3 av 6

3. Resultat Laborationen blev en succé och resultatet blev bra. Radnummer Ny kod Kommentar 34 Int till string För att int behandlar nummer och inte ord. 40 names till groupmembers För att åberopa rad 34. 44 names till groupmembers För att åberopa rad 40 46 names till groupmembers För att åberopa rad 40 46 8 i Skärmens utskrifter hamnade på olika värden som finns i åttans tabell. 76 In_1 till In_3 Ändrade input för att kunna använda legorobotens detektorer 94 SLOW till FAST Justerar hastigheten på ett däck för att hålla sig på linjen 98 FAST till SLOW Justerar hastigheten på ett däck för att hålla sig på linjen. 115 Kommenterade bort dance (): Gör så att roboten dansar i början. 4. Analys Ändringarna i koden resulterades i att roboten kunde fullfölja linjen som var formad som en cirkelbåge, problemen var ibland svåra att lösa med tanke på att både två var nya till detta men med hjälp av läraren gick det bra. Funktionen med void dance() som många hade problem var lurig och var till största delen problemet för oss varje gång vi testkörde den och det var pga den funktionen den började snurra i början. Variabeln names var man tvungen att ändra på för att kunna få roboten att reagera till det man hade döpt stringen i början till groupnames. Villkoret för att roboten skulle kunna skriva ut namnen vid en krock bestämdes med hjälp utav de definierade värden för de olika raderna på skärmen och gemensamt för dem var att alla värden låg i åttans tabell som med hjälp utav matematisk tänkande räknades ut. ICT Kungliga Tekniska Högskolan Sida 4 av 6

Inputen för legoroboten ändrades för att sensorerna ska kunna registrera krocken med väggen. För att legoroboten ska kunna hålla sig på den markerade linjen var man tvungen att ändra på koden för de båda däcken så att dom anpassar sig efter det hållet roboten ska åka mot, annars resulterar det i att den åker utanför banan. 5. Diskussion Att samarbete med sina framtida kolleger och kunder är ett ganska bra verktyg för ingenjörer och den här introduktionen till parprogrammering låter en känna sig fram hur det är att jobba som ingenjör och samtidigt få en inblick till hur det är att jobba tillsammans med andra för att lösa problem. Under laborationen använde vi oss mest utav trial-and-error metoden där vi försökte med flertals lösningar för att sedan testa dom. NXC erbjöd oss bra och lätta möjligheter till att förstå vart felen låg och hur de fungerar samt att manualen hade bra information att ge. Referenser Labb-PM samt dem tre olika powerpointsen för föreläsningarna användes. ICT Kungliga Tekniska Högskolan Sida 5 av 6

Bilagor ICT Kungliga Tekniska Högskolan Sida 6 av 6