Miniprojekt: Minimatris

Berätta om dina pågående projekt.
Frasse
Inlägg: 136
Blev medlem: 29 januari 2005, 10:30:42

Miniprojekt: Minimatris

Inlägg av Frasse »

Hej alla!
Jag vart lite sugen på att testa att göra en led-matris, så igår lödde jag ihop en på 5*7 pixlar och kopplade den till en Pic16f874a. Den kan man ha mycket kul med, tex visa ett tecken åt gången, och ...ehh... det var nog bara det ja.
Raderna drivs direkt från picen, och kolumnerna styrs med en transistor var
Nu lite bilder:

Bild
Bild
Bild

Den nuvarande mjukvaran fungerar så att en timer ger interupt med lagom intervall. I interuptrutinen ändras vilken kolumn man vill styra och datan för denna kolumnen hämtas i en lookuptable i programminnet. Man scannar alltså en kolumn för varje interupt som inträffar. Hoppas ni fattar min kryptiska förklaring...

Denna modell var mest för att testa hårdvaran, och nu undrar jag hur ni andra som gjort större displayer (med scrollande meddelanden osv.) har organiserat mjukvaran? Kom gärna med lite idéer på hur jag kan göra det lite mer flexibelt med teckentabell osv.

Och sist men inte minst, vad fan ska jag ha den till??
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

För att slippa allt kopplandet av dioder finns det ju naturligtsvis även
färdiga moduler som t.ex dessa :

http://www.tradera.com/auction/aid_24048272
http://www.tradera.com/auction/aid_24005262
http://www.tradera.com/auction/aid_24047349

Jag antar att jag bör nämna att det är mina auktioner... :-)
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Lägg hela uppdateringsjobbet i interrupthanteraren, data om vad som ska visas har du i en global matris, som du fritt kan uppdatera från din main-loop.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Den globala matrisen blir då som ett grafikminne.
I min led-disp kunde man även ändra pekaren till grafikminnet.
Då kan man från mainloopen ändra pekaren och fylla på med grafik på den nya rad som kommer in (man bör då se till att det görs vid rätt tillfälle för att undvika grafikfel).
Det som gör det hela lite komplicerat är att man vill att grafiken som scrollas ut ur ena sidan och kommer in på andra sidan kommer på samma rad annars blir det väldigt konstigt.

Vill man inte använda den metoden för att scrolla text så kan man ju alltid flytta all grafik eller uppdatera all grafik från scratch varje frame.
Om man gör så kan det vara bra att dubbel-buffra grafikminnet (man "ritar" på den ena delen av minnet och visar den andra).

Annars är nog det vanligaste att man kör utan grafikminne(gissar jag), interrupt-rutinen får då läsa både tecken-koder och tecken-grafik och lägger ut det på displayen i realtid.

Det är trevligt med tecken i olika längd, du kan titta i slutet av koden hur jag organiserade datan.
Titta inte för mycket på program-koden, den är väldigt slaskig men funktionen var perfekt.

http://ake.myftp.org/forum/Led-Display_V1Beta.asm

Om du gör en lite(mycket) större display så kan du laborera med att flytta texten i olika hastigheter, du kommer då se att om man flyttar den ett steg varje uppdatering så flyter texten hur fint som helst (allt annat ser ut som skit).
Frasse
Inlägg: 136
Blev medlem: 29 januari 2005, 10:30:42

Inlägg av Frasse »

Tack för bra svar!

sodjan: Jo de såg intressanta ut, jag hör av mig om jag känner att jag vill bygga en större matris.

Chribbe & Stiff: Jo, det var ungefär så jag misstänkte att man brukar göra. Jag ska labba lite på det och återkommer när jag har nya frågor eller har kommit fram till något. Ska nog satsa på en med "grafikminne" eftersom det känns mer flexibelt om man vill bygga ut senare. Men det kan nog dröja ett tag innan jag har tid att jobba med detta igen då jag har ganska mycket skolarbete den här veckan...
Användarvisningsbild
DennisD7
Inlägg: 259
Blev medlem: 6 januari 2005, 17:35:23
Ort: Stockholm
Kontakt:

Inlägg av DennisD7 »

Man kan minsann göra roligare saker än så med 5x7!

- binär klocka
- du kan pwm-a dem och få tex 8 olika färgstyrkor
- enkel version av pacman 8)
- se om du kan scrolla truetype-typsnitt med antialising
- rita ut ett diagram över något, tex temperaturer de senaste 5 timmarna

The sky's the limit!
Skriv svar