Indholdsfortegnelse:

Magic Answers Ball med Arduino Pro Mini og TFT -skærm: 7 trin
Magic Answers Ball med Arduino Pro Mini og TFT -skærm: 7 trin

Video: Magic Answers Ball med Arduino Pro Mini og TFT -skærm: 7 trin

Video: Magic Answers Ball med Arduino Pro Mini og TFT -skærm: 7 trin
Video: His laptop died so he used his TYPEWRITER. 😭🤷‍♂️ #shorts 2024, Juli
Anonim
Magic Answers Ball med Arduino Pro Mini og TFT -skærm
Magic Answers Ball med Arduino Pro Mini og TFT -skærm
Magic Answers Ball med Arduino Pro Mini og TFT -skærm
Magic Answers Ball med Arduino Pro Mini og TFT -skærm
Magic Answers Ball med Arduino Pro Mini og TFT -skærm
Magic Answers Ball med Arduino Pro Mini og TFT -skærm

For et stykke tid siden adskilte min datter og jeg en Magic 8 -bold, så hun kunne erstatte de tyve svar med dem, hun valgte. Dette var en gave til en af hendes veninder. Det fik mig til at tænke på, hvordan jeg skulle gøre det i større skala. Kunne vi have meget mere end 20 svar? Med en elektronisk version kan vi!

Så dette vil beskrive, hvordan jeg adskilte en Mattel Magic 8 Ball (undskyld, Mattel) og brugte en rund TFT-skærm til at vise utroligt mange yderligere svar (det mindste mikro-SD-kort, jeg kunne finde, var 8 GB, så det er virkelig overkill for hvad det bruges til). Bolden bruger et Sparkfun Wake-on-shake board til at udløse responsen og til at slukke bolden bagefter for at spare på batteriet. Et genopladningskort bruges til at lade batteriet oplades fra en USB -forbindelse.

Forbrugsvarer

Dele:

Arduino Pro Mini 328 - 3.3V/8MHz

SparkFun Wake on Shake

Litiumionbatteri - 400mAh

Organizer 12 stk. TP4056 opladningsmodul 5V Micro USB 1A 18650 litiumbatteri opladningskort med beskyttelses oplader modul (du har kun brug for en af disse, men 12 pakken var mindre end $ 9)

DAOKI 5Pcs Micro SD Storage Board (igen, du behøver kun en, men 5 -pakken var stadig mindre end $ 9)

DFRobot 2,2 tommer TFT LCD -displaymodul

Kingston 8 GB microSD (du har muligvis en gammel af dem liggende i dit hus)

Perma-Proto Breadboard PCB i kvart størrelse (du kan også bare bruge den PCB, du kan lide)

Magic 8 Ball

FTDI Basic breakout 3.3V (du har muligvis allerede en af disse, hvis du har lavet et lignende projekt med Arduino Pro Mini eller lignende kort)

4 -polet hus med 2,54 mm JST XH han/hun pin -overskrift Dupont Wire Connector Kit (valgfrit, men anbefales til tilslutning af batteriet)

Andre basale forsyninger:

Sugru Formable Lim (kunne bruge tape og varm lim, men jeg kan bedre lide dette)

Gaffatape

Dobbeltsidet skumtape

Tråd

Værktøjer:

Loddekolbe

Valgbart roterende værktøj (dvs. Dremel)

Møbelklemme

Trin 1: Skær den magiske 8 kugle i halve

Skær den magiske 8 kugle i halve
Skær den magiske 8 kugle i halve
Skær den magiske 8 kugle i halve
Skær den magiske 8 kugle i halve

Først skal du dele Magic 8 Ball i to. Jeg fastgjorde mit til et arbejdsbord med den flade side nedad ved hjælp af en møbelklemme. Skær langs kuglens søm ved hjælp af en Dremel med en fastgjort skæreskive påsat. Du bliver nødt til at skære dybt, stort set så langt som skæreskiven tillader det. Tag det roligt. Selv efter at du har skåret hele vejen rundt, skal du muligvis bruge en flad skruetrækker eller mejsel til at foretage den sidste adskillelse. Der er en cylinder, der holder den "magiske" væske og icosahedronen (tyve sidet form - ja, det måtte jeg slå op) indeni. Bare smid det væk eller brug det i et andet projekt. Hvis du gør det i et andet projekt, så lad mig vide, hvad du gjorde, så ved jeg, hvad jeg skal gøre med mit.

Du står tilbage med to halvdele som vist på billederne. Jeg har gjort dette tre gange nu og senest, den hvide læbe var glat frem for at have kamme, så din bold kan se lidt anderledes ud end den på billedet.

Der vil stadig være noget plastikslagge omkring yderkanten (den smeltede og genhærdede plast). Bremse det af med dine hænder, hvis du kan; hvis du bruger et værktøj, risikerer du at rive afslutningen på bolden, og slaggen kommer ret let af.

Trin 2: Forbered bolden

Forbered bolden
Forbered bolden
Forbered bolden
Forbered bolden
Forbered bolden
Forbered bolden

Der er to ændringer, vi skal foretage til plasthalvdelene af bolden.

For det første, i den åbne halvdel, den der har "8" malet på det, skal vi barbere et område, der er stort nok til, at vores USB -opladningskort kan sidde med USB -porten, der stikker ud. Jeg brugte min Dremel med en grov slibetromle vedhæftet. Du vil have dette så tyndt som du kan få uden at gå rent igennem. Skær derefter en lille åbning lige stor nok til, at USB -porten kan stikke igennem til ydersiden. Jeg brugte en tykkelse til at måle USB -porten, men du kan sandsynligvis se dette, hvis du har brug for det. Igen brugte jeg Dremel med et lille skæreudstyr til at lave åbningen. De to første billeder viser åbningen og hvordan det ser ud med USB -kortet bagved.

For det andet, i den anden halvdel, den med hul på begge sider og den hvide plastiklæbe, skal du forberede et sted, hvor displayet kan sidde. Lige inden for åbningen, hvor displayet vil sidde, er der plastikkanter og en gummiflange (?) På indersiden af åbningen. Tag flangen ud og sæt den til side. Vi vil lægge det tilbage senere, men vi vil have det af vejen for dette trin. Displayet har en rektangulær ekstrudering på den ene side, der ikke tillader det at sidde fladt i åbningen, hvis nogle af disse kamme ikke fjernes. Brug den grove slibetromle på Dremel igen, og barber dem så meget som muligt. Kom ind fra hullet, hvor displayet vil være for den bedste vinkel. Det skal ligne billederne, når det er færdigt. Bemærk, billederne viser displayet på plads, men DU MÅ IKKE FÆSTE DET endnu.

Trin 3: Forbered svarene på Micro-SD-kortet

Dette trin er lidt mere kompliceret, end du måske tror. Hvis du ikke vil oprette din egen liste med svar, skal du springe til det sidste afsnit i dette trin.

Hensigten er, at vi kan give bolden en liste over strenge, der skal bruges som mulige svar, og de vil blive centreret på skærmen uden pauser midt i ordene. Vi ønsker ikke at udføre denne behandling på mikrokontrolleren, og vi vil have en fil med statisk rekordstørrelse for hurtigt at kunne finde en bestemt linje.

Selvom displayet er rundt, er det funktionelt et virtuelt rektangulært display med kun pixels i cirklen synlig. Displayet kan vise tekst i flere størrelser, men vi bruger kun den mindste version, som er 6 x 8 pixels. Ved hjælp af denne størrelse er der 315 tegn, som displayet kan sætte på en skærm (21 tegn pr. Linje gange 15 linjer), men kun 221 er synlige, og hver linje har et andet antal synlige tegn. Kan du se problemet?

Jeg skrev et Java -program for at optage en fil med uformaterede svar og konvertere dem til fuldt centrerede poster, der let kunne vises på den runde TFT. (link for at downloade filen "FormatToPicksFileFullyCentered.java").

Uden at gå ind på en forklaring på hele koden, er den generelle idé, at vi arbejder os baglæns fra midten (ish) og indsætter mellemrum for at sikre, at vi ikke bryder ord på tværs af synlige linjer, og derefter gør det samme fra center frem. Endelig går vi igennem alle linjerne og centrerer hver linje inde i de hele 21 tegnlinjer for at oprette en rekord på præcis 316 bytes (315 alfanumeriske tegn plus et nyt linjetegn). Koden fungerer faktisk gennem tre skrifttyper, x 3, x 2 og x 1 for at se, hvilken er den største skrifttype, der kan bruges og stadig passer til teksten. Centreringen er lidt slukket for x 2 og x 3 skrifttyper, beklager. Vær forsigtig med tegn, der fylder mere end en byte, disse kan smide den fil, der sendes ud.

Kopier filen "picks.txt" til micro-SD-kortet.

Hvis du ikke vil gå igennem besværet med at oprette din egen liste med valg, har jeg inkluderet min liste over valg, som du bare kan kopiere til SD -kortet og bruge. Jeg kunne ikke uploade en.txt -fil til instruktører på nuværende tidspunkt, så her er et link til, hvor du kan downloade picks.txt -filen.

Trin 4: Upload kode til Arduino Mini

Upload kode til Arduino Mini
Upload kode til Arduino Mini
Upload kode til Arduino Mini
Upload kode til Arduino Mini
Upload kode til Arduino Mini
Upload kode til Arduino Mini

For det første, hvis du aldrig har brugt Arduino Pro Mini før, kan du ikke bare tilslutte et USB -kabel og downloade; du skal bruge et FTDI -kort og forbinde ledningerne til de relevante stifter på mini. Jeg vil ikke give en vejledning om det her, der er masser ude på nettet. For mig ville jeg ikke lodde et permanent stik på mikrokontrolkortet, der kun ville blive brugt en gang til at downloade koden, så jeg lavede et lille klip, der kan bruges til at programmere mini uden lodning (se billeder). Dette var inspireret af produkter som Fiddy, men jeg har ikke let adgang til en 3D -printer, så jeg lavede min egen af et kartoffelchipsclip. Hvis folk er interesserede, laver jeg en instruerbar lige til det.

Videre til koden. Der er et par interessante dele af denne kode, men det er for det meste lige frem.

I opsætningsfunktionen er der en anstændig mængde kode, der beskæftiger sig med at få et godt tilfældigt frø. Den typiske metode til at bruge den analoge læsning fra en ikke -tilsluttet pin giver ikke en varieret nok respons i min erfaring. Jeg får et tal mellem 477 og 482. Da Arduino tilfældige funktion har en og kun en sekvens, og frøet bestemmer, hvor der skal startes i den sekvens, vil et så snævert område ikke producere nok mulige svar til sidst. Husk, at denne kode i det væsentlige starter forfra hver gang Wake-on-shake-tavlen slukker og tænder for strømmen, så den oprindelige sekvensposition, der bestemmes af frøet, er afgørende. For at hjælpe med dette skriver jeg en meget lille fil til SD -kortet for at holde styr på det sidste frø og tilføje det til en ny værdi, der kommer fra den ikke -tilsluttede pin.

Når først et valg er valgt i loop -funktionen og læst ind i et karakter array, kan vi ikke bare udskrive hele strengen. Displayet har en grænse for, hvor lang en streng det kan håndtere ad gangen. Af denne grund skal vi gå gennem hver af de femten linjer og sende dem til displayet én ad gangen.

Påkrævede eksterne biblioteker:

ST7687S bibliotek

DFRobot-Display-bibliotek

Trin 5: Tilslut komponenterne

Tråd op komponenterne
Tråd op komponenterne
Tråd op komponenterne
Tråd op komponenterne

Tid til at gøre alt lodning af ledninger. Jeg havde en tendens til at tage fejl på siden af lidt længere ledninger, end jeg virkelig havde brug for, men det endte godt.

I den vedlagte skematik er TFT -displayet repræsenteret af et stik frem for et billede af hele displayet (som jeg ikke kunne finde en Fritzing -del til). Jeg har mærket ledningerne/stifterne baseret på, hvordan de er mærket på delen. På samme måde er SD -kortet ikke det nøjagtige, jeg brugte, men jeg mærket ledningerne/stifterne til den anførte del.

Der er en komponent, som jeg ikke lodde sammen på dette trin: batteriet. I stedet brugte jeg et firepolet stik med de to midterste ben fjernet (andet billede). Dette lod mig teste alle komponenterne, der var koblet sammen, og derefter afbryde batteriet, mens jeg satte alt på bolden.

Til sidst brugte jeg en kvart størrelse permanent brødbræt-print til at gøre strømmen og delte forbindelser lettere. Det kan du se på forsamlingsbillederne.

Test at alt fungerer

Trin 6: Fastgør komponenter til bolden

Fastgør komponenter til bolden
Fastgør komponenter til bolden
Fastgør komponenter til bolden
Fastgør komponenter til bolden
Fastgør komponenter til bolden
Fastgør komponenter til bolden
Fastgør komponenter til bolden
Fastgør komponenter til bolden

Sæt først skærmen på plads, og brug lidt Sugru til at sikre den (første to billeder). Glem ikke den flange, du fjernede tidligere, du skal have den tilbage på plads, før du fastgør displayet på plads.

Derefter tapede jeg proto-boardet i bunden af den tomme halvdel af bolden. Jeg beholdt alle mine soldater på den ene side af brættet, så jeg havde stadig det halve bræt, som jeg kunne tape over. Jeg tapede derefter batteriet oven på den samme halvdel af proto-kortet (tredje billede).

Begge halvdele er nu forbundet med ledninger. Find ud af, hvor USB -hullet ender, når du sætter de to halvdele sammen. Hvis rygsøjlen stikker op på den hvide læbe, skal du huske på, at den skal komme ned centreret i en af kilerne på den hvide læbe, fordi vi vil sikre USB -opladningskortet mellem to af plastikkanterne på læben.

Brug et lille stykke dobbeltsidet skumbånd til at fastgøre USB-opladningskortet. Det dobbeltsidede bånd bør ikke dække hele bunden af opladningskortet, fordi enden med ledningerne fastgjort hænger over midterkanten af den hvide læbe. Så tapen skal dække omkring tre fjerdedele af bundens overflade. Læg båndet først på bunden af brættet, og tryk det derefter ind på det sted, du har besluttet. USB -stikket skal være ved kanten af bolden og stikke ind i plastens sorte område uden at gå uden for bolden. Til sidst skal du bruge lidt mere Sugru over toppen af brættet og fastgøre på begge sider. Dette tilføjer bare ekstra styrke, når et kabel skubbes ind i USB -porten.

Sæt micro-SD-kortet i SD-kortmodulet nu

Du kan fastgøre de andre komponenter til den hvide læbe, hvis du ønsker det. Jeg har lige gemt de resterende komponenter bag skærmen.

Trin 7: Sæt de to halvdele sammen igen

Sæt de to halvdele sammen igen
Sæt de to halvdele sammen igen
Sæt de to halvdele sammen igen
Sæt de to halvdele sammen igen

Dobbelttjek, at du har isat SD -kortet, og at du har testet alle komponenterne sammen.

Ok, hvis du er klar, skal du lave en lang slange af noget Sugru -lim og køre det hele vejen rundt om kanten af kuglehalvdelen med den hvide læbe (første billede). Limen skal lægges lige på krydset, hvor de sorte og hvide dele af plasten kommer sammen. Ved at lægge limen her sikrer du, at du har en stærk binding, mens du minimerer mængden af lim, der klemmer ud af revnen, efter at de to halvdele er forbundet.

Tryk de to halvdele sammen og sørg for, at USB -porten stikker gennem hullet, der tidligere var skåret til den. Brug møbelklemmen til at klemme de to halvdele sammen lige stramt nok til at holde halvdelene sammen, det er ikke nødvendigt at klemme det hårdt ned. Sugru -limen hærder på cirka 24 timer.

Hvis du har noget af limen, der klemte ud af fugen, er du velkommen til at skrabe den af med din finger eller en glat klud/køkkenrulle.

Anbefalede: