Innholdsfortegnelse:

Rainbow Dice: 6 trinn (med bilder)
Rainbow Dice: 6 trinn (med bilder)

Video: Rainbow Dice: 6 trinn (med bilder)

Video: Rainbow Dice: 6 trinn (med bilder)
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, Juli
Anonim
Rainbow Dice
Rainbow Dice

Dette lager en terningspillboks med 5 terninger laget av smd -lysdioder i 5 farger. Programvaren som driver den, gir mulighet for forskjellige spillmoduser med flere terninger involvert.

En hovedbryter tillater spillvalg og terningkast. Individuelle brytere ved siden av hver dør tillater valg eller kontroll i henhold til spilletype.

Byggekostnadene er svært beskjedne, men det krever en god del byggetid, et godt loddejern og en jevn hånd.

Elektronikken er basert på en ESP8266-modul (ESP-12F) som kjører en webserver som tillater enkle firmwareoppdateringer og mulighet for overvåking / utvidelse av spill.

Boksen er batteridrevet med et oppladbart batteri, og ettersom dagens forbruk er ganske beskjedent, vil den gå i mange timer på en lading.

Trinn 1: Deler og verktøy

Deler og verktøy
Deler og verktøy
Deler og verktøy
Deler og verktøy
Deler og verktøy
Deler og verktøy

Komponenter

Følgende komponenter er nødvendige. De er alle tilgjengelige på eBay

  1. ESP-12F ESP8266 wifi-behandlingsmodul. (£ 1,50)
  2. 18650 batteri og holder (£ 3,00)
  3. SMD -lysdioder x7 av rødt, blått, grønt, gult, hvitt (pakke med 20 av hver farge £ 0,99)
  4. Trykknapp 6 mm brytere x6 (0,12 kr)
  5. Skyv av/på -bryter mini 8x4mm (0,10 kr)
  6. LIPO USB batterilader (£ 0,20)
  7. n kanal MOSFETS - AO3400 x6 (£ 0,20)
  8. 3,3V lavt frafallsregulator - XC6203E (£ 0,20)
  9. 220uF elektrolytisk (0,15 kr)
  10. 220R motstand x5 (£ 0,05)
  11. 4K7 motstand x 6 (0,06)
  12. Prototype bord isolerte doble sidehull (£ 0,50)
  13. Fleksibel tilkoblingstråd
  14. Emaljert kobbertråd 32
  15. Toppstifter 40 -pins strips x3 (0,30 kr)

I tillegg er det nødvendig med et kabinett. Jeg designet en 3D -trykt eske for å holde alt og lar LED -ene skinne gjennom. Dette er tilgjengelig på Thingiverse.

Verktøy

  1. Fint punktloddejern
  2. Fine pinsetter
  3. Avbitertang
  4. Junior hack sag
  5. Nålfiler er nyttige
  6. Harpikslim
  7. Tilgang til 3D -skriver hvis du bruker esken.

Trinn 2: Kretsbeskrivelse

Kretsbeskrivelse
Kretsbeskrivelse

Skjematisk viser ESP-12F-modulen som driver de 5 LED-matrisene som utgjør terningen.

Hver terning er laget av 7 lysdioder arrangert med 3 par (2 diagonaler og midten) pluss en enkelt sentral LED. Disse trenger 4 GPIO -pinner for å velge lysdiodene som skal vises. 220R motstander brukes til å bestemme strømmen og 2 brukes i serie for senter -LED slik at strømmen er den samme.

De 5 terningene er multiplexert med 5 GPIO -linjer som driver MOSFET -brytere. Bare én bryter er aktivert om gangen. Programvaren tillater 1mSec per die, så den totale oppdateringsperioden er 200Hz og det er ingen flimmer.

5 brytere er knyttet til hver dør. Siden GPIO er begrenset, leses disse ved å bruke de samme linjene som brukes til å multiplexere matrisen. Under multiplex -sekvensen blir disse kontrollinjene satt som innganger med pull -ups og tilstanden til bryterne lest. De blir deretter returnert til utganger for resten av multiplekssekvensen.

En sjette bryter for total kontroll leses av GPIO16 -linjen. Dette kan bare trekkes ned slik at bryteren er koblet til 3,3V. Dette leser lavt når bryteren er åpen og høy når den er lukket.

Trinn 3: Konstruksjon av DIe

Bygging av DIe
Bygging av DIe
Bygging av DIe
Bygging av DIe

Dette er den mest tidkrevende delen av jobben og trenger omsorg.

Hver dør er konstruert på et stykke med 6 hull x 6 hull firkantet prototypebrett. Det første trinnet er å kutte ut 5 av disse fra det ene brettet ved hjelp av en minihakk sag. Prøv å la så liten grense utenfor hullene som mulig.

Det neste trinnet er å legge til 2 6 -pins hoder ned på hver side, og 2 sett med 3 isolerte pinner ved siden av disse, og deretter et ytterligere par i midten. Dette er hva som holder SMD -lysdiodene. Jeg synes det er godt å fjerne de 2 ubrukte pinnene fra hver av de ytre kolonnene. På oversiden av brettet der lysdiodene skal monteres, skal toppene være avskåret slik at omtrent 1 mm stikker ut. Prøv å holde dem alle på nivå. Dette gjør at lysdiodene kan stikke over overflaten av brettet.

De 7 SMD -lysdiodene er nå loddet på toppen av hvert pinnepar. Dette er den vanskeligste delen av den totale konstruksjonen, men tar ikke for lang tid etter litt øvelse. Teknikken jeg brukte var å tinne toppen av halvparten av pinnene, så det var allerede litt loddetinn. Hold deretter LED -en i pinsett, smelt loddetinnet igjen og kjør LED -en inn i den. Ikke bekymre deg for mye om kvaliteten på leddet på dette stadiet. Viktigere er å få justeringen av LED -en så god som mulig, horisontal og over tappene. Når en LED er på plass, kan den loddes ordentlig i den andre enden på pinnen og deretter den første skjøten løses om nødvendig.

Polariteten til dioder må være riktig. Jeg ordner alle de utvendige toppnålene som skal kobles til anodene. Den sentrale LED -en gjorde samme orientering som den venstre kolonnen (sett fra ansiktet og med den ekstra raden på bunnen. Diodene har et svakt merke på katoden, men det er også godt å sjekke med en meter. Diodene vil lyser faktisk når du bruker motstandsområdet (si 2K) og den røde ledningen på anoden og svart på katoden. De forblir ubelyste omvendt. Dette er også en god metode for å sjekke fargene hvis de blandes.

Når lysdiodene er montert, kan resten av brettet fullføres.

På undersiden av brettet.

  1. Koble alle katodene sammen ved hjelp av en tynn, enkelt tråd som ikke er isolert.
  2. Lodd mosfeten med dreneringspinne koblet til katodestrengen
  3. Koble mosfet -kilden over til toppnålen som til slutt vil være 0V
  4. Led porten gjennom en 4K7 -motstand til toppnålen. Det er godt å rotere dette gjennom et annet nedre hull som vist, da bryteren vil koble seg til.

På forsiden av tavlen krysser du de 3 parene med anoder.

  1. Bruk loddbar emaljert ledning for å holde profilen lav.
  2. Fortinn den ene enden av hver ledning
  3. Lodd den til en anode.
  4. Før den gjennom og skjær den i lengden.
  5. For-tinn og lodd den til det tilsvarende anodeparet.

På dette tidspunktet er det godt å gjøre en foreløpig test av hver dør ved å bruke multimeteret. Med den svarte ledningen på de vanlige katodene (Mosfet -drenering) kan den røde ledningen flyttes til de 3 anodeparene og enkeltanoden. De tilhørende lysdiodene skal lyse.

Trinn 4: Bokskonstruksjon

Bokskonstruksjon
Bokskonstruksjon
Bokskonstruksjon
Bokskonstruksjon
Bokskonstruksjon
Bokskonstruksjon
Bokskonstruksjon
Bokskonstruksjon

Dette forutsetter at 3D -trykt boksversjon brukes. Boksen har innrykk for hver dør og hver LED. Det nederste laget under hver LED er veldig tynt (0,24 mm), så med hvit plast lar det lyset skinne veldig godt og fungerer som en diffusor. Det er avbrudd for alle bryterne og ladepunktet. Batteriet har sitt eget rom.

Monter først de 6 mini -knappene og skyvebryteren på plass. Sørg for at de er i flukt med utsiden. Trykknappbryterne har to par kontakter koblet parallelt. Orienter dem slik at bryterkontaktene er i nærheten av deres dør. Bruk litt harpiks for å låse på plass.

Monter nå batteriet og esken på plass. Den skal passe ganske godt, men bruk litt lim om nødvendig.

Lim LIPO -laderen på veggen med mikro -USB tilgjengelig gjennom hullet.

Fullfør den grunnleggende strømledningen ved å sløyfe batteriets jord gjennom alle trykknappbryterne og LIPO B- tilkoblingen og la en grisehale stå for tilkobling til elektronikken. Batteriet + skal gå B + på LIPO -laderen og inn på glidebryteren. Den andre siden av glidebryteren skal gå til den sjette bryteren og en grisehale for elektronikken. Sørg for at glidebryteren er i av -stilling og isoler svinehalene midlertidig. Du vil ikke kortere batteriet!

Loddetinn på to korte, uisolerte grisehaler på hver av de 5 dørbryterne. Disse må være litt fleksible.

Plasser og fest hver av matrisen i sin posisjon ved å lodde på de to bryterflatene på dørplaten, og sørg for at bryterens 0V er koblet til mosfet -kilden / 0V -punktet og den levende siden av bryteren til 4K7 / porten mosfet. Lysdiodene på brettet skal passe i utsparingene i etuiet, og bryterledningene bør være tilstrekkelige til å holde dysen på plass.

Koble deretter til alle de vanlige anodene til de fem terningene. Dette gjøres lettere ved at diodeparforbindelsene er tilgjengelige på begge sider av dysen, men husk at disse krysses på diagonalene. Ikke bli forvirret av den røde ledningen på bildet som tilsynelatende kommer til å dø. Det er bare grisehalen og er ikke koblet til noe på dette stadiet.

ESP-12F sminke

Vær oppmerksom på at du kanskje vil programmere ESP-12F-modulen før montering. Når den har blitt blinket, kan alle andre oppdateringer gjøres ved hjelp av wifi OTA.

Gjør 3.3V -regulatoren på litt igjen av protypekortet. Dette har bare LDO -regulatoren på den og frakoblingskondensatoren. Selv om strømspredningen er veldig lav, lodder jeg noen få kontakter sammen for å fungere som en kjøleribbe for enheten. To ledninger kan stikke ut og gjøre en direkte forbindelse til 3.3V / 0V på ESP-12F.

Lodd på ledninger på GPIO -pinnene for de 5 multiplexlinjene og bryteren 6. De 4 LED -anodedriverlinjene trenger motstandene i 220R / 440R -serien på linje. Man kan bruke små gjennomgående hullmotstander på ESP-12F for dette, eller jeg gjorde det med SMD som bare var stablet på hullene, som også er ganske robust.

Slutt til slutt multiplexlinjene gjennom til de enkelte dørhodestiftene og anodedriverlinjene gjennom til den tilhørende tusenfrydkjeden.

Trinn 5: Programvare

Programvaren for dette er basert på ESP8266 Arduino -miljøet. Den er tilgjengelig på github.

Koden er tilgjengelig her

Det er et diceDriver -bibliotek som gir funksjonene på lavt nivå som brukes til å multiplexere lysdiodene og lese bryterne. Dette er interrupt -drevet, så når terningverdiene er satt, er det selvopprettholdt.

Den totale timingen er delt inn i 1 mSec -intervall per dør. Perioden innenfor denne 1 mSek. Lysdioder er på kan settes for hver dør uavhengig. Dette lar belysningen balansere på tvers av de forskjellige fargene, og tillater også dimming og blinking som en del av spillkontrollen.

Biblioteket leser også terningbryterne som en del av multiplexen og har rutiner for å "kaste" en eller flere terninger parallelt.

Skissen bruker biblioteket til å tilby et utvalg av terningspillmoduser og for å kjøre disse spillene. Det gir også vedlikeholdsfunksjoner for å sette opp wifi i utgangspunktet, for å OTA laste ned ny fastvare og for å gi noen grunnleggende webfunksjoner for å teste og kontrollere enhetens status.

Programvaren er samlet i en Arduino IDE. I tillegg til ino bruker den BaseSupport -biblioteket til å tilby grunnleggende funksjoner. Dette er konfigurert i den lokale BaseConfig.h -filen. Et standardpassord for 'passord' brukes for å koble til wifi -oppsettet. Det kan være lurt å endre det til noe annet. Du kan også konfigurere den med faste wifi -legitimasjoner hvis du ikke vil bruke det innebygde oppsettet. På samme måte er det samme standardpassordet for OTA -fastvareoppdateringsprosessen som du kanskje vil endre. Første gang må fastvaren lastes over den serielle tilkoblingen til Arduino IDE. Dette må følge de normale blinkende reglene med GPIO0 trukket lavt under tilbakestillingen for å komme i seriell flash -modus. Dette gjøres mer praktisk før modulen endelig er koblet til, men kan gjøres in situ hvis det er festet klipp til de relevante pinnene.

Når fastvaren kjøres for første gang, klarer den ikke å koble til den lokale wifi -enheten og går automatisk inn i en oppsettmodus ved å sette opp et eget tilgangsnettverk. Du kan koble til dette fra en wifi -enhet (f.eks. Telefon) og deretter bla til 192.168.4.1 som lar deg velge den virkelige lokale wifi og skrive inn passordet. Hvis dette er OK, vil det starte på nytt og bruke dette nettverket.

OTA gjøres ved å eksportere binære filer i Arduino IDE og deretter bla til ip/fastvare der ip er ip i boksen når den er tilkoblet. Dette vil be / bla etter den nye binæren.

Andre webfunksjoner er

  • setpower - angir effekt for en dør (ip/setpower? dice = 3 & power = 50)
  • setflash - setter flash for terninger (ip/setflash? mask = 7 & interval = 300)
  • setdice - angir en dørverdi (ip/setdice? dice = 3 & value = 2)
  • parametere - angir rulleparametere (ip/parameters? mask = 7 & time = 4000 & interval = 200)
  • status - returnerer terningverdier og bytter status

Trinn 6: Spill

Programvaren tillater spillvalg og spillkjøring kontrollert av hovedbryteren.

I utgangspunktet er systemet i spillinnstillingsmodus med bare den første terningen som viser en '1'. Du går rundt 12 forskjellige spillmoduser ved å trykke korte på denne knappen. Den første terningen går 1 - 6, og blir deretter på 6 mens den andre terningen viser 1-6.

For å velge et bestemt spill gjør du et langt trykk på knappen (> 1 sekund), og dette setter det i spillkjøringsmodus.

I et spill starter en rulle normalt med et kort trykk på denne bryteren. FOR å komme tilbake til spillvalgsmodus fra kjøremodus, trykk deretter lenge på denne bryteren, og det vil da vise spillnummeret som før og tillate ytterligere valg.

9 spillmoduser er definert for øyeblikket med 3 ekstra.

Spill 1 til 5 er enkle kast med det antallet terninger. Hver kast ruller bare terningene. Terningsknappene har ingen effekt i disse spillene.

Spill 6 er et dynamisk antall terninger. Trykk på en av dørbryterne for å velge antall terninger og deretter hovedbryteren for å kaste terningen. Antallet terninger kan endres før hvert kast.

Spill 7 er en kast med flere kast. Alle 5 terningene er involvert. Et trykk på hovedbryteren kaster alle terninger. Ved å trykke på hver dørbryter får den til å blinke. Når du trykker på hovedbryteren, ruller bare den blinkende matrisen bortsett fra at hvis ingen blinker, vil alle rulle. Dette er som poker terninger eller Yahtzee. Vær oppmerksom på at det ikke er noen håndhevelse av antall kast som er tillatt. Det er opp til spillerens integritet.

Spill 8 er som spill 7 bortsett fra svakt brukes til å indikere at valgt dør ikke blinker.

Spill 9 bruker dørbryterne for å bestemme rullene. Hvis en av de 3 beste er valgt, bestemmer dette antall terninger som skal kastes 1, 2 eller 3). Hvis du trykker på en av de to nederste bryterne, beholdes den øverste raden, og dette velger antall terninger som skal kastes i den nederste raden (1 eller 2). Dette brukes i spill som Risk.

Anbefalt: