DennisD7's CPLD-PacMan
DennisD7's CPLD-PacMan
Hej alla!
Jag är ny både här på forumet och även ganska grön vad gäller elektronik. Jag har pluggat en del datavetenskap och i det ingick mikroprogrammering och en hel del om logik osv, men det var mest teoretiskt. Jag började komma igång med att löda saker först för ca ett halvår sen.
Grön ja... Jag har länge velat bygga en krets som simulerar PacMan i minimalistisk form. Dvs: ca 4 x 5 lysdioder där man styr en gul punkt i en labyrint, äter upp alla gröna punkter och aktar sig för 1-2 röda spökpunkter. Tills nyligen trodde jag att jag antingen skulle bli tvungen att löda alla grindar själv, eller anlita en fabrik att bygga ett chip åt mig.
Sen hörde jag talas om FPGA:er och CPLD:er och min lycka var gjord. Sen hände följande:
1. jag köpte en utvecklingsplatta för Xilinx CPLD (xcr3064xl med 1500 grindar). (<--ca en vecka sedan)
2. jag hittade det här forumet.
3. jag hörde här talas om PIC-programmering.
Hade punkt 3 kommit tidigare skulle jag nog inte utfört punkt 1.
Min plan nu är att göra en handhållen enhet med 5 x 7 ytmonterade röd/grön-lysdioder, 4 (el 5) knappar, en ytmonterad programmerad cpld, något sött knappbatteri eller så, allt på ett cd-skiv-stort hemmaetsat kretskort, vackert inhyst mellan två snillrikt ornamenterade plexiglasskivor.
Jag måste i princip lära mig göra allt, men det ska nog gå (tvivlaren kan besöka sidan för mitt förra projekt Pong )
Senaste nytt: Jag lyckades just med alla stegen i att programmera min CPLD, dvs inkoppling och överflyttning av program osv. (2 switchar.. AND-grind.. 1 lysdiod)
OK, ni får höra mer när jag kommit längre.
/DennisD7
Jag är ny både här på forumet och även ganska grön vad gäller elektronik. Jag har pluggat en del datavetenskap och i det ingick mikroprogrammering och en hel del om logik osv, men det var mest teoretiskt. Jag började komma igång med att löda saker först för ca ett halvår sen.
Grön ja... Jag har länge velat bygga en krets som simulerar PacMan i minimalistisk form. Dvs: ca 4 x 5 lysdioder där man styr en gul punkt i en labyrint, äter upp alla gröna punkter och aktar sig för 1-2 röda spökpunkter. Tills nyligen trodde jag att jag antingen skulle bli tvungen att löda alla grindar själv, eller anlita en fabrik att bygga ett chip åt mig.
Sen hörde jag talas om FPGA:er och CPLD:er och min lycka var gjord. Sen hände följande:
1. jag köpte en utvecklingsplatta för Xilinx CPLD (xcr3064xl med 1500 grindar). (<--ca en vecka sedan)
2. jag hittade det här forumet.
3. jag hörde här talas om PIC-programmering.
Hade punkt 3 kommit tidigare skulle jag nog inte utfört punkt 1.
Min plan nu är att göra en handhållen enhet med 5 x 7 ytmonterade röd/grön-lysdioder, 4 (el 5) knappar, en ytmonterad programmerad cpld, något sött knappbatteri eller så, allt på ett cd-skiv-stort hemmaetsat kretskort, vackert inhyst mellan två snillrikt ornamenterade plexiglasskivor.
Jag måste i princip lära mig göra allt, men det ska nog gå (tvivlaren kan besöka sidan för mitt förra projekt Pong )
Senaste nytt: Jag lyckades just med alla stegen i att programmera min CPLD, dvs inkoppling och överflyttning av program osv. (2 switchar.. AND-grind.. 1 lysdiod)
OK, ni får höra mer när jag kommit längre.
/DennisD7
Senast redigerad av DennisD7 25 januari 2005, 17:56:43, redigerad totalt 2 gånger.
Update på CPLD-grejen:
Jag har nu lyckats få bukt med den ganska snåriga programvaran. Ett tag trodde jag att jag skulle behöva göra allt i VHDL (dvs skriva ut alla tråkiga kopplingar som text), men sen hittade jag ett delprogram i WebPack där man kan placera ut logiska symboler och rita kopplingar. Jag vet nu också hur man tilldelar vilka pinnar som ska användas, och såklart hur det går till att ladda in .jed-filen i CPLD:n.
Plan:
1. Programmera Pacman i CPLD.
- lyckas få Webpack att funka. #DONE#
+ bygga en prototyp till displayen.
+ koppla displayen till CPLD:n och få den att funka.
- programmera: en punkt som flyttar sig som pacman.
- ... en databank med "piller".
- ... pillerna "äts upp" av pacman
- ... labyrintens väggar (restriktioner på pacman).
+ bygga ny displayprototyp med 2 lysdioder per punkt (r/g) och rätt antal punkter (5x7), alternativt: display med tvåfärgade lysdioder.
- programmera: grafiken så att pacman blir gul och pillerna gröna.
- ... 1-4 "spöken", dvs röda punkter.
- ... spökena rör sig bra och enligt labyrinten.
- ... spökena är farliga för pacman och orsakar omstart av rundan.
+ testa, justera, ordna poängsystem och extrafunktioner.
2. Tillverka ett kretskort.
- bygga en prototyp med display, knappar, fristående CPLD och batteri.
- bygga ny prototyp som är någorlunda snygg.
- prototyp av displayen med ytmonterade lysdioder.
- ytmonterad version av CPLD:n.
+ utforma och etsa beta-versionen av kortet, löda alla komponenter, testa.
+ utforma och etsa den slutgiltiga versionen.
3. Tillverka ett hölje.
- såga till en prototyp för hand i 4 mm plexi, se hur den blir.
- måla och testa.
- utforma slutgiltigt hölje i plexiglas.
- kontakta någon med fräs.
- bygg ihop maskinen.
4. Dokumetera allt och leva lycklig i alla min dar.
Som sagt, det här ska nog gå bra.
/DennisD7
Jag har nu lyckats få bukt med den ganska snåriga programvaran. Ett tag trodde jag att jag skulle behöva göra allt i VHDL (dvs skriva ut alla tråkiga kopplingar som text), men sen hittade jag ett delprogram i WebPack där man kan placera ut logiska symboler och rita kopplingar. Jag vet nu också hur man tilldelar vilka pinnar som ska användas, och såklart hur det går till att ladda in .jed-filen i CPLD:n.
Plan:
1. Programmera Pacman i CPLD.
- lyckas få Webpack att funka. #DONE#
+ bygga en prototyp till displayen.
+ koppla displayen till CPLD:n och få den att funka.
- programmera: en punkt som flyttar sig som pacman.
- ... en databank med "piller".
- ... pillerna "äts upp" av pacman
- ... labyrintens väggar (restriktioner på pacman).
+ bygga ny displayprototyp med 2 lysdioder per punkt (r/g) och rätt antal punkter (5x7), alternativt: display med tvåfärgade lysdioder.
- programmera: grafiken så att pacman blir gul och pillerna gröna.
- ... 1-4 "spöken", dvs röda punkter.
- ... spökena rör sig bra och enligt labyrinten.
- ... spökena är farliga för pacman och orsakar omstart av rundan.
+ testa, justera, ordna poängsystem och extrafunktioner.
2. Tillverka ett kretskort.
- bygga en prototyp med display, knappar, fristående CPLD och batteri.
- bygga ny prototyp som är någorlunda snygg.
- prototyp av displayen med ytmonterade lysdioder.
- ytmonterad version av CPLD:n.
+ utforma och etsa beta-versionen av kortet, löda alla komponenter, testa.
+ utforma och etsa den slutgiltiga versionen.
3. Tillverka ett hölje.
- såga till en prototyp för hand i 4 mm plexi, se hur den blir.
- måla och testa.
- utforma slutgiltigt hölje i plexiglas.
- kontakta någon med fräs.
- bygg ihop maskinen.
4. Dokumetera allt och leva lycklig i alla min dar.
Som sagt, det här ska nog gå bra.
/DennisD7
Ah! en stalker!
...Sprintkabbet försvinner snart tror jag, passa på och prova det. Du sätter i sladden (då hörs ett högt sprak), väntar i 1-3 min på att skärmen ska börja lysa (den fladdrar jättemycket), lägg i 2 kr (du kan låna två från myntluckan om du sträcker dig in på baksidan under skärmen) ... and Sprint away! Det är en trött gammal goding, men funkar någorlunda ändå.
Pacman kommer att bli skitbra =]
...Sprintkabbet försvinner snart tror jag, passa på och prova det. Du sätter i sladden (då hörs ett högt sprak), väntar i 1-3 min på att skärmen ska börja lysa (den fladdrar jättemycket), lägg i 2 kr (du kan låna två från myntluckan om du sträcker dig in på baksidan under skärmen) ... and Sprint away! Det är en trött gammal goding, men funkar någorlunda ändå.
Pacman kommer att bli skitbra =]
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
Hur ska du få till en labyrint på 5x7 pixels? Om du ska ha "ytterväggar" på labyrinten så är det bara 3x5 pixles kvar innuti den. Och då är det ju bara som ett hål i mitten. Sedan tar gubben och spökena upp 5 pixel av dom 15 tillgängliga. 10 pixel kvar att gå på.
Det skulle nog bli spelbarare om du kunde knöla in 4 st 5x7-displayer istället så att det blir 10x14 pixels....
Men huga - jag vågar inte ens tänka på hur det hela ska implementeras i (diskret) logik. Dock så låter det som en kul utmaning. ;-)
Det skulle nog bli spelbarare om du kunde knöla in 4 st 5x7-displayer istället så att det blir 10x14 pixels....
Men huga - jag vågar inte ens tänka på hur det hela ska implementeras i (diskret) logik. Dock så låter det som en kul utmaning. ;-)