Digitalt Othello

Planering och tankar kring eventuella framtida projekt.
murrayhack
Inlägg: 4
Blev medlem: 17 april 2008, 18:41:21
Ort: Stad
Kontakt:

Digitalt Othello

Inlägg av murrayhack »

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
Användarvisningsbild
marcla
Inlägg: 311
Blev medlem: 19 juli 2006, 11:36:38
Ort: Gislaved

Inlägg av marcla »

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
Användarvisningsbild
Icecap
Inlägg: 26636
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

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.
murrayhack
Inlägg: 4
Blev medlem: 17 april 2008, 18:41:21
Ort: Stad
Kontakt:

Inlägg av murrayhack »

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.
OK, vi har egentligen ingen aning vad vi håller på med. Men någon stans ska man ju börja.. eller hur?
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.
Användarvisningsbild
Icecap
Inlägg: 26636
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Synd att ni inte köpte en bra programmeringsenhet bara...
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

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... :D 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.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Ska processorn kunna spela eller är det bara ett elektroniskt bord?
Skulle ha satsat på någon sorts touchfunktion i rutorna, knappar kan inte bli särskilt snyggt.
Skede
Inlägg: 9
Blev medlem: 18 juni 2008, 12:20:29
Ort: Kalmar
Kontakt:

Inlägg av Skede »

Våran idé för å lösa knapparna är ungefär såhär: Bild
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!
Användarvisningsbild
Icecap
Inlägg: 26636
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

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.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

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.
Användarvisningsbild
marcla
Inlägg: 311
Blev medlem: 19 juli 2006, 11:36:38
Ort: Gislaved

Inlägg av marcla »

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
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

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... :-)
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Vi gjorde ett othello program som ett projekt när jag pluggade som var självlärande m.h.a neuron-nät. Det festliga var att en kompis förlorade mot den innan vi ens hade kört en enda upplärningsrunda på den, dvs alla vikterna i neuron-nätet var slumpmässigt satta! :)
Användarvisningsbild
ahlsten
Inlägg: 659
Blev medlem: 12 november 2005, 00:24:14
Ort: Uppsala

Inlägg av ahlsten »

Ett underbarn med andra ord? :wink:
pettab
Inlägg: 20
Blev medlem: 10 maj 2008, 11:43:51
Ort: Stockholm

Inlägg av pettab »

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.
Skriv svar