Digitalt Othello
-
- Inlägg: 4
- Blev medlem: 17 april 2008, 18:41:21
- Ort: Stad
- Kontakt:
Digitalt Othello
Tjenare
Jag och min polare har fått lite tid över och vi har bestämt oss för att bygga ett digitalt othello.
Tanken är att ha ett bord med 8x8 2färgade lysdioder med knappar för respektive ruta.
Programmet kommer skötas med en PIC-processor.
Vi har inte tidigare hållt på med något av detta så om ni har några tips och trix till oss är det varmt välkommet.
Några funderingar vi har i nuläget:
*Vad ska man har för PIC-programmerara? Finns en del på kjell&company som vi har tittat på.. Dom kanske duger?
*Kan man programmera i C# och sedan få ut det till sin PIC eller måste man använda sig av tex C?
*Vad är enklast. 2 små dioder med varsin färg eller en 2färgad per ruta?
*Vart hittar man billiga och bra lysdioder? ELFA hade 2färgade för 2,57kr + moms
Vi kommer säkert med flera funderingar och vi kommer publicera våra framsteg här under projektets gång.
//Alex & Stefan
Jag och min polare har fått lite tid över och vi har bestämt oss för att bygga ett digitalt othello.
Tanken är att ha ett bord med 8x8 2färgade lysdioder med knappar för respektive ruta.
Programmet kommer skötas med en PIC-processor.
Vi har inte tidigare hållt på med något av detta så om ni har några tips och trix till oss är det varmt välkommet.
Några funderingar vi har i nuläget:
*Vad ska man har för PIC-programmerara? Finns en del på kjell&company som vi har tittat på.. Dom kanske duger?
*Kan man programmera i C# och sedan få ut det till sin PIC eller måste man använda sig av tex C?
*Vad är enklast. 2 små dioder med varsin färg eller en 2färgad per ruta?
*Vart hittar man billiga och bra lysdioder? ELFA hade 2färgade för 2,57kr + moms
Vi kommer säkert med flera funderingar och vi kommer publicera våra framsteg här under projektets gång.
//Alex & Stefan
Vill ny köpa en programerare på Kjell så är den här bra men WISP är några snäpp bättre...
Här brukar jag köpa mina dioder
Här brukar jag köpa mina dioder
PICKit2 fungerar som ICD med PIC18-serien (+), den kan alltså vara alldeles trevlig att ha.
Jag har själv bra erfarenheter med WISP628 så den kan jag också rekommendera.
ICD = In-Circuit Debugger, alltså en enhet som medger att man kan, medan processorn sitter i kretsloppet, kan stoppa allt, läsa ut värden, stega instruktion för instruktion, låta den köra till ett visst punkt osv.
Och C#??? Det kanske finns en C# kompiler för PIC men jag har inte sett några och jag vill inte heller ha det!
ANSI C är vad som gäller, då klarar ni allt.
Och sedan den vanliga varningen: när du frågar om C# till PIC anser jag att ni ska fundera allvarligt över vilka resurser det finns i en PIC osv. C# är "PC-världen" och PC-programmering är ganska olika PIC(/dylikt), inte i funktioner men i resurser.
Jag har själv bra erfarenheter med WISP628 så den kan jag också rekommendera.
ICD = In-Circuit Debugger, alltså en enhet som medger att man kan, medan processorn sitter i kretsloppet, kan stoppa allt, läsa ut värden, stega instruktion för instruktion, låta den köra till ett visst punkt osv.
Och C#??? Det kanske finns en C# kompiler för PIC men jag har inte sett några och jag vill inte heller ha det!
ANSI C är vad som gäller, då klarar ni allt.
Och sedan den vanliga varningen: när du frågar om C# till PIC anser jag att ni ska fundera allvarligt över vilka resurser det finns i en PIC osv. C# är "PC-världen" och PC-programmering är ganska olika PIC(/dylikt), inte i funktioner men i resurser.
-
- Inlägg: 4
- Blev medlem: 17 april 2008, 18:41:21
- Ort: Stad
- Kontakt:
OK, vi har egentligen ingen aning vad vi håller på med. Men någon stans ska man ju börja.. eller hur?Icecap skrev:Och sedan den vanliga varningen: när du frågar om C# till PIC anser jag att ni ska fundera allvarligt över vilka resurser det finns i en PIC osv. C# är "PC-världen" och PC-programmering är ganska olika PIC(/dylikt), inte i funktioner men i resurser.
Eftersom vi har lite erfarenhet utav C# så hade de varit bra om det hade funkat. Men vi kommer titta närmare på ANSI C.
Vi har nu köpt http://www.kjell.com/content/templates/ ... 7715&path=
och byggt ihop.
Ett tips är att prova att programmera motsvarande program på en PC först. Jag rekommenderar er att använda C. C# kan ni nog tyvärr glömma för PIC, det ställer alldeles för höga krav på runtime-miljö (en garbage collector t.ex.). Betänk att PIC:arna har högst några kilobyte RAM, det är i storleksordningen 1 miljon gånger mindre än en modern PC...
Ni bör försöka pressa minnesåtgången så mycket det går och se hur mycket som går åt. Man brukar använda rekursiva algoritmer och man behöver ha många bräden i minnet samtidigt medan CPU:n funderar. Räkna med att ett bräde tar 128 bitar = 16 byte att lagra (2 bitar per ruta).
Räkna med att använda någon av de mer kraftfulla PIC:arna ur PIC18-serien, då de är de enda som man kan programmera i riktig C (de mindre har inget bra stöd för datastackar, så man kan inte använda lokala variabler).
Vad gäller lysdioder så kvittar det praktiskt om ni har tvåfärgsdioder eller 2 separata - de förra är bara två dioder ihopbyggda i en kapsel, och kopplas precis likadant. De har 3 ben, varav ett är gemensamt (katod tror jag).
Det kan vara värt att kolla andra leverantörer, även utomlands. Sparkfun Electronics är bra, men kolla upp frakten, det kan bli någon hundring.

Räkna med att använda någon av de mer kraftfulla PIC:arna ur PIC18-serien, då de är de enda som man kan programmera i riktig C (de mindre har inget bra stöd för datastackar, så man kan inte använda lokala variabler).
Vad gäller lysdioder så kvittar det praktiskt om ni har tvåfärgsdioder eller 2 separata - de förra är bara två dioder ihopbyggda i en kapsel, och kopplas precis likadant. De har 3 ben, varav ett är gemensamt (katod tror jag).
Det kan vara värt att kolla andra leverantörer, även utomlands. Sparkfun Electronics är bra, men kolla upp frakten, det kan bli någon hundring.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Våran idé för å lösa knapparna är ungefär såhär: 
Den runda brickan man trycker på får vara nått liknande med vitt plexi.
Vi vill ju ha så man bara behöver toucha där man vill lägga sin spelbricka.
Har ni något bättre förslag så är det mycket välkommet
Vi håller på att experimentera lite med hur själva kodningen skall seut. Så vi får en fungerande othello motor. Jag har läst någonstanns att det ska finnas en färdig på endast 1024 bytes. Men är ju roligare om man löser den själv.
Och vad vi har tänkt oss i dagsläget är att man måste vara 2spelare. Altså att det blir för svårt för oss att låta CPUn spela också.
Skall vi köpa en PIC ur 18 seriern och börja experimentera lite mindre saker med eller ska vi köpa en mindre ur kanske 12 eller 16 seriern å börja med?
Som sagt vi måste ju lära oss och förstå oss på hur PIC programmering fungerar lite mera grundligt innan vi försöker få ihop vårt othello
Tack alla svar!

Den runda brickan man trycker på får vara nått liknande med vitt plexi.
Vi vill ju ha så man bara behöver toucha där man vill lägga sin spelbricka.
Har ni något bättre förslag så är det mycket välkommet

Vi håller på att experimentera lite med hur själva kodningen skall seut. Så vi får en fungerande othello motor. Jag har läst någonstanns att det ska finnas en färdig på endast 1024 bytes. Men är ju roligare om man löser den själv.
Och vad vi har tänkt oss i dagsläget är att man måste vara 2spelare. Altså att det blir för svårt för oss att låta CPUn spela också.
Skall vi köpa en PIC ur 18 seriern och börja experimentera lite mindre saker med eller ska vi köpa en mindre ur kanske 12 eller 16 seriern å börja med?
Som sagt vi måste ju lära oss och förstå oss på hur PIC programmering fungerar lite mera grundligt innan vi försöker få ihop vårt othello

Tack alla svar!
Mitt förslag: ta en "stor" processor! Gärna med många ben, kolla dock att er felköpta programmerare kan programmera den, enl. Kjells sida kan den inte köra med PIC18...
Men generellt: ta en stor och fet krets, man kan alltid banta sedan när man VET hur mycket man behöver. Själv har jag en PIC18F4520 i lådan till att testa med.
Men generellt: ta en stor och fet krets, man kan alltid banta sedan när man VET hur mycket man behöver. Själv har jag en PIC18F4520 i lådan till att testa med.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Ska ni bara tända och släcka dioder krävs inte mycket cpu-kraft, däremot I/O-pinnar. Men det går ju att lösa med externa latchar.
Dioderna bör inte sitta så nära plexit, det kommer att bli en liten ljuspunkt. Skulle valt en relativt ljusstark diod med lite bredare vinkel, alternativt kapat av linsen och monterat den en bit under knappen.
Dioderna bör inte sitta så nära plexit, det kommer att bli en liten ljuspunkt. Skulle valt en relativt ljusstark diod med lite bredare vinkel, alternativt kapat av linsen och monterat den en bit under knappen.
Programeraren tar ej pic 18F* och ni behöver många i/o så det är ett minus
men ett förslag kan vara att kopla alla lysdioderna i en Matris...
eller möjligt vis någon av dessa I/O Expanders
men ett förslag kan vara att kopla alla lysdioderna i en Matris...
eller möjligt vis någon av dessa I/O Expanders
Jag skrev ett Othello program till ABC80 någongång runt
78-79. Nej, källkoden finns *inte* kvar, men jag minns att
den spelade ganska "bra". Min gissning är att det är bra att
ta en processor med mycket RAM, det går åt några datastrukturer
för att dels hålla spelplanen, dels beräkna "värdet" på de olika
möjliga dragen i varje runda.
Visst ja, den skulle ju inte spela, bara indikera, så var det ja...
Annars så är spel-logiken till Othella ganska enkel...
Jag skulle nog säga att det är ett större "problem" att läsa av
64 tryckknappar än att styra 64/128 LEDs. Eller i alla fall ett
intressantare problem...
78-79. Nej, källkoden finns *inte* kvar, men jag minns att
den spelade ganska "bra". Min gissning är att det är bra att
ta en processor med mycket RAM, det går åt några datastrukturer
för att dels hålla spelplanen, dels beräkna "värdet" på de olika
möjliga dragen i varje runda.
Visst ja, den skulle ju inte spela, bara indikera, så var det ja...
Annars så är spel-logiken till Othella ganska enkel...
Jag skulle nog säga att det är ett större "problem" att läsa av
64 tryckknappar än att styra 64/128 LEDs. Eller i alla fall ett
intressantare problem...

Gjorde ett liknande projekt i skolan, dock inte othello men med ett bräde på 8*8 rutor. Vi klurade ett bra tag på hur knapparna skulle lösas, men hittade sen denna: http://se.farnell.com/1441593/electrica ... -18r-200fh
Vilket var oväntat billig och väldigt enkel att använda mha AD-omvandling på processorn.
Vilket var oväntat billig och väldigt enkel att använda mha AD-omvandling på processorn.