INHOUDSOPGAWE:

Magic Answers Ball met Arduino Pro Mini en TFT -skerm: 7 stappe
Magic Answers Ball met Arduino Pro Mini en TFT -skerm: 7 stappe

Video: Magic Answers Ball met Arduino Pro Mini en TFT -skerm: 7 stappe

Video: Magic Answers Ball met Arduino Pro Mini en TFT -skerm: 7 stappe
Video: Don't Do This At Home 2024, November
Anonim
Magic Answers Ball Met Arduino Pro Mini en TFT Display
Magic Answers Ball Met Arduino Pro Mini en TFT Display
Magic Answers Ball Met Arduino Pro Mini en TFT Display
Magic Answers Ball Met Arduino Pro Mini en TFT Display
Magic Answers Ball Met Arduino Pro Mini en TFT Display
Magic Answers Ball Met Arduino Pro Mini en TFT Display

'N Rukkie terug het ek en my dogter 'n Magic 8 -bal uitmekaar gehaal sodat sy die twintig reaksies kon vervang met die van haar keuse. Dit was 'n geskenk vir 'n vriendin van haar. Dit het my laat dink hoe ek dit op groter skaal kan doen. Kan ons baie meer as 20 antwoorde hê? Met 'n elektroniese weergawe kan ons!

So dit sal beskryf hoe ek 'n Mattel Magic 8 Ball gedemonteer het (jammer, Mattel) en 'n ronde TFT-skerm gebruik om 'n ongelooflike aantal ekstra antwoorde te toon (die kleinste mikro-SD-kaart wat ek kon vind, was 8GB's, so dit is regtig te veel vir waarvoor dit gebruik word). Die bal gebruik 'n Sparkfun Wake-on-shake-bord om die reaksie te aktiveer en die bal daarna af te skakel om die battery te bespaar. 'N Herlaaibord word gebruik om die battery vanaf 'n USB -verbinding te herlaai.

Voorrade

Dele:

Arduino Pro Mini 328 - 3.3V/8MHz

SparkFun Wake on Shake

Litium -ion battery - 400 mAh

Organiseerder 12 stuks TP4056 laaimodule 5V mikro -USB 1A 18650 laaibattery laaibord met beskermingslaaier module (u benodig slegs een hiervan, maar die 12 -pak was minder as $ 9)

DAOKI 5 stuks Micro SD -bergingskaart (weer, u benodig net een, maar die 5 -pak was nog steeds minder as $ 9)

DFRobot 2.2 duim TFT LCD -skermmodule

Kingston 8 GB microSD (u het moontlik 'n ou een in u huis)

Perma-Proto kwartgrootte broodbord-PCB (u kan ook net die PCB gebruik wat u wil)

Magic 8 Ball

FTDI Basic breakout 3.3V (u het moontlik reeds een hiervan as u 'n soortgelyke projek met die Arduino Pro Mini of soortgelyke bord gedoen het)

4 -pen behuizing met 2.54 mm JST XH manlike/vroulike penkop Dupont -draadverbindingsstel (opsioneel, maar word aanbeveel om die battery aan te sluit)

Ander basiese voorrade:

Sugru vervormbare gom (kan kleefband en warm gom gebruik, maar ek hou beter hiervan)

Kleefband

Dubbelzijdige skuimband

Draad

Gereedskap:

Soldeerbout

Rotary -instrument van u keuse (dws Dremel)

Meubelklem

Stap 1: Sny die Magic 8 Ball in die helfte

Sny die Magic 8 Ball in die helfte
Sny die Magic 8 Ball in die helfte
Sny die Magic 8 Ball in die helfte
Sny die Magic 8 Ball in die helfte

Eerstens moet u die Magic 8 Ball in twee verdeel. Ek het myne vasgemaak aan 'n werktafel met die plat kant na onder met 'n meubelklem. Sny langs die naat van die bal met 'n Dremel met 'n basiese snyskyf daarby. U moet diep sny, so ver as wat die snyskyf toelaat. Vat dit stadig. Selfs nadat u heeltemal gesny het, moet u moontlik 'n platskroewedraaier of beitel gebruik om die laaste skeiding te doen. Daar is 'n silinder wat die 'magiese' vloeistof en die icosahedron (twintigkantige vorm - ja, ek moes dit opsoek) binne hou. Gooi dit weg of gebruik dit in 'n ander projek. As u dit in 'n ander projek gebruik, laat weet my wat u gedoen het, sodat ek sal weet wat ek met myne moet doen.

U sal twee helftes oorlaat soos op die foto's. Ek het dit nou drie keer gedoen, en die laaste keer was die wit lip gladder as om rante te hê, sodat jou bal effens anders kan lyk as die op die foto.

Daar sal nog 'n paar plastiekslakke aan die buitekant wees (die gesmelte en geharde plastiek). Rem dit met u hande af, as u kan; As u 'n gereedskap gebruik, loop u die risiko om die bal op die bal af te skud, en die slak kom maklik af.

Stap 2: Berei die bal voor

Berei die bal voor
Berei die bal voor
Berei die bal voor
Berei die bal voor
Berei die bal voor
Berei die bal voor

Daar is twee wysigings wat ons aan die plastiekhelftes van die bal moet maak.

Eerstens, in die oop helfte, die een met die "8" geverf, moet ons 'n gebied groot genoeg skeer sodat ons USB -laaibord kan sit terwyl die USB -poort uitsteek. Ek het my Dremel gebruik met 'n growwe skuurtrommel daarby. U wil dit so dun as wat u kan kry sonder om skoon te gaan. Sny dan 'n klein opening net groot genoeg sodat die USB -poort na buite kan steek. Ek het 'n remklauw gebruik om die USB -poort te meet, maar u kan dit waarskynlik met die oog sien as dit nodig is. Ek het weer die Dremel met 'n klein snyaanhegsel gebruik om die opening te maak. Die eerste twee foto's toon die opening en hoe dit lyk met die USB -kaart daaragter.

Tweedens, in die ander helfte, die een met 'n gat aan beide kante en die wit plastieklip, berei 'n plek voor vir die skerm om te sit. Net binne die opening waar die skerm gaan sit, is daar plastiekrante en 'n rubber (?) Flens aan die binnekant van die opening. Haal die flens uit en sit dit eenkant. Ons sal dit later terugstel, maar ons wil dit vir hierdie stap uit die weg ruim. Die skerm het 'n reghoekige extrusie aan die een kant wat dit nie toelaat om plat in die opening te sit as sommige van hierdie rante nie verwyder word nie. Gebruik die growwe skuurtrommel weer op die Dremel om dit soveel as moontlik af te skeer. Kom uit die gat waar die vertoning die beste hoek sal wees. Dit moet soos die foto's lyk wanneer dit voltooi is. Let op, die foto's toon die skerm op sy plek, maar moet dit nog nie aanheg nie.

Stap 3: Berei die antwoorde op die Micro-SD-kaart voor

Hierdie stap is 'n bietjie ingewikkelder as wat u dink. As u nie u eie lys met antwoorde wil skep nie, gaan dan na die laaste paragraaf van hierdie stap.

Die bedoeling is dat ons aan die bal 'n lys snare kan gee wat as moontlike antwoorde gebruik moet word, en hulle sal op die skerm gesentreer wees sonder breuke in die middel van woorde. Ons wil nie hierdie verwerking op die mikrobeheerder doen nie, en ons wil 'n lêer met 'n statiese rekordgrootte hê om 'n spesifieke reël vinnig te kan vind.

Alhoewel die skerm rond is, is dit funksioneel 'n virtuele reghoekige skerm met slegs pixels in die sirkel sigbaar. Die skerm kan teks met veelvuldige grootte vertoon, maar ons gebruik slegs die kleinste weergawe van 6 x 8 pixels. Deur hierdie grootte te gebruik, is daar 315 karakters wat die skerm op 'n skerm kan plaas (21 karakters per reël en 15 reëls), maar slegs 221 is sigbaar en elke reël het 'n ander aantal sigbare karakters. Sien u die probleem?

Ek het 'n Java -program geskryf om 'n lêer met onopgemaakte antwoorde in te neem en om te skakel in volledig gesentreerde rekords wat maklik op die ronde TFT vertoon kan word. (skakel om die lêer "FormatToPicksFileFullyCentered.java" af te laai).

Sonder om 'n verduideliking van die hele kode te gee, is die algemene idee dat ons agteruit van die middelpunt (ish) werk en spasies invoeg om seker te maak dat ons nie woorde oor sigbare lyne breek nie, en dan dieselfde doen vanaf die sentreer vorentoe. Laastens loop ons deur al die reëls en sentreer ons elke reël binne-in die volle 21 karakterlyne om 'n rekord van presies 316 grepe (315 alfanumeriese karakters plus 'n nuwe reël) te skep. Die kode werk eintlik deur drie lettertipes, x 3, x 2 en x 1, om te sien watter die grootste lettertipe is wat nog gebruik kan word en steeds by die teks pas. Die sentrering is 'n bietjie af vir die x 2 en x 3 lettertipes, jammer. Pasop vir karakters wat meer as een byte beslaan, dit kan die lêer wat afgelewer word, weggooi.

Kopieer die "picks.txt" -lêer na die mikro-SD-kaart.

As u nie die moeite wil doen om u eie lys te kies nie, het ek my lys keuses opgeneem wat u op die SD -kaart kan kopieer en gebruik. Ek kon op die oomblik nie 'n.txt -lêer na instruksies laai nie, so hier is 'n skakel waar u die picks.txt -lêer kan aflaai.

Stap 4: Laai kode op na die Arduino Mini

Laai kode op na die Arduino Mini
Laai kode op na die Arduino Mini
Laai kode op na die Arduino Mini
Laai kode op na die Arduino Mini
Laai kode op na die Arduino Mini
Laai kode op na die Arduino Mini

Eerstens, as u nog nooit die Arduino Pro Mini gebruik het nie, kan u nie net 'n USB -kabel aansluit en aflaai nie; u moet 'n FTDI -bord gebruik en die drade verbind met die toepaslike penne op die mini. Ek sal nie hier 'n handleiding gee nie; daar is baie op die internet. Vir my wou ek nie 'n permanente aansluiting op die mikrokontrollerbord soldeer wat slegs een keer gebruik sou word om die kode af te laai nie, so ek het 'n klein snitjie gemaak wat gebruik kan word om die mini te programmeer sonder om te soldeer (sien foto's). Dit is geïnspireer deur produkte soos Fiddy, maar ek het nie maklike toegang tot 'n 3D -drukker nie, so ek het my eie gemaak van 'n aartappelskyfie. As mense belangstel, sal ek net 'n instruksie daarvoor maak.

Op na die kode. Daar is 'n paar interessante dele in hierdie kode, maar dit is meestal eenvoudig.

In die opstellingsfunksie is daar 'n ordentlike hoeveelheid kode wat handel oor die verkryging van 'n goeie ewekansige saad. Die tipiese metode om die analooglees van 'n nie -gekoppelde pen te gebruik, gee in my ervaring nie 'n gevarieerde genoeg reaksie nie. Ek kry 'n getal tussen 477 en 482. Aangesien die ewekansige funksie van Arduino een en slegs een ry het en die saad bepaal waar om te begin in die volgorde, sal so 'n nou bereik uiteindelik nie genoeg reaksies oplewer nie. Hou in gedagte dat hierdie kode in wese weer begin elke keer as die Wake-on-shake-bord die krag aan en weer aanskakel, dus is die aanvanklike volgordeposisie wat deur die saad bepaal word, van kardinale belang. Om hiermee te help, skryf ek 'n baie klein lêer op die SD -kaart om die laaste saad by te hou en dit by te voeg tot 'n nuwe waarde wat uit die nie -gekoppelde pen kom.

Sodra 'n keuse in die lusfunksie gekies is en in 'n karakterreeks ingelees is, kan ons nie net die hele string afdruk nie. Die skerm het 'n beperking op die lengte van 'n string wat dit op 'n slag kan hanteer. Om hierdie rede moet ons deur elkeen van die vyftien reëls loop en een vir een na die skerm stuur.

Vereiste eksterne biblioteke:

ST7687S -biblioteek

DFRobot-vertoonbiblioteek

Stap 5: Verbind die komponente

Verbind die komponente
Verbind die komponente
Verbind die komponente
Verbind die komponente

Tyd om al die drade van die drade te doen. Ek was geneig om te fouteer aan die kant van effens langer drade as wat ek regtig nodig gehad het, maar dit het uiteindelik goed uitgewerk.

In die aangehegte skematiese voorstelling word die TFT -skerm verteenwoordig deur 'n aansluiting eerder as 'n prentjie van die hele skerm (waarvoor ek nie 'n Fritzing -onderdeel kon vind nie). Ek het die drade/penne gemerk op grond van hoe dit op die onderdeel gemerk is. Net so is die SD -kaart nie presies die een wat ek gebruik het nie, maar ek het die drade/penne van die onderstaande lys aangedui.

Daar is een komponent wat ek nie tydens hierdie stap saamgesoldeer het nie: die battery. In plaas daarvan het ek 'n vierpen-aansluiting gebruik met die twee middelste penne verwyder (tweede prentjie). Hiermee kon ek al die komponente wat aan mekaar gekoppel is, toets en dan die battery ontkoppel terwyl ek alles aan die bal vasgemaak het.

Uiteindelik het ek 'n permanente PCB van 'n kwartgrootte paneelbord gebruik om die krag en gedeelde verbindings makliker te maak. U sal dit sien op die vergaderingsfoto's.

Toets of alles werk

Stap 6: Heg komponente aan die bal vas

Heg komponente aan die bal vas
Heg komponente aan die bal vas
Heg komponente aan die bal vas
Heg komponente aan die bal vas
Heg komponente aan die bal vas
Heg komponente aan die bal vas
Heg komponente aan die bal vas
Heg komponente aan die bal vas

Plaas eers die skerm en gebruik 'n bietjie Sugru om dit te beveilig (eerste twee beelde). Moenie vergeet van die flens wat u vroeër verwyder het nie; u moet dit weer in plek hê voordat die skerm vasgemaak word.

Daarna plak ek die protobord onder in die leë helfte van die bal vas. Ek het al my soldate aan die een kant van die bord gehou, so ek het nog die helfte van die bord waarop ek kon plak. Ek plak die battery bo-op dieselfde helfte van die protobord (derde prentjie) vas.

Albei helftes is nou met drade verbind. Ontdek waar die USB -gat sal eindig as u die twee helftes bymekaar sit. As die stekels van die wit lip styf is, moet u in gedagte hou dat dit in die middel van een van die wiglippe vasgekeer moet word, want ons sal die USB -laaibord tussen twee van die plastiekrante op die lip vasmaak.

Bevestig die USB-laaibord met 'n klein stukkie dubbelzijdige skuimband. Die dubbelzijdige band moet nie die hele onderkant van die laaibord bedek nie, want die punt met die drade vasgemaak hang oor die middelste rand van die wit lip. Die band moet dus ongeveer driekwart van die onderkant van die bord bedek. Plaas die band eers op die onderkant van die bord en druk dit dan vas op die plek waarop u besluit het. Die USB -aansluiting moet aan die rand van die bal wees en in die swart gedeelte van die plastiek steek sonder om buite die bal te gaan. Gebruik laastens nog 'n bietjie Sugru bo -op die bord en bevestig dit aan beide kante. Dit voeg net ekstra krag by wanneer 'n kabel in die USB -poort ingedruk word.

Plaas die mikro-SD-kaart nou in die SD-kaartmodule

As u wil, kan u die ander komponente aan die wit lip vasmaak. Ek het die oorblywende komponente net agter die skerm ingesteek.

Stap 7: Sit die twee helftes weer bymekaar

Sit die twee helftes weer bymekaar
Sit die twee helftes weer bymekaar
Sit die twee helftes weer bymekaar
Sit die twee helftes weer bymekaar

Kontroleer of u die SD -kaart ingesit het en dat u al die komponente saam getoets het.

Ok, as jy gereed is, maak 'n lang slang uit 'n bietjie Sugru -gom en voer dit met die wit lip (eerste prentjie) om die rand van die helfte van die bal. Die gom moet op die kruising gelê word waar die swart en wit dele van die plastiek bymekaar kom. As u die gom hier plaas, sorg u dat u 'n sterk band het terwyl u die hoeveelheid gom wat uit die skeur kom, tot die minimum beperk.

Druk die twee helftes saam en maak seker dat die USB -poort deur die gaatjie steek wat voorheen daarvoor gesny is. Klem die twee helftes vas met die meubelklem, net styf genoeg om die helftes bymekaar te hou; dit is nie nodig om dit vas te hou nie. Die Sugru -gom verhard binne ongeveer 24 uur.

As u van die gom wat uit die gewrig uitgedruk is, verwyder, kan u dit met u vinger of 'n gladde lap/papierhanddoek afskraap.

Aanbeveel: