Zip met de powerpoint en technisch dossier deel elektronica:
https://www.dropbox.com/s/zbeb8br9b3iojh2/deel%20elektronica.zip
dinsdag 19 juni 2012
zaterdag 16 juni 2012
Technisch dossier deel IO
Intussen nog een stuk aan het technisch dossier voor het IO-gedeelte gewerkt in openoffice:
http://dl.dropbox.com/u/46945634/techisch%20dossier.doc
http://dl.dropbox.com/u/46945634/techisch%20dossier.odt
http://dl.dropbox.com/u/46945634/techisch%20dossier.doc
http://dl.dropbox.com/u/46945634/techisch%20dossier.odt
vrijdag 15 juni 2012
Presentatie chesscomputer
Al even een kleine presentatie in mekaar gewipt met hetgeen ik weet in (gemaakt in openoffice, dus mss met bugs voor ms office).
http://dl.dropbox.com/u/46945634/chesscomputer.pptx
http://dl.dropbox.com/u/46945634/chesscomputer.odp
Kleine opsomming:
-inhoudstabel-"korte" samenvatting van wat het chesscomputer-project juist inhoudt
-deel IO
...en voor de rest is alles, op titels na, leeg gelaten.
donderdag 24 mei 2012
Update IO 24/05
Kleine wijziging aan de IO-code in de project-klas vandaag:
-de feedback van de spellogica wordt nu vertaald naar [0-63];[0-63] vooraleer ze naar het schaakbord wordt doorgestuurt (ipv het oude x,y;x,y)
nieuwe IOHandler-klasse: IOHandler
-de feedback van de spellogica wordt nu vertaald naar [0-63];[0-63] vooraleer ze naar het schaakbord wordt doorgestuurt (ipv het oude x,y;x,y)
nieuwe IOHandler-klasse: IOHandler
zaterdag 28 april 2012
Update IO-code van 28/04/12
In deze update is er een heel pak verhuisd en aangepast aan zowel de spellogica als de microcontroller.
Om het kort te houden heb ik een korte oplijsting van de veranderingen opgesteld:
* De vertalingen op gebied van coordinaten, waar nog een aantal zaken aan kunnen toegevoegd worden, maar nog niet echt van pas komen zijn verhuisd van IOHandler naar een nieuwe klasse, genaamd Coordinaat. Hierbij zijn er 2 extra vertaalmethodes bijgekomen om met alfabet-cijfer combinaties te kunnen werken.
* De code om van de microcontroller te lezen aan de hand van bytes is "verwijdert", ze staat er nog bij, maar alleen in commentaar in geval ze nog van pas kan komen.
* Een ObsDel-eigenschap werd toegevoegd om via het IOHandler-object in de spellogica toch nog te kunnen werken met de feedback-methode public void ontvangFeedback(string info)->die de spellogica dan zal kunnen gebruiken aan de hand van zijn ObserverDelegate-object die verkregen werd door de get-functie van de ObsDel eigenschap.
* Er is een extra niet/wel-standaard constructor toegevoegd, deze vraagt enkel en alleen om een IODelegate-object om te kunnen communiceren met de spellogica. Zonder deze zouden we natuurlijk geen zetten kunnen doorspelen. De "wel" die ik hierboven schreef wijst erop dat op dit IODelegate-object na alles standaard gedefinieerd werd.
Opmerking: over de waarden kan nog gediscussieerd worden, omdat ik er niet van zeker ben. Ik herinner mij ook nog ergens van instellingen zoals baud rate ingesteld te hebben bij het labo van µcontrollers, maar kan mij de waarden niet meer herinneren en weet ook niet of die beter zouden werken.
Ten slotte nog de bijlages:
* IOHandler.cs: http://dl.dropbox.com/u/46945634/IOHandler.cs
* Coordinaat.cs: http://dl.dropbox.com/u/46945634/Coordinaat.cs
* Punt.cs: http://dl.dropbox.com/u/46945634/Punt.cs
* Delegates.cs: http://dl.dropbox.com/u/46945634/Delegates.cs
* indien het kan helpen met delegates van de spellogica-kant, GameLogic.cs: http://dl.dropbox.com/u/46945634/GameLogic.cs
Om het kort te houden heb ik een korte oplijsting van de veranderingen opgesteld:
* De vertalingen op gebied van coordinaten, waar nog een aantal zaken aan kunnen toegevoegd worden, maar nog niet echt van pas komen zijn verhuisd van IOHandler naar een nieuwe klasse, genaamd Coordinaat. Hierbij zijn er 2 extra vertaalmethodes bijgekomen om met alfabet-cijfer combinaties te kunnen werken.
* De code om van de microcontroller te lezen aan de hand van bytes is "verwijdert", ze staat er nog bij, maar alleen in commentaar in geval ze nog van pas kan komen.
* Een ObsDel-eigenschap werd toegevoegd om via het IOHandler-object in de spellogica toch nog te kunnen werken met de feedback-methode public void ontvangFeedback(string info)->die de spellogica dan zal kunnen gebruiken aan de hand van zijn ObserverDelegate-object die verkregen werd door de get-functie van de ObsDel eigenschap.
* Er is een extra niet/wel-standaard constructor toegevoegd, deze vraagt enkel en alleen om een IODelegate-object om te kunnen communiceren met de spellogica. Zonder deze zouden we natuurlijk geen zetten kunnen doorspelen. De "wel" die ik hierboven schreef wijst erop dat op dit IODelegate-object na alles standaard gedefinieerd werd.
Opmerking: over de waarden kan nog gediscussieerd worden, omdat ik er niet van zeker ben. Ik herinner mij ook nog ergens van instellingen zoals baud rate ingesteld te hebben bij het labo van µcontrollers, maar kan mij de waarden niet meer herinneren en weet ook niet of die beter zouden werken.
Ten slotte nog de bijlages:
* IOHandler.cs: http://dl.dropbox.com/u/46945634/IOHandler.cs
* Coordinaat.cs: http://dl.dropbox.com/u/46945634/Coordinaat.cs
* Punt.cs: http://dl.dropbox.com/u/46945634/Punt.cs
* Delegates.cs: http://dl.dropbox.com/u/46945634/Delegates.cs
* indien het kan helpen met delegates van de spellogica-kant, GameLogic.cs: http://dl.dropbox.com/u/46945634/GameLogic.cs
vrijdag 27 april 2012
Kleine update voor de IO
Vandaag nog eens even doorgewerkt aan de IO-code voor het chessproject, waarin eigenlijk niet veel nieuws te zien is, aangezien ik al meer had dan ik dacht.
Zo is de zoektocht naar een manier om te luisteren naar input van de microcontroller geëindigt na veel zoeken door in mijn eigen code eens te zoeken waar ik het al geïmplementeerd had, namelijk met de volgende regel:
this.comPoort.DataReceived += new SerialDataReceivedEventHandler(dataOntvangen);
Verder zijn er nog volgende methodes toegevoegd:
* public void schrijfData(string data): deze kan op verschillende manieren getriggerd worden, maar de voornaamste manier is door ontvangFeedback, die simpelweg het antwoord van de spellogica doorgeeft aan deze methode.
* public void ontvangFeedback(string info): deze wordt getriggerd door de spellogica, die een antwoord zal geven op het commando die de coordinaten meegegeven heeft.
* private Punt vertaalCoordinaat(int coordinaat): hierin wordt een meegegeven coordinaat, die verondersteld wordt een coordinaat te zijn van het systeem van het schaakbord zelf, omgerekend naar een x- en een y-coordinaat, die in een Punt-object wordt gestoken en weergegeven.
* private int vertaalCoordinaat(Punt vertaalMij): nogmaals een vertaling van coordinaten, maar dan in de omgekeerde richting van private Punt vertaalCoordinaat, maw van x-y naar het schaakbord-systeem.
Nog enkele lichte veranderingen aan bestaande methodes:
* private void dataOntvangen: naast het inlezen van data is er ook een controle die de huidige zet controleerd toegevoegd, samen met de oproep om coordinaten te vertalen van het schaakbord-systeem naar een x-y systeem en de controle om te zien of het een geldige zet is of 2 maal dezelfde zet.
* enkele andere methodes zonder nut zijn simpelweg verwijdert.
Opmerkingen:
* De feedback van de IO-klasse naar de microcontroller heeft nu maar 2 types van antwoorden, tenzij er in de spellogica geen "true" of "false" wordt meegegeven aan de IO-klasse. Maw, er wordt nog gewerkt met een feedback die bij true gewoon de zet registreert en bij false de feedback op het bord geeft door al de lichten te doen pinken (tenzij het al anders is dan we tevoor wisten).
* De manier om input van de microcontroller te lezen moet nog gekozen worden, de gemakkelijkste methodes zijn lezen per string of lezen aan de hand van bytes, ik denk zelf dat lezen met strings gemakkelijker zal zijn, maar ik weet nog niet precies welke output de microcontroller zal leveren naar de IO-klasse toe.
* Ik moet juist nog te weten komen welke in/output ik van de spellogica en de microcontroller kan verwachten. De microcontroller heb ik in het punt hierboven al gehint, maar voor de spellogica heb ik al iets in gedachten, die ik in de bijlages gezet heb bij GameLogic.cs. Graag melden als het anders moet.
Ik zal wellicht nog wel wat vergeten zijn, ergens diep in een hoekje, maar de lectuur is nu al groot genoeg denk ik :p
Als verduidelijkende extra nog de bijlages:
* IO-klasse: http://dl.dropbox.com/u/46945634/IOHandler.cs
* Punt-klasse (x-y coordinatenstelsel): http://dl.dropbox.com/u/46945634/Punt.cs
* Delegates (onverandert): http://dl.dropbox.com/u/46945634/Delegates.cs
* Klein voorbeeld van wat ik verwacht van input: http://dl.dropbox.com/u/46945634/GameLogic.cs
Zo is de zoektocht naar een manier om te luisteren naar input van de microcontroller geëindigt na veel zoeken door in mijn eigen code eens te zoeken waar ik het al geïmplementeerd had, namelijk met de volgende regel:
this.comPoort.DataReceived += new SerialDataReceivedEventHandler(dataOntvangen);
Verder zijn er nog volgende methodes toegevoegd:
* public void schrijfData(string data): deze kan op verschillende manieren getriggerd worden, maar de voornaamste manier is door ontvangFeedback, die simpelweg het antwoord van de spellogica doorgeeft aan deze methode.
* public void ontvangFeedback(string info): deze wordt getriggerd door de spellogica, die een antwoord zal geven op het commando die de coordinaten meegegeven heeft.
* private Punt vertaalCoordinaat(int coordinaat): hierin wordt een meegegeven coordinaat, die verondersteld wordt een coordinaat te zijn van het systeem van het schaakbord zelf, omgerekend naar een x- en een y-coordinaat, die in een Punt-object wordt gestoken en weergegeven.
* private int vertaalCoordinaat(Punt vertaalMij): nogmaals een vertaling van coordinaten, maar dan in de omgekeerde richting van private Punt vertaalCoordinaat, maw van x-y naar het schaakbord-systeem.
Nog enkele lichte veranderingen aan bestaande methodes:
* private void dataOntvangen: naast het inlezen van data is er ook een controle die de huidige zet controleerd toegevoegd, samen met de oproep om coordinaten te vertalen van het schaakbord-systeem naar een x-y systeem en de controle om te zien of het een geldige zet is of 2 maal dezelfde zet.
* enkele andere methodes zonder nut zijn simpelweg verwijdert.
Opmerkingen:
* De feedback van de IO-klasse naar de microcontroller heeft nu maar 2 types van antwoorden, tenzij er in de spellogica geen "true" of "false" wordt meegegeven aan de IO-klasse. Maw, er wordt nog gewerkt met een feedback die bij true gewoon de zet registreert en bij false de feedback op het bord geeft door al de lichten te doen pinken (tenzij het al anders is dan we tevoor wisten).
* De manier om input van de microcontroller te lezen moet nog gekozen worden, de gemakkelijkste methodes zijn lezen per string of lezen aan de hand van bytes, ik denk zelf dat lezen met strings gemakkelijker zal zijn, maar ik weet nog niet precies welke output de microcontroller zal leveren naar de IO-klasse toe.
* Ik moet juist nog te weten komen welke in/output ik van de spellogica en de microcontroller kan verwachten. De microcontroller heb ik in het punt hierboven al gehint, maar voor de spellogica heb ik al iets in gedachten, die ik in de bijlages gezet heb bij GameLogic.cs. Graag melden als het anders moet.
Ik zal wellicht nog wel wat vergeten zijn, ergens diep in een hoekje, maar de lectuur is nu al groot genoeg denk ik :p
Als verduidelijkende extra nog de bijlages:
* IO-klasse: http://dl.dropbox.com/u/46945634/IOHandler.cs
* Punt-klasse (x-y coordinatenstelsel): http://dl.dropbox.com/u/46945634/Punt.cs
* Delegates (onverandert): http://dl.dropbox.com/u/46945634/Delegates.cs
* Klein voorbeeld van wat ik verwacht van input: http://dl.dropbox.com/u/46945634/GameLogic.cs
Schema Buttons
dinsdag 24 april 2012
Mobiel programmeren
Vandaag kwam bij mij het gedacht om mobiel te beginnen programmeren, aangezien ik veel op de bus zit en daar wellicht meer gedaan krijg weliswaar zonder opzoekwerk. Voor de geïnteresseerden: gusto is de naam van het programma waarmee ik begonnen ben om te kunnen programmeren op de iPad.
Het enige nadeel hiervan is dat ik niet kan debuggen en ook niet kan testen of het programma gaat, maar dat laatste zal op de computer wellicht hetzelfde resultaat opleveren. Voor het debuggen moet ik dan wachten tot ik thuis ben om de code op pc te zetten.
dinsdag 10 april 2012
Lichte blik op het IO-gebeuren
Er zijn 2 constructoren in de IOHandler klasse voor het Chess project die elk op hun beurt de velden string poortNaam, int baudRate, string pariteit, int dataBits, string stopBits en IODelegate ioDel opvullen en nadien nog eens een eventhandler toevoegen die zou moeten luisteren naar het ontvangen van nieuwe data. De eerste constructor is btw een niet-standaardconstructor en de 2de is een copy-constructor.
Tussen de velden door zijn er nog 2 belangrijke items die om aandacht vragen:
-private SerialPort comPoort
deze wordt al geïnitialiseerd zonder enige waarden, deze worden er dan later aan toegevoegd.
-private IODelegate ioDel
dit is een delegate, zoals de naam al doet klinken, die zal de begin- en eindpositie doorgeven naar de spellogica.
De volgende stap is om het lezen en schrijven naar de microcontroller af te handelen, wat eigenlijk het belangrijkste is en wat ik nu aan het opzoeken ben.
Mijn opzoekwerk tot dusver, en dus ook met toevoeging van een gepaste "to be continued":
-de communicatie tussen C# en de microcontroller kan via usb en via seriele poort, waarvan de laatste het gemakkelijkste zou moeten zijn. De gebruikte klasse uit het .net framework is daarvoor System.IO.Ports.SerialPort
-niet vergeten om het transmissietype aan te duiden, met text of met bytes (hangt af van wat er van de microcontroller het gemakkelijkst ingelezen en geschreven wordt voor onze coordinaten)
-schrijven naar de microcontroller gebeurt specifiek met de methode WriteData("datastring") van de SerialPort klasse
Bijgevoegde bestanden:
IOHandler klasse: http://dl.dropbox.com/u/46945634/IOHandler.cs
Gebruikte delegate(s): http://dl.dropbox.com/u/46945634/Delegates.cs
Tussen de velden door zijn er nog 2 belangrijke items die om aandacht vragen:
-private SerialPort comPoort
deze wordt al geïnitialiseerd zonder enige waarden, deze worden er dan later aan toegevoegd.
-private IODelegate ioDel
dit is een delegate, zoals de naam al doet klinken, die zal de begin- en eindpositie doorgeven naar de spellogica.
De volgende stap is om het lezen en schrijven naar de microcontroller af te handelen, wat eigenlijk het belangrijkste is en wat ik nu aan het opzoeken ben.
Mijn opzoekwerk tot dusver, en dus ook met toevoeging van een gepaste "to be continued":
-de communicatie tussen C# en de microcontroller kan via usb en via seriele poort, waarvan de laatste het gemakkelijkste zou moeten zijn. De gebruikte klasse uit het .net framework is daarvoor System.IO.Ports.SerialPort
-niet vergeten om het transmissietype aan te duiden, met text of met bytes (hangt af van wat er van de microcontroller het gemakkelijkst ingelezen en geschreven wordt voor onze coordinaten)
-schrijven naar de microcontroller gebeurt specifiek met de methode WriteData("datastring") van de SerialPort klasse
Bijgevoegde bestanden:
IOHandler klasse: http://dl.dropbox.com/u/46945634/IOHandler.cs
Gebruikte delegate(s): http://dl.dropbox.com/u/46945634/Delegates.cs
woensdag 4 april 2012
Test Breadboard 1
Klik voor youtubefilmpje
Uitgang schmitt trigger vant ontdenderingschema getest.
W-bit schema getest.
Beide gaven resultaten zoals verwacht.
Uitgang schmitt trigger vant ontdenderingschema getest.
W-bit schema getest.
Beide gaven resultaten zoals verwacht.
zaterdag 31 maart 2012
Schema LED's sturing
![]() |
| Schema met poorten |
![]() |
| Waardentabel |
geg: bron 5V, spanning over LED 2V
gevr: Welke weerstand moeten we in serie schakelen om 20mA stroom door de schakeling te verkrijgen?
op: (5V-2V)/0.02A = 150 Ohm
Correct me if i'm wrong :p
woensdag 21 maart 2012
Inputlijnen verminderen
![]() |
| Logisch schema (klik om te vergroten ;) |
Ontdenderen schakelaars
![]() |
| Ontdenderen (klik om groter te maken ;) |
dinsdag 20 maart 2012
LS vs HC
Het logisch schema om de 8 lijnen van kollommen en rijen om te zetten naar minder lijnen is zo goed als klaar net zoals de rest van het elektronicaschema. Ik ben er alleen nog niet aan uit of ik 74LSxx of 74HCxx ic's moet gebruiken. Blijkbaar kan je bepaalde outputs van 1 soort ic niet als input gebruiken voor een ander ic, hoe het precies zit moet ik nog zoeken.
zaterdag 17 maart 2012
little button problem
De (64) knopjes moeten op 1 of andere manier ontdenderd worden. Hardwarematig, softwarematig...
Wordt even zoeken wat de beste oplossing is.
Wordt even zoeken wat de beste oplossing is.
zondag 11 maart 2012
Wijziging # I/O-lijnen
![]() |
| orgineel idee: 16inputlijnen & 16outputlijnen |
maandag 5 maart 2012
Adapter ter beschikking
Deze adapter heb ik thuis liggen.
stroom: 1000mA max
vermogen: 12Va
instelbaar op 1.5/3/4.5/6/7.5/9/12Vdc
Beveiligd tegen kortsluitingen :)
stroom: 1000mA max
vermogen: 12Va
instelbaar op 1.5/3/4.5/6/7.5/9/12Vdc
Beveiligd tegen kortsluitingen :)
Elektronica schaakcomputer
De onderliggende sensors van het 8x8 bord. Er worden 16 lijnen input geleverd aan de microcontroller van de velden alleen. Er zijn nog enkele extra lijnen input ook: aan/uit schakelen, sound/no sound, hint vragen,...
Het bord werkt niet met coördinaten van een horizontale en verticale rij zoals wij doen maar hun manier van werken levert dus evenveel inputlijnen op (16). Dus best eens een µC zoeken die 16 inputs(zetten registreren) en 16outputs(LED's) heeft. Meer I/O nodig indien we extra uitbereidingen zouden doen op het bord.
De schaakcomputer bevat ook 1 printplaatje waarop alle elektronica samenkomt (erop gesoldeerd). Als we elektronische chaos willen vermijden zullen we denk ik best ook een/meerde printplaatje(s) gebruiken.
Het bord werkt niet met coördinaten van een horizontale en verticale rij zoals wij doen maar hun manier van werken levert dus evenveel inputlijnen op (16). Dus best eens een µC zoeken die 16 inputs(zetten registreren) en 16outputs(LED's) heeft. Meer I/O nodig indien we extra uitbereidingen zouden doen op het bord.
De schaakcomputer bevat ook 1 printplaatje waarop alle elektronica samenkomt (erop gesoldeerd). Als we elektronische chaos willen vermijden zullen we denk ik best ook een/meerde printplaatje(s) gebruiken.
donderdag 1 maart 2012
First post!
Hi! This is a blog made made for the Chesscomputer! project. This way we'll keep eachother updated and share information about it. On this blog you're be able to check out our progress.
Abonneren op:
Reacties (Atom)









