Sida 1 av 10

DennisD7's CPLD-PacMan

Postat: 13 januari 2005, 22:12:28
av DennisD7
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.

Bild

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 :D)

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

Postat: 13 januari 2005, 23:33:08
av teodorl
Fint pong. :)

Postat: 13 januari 2005, 23:46:47
av DennisD7
Tack tack! :)

Postat: 14 januari 2005, 12:54:14
av Noddan
Riktigt snygg pongspel det där, perfekt födelsedagspresent till farsan. Får man sno idén? :) Vart fick du tag på skärmen någonstans?

Postat: 14 januari 2005, 13:43:41
av DennisD7
Jadå, sno på bara =]

TV: Clas Ohlson, ca 200 kr
Pong: Elfa, 190 kr
Lysande arkadknappar: OzStick, typ 20 kr styck
...resten går nästan av sig själv. Jag ska skriva en utförligare beskrivning på sidan när jag får tid... säg till om du inte kan vänta. =)

Postat: 14 januari 2005, 13:57:02
av jack
Mycket läckert pong-projekt! Ser fram emot ditt nästa.

Skulle någon kunna förklara lite mer hur man skickar signaler till tv:n med en pic? Länk kanske?
Såg inte särskilt avancerat ut... men det är det antagligen :)

Postat: 14 januari 2005, 14:03:05
av DennisD7
Själva pongspelet (edit: alltså kretskortet) var bara en byggsats, så jag har ingen aning :?

Postat: 14 januari 2005, 14:07:22
av jack
Såg det :) Ändrade därför min förra post lite..

Postat: 14 januari 2005, 16:50:28
av evert2
DennisD7: tjusigt...å billigt...vaket av dig, det där med TV:n....200 spänn för en liten TV...å sen kan man få betala 300-400 kr (eller mer) för en "ASCII-display" :humm:

Postat: 14 januari 2005, 17:52:30
av GeekJoan
Coolt, den där måste jag visa på ett arkadforum som jag håller till på.

EDIT... Såg just att du redan varit där...

Postat: 14 januari 2005, 20:16:52
av DennisD7
:D

Tur att du hann upptäcka det va? ..tack tack.
Den här tråden gick ju snabbt off-topic tycker jag...

Postat: 17 januari 2005, 11:47:17
av DennisD7
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. :D
/DennisD7

Postat: 17 januari 2005, 12:34:18
av arvidb
Kul att se att hobbyrummet på Astrakangatan kommer till användning :D

Snyggt pong! Ska bli spännande att se hur det går med PackMan.

Arvid

Postat: 17 januari 2005, 12:52:50
av DennisD7
Ah! en stalker! :D
...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 8) (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 =]

Postat: 17 januari 2005, 13:06:57
av matseng
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. ;-)