Inhoudsopgave:

Arduino Schaakklok - Ajarnpa
Arduino Schaakklok - Ajarnpa

Video: Arduino Schaakklok - Ajarnpa

Video: Arduino Schaakklok - Ajarnpa
Video: Arduino project: Chess Clock 2024, Juli-
Anonim
Arduino Schaakklok
Arduino Schaakklok

Ik kon geen instructies vinden over een goede Arduino-schaakklok, dus in plaats daarvan bouwde ik mijn eigen, die ik hier zal beschrijven.

Stap 1: Onderdelenlijst

Onderdelen lijst
Onderdelen lijst

hier zijn de dingen die je nodig hebt: Arduino nano (of een willekeurig arduino UNO-type) soldeerbout soldeer printplaat of vero-kaart 2 dubbele AA-batterijhouders 3 X 10k OHM-weerstanden zekeringhouder 2 X aardingspinnen van 2 UK-stekkers 2 X 4 cijfer 7-segment displays zoemer 1 tuimelschakelaar 1 knop klein (druk om type te maken) USB 1 kabel (of wat dan ook in je Arduino past) microfoon fittingen en moeren bouten. Hiervoor heb ik geboden en een meccano-set op ebay gewonnen en gebruikt wat ik vond Behuizing (optioneel) breadboard en startkabels (optioneel maar aanbevolen om er eerst een prototype van te maken) keer, genoeg tijd! Ik heb een afbeelding bijgevoegd, maar deze was van mijn reserveonderdelen na mijn build, dus sommige componenten ontbreken zoals vermeld.

Stap 2: Prototyping

Prototyping
Prototyping
Prototyping
Prototyping

Het hele project kan in de volgende delen worden opgesplitst: 1. het circuit goed krijgen 2. het programma 3. de fysieke lay-out Deze stap is optioneel omdat ik je het schakelschema zal geven, maar ik raad je ten zeerste aan om het in een breadboard eerst omdat het zal bevestigen (of niet) dat je alle onderdelen hebt die je nodig hebt en je in staat stelt om na te denken over de fysieke lay-out van alle onderdelen voor een behuizing of basis. Ik heb hier een foto van mijn prototype in een breadboard en ook een schakelschema bijgevoegd. Enkele opmerkingen over de schakeling: 1. Linksboven in het schakelschema staat de pin op het display die verbonden is met het segment (kathodes) of het cijfer (anodes). 2. U zult zien dat voor elk display de segmenten (kathodes) zijn verbonden met het respectievelijke segment op het andere display. Dit komt doordat het display gemultiplext is om de juiste cijfers weer te geven 3. de reset-schakelaar en de rocker zijn bedraad met pull-down weerstanden om de ingang LAAG te houden wanneer de betreffende knop niet wordt ingedrukt. zie https://www.arduino.cc/en/tutorial/button voor meer details hierover. 4. Het stroomcircuit is volledig gescheiden maar eenvoudig. Het zijn 4 AA-batterijen in serie met een schakelaar die in de rode en zwarte draden van een doorgesneden USB-kabel zijn gesoldeerd. De USB-kabel gaat dan in de arduino.

Stap 3: Het programma

Het programma
Het programma
Het programma
Het programma

Als je het eenmaal op een breadboard hebt, moet je de controller schrijven. Gelukkig voor jou heb ik mijn code hier bijgevoegd, maar ik zou je willen aanmoedigen om deze code te proberen of aan te passen. Als je het helemaal opnieuw gaat schrijven, moet je eerst uitzoeken welke pinnen je moet instellen om alle 10 cijfers te maken, ik heb dan nog 2 extra patronen gecodeerd, een voor wanneer de tijd om is en een om 10 in een enkele cijfer (zie afbeelding). De volgende stap is om de cijfers te multiplexen, zodat u mogelijk een ander nummer of patroon op elk van de 8 cijfers kunt weergeven. Ik heb de snelheid van het multiplexen aangepast totdat het er goed uitzag, te snel en de getallen versmelten tussen aangrenzende cijfers en te langzaam en het blote oog kan het multiplexen opmerken. De volgende stap is om de getallen af te tellen als 2 sets van 4 getallen die 2 aftellingen vertegenwoordigen. Ik koos ervoor om het eerste cijfer voor minuten te gebruiken, de volgende 2 voor seconden en de laatste voor tienden van seconden, maar je kunt ervoor kiezen om 2 voor minuten en 2 voor seconden te gebruiken. Het aftellen kan worden gekalibreerd met een eenvoudige for-lus die niets doet, zodat een tik van een 'seconde' op het display eigenlijk een echte seconde is. Ik kwam aardig in de buurt, maar ik dacht dat het voor een informeel schaakspel niet zoveel uitmaakt als elk spel hetzelfde aantal eenheden heeft. Ik denk dat je het nauwkeuriger wilt maken als je je schaakklok wilt gebruiken voor een toernooi of zelfs om een ei te timen! De klok laadt in reset-modus wanneer ingeschakeld. Daarna wacht het totdat de rockers aan beide kanten worden geraakt en telt af vanaf de (standaard) 5 minuten. De code luistert naar de resetknop wanneer de rocker in balans is. als het wordt geraakt, gaat de klok weer in de reset-modus. Op dit punt kan de reset-knop worden gebruikt om door de gewenste minuten voor elk spel van 1 tot 10 te bladeren. wanneer de gewenste tijd wordt weergegeven, kan de tuimelschakelaar opnieuw worden ingedrukt om de klok te starten. ten slotte heb je het nodig om iets te doen om aan te geven dat de tijd om is in mijn geval toont het alle streepjes (-) en speelt een reeks piepjes, dan toont het de ene kant als 0000 (de verliezer) en de andere kant als welk tijdstip dan ook werd niet gebruikt door de winnaar.

Stap 4: Fysieke opbouw

Fysieke bouw
Fysieke bouw

De volgende fase is de fysieke opbouw. Tuimelschakelaar Het eerste stuk is het bouwen van de tuimelschakelaar. Deze schakelaar moet een van de twee verbindingen sluiten, maar nooit beide. Het moet ook in het midden kunnen balanceren waar het geen van beide verbindingen sluit. Dit zet de klok stil. Hier heb ik een klein stuk hout gebruikt en aan beide uiteinden een Britse grondpen geschroefd. Vervolgens wordt in het midden een draaipunt gebouwd om de rocker van het bord te tillen. Ook hier heb ik mijn ebay meccano uitgebreid voor gebruikt. Wanneer de rocker op het bord is gemonteerd, moeten de aardpennen in de zekeringhouderclips gaan om de verbinding te sluiten. Om dit een soepel gevoel te geven, heb ik de randen van de grondpennen gevijld zodat ze gemakkelijk in de zekeringhouder kunnen bewegen (zie afbeelding). Lay-out Ik heb eerst de lege PCB's op een perspex plaat gemonteerd met een opening voor de spil van de rocker schakelaar. Toen nam ik het weer af en soldeerde de componenten en draad in met dezelfde opening. Als u dit niet doet, kan het moeilijk zijn om de resulterende planken terug op het perspex van de basis te schroeven. Teken eerst de lay-out op papier en houd in gedachten: - hoe hoog de 'bovenkant' van elke rocker zal zijn voor de behuizing - sommige componenten zoals de batterijhouders en Arduino USB-poort moeten na voltooiing toegankelijk zijn - Als schakelaars moeten op een deksel van de behuizing worden gemonteerd en vervolgens hun draden verbinden met connectoren, zodat het deksel volledig kan worden verwijderd. (de mijne heeft alleen een scharnier, maar ik heb dit toch gedaan) - Ik heb de 7-segment displays gekanteld door de pinnen aan één kant te verlengen met zekeringdraad waardoor die kant hoger uit het bord kan zitten. Behuizing Ik was van plan om een aangepaste behuizing te bouwen, maar uiteindelijk had ik niet genoeg tijd en het perspex is moeilijk te snijden, dus kocht ik een doos die vergelijkbaar was met wat ik nodig had en paste ik het een beetje aan. Ik denk dat het goed is om een transparante behuizing te hebben, zodat de werking kan worden gezien, maar zorg ervoor dat de batterijen en de USB-poort beschikbaar blijven voor programma-aanpassingen. Dat is het, veel plezier en succes!

Stap 5: Andere opties…

Mogelijke verbeteringen of opties: - speel een andere reeks piepjes, afhankelijk van welke kant wint - speel een deuntje na voltooiing Ik denk dat dit mogelijk is met de analoge pinnen en een geschikte zoemer. - verschillende officiële schaaktijdpatronen (bijvoorbeeld tijd toevoegen voor elke gespeelde zet) - gebruik het 7-segment om 2 cijfers te zijn voor minuten en 2 voor seconden

Stap 6: Update 2019

Update 2019!
Update 2019!
Update 2019!
Update 2019!
Update 2019!
Update 2019!

dus ik keerde terug naar mijn eerste Instructable en maakte deze schaakklok opnieuw!

Ik volgde min of meer dezelfde stappen, maar met de volgende verbeteringen:

Fysieke bouw

  • Het geheel is compacter en staat op een houten sokkel (zie foto's)
  • Overgeschakeld naar een enkele 9v-batterij die via een schakelaar rechtstreeks op het VIN en GND is aangesloten
  • De tuimelschakelaar is een meccano waarbij elke kant wordt ingedrukt wanneer erop wordt gedrukt door supersterke magneten.

Code

Ik heb ook de code verbeterd die hier is bijgevoegd. verbeteringen zijn:

  • De weergave van tienden van een seconde gedumpt en de cijfers naar rechts verschoven
  • Stappen toegevoegd. 5 min plus 5 sec per/zet en 10 min plus 5 sec per/zet toegevoegd als opties

Een reeks lijnen toegevoegd om de displays (L R) te schakelen als u na de build merkt dat de tuimelschakelaar niet de juiste klok start

Stroomkring

Aanbevolen: