Den intelligenta dammsugaren

Relevanta dokument
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.

LATHUND. Att komma igång med Pecar E Plan

ANVÄNDARMANUAL CIRCUS

Återrapportering Ledsagarservice och avlösning i hemmet

Resledaren Användarguide iphone Innehåll

Hur köper man en biljett på SJ s hemsida?

Programmering. Analogt och med smårobotar. Nina Bergin

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

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Uppföljning av en genomförandeplan i LifeCare

MANUAL FÖR ARENA. INNEHÅLL Komma igång 2 Shopen 4 Kundvagnen 5 Kassan - steg 1 6 Kassan - steg 2 7 Kassan - steg 3 8 Avsluta 9

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

Montering av Wisp628.

Word Grunderna 1. Om du kan det allra enklaste i Word, hoppa över uppgifterna A-E.

Manual

Att köpa biljett på mobil.sj.se

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

Programmering av en Lego robot

Lego Robot [ ] [ ] [ ]

WebitRental Uthyrningssystem. WebIT Design i Kalmar HB

Resledaren Användarguide Android Innehåll

Verktygsfält. Hantering av webbkarta Grundinstruktion. Sida 1 av 6. De olika verktygen och delarna förklaras i detalj längre ner i dokumentet.

Använda Internet. med hjälp av Internet Explorer. Nybörjarguide

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

Manual skapa och uppdatera genomförandeplan i LifeCare

ANVÄNDARBESKRIVNING FÖR PERSONAL

Annan användare är inloggad

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data

Leica mojo3d start första gången

Handledning Mina betfält hur man lägger in sitt betfält på Mina sidor

Lärarhandledning. Felix börjar skolan

Användarmanual TextAppen Online

Skapa spelet Bug-race i Scratch

När du valt grupp får du upp denna sida med alla medlemmar i gruppen. Klicka på kalender som finns på den grå menyraden (inringad i rött på bilden).

Roboten. Sida 1 av 11

Provverktyg för elever instruktioner [SE]

Jaktpejl.se. Användarmanual. Av: Erik Åberg

SITHS i Easy. Handledning i hanteringen av Självdeklarationen

TES Mobil. Användarmanual. Användarmanual TES Mobil Dok.nr v8

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

Lathund - system för tillbud och arbetsskador

Manual LifeCare Utförare

Användarguide. Bildslinga internet

Skapa genomförandeplan i LifeCare

Marathon Tid. Betyder att dagen är färdigrapporterad. Dagar utan rapporteringskrav, exempelvis helgdagar, är redan från början grönmarkerade.

Vilken version av Dreamweaver använder du?

Säkerhetsinställningar, websolen. Innehåll

Lättläst om Victor Classic X

Manual för tidrapportering

Manual till Båstadkartans grundläggande funktioner

Installation av datafil för lokal lagring av e-post i Microsoft Outlook 2016

Lathund för webbpublicering på Vi Ungas distriktswebbplatser

Kom-igång VictorReader Stratus 12 H som taltidningsspelare Ver

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

Brickläggning Duplimat Mk V

Hur ser Blue-Bot ut i aktion?

IdrottOnline Klubb manual medlemsregistret

HEMISSON. Webots-Botstudio laborationsbok. Sida1

Publicera material i Learn

Itslearning introduktion

Att rikta information i en aktivitet

KOMPLEMENT TILL MATTE DIREKT BORGEN UPPLAGA

steg! första Gör din fotobok i 10 enkla Snabba instruktioner För Windows 7.4 och nyare versioner Välj ut dina bästa foton. Öppna fotoboksprogrammet.

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

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

STOCKHOLMS UNIVERSITET. Handbok 2. Funktionaliteter moveon 4

Bildbaskontoret. Bruksanvisning. Handitek. anpassar tekniken till människan BRUX\...\ BILDBASKONTORET

Programmering med NXC Lego Mindstorm

LifePuz Free för Android

Se till att du har inloggning till din lagsida, kontakta kansliet. Gå till din lagsida och logga in via hänglåset uppe i högra hörnet.

Handbok PlexTalk PTN

Programmering F-3. -dansprogrammering. Del 1

Innehåll Modulmanual Arbetsflöde

Windows Store. Det krävs ett Microsoft-konto för att kunna hämta appar i Store. Du kan ta bort (avinstallera) appar som du inte vill ha kvar.

MARKNADSPLATSEN 2.0. Lathund för fakturagranskare. Sammanfattning Instruktioner om hur du granskar fakturor i Marknadsplatsen 2.0

ANVÄNDARGUIDE VITAL & TALANDE TANGENTBORD

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

7-2 Sammansatta händelser.

Återrapportering Korttidsboende och växelvård

1. Börja med att logga in på prp.academedia.se med dina vanliga inloggningsuppgifter (dvs ditt AD-konto)

Nyheterna i Visma Tendsign 4.0

Beställning till Diakrit

Handbok PlexTalk PTN

Lathund Genomförandewebben

Kom-igång VictorReader Stratus 12 H som taltidningsspelare

Lathund till Publisher TEXT. Skriva text. Importera text. Infoga text. Dra och släpp

Logga in För att förenkla och ge bättre överblick över sin arbetstid har var och en som tidrapporterar sina unika inloggningsuppgifter.

Utförliga regler för TRAX

Huvudmenyn (utseendet kan variera) Skriva ett nytt mail

Bruksanvisning AllTid

NyA-webben. Användarmanual för läsfunktionen Uppgifter om sökande

LabelLogic. Bruksanvisning. Innehåll. Label Choices. Data Library. Print Centre. Design Centre

Idus APP Manual. För ios och Android

Användarmanual Legimus för Iphone och Ipad. Version 1.0

Swedish MY094. Snabb guide

FIRSTCLASS. Innehåll:

Läs detta innan du sätter igång!

TRÄNING SOM FUNKAR - KOM IGÅNG I HÖST!

Exempel på hur man kan bygga enkla former i Illustrator

UngO teket. Banläggning i OCAD. ungoteket.se

Transkript:

Institutionen för Datavetenskap presenterar: Den intelligenta dammsugaren En laboration i fyra delar Laborationen utvecklad av KogVet- studenter Reviderad 2007: Jenny Dalenius 1

Hej och välkommen! Bilden nedan borde du nu ha framför dig. Annars, säg till din labbassistent. Labbfönstret du kommer jobba i under laborationen. Introduktion Laborationens uppbyggnad Du har blivit anställd som AI- programmerare på företaget Vacuumheads. De tillverkar dammsugare av alla de sorter. Just nu håller de på med en dammsugare som på egen hand ska kunna dammsuga i ett rum och som skräddarsys efter kundens behov. Det är här du kommer in i bilden. Du har till uppgift att programmera dammsugaren så att den klarar av kundens krav. Till din hjälp har du ett grafiskt utvecklingsverktyg (det du just nu har framför dig på datorn). 2

Testmiljö Dammsugaren du programmerar testkörs i en låtsasvärld som ser ut enligt bilden nedan. Testvärlden, det är här du kommer att provköra din dammsugare. Testvärlden är som synes indelad i rutor. Den gula gubben är din dammsugare som rör sig genom testvärlden. De rutor dammsugaren inte har varit på är gråa. Om dammsugaren rör sig över en ruta blir den svart. Rutor som är väggar eller hinder är färgade blå. Rutor där det finns damm innehåller en vit prick. Hur programmeras dammsugaren? Dammsugaren programmeras genom att man bestämmer vad den ska göra i olika situationer. Om dammsugaren exempelvis står på en ruta med damm så ska den suga upp dammet, om dammsugaren har krockat med väggen ska den vända om etc. Vi har alltså en tankegång enligt följande: Om en situation inträffar - > gör någonting. Detta kallas i labben en sats (eng. statement). Det som står efter pilen utförs alltså om det som står före pilen gäller (är sant). Det som står före pilen kallas i laborationen en förutsättning (eng. precondition) och det som står efter en handling (eng. action). När du programmerar dammsugaren ska du välja ut lämpliga förutsättningar och koppla ihop dem med handlingar. 3

Hur fungerar dammsugaren? Dammsugaren jobbar så att den går igenom förutsättningarna en i taget, uppifrån och ned. Hittar den en förutsättning som stämmer utför den handlingen som står efter. Efter utförd handling börjar den om och går igenom förutsättningarna från början igen. Varje gång dammsugaren utför en handling ändras situationen. Dammsugaren kan ju t.ex. ha stått på en ruta utan damm och flyttat sig till en ruta med damm. Så nästa gång dammsugaren går igenom villkoren så kanske en annan förutsättning är uppfylld. Ett exempel Som exempel ska vi konstruera en dammsugare som rör sig från det sydvästra hörnet till det sydöstra hörnet och suger upp allt damm där emellan. När dammsugaren sedan når sydöstra hörnet ska den stänga av sig (dammsugaren börjar alltid i det sydvästra hörnet vänd österut). Det vi först vill kolla varje gång vi kommer till en ny ruta är om det finns smuts där. Finns det smuts vill vi suga upp det. Det skulle alltså se ut enligt följande: 1. Om det finns smuts - > sug upp smuts Det är viktigt att denna sats kommer först. Om vi skulle ha en annan sats ovanför skulle vi kunna lämna en ruta med smuts utan att suga upp det. Ordningen på satserna är, som du säkert kommer att märka, väldigt avgörande för dammsugarens funktion. Om det inte finns smuts där vill vi kolla om vi varit på rutan framför. Har vi inte varit där vill vi röra oss framåt. 2. Om inte varit på rutan framför - > gå framåt Slutligen om vi går in i väggen så ska vi stänga av dammsugaren för då är vi i det sydöstra hörnet. Att gå in i en vägg är samma sak som att ha varit på rutan framför oss. Vi får alltså: 3. Om varit på rutan framför - > stäng av Introduktionsuppgift Vi ska nu prova att programmera dammsugaren enligt ovan. Under rubriken Om det här är uppfyllt väljs förutsättningar (preconditions) och under Utför den här åtgärden väljs handlingar (actions). Vi ska nu börja med att programmera sats 1: Om det finns damm - > sug upp damm För att göra detta väljer vi helt enkelt alternativet Smuts i rutan i den översta menyn för förutsättningar och Sug upp smuts i den översta menyn för handlingar. För det andra villkoret lyder förutsättningen: Om inte varit på rutan framför. Eftersom vi vill att det ska hända något om förutsättningen inte gäller måste vi kryssa i rutan Inte på den raden. Programmera nu sats 2 och 3 på egen hand. Nu har du nästan programmerat klart din första dammsugare. Det som behövs nu och som alltid är god programmeringssed är att ha en förutsättning som berättar vad som ska hända om ingen annan förutsättning är uppfylld. Till detta används förutsättningen Alla övriga fall. Vad vi ska göra i det här fallet har inte så stor betydelse eftersom vi vet att något annat villkor alltid är uppfyllt. Men så fort uppgiften blir lite större kan det vara svårt att överblicka alla möjliga situationer som kan uppstå. Därför är det bra att vänja sig vid att alltid ha med ett sådant villkor. I det här fallet kan vi t 4

ex välja handlingen Gå framåt. Tänk på att Alla övriga fall är ett villkor som alltid är sant. Om du lägger till satser efter en sådan sats kommer de aldrig någonsin att köras, eftersom dammsugaren alltid börjar om från början med villkoren när den har utfört en handling. Du kan nu provköra dammsugaren och se om den beter sig som väntat. Detta gör du genom att trycka på Starta utan hinder. Gjorde dammsugaren som väntat? Vill du se hur dammsugaren uppförde sig en gång till är det bara att trycka på startknappen igen. Några tips innan du börjar med uppdragen - På sidorna 7-8 i denna labbhandledning har du en förteckning över alla förutsättningar och handlingar som finns samt en förklaring över hur de fungerar. Dessutom så finns en förteckning över alla felmeddelanden och vanliga meddelanden som kan dyka upp under labbens gång. - Lek ett tag med dammsugaren innan du börjar med uppdragen, gör egna villkor och försök förutsäga dammsugarens beteende. Om ditt program inte fungerar som du hade tänkt och dammsugaren inte stänger av sig själv går det alltid att avbryta den med stopp- knappen. Nu kan du börja med uppdragen, vänd sida för att sätta igång! 5

Uppdrag 1 Uppdrag Tant Grönlund har en salong där hon brukar ha sina tebjudningar varannan torsdag. Eftersom tant Grönlund har nått den beaktansvärda åldern av 83 är ryggen inte riktigt vad den har varit. Hon har därför svårt att böja sig ned och komma åt i hörnen när hon dammsuger. Hon har därför beställt en dammsugare från Vacuumheads som ska göra det jobbet åt henne. Din uppgift är att konstruera en dammsugare som går ett varv längs med väggen i ett kvadratiskt rum utan hinder (den ska alltså aldrig röra sig in mot mitten utan hålla sig längs med väggen). När den kommer tillbaka till startrutan ska den stänga av sig själv. På vägen ska den naturligtvis suga upp allt damm den stöter på. Testkör utan hinder. Uppdrag 2 Torsten Svensson har ett garage han städar pedantiskt varje dag. Men nu ska Torsten på semester till Vadstena i fyra veckor och behöver därför någon som kan dammsuga golvet när han är borta. Uppdraget går till Vacuumheads. Torsten vill att dammsugaren ska suga bort allt damm som finns i garaget. När dammsugaren är klar ska den stänga av sig oavsett var den befinner sig. Eftersom Torsten är väldigt noggrann av sig finns det naturligtvis inga hinder i vägen på hans garagegolv. Testkör utan hinder. Uppdrag 3 När Torsten kommer tillbaka från semestern och ska titta till sitt garage snubblar han över dammsugaren som står mitt på golvet. Det slutar inte bättre än att Torsten bryter foten. Arg och städoduglig bestämmer sig Torsten för att stämma Vacuumheads. Lyckligtvis lyckas din chef få till stånd en kompromiss. Dammsugaren ska programmeras om så att den när den har dammsugit klart istället åker tillbaka till hörnet där den började och stänger av sig. Uppdraget att programmera om dammsugaren går till dig (vem annars). Testkör utan hinder. Uppdrag 4 Eulalia Söderström är trött på att hennes upproriska tonåring aldrig städar rummet. Som den kloka mor hon är beställer hon en dammsugare från Vacuumheads. Dammsugaren ska kunna ta sig igenom rummet, dammsuga bort allt damm och ta sig tillbaka till starten och där stänga av sig. Inte nog med det, den rebelliska tonåringen har högar med smutstvätt, böcker och CD- skivor slumpvis utspridda på golvet i vägen för din dammsugare (om det finns damm som inte går att komma åt ska det ignoreras). Testkör med hinder. 6

Förutsättningar Förklaringar till alla förutsättningar och handlingar Står i startrutan Är sant om dammsugaren står i startrutan (sydvästra hörnet). Smuts i rutan Är sant om det finns damm i rutan dammsugaren står i. Har varit i rutan framför Är sant om dammsugaren varit på rutan framför. Har varit i rutan bakom Är sant om dammsugaren varit på rutan bakåt. Har varit i rutan till vänster Är sant om dammsugaren varit på rutan till vänster. Vänster är alltså sett ur dammsugarens synvinkel. Om dammsugaren är vänd nedåt är vänster för dammsugaren höger på skärmen o.s.v. Samma sak gäller också för vänster, framåt och bakåt. Har varit i rutan till höger Är sant om dammsugaren varit på rutan till höger. Har varit i alla omgivande rutor Är sant om dammsugaren har varit i rutan framför, rutan bakom, rutan till vänster och rutan till höger. Har varit i alla omgivande rutor och är i startrutan Är sant om dammsugaren har varit i rutan framför, rutan bakom, rutan till vänster och rutan till höger och dessutom står i startrutan (längst ner till vänster). Startrutan är ett steg framåt Är sant om positionen framför dammsugaren är startrutan. Alla övriga fall Är alltid sant. Denna förutsättning ska alltid finnas med längst ned bland dina villkor så att dammsugaren alltid gör något även om ingen annan förutsättning är uppfylld. 7

Handlingar Sug upp smuts Dammsugaren suger upp allt damm i den ruta där den står. Gå framåt Dammsugaren flyttar ett steg framåt i den riktning den är vänd. Sväng höger Dammsugaren vrider sig till höger. Sväng vänster Dammsugaren vrider sig till vänster. Sväng helt om Dammsugaren vänder 180 grader. Gå till föregående ruta Dammsugaren går tillbaka till den ruta där den var förut. (Om denna handling görs flera gånger i rad kommer dammsugaren inte att hoppa fram och tillbaka mellan två rutor, utan gå tillbaka längs den väg den kom från början. Tänk på hur bakåt- knappen fungerar i en webbläsare!) Om dammsugaren kommer till en ruta den besökt flera gånger går den tillbaka längs med den väg den kom första gången den besökte rutan. Stäng av Dammsugaren stänger av sig. Testkörningen avslutas. 8