29.08.2013 Views

Autonom robotväckarklocka med trådlös basstation - KTH

Autonom robotväckarklocka med trådlös basstation - KTH

Autonom robotväckarklocka med trådlös basstation - KTH

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

visats klart. Därför lägger vi till en timer <strong>med</strong> ett interrupt som säger att efter en viss tid ska man gå<br />

in i denna interrupt, och där skiftas värdet för vilken kolumn man ska börja visa bokstaven på. Då<br />

hinner man se varje bild en stund innan den ändras.<br />

När du vill ha en text som rullar förbi gör du i princip samma sak. Det du gör då är att du istället för<br />

att ha bara en vektor, gör du en matris där varje rad är definierad som en bild <strong>med</strong> de bokstäver du<br />

vill skriva ut, och bokstäverna kommer i den ordning i matrisen som du vill skriva ut dem på. Den<br />

första bilden som kommer skrivas ut på matrisen, säg ett mellanslag för att börja <strong>med</strong> en ren bild,<br />

kommer vara vektorn som är högst upp i matrisen. Men när du sen ska skifta bild så vill du att en<br />

bokstav ska komma direkt efter, och inte när du har skiftat klart en bokstav i taget som ovan. Det vi<br />

gör nu är att vi skiftar plats i matrisen, istället för att skifta kolumner. Tänk dig matrisen som en enda<br />

lång vektor. Då kommer det där att stå ett helt ord på hexadecimal form efter varandra. Vi lägger ett<br />

förstoringsglas över de första åtta talen, så vi har ett hexadecimalt tal för varje kolumn i LEDmatrisen<br />

att skriva ut. Om du sen skulle dra förstoringsglaset ett steg åt höger i denna långa vektor<br />

kommer du här bara se 7/8-delar av den första bokstaven, men du har nu också fått 1/8-del av nästa<br />

bokstav. Om vi nu skriver ut dessa åtta hexadecimala tal så får vi att första bokstaven har skiftats<br />

bort ett steg och nästa bokstav har skiftats in, och helt plötsligt så har ordet börjat rulla förbi.<br />

Fortsätt att skifta igenom matrisen på detta sätt tills alla bokstäver du vill skriva ut har skrivits ut.<br />

Här används samma typ av interrupt som säger att efter en viss tid ska man gå in i den för att skifta<br />

plats i matrisen så att texten inte rullar förbi i ett för snabbt tempo. Det som är bra <strong>med</strong> detta<br />

interrupt är det helt upp till dig hur snabbt du vill att din text ska rullas förbi på LED-matrisen.<br />

Initiering av timer<br />

Varje rad loopas igenom<br />

och tänds var för sig i en<br />

snabb frevens. En<br />

bokstav blir synlig.<br />

Initiering av<br />

interrupt<br />

Figur 7 Flödesdiagram för att rulla text<br />

6.3 Pong<br />

En LED-matris är en display <strong>med</strong> stora pixlar, och <strong>med</strong> en display kan man göra mycket roligt, inte<br />

bara skriva ut texter på. Man kan till exempel koppla in några knappar och programmera ett spel till<br />

den. I detta projekt har spelet Pong gjorts. Pong var det första kommersiellt framgångsrika<br />

arkadspelet. Idén är att spelet ska fungera för två spelare som spelar mot varandra. De står på varsin<br />

sida av en mittlinje och båda har en ”paddle”, ett racket som de kan styra upp och ned <strong>med</strong> hjälp av<br />

två knappar var. Med sitt racket ska de hindra en boll som bollas fram och tillbaka över spelplanen<br />

från att komma förbi dem. Om man missar att stoppa bollen får motståndaren ett poäng. Högst<br />

poäng vinner.<br />

10<br />

Skiftar position ett steg i<br />

matrisen som är<br />

uppbyggd av<br />

bokstäverna som ska<br />

skrivas ut. Ger intrycket<br />

att bokstaven har flyttat<br />

på sig.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!