PIC-styrd LED-matris

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Lenrick
Inlägg: 16
Blev medlem: 9 juni 2009, 15:32:18

PIC-styrd LED-matris

Inlägg av Lenrick »

Hej, ny på forumet. Ni får ursäkta mig om jag missar några oskrivna regler.

Jag håller på att bygga en 3D LED matris, inte helt olik denna

Jag hade tänkt köpa ett PIC-kit från Kjell&Co för att styra matrisen. Kan egentligen ingenting om PIC och undrar därför om någon av er har erfarenhet av ett liknande projekt. Jag är mest ute efter några att bolla lite idéer med.

Det första jag undrar är om det är möjligt att programera in ett antal mönster och sedan byta mellan dem på kommando.

Tack på förhand!

/Filip
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: PIC-styrd LED-matris

Inlägg av victor_passe »

Visst kan du spara olika "program" för blinkningarna.
Ett sätt är följande:
Du har 64Led.
I början har du nog bara på eller av på varje led.
så 64bit = 64/8byte=8Byte

Så en "bild" tar 8 byte.
Om du vill ha 5Hz så blir det 40 byte / sekund.
Om du tar en PIC med möjlighet att läsa sitt eget program minne och säg 8KB och koden tar 4Kb så har du 4KB vilket är 100 sekunder.

Ett sätt är att ha rutiner som tex:

Kod: Markera allt

program1()
{
set_led(8,3,5,4,2,99,78,234);
delay_ms(500);
set_led(2,88,33,22,2,66,7,24);
delay_ms(100);
set_led(86,63,115,34,62,9,8,4);
delay_ms(500);
osv..
}


Jag hade nog valt det andra då det är mycket enklare.

Du vill ha 4+4+4 i/o för att styra din matris.
Så du får ha en PIC med minst 12I/O jag hade valt någon i dip 28 kapsel.


Edit:
Håll dig LÅNGT borta från velleman saker som programmerare och färdiga kort.

Skaffa en breadboard och köp en PICKIT2 eller 3
Mycket mycket bättre.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC-styrd LED-matris

Inlägg av sodjan »

> Kan egentligen ingenting om PIC...

Har du jobbat/labbat med någon annan liknande mikrokontroller ?
Om inte så har du hur som helst en lång väg innan du bör hoppa
på projekt som det som du beskriver. Gör något enklare först, som
t.ex att lära dig PIC...
Lenrick
Inlägg: 16
Blev medlem: 9 juni 2009, 15:32:18

Re: PIC-styrd LED-matris

Inlägg av Lenrick »

Tack för svaren!

Vill bara klargöra några saker:

1) Jag vill alltså inte programera in olika "filmer" att byta emellan. Med ett möster så menar jag att vissa LEDs (säg ett visst plan i kuben) ser ut att lysa konstant.

2) Själva byggandet av kuben är inga probelm, det är bara styrningen jag inte vet riktigt hur jag ska göra.

Det är lite enklare att tänka på en 2D 8x8-matris än en 3D 4x4x4-matris, men själva programering kommer ju bli mycket lik. Tänk nu att jag byggt en 8x8-LED-matris och har 16 kontakter (8 anoder och 8 katoder). Jag vill med PIC'en programera in ett antal tecken, säg A, B och C. Användaren ska kunna byta mellan dessa tre teckan genom något kommando, exmpelvis en knapptryckning. Men om användaren inte ger kommando så ska ingenting hända.

Matrisen ska ju scannas (som en katodstrålerör-TV). Hur ser den koden ut?

/Filip
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC-styrd LED-matris

Inlägg av sodjan »

> Matrisen ska ju scannas (som en katodstrålerör-TV). Hur ser den koden ut?

Frågan är fel. Det är ju den koden du ska skriva.
Kan du inte det så har den en rejäl uppförbacke... :-)
Thallion
Inlägg: 112
Blev medlem: 2 juli 2008, 19:40:31
Ort: Danderyd

Re: PIC-styrd LED-matris

Inlägg av Thallion »

Du kanske skulle vara intresserad av följande artikel: 5x5x5 LED CUBE Controller for PIC16F688
Lenrick
Inlägg: 16
Blev medlem: 9 juni 2009, 15:32:18

Re: PIC-styrd LED-matris

Inlägg av Lenrick »

sodjan skrev:> Frågan är fel. Det är ju den koden du ska skriva.
Kan du inte det så har den en rejäl uppförbacke... :-)
Menar du att om jag inte redan har skrivit koden så är det ingen idé att försöka?...Jag är inte riktigt säker på varför du är så mån om att förklara att det är helt lönlöst. Du behöver inte oroa dig för mig, Sodjan.

Jag har aldrig programmerat en PIC, men jag kan programmera. I skolan blir det en hel del kvant-mekaniska simuleringar skriva i MATLAB. Men varken Java eller C är något bekymmer.

Jag är ju inte ute efter att någon ska skriva "gör si, gör så" och det bara är för mig att följa. Men jag tänkte att om någon gjort något liknande, och jag kunde få se deras kod, att det kunde hjälpa mig en bit på vägen. Sen har jag ingen koll på vad en PIC klarar av och hoppades att någon kunde svara att just det jag ville göra inte är några problem, om man bara programmerar den rätt.

Att jag inte bara köpt ett kit och börjat leka är för att jag inte bygger LED-matriser för att roa mig själv. Jag håller på att bygga interaktiva kristallgitter-modeller med wurtzit- och zinkblende-struktur, där man ska kunna lysa upp olika strukturer så som plan och enhetsceller. Detta är en del av ett sommarprojekt jag är delaktig i för Fasta Tillståndets Fysik i Lund och om det skulle vara möjligt att inte lägga mer tid än nödvändigt på elektro-biten så hade det varit bra. Det var därför jag försökte hitta någon hjälpsam själ här.

Jag håller fortfarande på att undersöka olika byggtekniska alternativ och har ännu ingen matris att styra. Men jag har byggt en 2D variant på en kopplingsplatta som jag tänkte börja försöka styra med en PIC. Har dock ännu inte satt mig in i vad det är för PIC jag ska köpa, men ett kit verkar ju bra.

Om någon av er har byggt en LED-matris (eller dylikt) och styrt den med en PIC så får ni gärna skiva lite om det, lägga upp lite kod eller så. Om ni vill så kan jag lägga upp lite bilder på modellerna sen när de är klara, där ni kan få se olika upplysta Miller index -plan och sådant spännande.

/Filip
Lenrick
Inlägg: 16
Blev medlem: 9 juni 2009, 15:32:18

Re: PIC-styrd LED-matris

Inlägg av Lenrick »

Thallion skrev:Du kanske skulle vara intresserad av följande artikel: 5x5x5 LED CUBE Controller for PIC16F688
Det verkar vara en mycket intressant artikel, ska läsa den noggrant.

Tusen tack för länken, Thallion!

/Filip
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC-styrd LED-matris

Inlägg av sodjan »

Nej, det var din fråga efter hur koden "ska se ut" som är lite av ett problem.
Det är t.ex oklart vad du igentligen vill veta. Är det övergripande design som är
problemet ? Eller kanske någon del av lågnivåstyrningen av matrisen ? O.s.v.

När det gäller val av PIC så brukar det mest handla om "tillräckligt med I/O pinnar".
Det beror även lite på hur du tänker utföra själva inkoppling av lysdioderna,
direktdrivning, multiplexning eller separata LED-drivkretsar o.s.v.

Grejen är att du kanske skulle börja skriva lite enkla prylar till en PIC så
att du får en känsla för hur de fungerar och hur de är att programmera.
Sedan kommer du säkert att hitta mer rellevanta frågor som handlar
om just drivningen av LED-matrisen, det jag försöker säga är bara att
det antagligen är en viss väg dit, en väg som du nog måsta ta först... :-)
Att röja lite på nätet efter liknande projekt är kanske också en bra ide.

Jag försker inte säga att det är lönlöst, bara att du inte ska försöka
ta genvägar, det kommer att straffa sig senare... :-)
Lenrick
Inlägg: 16
Blev medlem: 9 juni 2009, 15:32:18

Re: PIC-styrd LED-matris

Inlägg av Lenrick »

Det var inte meningen att vara dryg emot dig Sodjan.

Men som jag skrev så är jag inte efter att någon ska tala om hur jag ska göra. Jag ville veta hur andra har löst det så att jag kan dra lite lärdomar av det.

Om vi ska vara lite petiga så frågade jag inte hur koden "ska se ut" utan jag försökte fråga hur Victor_passes kod såg ut, då jag antog att hans kommando "set_led( );" anropar just ett sådant program.

Men jag ska göra som du föreslår, jag ska sticka ner på stan och införskaffa lite PIC grejer och leka lite. Sen återkommer jag med riktiga frågor.

/Filip
bos
Inlägg: 2305
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: PIC-styrd LED-matris

Inlägg av bos »

Min åsikt: För det första var nog victors "kod" pseudo-kod, dvs den illustrerar en princip men existerar inte i verkligheten. För det andra skriver du "Kan egentligen ingenting om PIC" i ditt första inlägg, samtidigt som du ber victor visa sin kod (som antagligen alltså inte finns). Det gör att jag - precis som sodjan - tolkar som att du vill ha lösningen serverad utan att egentligen förstå eller själv göra en uppoffring för att själv lära dig. Tänk på att programmera en mikrocontroller är en ganska markant skillnad på mot vad du är van vid. Istället för att ha ett operativsystem som gör 99% av allt åt dig så är det du själv som måste vrida och vända på varenda sten för att få saker att fungera. Såvida du inte använder högnivåspråk (vilket jag starkt rekommenderar att du INTE gör förrän du blivit lite mer varm i kläderna med PIC:ar) finns det t.ex inget magiskt sätt du kan göra för att dividera ett tal med 42, du får snällt skriva en egen divisionsrutin (eller låna kod från nätet). Det projekt du frågar om här är ganska avancerat, och jag precis som sodjan rekommendar att du börjar med något mer grundläggande. Blinka en LED verkar säkert tråkigt, men det är mer värdefullt än du kan ana.

Sen ett generellt tips (som inte är riktat mot dig men som kanske kan komma till användning i framtiden): Folk är i allmänhet mer öppna för att hjälpa till om den som frågar gett sken av att han/hon själv försökt ta tag i ett problem eller på annat sätt visar att vederbörande är engagerad. Det finns skolelever som då och då kommer till forumet, kastar upp ett schema med örtontusen motstånd och drosslar, pekar på L5 och frågar "vad är induktansen?". Så gott som ingen är särskilt intresserad av att hjälpa en sådan person, eftersom denne bara vill ha svaret utan att själv ge något tillbaka. Om personen med istället skrivit "Jag har med XYZ-metoden trollat bort alla motstånd och fem drosslar. Nu har jag bara L5 och L4 kvar. Dessa är vad jag tror parallellkopplade med en fzngbnkh. Vad ska jag göra som nästa steg för att räkna ut admittansen?". Det är ju trots allt ett forum, fler kan ha nytta av samma ärende.
Användarvisningsbild
wolfheat
Inlägg: 202
Blev medlem: 14 oktober 2007, 20:42:51
Ort: Gävle

Re: PIC-styrd LED-matris

Inlägg av wolfheat »

Du verkar ha ungefär samma bakgrund som jag hade innan jag började programmera PIC. Det var svårt att veta vad jag skulle fokusera på att lära mig då jag började, men så här i efterhand kan jag blicka tillbaka på det som löst mina problem. Jag börjar med att anta att du faktiskt vill lära dig hur programmering går till, samt hur PICar fungerar.

Börja med att följa någon tutorial för PIC programmering så att du kommer igång. Sedan ser du till att du kan blinka en lysdiod så att du får en output från PICen. Sedan kan du mha av databladet för PICen samt initieringskommandon och assembler för din PIC själv komma underfund med hur det hänger ihop. För mig var det väsentliga att få ett kontrollerat output från PICen så jag hade något att jobba med, och då är en lysdiod alldeles ypperligt. Jag startar alltid med att koppla in lysdioder och se till att jag har kontroll över picens funktion då jag provar en ny PIC-typ.
Lenrick
Inlägg: 16
Blev medlem: 9 juni 2009, 15:32:18

Re: PIC-styrd LED-matris

Inlägg av Lenrick »

Så då har jag varit på Elfa och köpt PICkit 2 Starter Kit med ett utvecklings-/demokort produktlänk

Spenderade några timmar igår med att läsa på lite om PIC och Assembly, förmiddagen idag med att blinka en LED och styra en 2x2 LEDmatris med mutiplexing. Hittade först inte manualen över hur man får in koden i chipet så det tog ett tag att lista ut. Men annars gick det bra.

Koden ser just nu ut som så att jag anropar en eller flera av fyra st subrutiner (kallade LEDx, där x = A, B, C eller D), där varje subrutin i sin tur sätter 4 B-portar high eller low (och lite mer som gör att det fungerar fint). Jag kan alltså få vilken kombination av LEDar som helst att lysa. Det jag skulle vilja göra nu är att växla från att LED A och B lyser till att C och D lyser (och vise versa) utan att programmera om PICen.

Jag vill alltså gå från:

LOOP
call LEDA
call LEDB
goto LOOP

till:

LOOP
call LEDC
call LEDD
goto LOOP

genom att trycka på den lilla knappen som sitter på demokoret. Jag antar att knappen bör kopplas till en input port men sen är jag lite osäker på hur jag ska gå till väga.

Är det någon som har ett tips eller kan hjälpa mig i rätt riktning?

Ni får ursäkta om jag utrycker mig konstigt, jag har ägt en PIC i ungefär 24 h nu och skrev min första Assembly-kod för ca 3 h sedan. Kommentera gärna hur man brukar utrycka sig om ni vill.
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Re: PIC-styrd LED-matris

Inlägg av Kaggen »

Det enklaste är väl att du går igenom de lektionerna som följer med Pickit och som behandlar I/O med mera, där står ju allt sånt. Källkoden finns ju även med så du kan kolla hur det funkar. Som ett rakt svar kan jag ju tipsa om instruktionerna BTFSC och BTFSS som testar en bit (t.ex I/O port) och hoppar över nästa instruktion om den är satt/inte satt beroende på vilken av de två du använder.
Lenrick
Inlägg: 16
Blev medlem: 9 juni 2009, 15:32:18

Re: PIC-styrd LED-matris

Inlägg av Lenrick »

Jag hittade några kapitlet ur en bok som jag tyckte var riktigt bra. Det verkar som om författaren fortfarande skriver men delar av kapitel 1,2,4 och 5 ligger uppe att tanka hem som .doc

http://www.cs.fredonia.edu/hansen/PICBook/Chapter1.doc
http://www.cs.fredonia.edu/hansen/PICBook/Chapter2.doc
http://www.cs.fredonia.edu/hansen/PICBook/Chapter4.doc
http://www.cs.fredonia.edu/hansen/PICBook/Chapter5.doc

Kapitel 4 och 5 var oerhört välskrivna och förklarade saker på ett mycket lättförståeligt sätt.

Rekommenderas varmt!

Hittar ni fler kapitel så säg gärna till.
Skriv svar