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

Relevanta dokument
Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Helena Harrysson och Linnéa Wickberg

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

Digitala Projekt (EITF11)

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

Rapport. Fyra i rad-spel. Rapport Digitala Projekt EITF11 Grupp 9 Emma Rasmusson & Louise Ragnarsson Handledare: Bertil Lindvall

The Secure Light. Digitala Projekt EITF11. Hanna Tinglöf, I-12 Anna Horvath, I-12 Filippa Österlin, I-12. Handledare: Bertil Lindvall

Pulsmätare med varningsindikatorer

The Intelligent Timer

Gustaf Backman, Anton Nystedt, Nicholas Peebo Battleships. Lunds tekniska högskola. EITF11 Digitala projekt

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

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

EITF11. WormFight. Axel Eriksson, Felix Geuken Handledare: Bertil Lindvall EITF11

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

Lunds Tekniska Högskola Elektro- och informationsteknik Digitala projekt (EITF11)

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

EITF11 Digitala Projekt TIC TAC TOE. Lukas Ljungblom & Johan Lyckenvik I-13 Handledare: Bertil Lindvall

Digitala Projekt VT13. PING-Pong

Digitala Projekt(EITF40) - Larm

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

PROJEKTTYP: Rapportsammanfattning STUDENTER: Larsson, J. ( ) och Oredsson, J. ( ) DATUM: 26 april, 2015

Digitala projekt rapport

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

Projektrapport i Digitala System

Bilen som inte kan krocka

Växtviskaren EITF11 Digitala projekt VT15, I12

Digitalt Projekt: Radiostyrd Bil

Department of Information Technology Digitala projekt. SuperKull. Daniel Öhman Alexander Persson

Digitala projekt - Radiostyrd bil

EITF11 - Digitala projekt. Hastighetsmätare. Hugo Backmyr Mattias Karlsson

Digitala projekt, EDI021 Rapport Handledare: Bertil Lindvall

Larmcentral. Digitala Projekt. Cecilia Olsson & Erika Björck Handledare: Bertil Lindvall LUNDS TEKNISKA HÖGSKOLA

TEMPERATURMÄTARE MED GRAFRITARE

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Digitala Projekt Konstruktion av Tamagocchi. Av: Oskar Andersson D05 & Danial Rehman D05

DANCING ROBOT. EITF11, Grupp 10. Kajsa Salomonsson, Hugo Hedin och Petter Mårtensson

Whac A mole. Ett rektionstest i kursen Digitala Projekt EITF11 utfört av: Axel Spångberg I10 Marcus Witting I10. Handlett av: Bertil Lindvall

Programmering. Analogt och med smårobotar. Nina Bergin

Pulsmätare Digitala Projekt EITF11

Rapport Digitala Projekt EITF Grupp 12 Elin Blomstergren, Victor Sundgren Handledare: Bertil Lindvall. Fyra i rad

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

DIGITALA PROJEKT Väderstation

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

Digitala Projekt (EITF11) Hemlarm

Digitala projekt Linjeföljande bil

Innehåll. 1 Inledning 3

Kravspecifikation. TDP005 Projekt: objektorienterade system. Version 4.0 Datum Anna Ahlberg Johan Almberg

EDI021 Digitala projekt. Rapport LARMSYSTEM. Utförd av: Niklas Eklund E03 David Olsson E04. Inlämnad:

Projektrapport - Roterande digital LED-klocka

Lunds Tekniska Högskola EITF11 Digitala projekt. Bandspelaren

Feeding Daisy. EITF11 Lunds Tekniska Högskola. Grupp 12: Pontus Akervall Louise Landare Anton Schölin. En automatisk blomvattnare

Goda råd till de som ska utföra ett liknande projekt (från KMM 2016)

Laboration i datateknik

Effektpedal för elgitarr

Sebastian Nordqvist André Reis Malte Wallander Oliver Hedetoft Handledare: Lars-Göran Larsson & Bertil Lindvall. Projektrapport Digitala System

EITF40 - RFID-terminal. Joakim Marculescu (dt08jm6), Eric Johansson (dt08ej6)

Pong Mayhem. Innehållsförteckning Inledning Kravspecifikation Komponenter/Hårdvara Arbetsprocess Reflektion...

1 Kravspecifikation Snake App

Design av inbyggda system

Design vid utveckling av inbyggda system

Programmering. Scratch - grundövningar

Labyrintspelet EDI021 Grupp 5

ELEKTRO- OCH INFORMATIONSTEKNIK. Radiostyrd bil. EITF11 Digitala Projekt. Thomas Bergsten & Marcus Halbauer

Design av inbyggda system

Accelerometer. Rikard Ekström Mattias Kindborg. Informationsteknologi Lunds Universitet

Projektrapport - Feststation

Jan Babor och Oscar Ågren Handledare: Bertil Lindvall 5/16/2011

Programmeringsuppgift Game of Life

LUNDS TEKNISKA HÖGSKOLA. Väderstation. Digitala Projekt, EITF11. Martin Olofsson, I08 & Fredrik Oher, I08 Vt 2012

DEPARTMENT OF INFORMATION TECHNOLOGY. Digitala Projekt. Redovisning av Projekt - Grupp 14

Felsökande av en Lego Mindstorm robot

Laboration i datateknik

Projektrapport Målgång

DIGITALA PROJEKT (EITF40) Fartmätare

Datorteknik 1 (AVR 1)

Tetris By Tobbe. EDI021 Digitala Projekt. Tobbe Lundberg Handledare: Bertil Lindvall. Lund, Mars 2009

Labbrapport - LEGO NXT Robot

Avståndsmätare. Digitala System EITA Grupp 7. Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Grundkurs i programmering - intro

Kravspecifikation för hårdvaruprojekt i kursen Datorsystemteknik, HT2005. Temperaturvakt med loggningsfunktion

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

Digitala Projekt - Snake Grupp - 7. Erik Ljung, d01elj Erik Simmons, d01es 25 maj 2005

Thunder s Truck projektrapport

Liftmaestro. Lunds Tekniska Högskola Elektro- och informationsteknik. Olle Gemfors, I13 Dayanand Sagar, I13 Mattias Wendler, I13

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

Digitala Projekt: Digitala Projekt, EITF11 - VT17 Oscar Ahlgren, Patrik Lorentsson och Sten Hellberg Handledare: Bertil Lindvall

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

Kravspecifikation TDP005 Projekt: Objektorienterat system

Programmera Lego Mindstormsrobotar

Blue Key Digitala projekt VT

Rapportsammanfattning. Optima Sous Vide

Digitala system EDI610 Elektro- och informationsteknik

Digitala projekt Konstruktion av nummerpresentatör

Introduktion till programmering med hjälp av Lego Mindstorm

Digitala projekt Elektro- och informationsteknik

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

Programmering eller Datalogiskt tänkande

LabVIEW uppgift 4. Erik Andersson och Johan Schött. 22 februari 2010

Transkript:

Snake Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, 2015-05-18 Oskar Petersen, I-12 Handledare: Bertil Lindvall Abstract Denna rapport beskriver ett projekt där ett klassiskt Snake-spel konstruerats. Projektet omfattar såväl lödning och sammankoppling av valda komponenter som programmering av själva applikationen i C.

Innehållsförteckning INLEDNING...3 PRODUKT...3 PRODUKTBESKRIVNING... 3 KRAVSPECIFIKATION... 3 MJUKVARA... 3 Källkod... 3 HÅRDVARA... 4 Display... 4 Lampdiod... 4 Processor... 4 J-Tag... 4 Knappar... 4 KOPPLINGSSCHEMA... 4 METOD...4 ETAPP 1... 4 ETAPP 2... 4 ETAPP 3... 4 ETAPP 4... 5 ETAPP 5... 5 ETAPP 6... 5 RESULTAT...5 DISKUSSION...5 BILAGA 1 KOPPLINGSSCHEMA...6 BILAGA 2 SNAKE IN ACTION...6

Inledning Kursen digitala projekt låter studenten arbeta med hårdvaruprogrammering i projektnivå, där hela processen från koppling och lödning, till programmering och sluttestning integreras i projektet. Projektet börjar med att studenter i grupper väljer ut en lämplig produkt för att sedan arbeta fram denna under kommande sex veckor. Kursen låter studenten få en uppfattning om hur ett projekt av denna typ generellt kan se ut, vilket blir en viktig pusselbit i dennes annars väldigt teoretiska utbildning. Produkt Produktbeskrivning Vi har valt att konstruera ett Snake spel. Spelet går ut på att man styr en orm över en spelplan utan att krocka med sig själv eller planens kanter. Spelplanen innehåller alltid ett äpple som placerats ut på en slumpmässig plats. Åker man över äpplet äter ormen upp det och blir en enhet längre, och ett nytt äpple placeras ut. Varje äpple ger ett poäng och den totala poäng man uppnått då man krockar blir ens slutliga resultat. Kravspecifikation Spelet ska presenteras på en LCD-skärm Tre knappar ska finnas tillgängliga: o Svänga vänster o Svänga höger o Knapp för play/pause När spelet startas genereras en orm som är tre pixlar lång och är placerad i mitten av spelplanen. Ormen rör sig konstant framåt tills spelaren byter riktning med 90 grader åt vänster eller höger med hjälp av knapparna. När spelet startas innehåller spelplanen ett äpple. När äpplet plockas upp av ormen förlängs ormen med en pixel och ett nytt äpple genereras slumpmässigt någonstans på spelplanen. Spelaren får en poäng för varje äpple som plockats upp. Spelet fortgår tills man krockar (då spelaren åker in i sig själv eller i spelplanens väggar). Då avbryts spelet och spelarens slutgiltiga poäng visas på den högra skärmhalvan. För att starta ett nytt spel trycker man på play/pause-knappen. När som helst under spelets gång ska man kunna trycka på knappen igen för att pausa. Ett ytterligare knapptryck sätter igång spelet igen. En grön LED-lampa blinkar varje gång ormen äter upp ett äpple. Mjukvara För att rita kopplingsschema användes PowerLogic. Källkod Programkoden skrevs i C med hjälp av programmet AVR Studio.

Hårdvara Display Displayen som använts till spelet är en LCD-skärm av typen GDM12864C. Skärmen är uppdelad i två halvor med 64x64 pixlar vardera, det vill säga sammanlagt 128x64 pixlar för hela skärmen. Lampdiod Varje gång ormen äter upp ett äpple och därmed ökar sin poäng blinkar en grön LEDlampa. Processor Processorn som använts till spelet är av typen ATMega16. Processorn har 40 pinnar att sammankoppla med övriga komponenter (dock är åtta stycken av dem reserverade till vår J-Tag vilket lämnar kvar 32 stycken). Hur dessa kopplingar är gjorda syns i kopplingsschemat. J-Tag För att få processorn att kopplas samman och kommunicera med en dator användes en J-Tag. Knappar Till spelet används tre knappar. Processorn får signal då en knapp trycks ned. Då en knapp inte är nedtryckt är spänningen till processorn 0 V genom att knappen på andra sidan av processorn är kopplad till en resistor (se kopplingsschema). Kopplingsschema Ovanstående hårdvara är sammankopplade enligt det kopplingsschema som återfinns under bilaga 1. Metod Etapp 1 Processen började med att en produkt skulle beskrivas. Detta gjordes genom att förslag på produkt lämnades in till handledaren, och till denna en kravspecifikation för att beskriva produkten och problemet. Inte förrän handledaren godkänt produktvalet och kravspecifikationen kunde arbetet fortsätta till nästa steg. Etapp 2 Nästa steg var att rita ett kopplingsschema över produkten och dess komponenter. För att se till att inga kortslutningar skulle komma att uppstå eller andra misstag göras var det tvunget att lämna in ett fullständigt kopplingsschema och få detta godkänt innan arbetet kunde fortskrida. Efter dialog med handledaren valdes det att revidera den ursprungliga kravspecifikationen i detta skede, genom att en funktionerna från en lampdiod lades till. Etapp 3 Med ett godkänt kopplingsschema kunde en verktygslåda hämtas ut från handledaren, innehållande de verktyg som skulle komma att behövas under konstruktionen samt de

hårdvarukomponenter som konstruktionen behövde. Nu kunde arbetet med att koppla samman komponenterna börjas. Etapp 4 Med en färdig konstruktion av hårdvarukomponenterna kunde programmeringen påbörjas. Med J-Tag kopplades modellen ihop med en dator och grundläggande test av kopplingarna kunde göras. Eventuella fel rättades till och processen kunde fortsätta till programmeringsetappen Etapp 5 Under denna etapp skulle programmet skrivas. Små steg togs i början för att lära sig hur datorn kommunicerade med processorn, och processorn med LCD-skärmen. Sedan fortsattes programmeringen och färdigställdes utefter den nu reviderade kravspecifikation som skrivits till spelet. Etapp 6 Efter sluttestning av programmeringen konstateras att spelet uppfyller de krav som ställts, och projektet avslutas med rapportskrivning. Resultat En screenshot av vårt spel syns under bilaga 2. Vårt spel uppfyller den kravspecifikation som vi skapade vid projektets början. Diskussion Det vi inte hade räknat med innan projektets början var att det var en tidskrävande process att sätta sig in i hur hårdvaran, framförallt LCD-skärmen, fungerade. Efter att ha ägnat mycket tid åt att prova sig fram tillsammans med läsande av produkternas datablad förstod vi hur vår kod behövdes utformas för att fungera tillsammans med hårdvaran. Vi stötte under processens gång på problem med vår hårdvara, som helt enkelt inte fungerade som den skulle. Efter successiva felsökningar var vi tvungna att byta ut vår JTAG, vår LCD-skärm och vår processor, vilket ställde ännu större tidspress på vårt projekt. Genom att vi lyckades felsöka oss till att vi var drabbade av hårdvaruproblem lyckades vi med nöd och näppe bli klara med projektet i tid. Vi känner att projektet har givit oss en genomgående förståelse för hur hårdvara och mjukvara fungerar tillsammans, ända ned till binär nivå, med ettor och nollor. Det har varit väldigt intressant att få en inblick i hur ett projekt av denna typ kan se ut på en småskalig nivå, vilket ger en uppfattning om vilken omfattning samma process har på en större nivå.

Bilaga 1 Kopplingsschema

Bilaga 2 Snake in action