Handhållen spelkonsol

Berätta om dina pågående projekt.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Handhållen spelkonsol

Inlägg av victor_passe »

Hej, nu när det tyvärr inte är någon skola måste man ju hålla sig sysselsatt med annat för att inte bli galen så jag byggde en handhållen spelkonsol.

Det är en 8*8 röd/grön ledmatris, pic16f887(spel/grafik), pic12f675(audio)

Den har vibbrator, högtalare, joystick(från mobiltelefon), ficklampa, temperatursensor och en knapp.
Jag har inte en enda pinne ledig på huvudpicen förutom mclr.

PORTA driver trissorna som driver kolumerna.
PORTB= människo interface
PORTC= grön färg
PORTD= röd färg
PORTE= audioBus


Allt är kodat i ASM. Målet är ju att fördriva lite tid så asm är givet.
Jag har bara kodat snake och ett "köra bil på gatan utan att krocka" spel
Och tempövervakning, ficklampa.
Vilka fler spel kan man göra?
Min lillebror vill att jag ska göra en kopia av super smash bros....
Något lite lättare än det får det bli.

TMR0 gör hela tiden interrupt för att stänga av ljudet/vibbratorn när den ska så man behöver bara skriva:

movlw 0x10
movwf vibb_counter

för att få vibbratorn att köra en stund.

Först styrde nämligen huvud picen även ljudet men jag är för kass på räknare/interrupt så den kunde inte göra något annat samtidigt så skärmen slocknade när man gjorde ljud.
Men det löste sig med en dedikerad audio µC.

Hela konsollen är modulär så man kan dela den till 4 delar och om jag vill ha accerelometer i framtiden kan jag byta ut handenheten om jag vill osv.

Lite bilder:

Bild
Huvudenheten

Bild
Underifrån. Lite sladdar.

Bild
Den bygger lika mycket upp som ner.
Jag borde skaffa lackad koppartråd istället.
Behöver man bara klippa och löda eller måste man skrapa av lacket?


Bild
Från sidan

Bild
Handenheten

Bild
Underifrån

Bild
Kraftenheten

Bild
Ihopmonterad

Bild
Från sidan


Det är kanske lite svårt att förstå hur man håller den för att använda både kanpp och joystick, man håller handenheten i högerhand och vänster hand pekfinger på kanppen

Vänsterhanden håller man liksom som en pistol.


Jag har haft en hel den krångel med interrupter och spara undan W och STATUS när jag kör interrupten.
Det slutade med att jag bara tillåter interrupt precis innan jag kör min måla upp bild rutin för då vet jag att varken status eller w är viktiga.

Bilden ligger i ram och kartor ligger i eeprom.
alla pixel/linje/bild rutiner skriver till ram kopian av skrämen och draw rutinen flyttar bilden till skrämen.

Jag skulle helst ha draw rutinen som på interrupt i 80Hz eller något men det funkar ju som det är nu.

När jag hade krångel med interupten krashade spelt lite då och då.
Det var när jag hade modifierat Status eller höll på att läsa eeprom och en interrupt kom som det gjorde allt möjligt roligt.


Jag räknar ut slumptal på ett udda sätt, jag laddar w med något och xor:ar det med alla register i ram och det jag har kvar i slutet är ganska slumpar.
Jag har alla 3 timrar gående hela tiden.

Och audiobusen är väldigt simpel, jag har 3 bitars buss och 7st ljud.
När det är data på bussen kommer en av 7 ljudeffekter.

Vilka fler spel ska man göra?
Vilka mer funktioner ska man lägga till?
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Häftigt, bra jobbat!

Det ska väl gå att använda lysdioder som touch-sensor... med den metoden kan du få en touch-display... men det kräver nog lite mer elektronik...

Ritfunktion?

Litet pong?

Kan du inte lägga upp en liten video av den? Skulle vara skoj att se hur det låter och hur den funkar.
Användarvisningsbild
Glenn
Inlägg: 36629
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Inlägg av Glenn »

Coolt, fast varför inte använda en LCD typ nokia-LCD istället ? är dom för slöa ?
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

HeHe! Riktigt coolt 8)

Någon som nämnt att du har för mycket fritid?? :wink:
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Inlägg av victor_passe »

pong ska jag göra.
Men rita har jag ingen nytta av.
Och som touchscreen har jag provat med lite men jag har ju inte ADC på alla pinnar och kan inte polvända lysdioderna så då måste jag bygga om typ allt.


Jag byggde först en 4*5 röd utan knappar sedan en 5*7 grön med kapacitiva knappar som man bara la fingret på så att fortsätta med led för v3.0 var det enda jag tänkte på.

Men en 8/14pinnars pic, 3310 lcd, accerelometer + knappcell hade ju varit fint. V4.0 kasnke
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Inlägg av Walle »

OT: (Ursäkta kapet)

Hur använder man en LED som touch-sensor?

/OT
Användarvisningsbild
Meduza
EF Sponsor
Inlägg: 10718
Blev medlem: 30 april 2005, 22:48:05
Ort: Ekerö, Stockholm
Kontakt:

Inlägg av Meduza »

Den ger en viss spänning när den får ljus på sig och genom att mäta detta ska man kunna använda lysdioden som sensor för att se om man håller fingret där ovanför. (mV-nivå eller så om jag inte minns fel, kanske var mindre...)

Någon här på forumet försökte göra detta, och fick det att fungera hyfsat på labbplatta men inte med konsistenta resultat mellan olika uppkopplingar, och inte alls på lött experimentkort, visade sig att det som egentligen gjorde att det fungerade var kapacitans i labbplattan och försöket lades ner...

Men teoretiskt sett så ska det fungera iaf...
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

Enklast är då såklart att köra de omkringliggande dioderna på "fullt" en kort stund så man få något att återspegla. Jag gör nåt liknande i min acctanksövervakning men kör då två IRdioder på 50mA för att få någon slags återkopling, en räcker inte. Det hela blir också ljuskänsligt så det måste man kompensera för så man inte får falska utslag eller att det inte reagerar alls.

Det senare var det jag trots två dioder och fototransistor, som ska vara isolerad ( :roll: ), mot dagsljus det jag hade lite problem med. Därav de två dioderna. Tror inte det hela fungerar helt 100 i dagsljus nu heller. Iofs skärmar handen av det hela och dämpar men ändå så kan ju ljuset komma ur en annan vinkel direkt på ljussensorn.

En fototransistor reagerar mycket mer än en vanlig diod.

Och även jag testade en diod som proximitysensor, tyvärr fungerade det lika bra när jag tog bort dioden :lol:
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Inlägg av victor_passe »

Då har jag skrivit pong också.
Nu är jag uppe i 2001 rader ASM.
Ens padd är 3 led lång och datorspelarns AI är så här:
Om boll på min planhalva gå ett steg närmare bollen.
Man skulle kanske ha lagt in lite slump i den också.
Användarvisningsbild
JimmyAndersson
Inlägg: 26568
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Kul projekt! :tumupp:

Nytt spelförslag: "Fyra i rad". :)
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Inlägg av victor_passe »

4 i rad kommer, bra ide.
3 i rad kommer också såklart.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Å vad kul, bara jobbat.

Detta med 2D var ju extra kul jämfört med mitt 1D projekt.
http://biphome.spray.se/frl_linder/pic_jdm_spel.html
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Inlägg av victor_passe »

Vi får vänta tills någon gör ett 3d då.
Det är ju egentligen kasst att man kallar dagens spel 3d spel, ingen 3d skärm, inget 3d spel.
farskost
Inlägg: 454
Blev medlem: 17 april 2006, 19:55:21
Ort: Mölndal

Inlägg av farskost »

Bara att bygga ut displayen till en LEDkub för att få 3D :)
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Inlägg av victor_passe »

jo, 8*8*8 *rgb.. 1500 led att driva.
Skriv svar