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

Relevanta dokument
Programmeringspalett. Pr o gr a mvar a

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

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

Roboten. Sida 1 av 11

Laborationsrapport av robotprogrammering

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

Laborationer i SME094 Informationsteknologi I för

EV3 Roboten. Sida 1 av 13

Lego Robot [ ] [ ] [ ]

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)

Labrapport: Programmering i NXC Programmera LEGO Maindstorm med NXC

Digitalt lärande och programmering i klassrummet

LEGO MINDSTORMS Education EV3

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

Edison roboten som går at bygga ihop med LEGO

Laboration i datateknik

Felsökande av en Lego Mindstorm robot

NXT 2.0 Användarhandledning

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

Programmera Lego Mindstormsrobotar

Robot Educator En introduktion

Laboration i datateknik

Lektion 1 Arbetsblad 1.1 Möt Edison

3 augusti (G) Programmering: Lego

Labbrapport - LEGO NXT Robot

Programmering av en Lego robot

HEMISSON. Webots-Botstudio laborationsbok. Sida1

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.

Programmering eller Datalogiskt tänkande

Programmering. Scratch - grundövningar

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

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

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

Hur ser Blue-Bot ut i aktion?

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

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Programmering. Analogt och med smårobotar. Nina Bergin

Programmering robotprogrammering med mbot

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

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

Laboration - Programmering av LEGO Mindstorm robot

Programmering med NXC Lego Mindstorm

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

Introduktion till programmering med hjälp av Lego Mindstorm

4 augusti (G) Programmering: Lego

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

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

Bruksanvisning Bläckfisken USB

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

Robotprogrammering felsökning & analys.

Simon Boström Introduktionskurs i Datateknik

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

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

Programmera Kontaktlåda USB i Mac

Lektion 1: Möt Robo! Områden: Robotteknik, ingenjörsteknik mekanisk design

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

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

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

Interaktiv skrivtavla Lintex ebeam

Programmeringslaboration med LEGOrobot

Lär känna Edison. Det här är Edison, den programmeringsbara roboten.

Lego Mindstormprogrammering

Så här använder du Legimus app för Iphone och Ipad

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet.

LEGO Mindstorm-robot

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

Systemskiss. Joachim Lundh TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

Användarmanual för mycaddie version 2.0

Programmering av LEGO NXT Robot

Dagens robot. Copyright Sagitta Pedagog AB

Att få inskannad text uppläst med talsyntes

Version lättläst. Så här använder du Legimus app. för Android

ONSCREENKEYS 5. Windows XP / Windows Vista / Windows 7 / Windows 8

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

OzoCodes FÄRG KODER VINST/ UTGÅNG FART RÄKNARE RIKTNING TIMER COOLA RÖRELSER REFERENSSCHEMA VINST/UTGÅNG (SPELA IGEN) CRUISE SNABB TURBO NITRO BOOST

Skapa mapp. * Gör så här: Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande.

Programmering i Scratch 2.0

Möt Edison. Detta är Edison, den programmerbara roboten. Vad är en robot? En robot är en maskin som man kan få att göra en uppgift på egen hand.

Kom igång-utbildning Lynx

Switch Driver 4. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

VS Communicator 4. Kommaigång

Innehåll. Omslagsfoto: Daniel Sahlberg. Liber AB Version 2.1 Sida 1

Kommentar [k1]: Behöver vi kommentera det som finns till höger ovanför schematyp?

Programmering F-3. -dansprogrammering. Del 1

Bee-Bot & Blue-Bot Skapa din egna saga

Lär dig grunderna om Picasa

Delta i undervisning online via Zoom

Kom igång med Skype (PC)

Guide till att använda Audacity för uttalsövningar

Snabbstartsguide. för programmering med KUBO

Flexiboard. Lathund kring hur du kommer igång med att skapa egna överlägg till Flexiboard. Habilitering & Hjälpmedel

Läs och förstå pedagogisk handledning

Smart Rogic Manual. Robostick Manual

Snabbguide för datorstyrning och robotteknik med LEGO MINDSTORMS for Schools

1

Simon Johansson Introduktionskurs Datateknik 1310

Vi tror på att kommunikation ska vara roligt - därför är Prata utformad för att

Labbrapport LEGO-robot linefollower

PROGRAMMERING AV LEGO-ROBOT VIA NXC

Introduktion. Skriv in användarnamn och lösenord

Transkript:

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

Syfte Syftet med uppgiften är att få kännedom om ett strukturerat arbetssätt för hur ett problem kan angripas i de olika steg som svarar mot CDIO (Concieve-Design-Implement-Operate). Mål Målet med uppgiftens första moment är att lära känna den teknik som finns till förfogande (en MindStorm Legorobot), inse dess begränsningar och möjligheter (concieve). Målet med uppgiftens andra moment är att utgående från den tillgängliga tekniken designa (design) och realisera (implement) ett fungerande system som sedan skall testas och användas (operate). Ytterligare målsättningar med uppgifterna är att öva på att arbeta i grupp (om två personer), kommunicera de resultat som erhålls muntligt samt få kännedom om det processorienterande lärande som kommer att användas under utbildningen. Uppgiftens aktiviteter kommer att resultera i en insikt i hur en robot kan styras med hjälp av enkel programmering med ikoner. Uppgiften kommer också ge tillfälle till reflektion kring hur man ger en robot ett beteende och vilka beteenden som är enkla att programmera och vilka som är svårare. Förhoppningen är att programmering med ikoner ska ge insikt i många koncept som används vid vanlig programmering med text. Uppgift Uppgiften är uppdelad i två moment. Första momentet är till för att bekanta sig med roboten och programvaran som används för att programmera den. Ni ska efter hand öka på robotens förmåga att röra sig i en omgivning och målet är att ni i moment 2 ska definiera ett eget (utmanande) problem som roboten ska klara av och sedan programmera detta beteende. När uppgiften startar finns en trycksensor kopplad till ingång (port) 1 på roboten, en ljudsensor (mikrofon) på port 2 och en ljussensor på port 3. På port 4 sitter en ultraljudssensor som kan mäta avstånd till ett hinder (t.ex. en vägg) upp till 65 cm bort. Det finns två motorer på roboten som styr vänster respektive höger hjul. Motorerna är kopplade till portarna B och C. Moment 1: Introduktion. Lär känna Lego Mindstorms För att komma igång med programmeringen ska ni börja med några enklare övningar för att få roboten att röra sig och ta hänsyn till omgivningen. Deluppgift 1: Lär dig styra roboten Skriv kod som gör att roboten åker framåt roboten åker bakåt roboten svänger vänster roboten svänger höger Testa att svänga olika mycket och att variera hastigheten på roboten. Kan du få roboten att svänga 90 grader? Deluppgift 2: Kör runt i en hockeyrink Skapa ett program som gör att roboten kör runt i en "hockeyrink" med ett hinder i mitten utan att köra in i väggarna eller i hindret. Roboten ska klara minst ett varv utan att använda sensorerna.

Deluppgift 3: Börja använda sensorer Börja med att göra ett program som kör rakt fram till trycksensorn blir intryckt och stanna sedan roboten. Spara detta beteende i en egen subrutin (eller Mina ikoner som det heter i programmet). Detta är motsvarigheten till att göra en funktion i språk som t.ex. C Så här skapar man en subrutin (Mina ikoner) i Mindstorms: 1. Markera de ikoner du vill ha med i rutinen med musen 2. Klicka på Redigera -> Skapa en ny Min ikon-fil. 3. Ge ett lämpligt namn på den nya rutinen och en kommentar på vad den gör för något. Tänk på hur ni namnger era rutiner, det ska vara enkelt att förstå vilken man ska använda även om man inte sett koden för rutinen. 4. Klicka på nästa för att designa en ikon för den nya rutinen (eller på slutför om ni inte ids ) Så här lägger man in en sparad subrutin i ett program: 1. Klicka på fliken Egen palett under programmeringspelleten 2. Under ikonen Mina ikoner bör er nya rutin dyka upp. Lägg in den precis som en vanlig ikon i ert program. Nästa steg är att göra samma sak som i deluppgift 2, men med trycksensorn. Använd nu er rutin för att få roboten att köra rakt fram tills trycksensorn känner av väggen. Stanna roboten, sväng åt lämpligt håll och låt sedan roboten fortsätta till nästa vägg. Upprepa tills roboten tar sig runt hela banan. Gör om samma sak med ultraljudssensorn. När roboten är nära en vägg ska den svänga och fortsätta till nästa vägg. Få roboten att göra något roligt när man klappar händerna (t.ex. göra en piruett och spela upp något roligt ljud). Använd mikrofonen för att känna av när man klappar i händerna (eller något annat högt ljud). Kan ni få den att köra olika fort beroende på hur högt ljud mikrofonen fångar upp? Moment 2: Designa en egen utmaning som roboten ska klara av samt realisera en lösning I den här uppgiften ska ni designa ett beteende för roboten. Det ska vara lagom svårt så ni hinner lösa problemen på två labbtillfällen. Om ni hinner färdigt innan tiden är slut får ni utöka uppgiften och göra den än mer komplex. Planera hur uppgiften skall lösas innan ni sätter igång och programmerar (vilka beteenden krävs, vilka sensorer ska användas etc.). Innan moment 2 ska ni lämna in en kort skriftlig planering som ska godkännas av handledarna. I planeringen ska ni kort beskriva vad ni tänkt göra och uppskatta hur mycket tid ni tror går åt till uppgiften. Ta även upp vilka material som behövs (t.ex. väggar till en labyrint, tejp, bollar, etc.) och eventuella modifikationer av roboten som behövs (t.ex. fler sensorer). Tänk på att en eventuell ombyggnad av roboten måste göras på labbtid och att roboten måste återställas efteråt så att de som kommer efter kan börja direkt. Senaste inlämning av skriftlig planering Fredag 11/9 klockan 15:00. Redovisning Arbetet med moment 2 ska redovisas muntlig Torsdag 1/10 eller Fredag 2/10, redovisningsschema presenteras senare. Båda gruppmedlemmarna skall aktivt delta i redovisningen och planeringen av denna. Redovisningen bör ta 10 minuter (± 1 minut). Publiken är övriga grupper som har gjort likande labbar så det är viktigt att lyfta fram det som utmärker er design och lösning. Om ni inte hunnit lösa allting som ni planerat så redogör för hur långt ni kommit och hur ni skulle gått vidare om mer tid funnits. Programvaran Mindstorms Nedan följer en förklaring på de viktigaste delarna av programvaran Lego Mindstorms. En mer utförlig användarhandledning finns på http://www.cs.umu.se/kurser/5dv033/ht09/mindstorms/9797_lme_userguide.pdf.

Pr o gr a mvar a Programmeringspalett Programmeringspaletten innehåller alla programmeringsikoner du behöver för att göra dina program. Varje programmeringsikon innehåller instruktioner som din NXT-enhet kan tolka. Du kan kombinera ikonerna för att göra ett program. När du är klar med ett program laddar du ner det till din NXT-enhet. Kom ihåg att sätta på och ansluta din NXT-enhet innan du laddar ner programmet.

Programvara Programmeringspalett Standardpalett För att förenkla användningen har programmeringspaletten delats in i tre olika palettgrupperingar: standardpaletten, den fullständiga paletten och den egna paletten (som innehåller ikoner du skapar själv eller laddar ner från webben). Standardpaletten rekommenderas som startpunkt. Kör-ikon Kör-ikonen aktiverar robotens motorer eller får lampor att tändas. Spela in/spela upp-ikon Med hjälp av spela in/spela upp-ikonen kan du programmera roboten med fysiska rörelser och sedan spela upp rörelsen på önskat ställe i programmet. Vänta-ikon Vänta-ikonen får din robot att vänta på en viss sensoraktivering, exempelvis ett ljud eller ett tidsintervall. Ljud-ikon Ljud-ikonen gör det möjligt för roboten att spela upp ljud, exempelvis inspelade ord. Loop-ikon Använd loop-ikonen om du vill att din robot ska fortsätta göra samma saker om och om igen, exempelvis åka framåt och bakåt tills en trycksensor aktiveras. Display-ikon Med display-ikonen kan du kontrollera NXT-enhetens display. Du kan skriva, visa symboler eller till och med rita på displayen med ditt program. Förgrenings-ikon Förgrenings-ikonen gör det möjligt för roboten att fatta egna beslut, exempelvis åka åt vänster när den hör ett starkt ljud och åt höger när den hör ett svagt ljud. 57

Programvara Programmeringspalett Fullständig palett Standardikoner Standardikonerna är samma ikoner som finns i standardpaletten. Åtgärdsikoner Med åtgärdsikonerna kan du styra specifika beteenden för olika utenheter: interaktiv servomotor, NXT-ljud, NXT-display, Bluetooth (skicka) och lampor. Sensor-ikoner Sensor-ikonerna används tillsammans med sensorerna på roboten för att styra robotens beteende. Ikonerna motsvarar tryck-, ljud-, ljus- och ultraljudssensorerna, NXT-knapparna, de interaktiva servomotorernas rotation, timer-funktionerna, Bluetooth (mottagning) och valfria temperatursensorer. Flödesikoner Med de här ikonerna kan du skapa mer komplexa beteenden. Bland ikonerna finns kontroll av funktionerna "repetera", "vänta på" och "variabel", ikoner för att stoppa beteenden eller logiskt flöde i ett program och beslutsikoner för att programmera reaktioner på specifika sensorförhållanden.

Programvara Programmeringspalett Fullständig palett Data-ikoner Skapa boolesk logik-ikonen, matematik-, jämförelse-, intervall-, slumpvillkor-, variabel- och konstant-ikonerna. Avancerade ikoner Använd de här ikonerna när du vill omvandla data till text, lägga till text, styra NXT-enhetens vilofunktion, spara filer på NXT-enheten, kalibrera sensorer, återställa motorer, starta och stoppa datauppsamling och ansluta med Bluetooth. Egen palett Mina ikoner Med hjälp av Mina ikoner kan du spara ett program som en ikon och återanvända det i andra program. Webbnerladdningar Med hjälp av ikonen för webbnerladdningar kan du spara program som du fått av en vän via e-post eller som du laddat ner från portalen eller från en webbplats som www.mindstormseducation.com

Programvara Inställningspanelen Varje programmeringsikon har en inställningspanel där du kan justera inställningarna för den valda ikonen. När en ikon har valts i arbetsområdet blir dess inställningspanel synlig och aktiv längst ner på skärmen. Genom att ändra parametrarna på inställningspanelen kan du välja hur en specifik ikon ska bete sig. Till exempel kan du få din robot att röra sig snabbare genom att ändra egenskapen Styrka [Power] i inställningspanelen för kör-ikonen. Kontrollenheten De fem knapparna på kontrollenheten används för att datorn ska kunna kommunicera med NXT-enheten. Knappen "NXT-fönstret" ger dig tillgång till NXT-minnet och kommunikationsinställningar. Knappen "Ladda ner och kör vald" laddar bara ner och kör en del av din programkod (exempelvis en enstaka ikon eller bara några få ikoner). Du kan på så sätt se hur den lilla delen av ditt program påverkar NXT-enheten utan att behöva ladda ner hela programmet. Knappen "Ladda ner" laddar ner programmet till din NXT-enhet. Du kan sedan köra programmet på NXT-enheten. Knappen "Ladda ner och kör" laddar ner ett program till NXT-enheten och börjar sedan köra programmet. Knappen "Stopp" stoppar ett program som körs.