Inhoudsopgave:

Rainbow Dice: 6 stappen (met afbeeldingen)
Rainbow Dice: 6 stappen (met afbeeldingen)

Video: Rainbow Dice: 6 stappen (met afbeeldingen)

Video: Rainbow Dice: 6 stappen (met afbeeldingen)
Video: Werken in een supermarkt be like 2024, September
Anonim
Regenboog dobbelstenen
Regenboog dobbelstenen

Dit maakt een dobbelspeldoos met 5 dobbelstenen gemaakt van smd-LED's in 5 kleuren. De software die het bestuurt, maakt verschillende spelmodi mogelijk met meerdere dobbelstenen.

Eén hoofdschakelaar maakt spelselectie en dobbelstenen mogelijk. Individuele schakelaars naast elke dobbelsteen maken selectie of controle mogelijk op basis van het speltype.

De bouwkosten zijn zeer bescheiden, maar er is wel behoorlijk wat bouwtijd, een goede soldeerbout en een vaste hand voor nodig.

De elektronica is gebaseerd op een ESP8266-module (ESP-12F) waarop een webserver draait die gemakkelijke firmware-updates en de mogelijkheid tot monitoring / uitbreiding van games mogelijk maakt.

De box werkt op batterijen met een oplaadbare batterij en aangezien het stroomverbruik vrij bescheiden is, kan hij vele uren werken op één lading.

Stap 1: Onderdelen en gereedschappen

Onderdelen en gereedschappen
Onderdelen en gereedschappen
Onderdelen en gereedschappen
Onderdelen en gereedschappen
Onderdelen en gereedschappen
Onderdelen en gereedschappen

Componenten

De volgende componenten zijn nodig. Ze zijn allemaal beschikbaar op eBay

  1. ESP-12F ESP8266 wifi-verwerkingsmodule. (£ 1,50)
  2. 18650 batterij en houder (£ 3,00)
  3. SMD LED's x7 van rood, blauw, groen, geel, wit (pak van 20 van elke kleur £ 0,99)
  4. Drukknop 6 mm schakelaars x6 (£ 0,12)
  5. Schuif aan/uit schakelaar mini 8x4mm (€ 0,10)
  6. LIPO USB-batterijladermodule (£ 0,20)
  7. n kanaal MOSFETS - AO3400 x6 (£0,20)
  8. 3.3V Low drop-out regelaar - XC6203E (£ 0,20)
  9. 220uF elektrolytisch (€ 0,15)
  10. 220R-weerstand x5 (£ 0,05)
  11. 4K7 weerstand x 6 (0,06)
  12. Prototype bord geïsoleerde dubbelzijdige gaten (£ 0,50)
  13. Flexibele aansluitdraad
  14. Geëmailleerd koperdraad 32
  15. Header pinnen 40 pin strips x3 (£0,30)

Daarnaast is een omheining nodig. Ik ontwierp een 3D-geprinte doos om alles in te bewaren en de LED's door te laten schijnen. Deze is verkrijgbaar bij Thingiverse.

Gereedschap

  1. Fijne punt soldeerbout
  2. Fijn pincet
  3. Draadsnijders
  4. Junior hakzaag
  5. Naaldvijlen zijn handig
  6. Harslijm
  7. Toegang tot 3D-printer bij gebruik van het meegeleverde doosontwerp.

Stap 2: Circuitbeschrijving

Circuitbeschrijving
Circuitbeschrijving

Het schema toont de ESP-12F-module die de 5 LED-arrays aanstuurt die de dobbelstenen vormen.

Elke dobbelsteen is gemaakt van 7 LED's die zijn gerangschikt op 3 paar (2 diagonalen en midden) plus een enkele centrale LED. Deze hebben 4 GPIO-pinnen nodig om de LEDS te selecteren die moeten worden weergegeven. 220R weerstanden worden gebruikt om de stroom te bepalen en 2 worden in serie gebruikt voor de middelste LED zodat de stroom hetzelfde is.

De 5 dobbelstenen worden gemultiplext door 5 GPIO-lijnen die MOSFET-schakelaars aandrijven. Er is slechts één schakelaar tegelijk ingeschakeld. De software staat 1 mSec per chip toe, dus de totale verversingsperiode is 200 Hz en er is geen flikkering.

Bij elke dobbelsteen horen 5 schakelaars. Omdat de GPIO beperkt is, worden deze gelezen door dezelfde lijnen te gebruiken die worden gebruikt om de matrijs te multiplexen. Tijdens de multiplex-sequentie worden deze stuurlijnen ingesteld als ingangen met pull-ups en wordt de status van de schakelaars gelezen. Ze worden dan teruggestuurd naar de uitgangen voor de rest van de multiplexreeks.

Een 6e schakelaar voor algehele controle wordt gelezen door de GPIO16-lijn. Dit kan alleen een pull-down hebben, dus de schakelaar is bedraad op 3,3V. Deze is laag als de schakelaar open is en hoog als deze gesloten is.

Stap 3: Constructie van de DIe

Constructie van de DIE
Constructie van de DIE
Bouw van de DIE
Bouw van de DIE

Dit is het meest tijdrovende deel van het werk en heeft zorg nodig.

Elke matrijs is geconstrueerd op een stuk 6-gaats x 6-gaats vierkant prototyping-bord. De eerste stap is om 5 van deze uit het ene bord te snijden met behulp van een mini-hackzaag. Probeer zo min mogelijk grenzen buiten de holes te laten.

De volgende fase is om 2 6-pins headers aan elke kant toe te voegen, en 2 sets van 3 geïsoleerde pinnen ernaast, en dan nog een paar in het midden. Dit is wat de SMD-LED's zal bevatten. Ik vind het goed om de 2 ongebruikte pinnen van elk van de buitenste kolommen te verwijderen. De bovenzijde van het bord waar de LEDS moeten worden gemonteerd, moeten de koppennen hebben afgesneden zodat er ongeveer 1 mm uitsteekt. Probeer ze allemaal gelijk te houden. Hierdoor kunnen de LEDS boven het oppervlak van het bord uitsteken.

De 7 SMD-LED's zijn nu op elk paar pinnen gesoldeerd. Dit is het lastigste deel van de algehele constructie, maar duurt niet te lang na een beetje oefenen. De techniek die ik gebruikte was om de bovenkant van de helft van de pinnen te vertinnen, zodat er al wat soldeer was. Houd vervolgens de LED in een pincet, smelt het soldeer opnieuw en steek de LED erin. Maak je in dit stadium niet al te veel zorgen over de kwaliteit van het gewricht. Belangrijker is om de uitlijning van de LED zo goed mogelijk te krijgen, horizontaal en over de pinnen. Als een LED eenmaal op zijn plaats zit, kan deze aan het andere uiteinde op de pin worden gesoldeerd en indien nodig de eerste verbinding opnieuw worden gesoldeerd.

De polariteit van de diodes moet goed zijn. Ik regel dat alle buitenste header-pinnen worden aangesloten op de anodes. De centrale LED heb ik in dezelfde richting gemaakt als de linkerkolom (gezien vanaf de voorkant en met de reserverij aan de onderkant. De diodes hebben een vage markering op de kathode, maar het is ook goed om te controleren met een meter. De diodes zullen branden echt bij gebruik van het weerstandsbereik (zeg 2K) en de rode draad op de anode en zwart op de kathode. Ze blijven andersom niet branden. Dit is ook een goede methode om de kleuren te controleren als ze door elkaar worden gehaald.

Zodra de LED's zijn gemonteerd, kan de rest van het bord worden voltooid.

Aan de onderkant van het bord.

  1. Sluit alle kathodes aan elkaar met behulp van een dunne, niet-geïsoleerde enkelstrengige draad.
  2. Soldeer de mosfet met de afvoerpin aangesloten op de kathodestreng
  3. Sluit de mosfet-bron aan op de header-pin die uiteindelijk 0V zal zijn
  4. Sluit de poort via een 4K7-weerstand aan op de header-pin. Het is goed om dit door een ander lager gat te rooten, zoals weergegeven, omdat hier de schakelaar zal worden aangesloten.

Op de voorkant van het bord kruist u de 3 paar anodes.

  1. Gebruik soldeerbare geëmailleerde draad om het profiel laag te houden.
  2. Voortin één uiteinde van elke draad
  3. Soldeer het aan één anode.
  4. Leid het door en knip het op lengte.
  5. Voortin en soldeer het op het overeenkomstige anodepaar.

Op dit punt is het goed om een voorlopige test van elke dobbelsteen uit te voeren met behulp van de multimeter. Met de zwarte draad op de gemeenschappelijke kathodes (Mosfet-afvoer), kan de rode draad worden verplaatst naar de 3 anodeparen en de enkele anode. De bijbehorende LED's moeten gaan branden.

Stap 4: Doosconstructie

Doosconstructie
Doosconstructie
Doosconstructie
Doosconstructie
Doosconstructie
Doosconstructie
Doosconstructie
Doosconstructie

Hierbij wordt ervan uitgegaan dat de 3D-geprinte doosversie wordt gebruikt. De doos heeft inkepingen voor elke dobbelsteen en elke LED. De onderste laag onder elke LED is erg dun (0,24 mm) dus met wit plastic laat het het licht heel goed doorschijnen en fungeert het als een diffuser. Er zijn uitsparingen voor alle schakelaars en oplaadpunt. De batterij heeft een eigen compartiment.

Monteer eerst de 6 mini-drukknopschakelaars en de schuifschakelaar. Zorg ervoor dat ze gelijk liggen met de buitenkant. De drukknopschakelaars hebben twee paren parallel geschakelde contacten. Oriënteer ze zodat de schakelcontacten zich naast hun dobbelsteen bevinden. Gebruik wat snelhardende hars om op zijn plaats te vergrendelen.

Monteer nu de batterij en de doos in de daarvoor bestemde ruimte. Het moet redelijk goed passen, maar gebruik indien nodig een beetje lijm.

Lijm de LIPO-oplader aan de muur die is voorzien van micro-USB die toegankelijk is via het gat.

Voltooi de basisstroombedrading door de batterijaarde door alle drukknopschakelaars en de LIPO B-aansluiting te leiden en een varkensstaart achter te laten voor aansluiting op de elektronica. De batterij + moet de B+ op de LIPO-oplader en op de schuifschakelaar gaan. De andere kant van de schuifschakelaar moet naar de zesde schakelaar gaan en een varkensstaart voor de elektronica. Zorg ervoor dat de schuifschakelaar in de uit-stand staat en isoleer de varkensstaarten tijdelijk. U wilt de batterij niet kortsluiten!

Soldeer op twee korte ongeïsoleerde varkensstaarten op elk van de 5 matrijsschakelaars. Deze moeten een beetje flexibel zijn.

Plaats en bevestig elk van de matrijs in zijn positie door op de twee schakelaarstaartjes op het matrijsbord te solderen en zorg ervoor dat de 0V van de schakelaar is aangesloten op de mosfet-bron / 0V-punt en de live-zijde van de schakelaar door naar de 4K7 / poort mosfet. De LED's op het bord moeten in de uitsparingen in de behuizing passen en de schakeldraden moeten voldoende zijn om de matrijs op zijn plaats te houden.

Verbind vervolgens alle gemeenschappelijke anodes van de 5 dobbelstenen. Dit wordt gemakkelijker gemaakt doordat de diodepaarverbindingen aan beide zijden van de matrijs beschikbaar zijn, maar houd er rekening mee dat deze op de diagonalen gekruist zijn. Raak niet in de war door de rode draad in de afbeelding die blijkbaar naar de dobbelsteen gaat. Het is gewoon de vlecht en is in dit stadium nergens mee verbonden.

ESP-12F make-up

Houd er rekening mee dat u de ESP-12F-module misschien wilt programmeren voordat u deze monteert. Zodra het is geflitst, kunnen alle andere updates worden gedaan met behulp van wifi OTA.

Maak de 3.3V-regelaar op een beetje overgebleven protype-kaart. Hierop zit alleen de LDO-regelaar en de ontkoppelcondensator. Hoewel de vermogensdissipatie erg laag is, soldeer ik een paar van de contacten aan elkaar om als koellichaam voor het apparaat te fungeren. Twee draden kunnen naar buiten uitsteken en een directe verbinding maken met de 3.3V / 0V van de ESP-12F.

Soldeer de draden op de GPIO-pinnen voor de 5 multiplexlijnen en de schakelaar 6. De 4 LED-anodedriverlijnen hebben de 220R / 440R-serieweerstanden in lijn nodig. Je kunt hiervoor kleine doorlopende weerstanden op de ESP-12F gebruiken of ik deed het met SMD die gewoon op de gaten was gestapeld, wat ook behoorlijk robuust is.

Sluit ten slotte de multiplexlijnen aan op de afzonderlijke pennen van de matrijskop en de anode-aandrijflijnen door naar hun overeenkomstige serieschakeling.

Stap 5: Software

De software hiervoor is gebaseerd op de Arduino-omgeving ESP8266. Het is beschikbaar op github.

Code beschikbaar hier

Er is een diceDriver-bibliotheek die de functies op laag niveau biedt die worden gebruikt om de LED's te multiplexen en de schakelaars te lezen. Dit wordt door een interrupt gestuurd, dus als de dobbelstenen eenmaal zijn ingesteld, is het zelfonderhoudend.

De totale timing is verdeeld in een interval van 1 mSec per dobbelsteen. De periode binnen deze 1 mSec dat LED's aan zijn, kan voor elke die afzonderlijk worden ingesteld. Hierdoor kan de verlichting worden gebalanceerd over de verschillende kleuren en is dimmen en flitsen ook mogelijk als onderdeel van de spelbesturing.

De bibliotheek leest ook de dobbelstenenwissels als onderdeel van de multiplex en heeft de routines om een of meer dobbelstenen parallel te 'rollen'.

De schets gebruikt de bibliotheek om een selectie van dobbelspelmodi te bieden en om deze spellen uit te voeren. Het biedt ook onderhoudsfuncties om wifi in eerste instantie in te stellen, om OTA nieuwe firmware te downloaden en om enkele basiswebfuncties te bieden om de status van het apparaat te testen en te controleren.

De software is gecompileerd in een Arduino IDE. Naast de ino gebruikt het de BaseSupport-bibliotheek om basisfuncties te bieden. Dit wordt geconfigureerd in het lokale BaseConfig.h-bestand. Een standaardwachtwoord van 'wachtwoord' wordt gebruikt om verbinding te maken met de wifi-installatie. Misschien wil je dat veranderen in iets anders. Je kunt het ook configureren met vaste wifi-inloggegevens als je de ingebouwde instellingen niet wilt gebruiken. Evenzo is er hetzelfde standaardwachtwoord voor het OTA-firmware-updateproces dat u misschien wilt wijzigen. De eerste keer dat de firmware moet worden geladen via de seriële verbinding met de Arduino IDE. Dit moet voldoen aan de normale knipperregels met GPIO0 laag getrokken tijdens het resetten om het in de seriële flash-modus te krijgen. Dit is handiger gedaan voordat de module definitief wordt aangesloten, maar kan ter plaatse worden gedaan als clips aan de relevante pinnen zijn bevestigd.

Wanneer de firmware voor de eerste keer wordt uitgevoerd, kan deze geen verbinding maken met de lokale wifi en wordt automatisch een instellingsmodus geactiveerd door een eigen toegangsnetwerk op te zetten. U kunt hier verbinding mee maken vanaf een wifi-apparaat (bijv. telefoon) en vervolgens bladeren naar 192.168.4.1 waarmee u de echte lokale wifi kunt selecteren en het wachtwoord kunt invoeren. Als dit in orde is, zal het opnieuw opstarten en dit netwerk gebruiken.

OTA wordt gedaan door binaire bestanden in de Arduino IDE te exporteren en vervolgens naar ip/firmware te bladeren, waarbij ip het ip van de box is wanneer deze is aangesloten. Dit zal vragen / bladeren naar het nieuwe binaire bestand.

Andere webfuncties zijn:

  • setpower - stelt het vermogen in voor een dobbelsteen (ip/setpower?dice=3&power=50)
  • setflash - stelt flits in voor dobbelstenen (ip/setflash?mask=7&interval=300)
  • setdice - stelt één dobbelsteenwaarde in (ip/setdice?dice=3&value=2)
  • parameters - stelt rolparameters in (ip/parameters?mask=7&time=4000&interval=200)
  • status - retourneert dobbelstenen en wisselstatus

Stap 6: Spelletjes

De software maakt het mogelijk om games te selecteren en games te laten draaien die worden bestuurd door de hoofdschakelaar.

Aanvankelijk bevindt het systeem zich in de spelinstellingsmodus met alleen de eerste dobbelsteen met een '1'. Je stapt door 12 verschillende spelmodi door kort op deze knop te drukken. De eerste dobbelsteen gaat van 1 - 6 en blijft dan op 6 staan, terwijl de tweede dobbelsteen 1-6 toont.

Om een bepaald spel te selecteren, druk je lang op de knop (> 1 seconde) en dit zet het in de game run-modus.

Binnen een spel wordt normaal gesproken een worp gestart met een korte druk op deze schakelaar. OM vanuit de run-modus terug te gaan naar de spelselectiemodus, drukt u lang op deze schakelaar en het spelnummer wordt dan als voorheen weergegeven en verdere selectie mogelijk gemaakt.

Er zijn momenteel 9 spelmodi gedefinieerd met 3 reserve.

Spellen 1 tot 5 zijn eenvoudige worpen van dat aantal dobbelstenen. Elke worp gooit gewoon alle dobbelstenen. De dobbelstenen hebben geen effect in deze spellen.

Spel 6 is een dynamisch aantal dobbelstenen. Druk op een van de dobbelsteenschakelaars om het aantal dobbelstenen te selecteren en vervolgens op de hoofdschakelaar om de dobbelstenen te gooien. Het aantal dobbelstenen kan voor elke worp worden gewijzigd.

Game 7 is een worp met meerdere worpen. Alle 5 dobbelstenen zijn betrokken. Een druk op de hoofdschakelaar gooit alle dobbelstenen. Door op elke matrijsschakelaar te drukken, gaat deze knipperen. Wanneer de hoofdschakelaar wordt ingedrukt, zal alleen de knipperende dobbelsteen rollen, behalve dat als er geen knippert, alle dobbelstenen zullen rollen. Dit is net als pokerdobbelstenen of Yahtzee. Let op: er is geen handhaving van het aantal toegestane worpen. Dat heeft te maken met de integriteit van de speler.

Game 8 is als Game 7, behalve dat dim wordt gebruikt om aan te geven dat de geselecteerde dobbelsteen niet knippert.

Game 9 gebruikt de dobbelsteenschakelaars om de rollen te bepalen. Als een van de top 3 wordt geselecteerd, bepaalt dit het aantal dobbelstenen dat moet worden gegooid 1, 2 of 3). Als dan een van de onderste 2 schakelaars wordt ingedrukt, blijft de bovenste rij behouden en dit selecteert het aantal dobbelstenen dat in de onderste rij moet worden gegooid (1 of 2). Dit wordt gebruikt in games als Risk.

Aanbevolen: