Cuprins:

Magic Answers Ball cu Arduino Pro Mini și afișaj TFT: 7 pași
Magic Answers Ball cu Arduino Pro Mini și afișaj TFT: 7 pași

Video: Magic Answers Ball cu Arduino Pro Mini și afișaj TFT: 7 pași

Video: Magic Answers Ball cu Arduino Pro Mini și afișaj TFT: 7 pași
Video: 3D hologram fan portrait solution. Who wanna date this holographic sexy lady #3dhologramfan 2024, Iulie
Anonim
Magic Answers Ball cu Arduino Pro Mini și afișaj TFT
Magic Answers Ball cu Arduino Pro Mini și afișaj TFT
Magic Answers Ball cu Arduino Pro Mini și afișaj TFT
Magic Answers Ball cu Arduino Pro Mini și afișaj TFT
Magic Answers Ball cu Arduino Pro Mini și afișaj TFT
Magic Answers Ball cu Arduino Pro Mini și afișaj TFT

Cu ceva timp în urmă, eu și fiica mea am scos o minge Magic 8, astfel încât să poată înlocui cele douăzeci de răspunsuri cu cele pe care le-a ales. Acesta a fost un cadou pentru o prietenă de-a ei. Asta m-a determinat să mă gândesc la cum să fac asta la o scară mai mare. Am putea avea mai mult de 20 de răspunsuri? Cu o versiune electronică putem!

Deci, aceasta va descrie modul în care am dezasamblat un Mattel Magic 8 Ball (îmi pare rău, Mattel) și am folosit un afișaj TFT rotund pentru a arăta un număr incredibil de răspunsuri suplimentare (cel mai mic card micro-SD pe care l-am putut găsi a fost de 8 GB, deci este într-adevăr exagerat pentru pentru ce se folosește). Mingea folosește o placă Sparkfun Wake-on-shake pentru a declanșa răspunsul și pentru a opri mingea ulterior pentru a conserva bateria. O placă de reîncărcare este utilizată pentru a permite reîncărcarea bateriei dintr-o conexiune USB.

Provizii

Părți:

Arduino Pro Mini 328 - 3,3V / 8MHz

SparkFun Wake on Shake

Baterie litiu-ion - 400mAh

Organizator 12buc Modul de încărcare TP4056 5V Micro USB 1A 18650 Placă de încărcare a bateriei cu litiu cu modul de încărcare de protecție (aveți nevoie doar de unul dintre acestea, dar pachetul de 12 a fost mai mic de 9 USD)

Placă de stocare micro SD DAOKI 5Pcs (din nou, aveți nevoie doar de una, dar pachetul de 5 era încă mai mic de 9 USD)

Modul de afișare LCD TFT DFRobot de 2,2 inci

Kingston microSD de 8 GB (s-ar putea să aveți unul dintre acestea vechi în jurul casei)

PCB Perma-Proto Breadboard-size Quarter-size (puteți utiliza, de asemenea, orice PCB doriți)

Magic 8 Ball

FTDI Basic Breakout 3.3V (s-ar putea să aveți deja unul dintre acestea dacă ați făcut un proiect similar cu Arduino Pro Mini sau o placă similară)

Carcasă cu 4 pini cu kit de conector cu sârmă Dupont de 2,54 mm JST XH masculin / feminin (opțional, dar recomandat pentru conectarea bateriei)

Alte consumabile de bază:

Adeziv mulabil Sugru (ar putea folosi bandă adezivă și lipici fierbinte, dar îmi place mai mult)

Banda adeziva

Banda de spumă pe două fețe

Sârmă

Instrumente:

Ciocan de lipit

Instrument rotativ la alegere (de ex. Dremel)

Clemă pentru mobilă

Pasul 1: Tăiați mingea Magic 8 în jumătate

Taie mingea Magic 8 în jumătate
Taie mingea Magic 8 în jumătate
Taie mingea Magic 8 în jumătate
Taie mingea Magic 8 în jumătate

Mai întâi va trebui să împărțiți Magic 8 Ball în două. Am fixat-o pe a mea pe o masă de lucru cu partea plată în jos folosind o clemă de mobilier. Folosind un Dremel cu un disc de tăiere de bază atașat, tăiați de-a lungul cusăturii mingii. Va trebui să tăiați adânc, aproape cât va permite discul de tăiere. Ia-o usor. Chiar și după ce ați tăiat tot drumul, poate fi necesar să utilizați o șurubelniță cu cap plat sau o dalta pentru a face separarea finală. Există un cilindru care conține lichidul „magic” și icosaedrul (formă cu douăzeci de fețe - da, a trebuit să privesc asta) înăuntru. Aruncați asta sau folosiți-l în alt proiect. Dacă îl folosești într-un alt proiect, anunță-mă ce ai făcut, așa că voi ști ce să fac cu al meu.

Veți rămâne cu două jumătăți așa cum se arată în imagini. Am făcut acest lucru de trei ori acum și, cea mai recentă dată, buza albă era mai degrabă netedă decât avea creste, astfel încât mingea ta poate arăta ușor diferită de cea din imagine.

În jurul marginii exterioare vor mai exista niște zgură de plastic (plasticul topit și întărit). Frânează asta cu mâinile, dacă poți; utilizarea unui instrument prezintă riscul de a sparge finisajul mingii, iar zgura se desprinde destul de ușor.

Pasul 2: Pregătiți mingea

Pregătește mingea
Pregătește mingea
Pregătește mingea
Pregătește mingea
Pregătește mingea
Pregătește mingea

Există două modificări pe care va trebui să le facem la jumătățile de plastic ale mingii.

În primul rând, în jumătatea deschisă, cea care are pictat „8”, va trebui să radem o zonă suficient de mare pentru ca placa noastră de încărcare USB să stea cu portul USB ieșit. Mi-am folosit Dremel cu un tambur de șlefuit aspru atașat. Vrei acest lucru cât de subțire poți obține fără să treci prin curat. Apoi tăiați o mică deschidere suficient de mare pentru a permite portului USB să pătrundă în exterior. Am folosit un etrier pentru a măsura portul USB, dar probabil ați putea face acest lucru dacă aveți nevoie. Din nou, am folosit Dremel cu un mic accesoriu de tăiere pentru a face deschiderea. Primele două imagini arată deschiderea și cum arată asta cu placa USB din spatele ei.

În al doilea rând, în cealaltă jumătate, cea cu gaură pe AMBE părțile laterale și buza albă din plastic, pregătește un loc pentru afișare. Chiar în interiorul deschiderii unde va sta afișajul, există creste de plastic și o flanșă de cauciuc (?) Pe interiorul deschiderii. Scoateți flanșa și lăsați-o deoparte. Vom pune acest lucru înapoi mai târziu, dar ne dorim ca acest lucru să nu fie posibil pentru acest pas. Afișajul are o extrudare dreptunghiulară pe o parte care nu îi va permite să stea plat în deschidere dacă unele dintre aceste creste nu sunt îndepărtate. Folosind din nou tamburul de șlefuire gros pe Dremel, radeți-le cât mai mult posibil. Intră din gaura unde va fi afișajul pentru cel mai bun unghi. Ar trebui să arate ca imaginile când sunt complete. Rețineți, imaginile arată afișajul la locul său, dar NU ÎL ATAȘAȚI încă.

Pasul 3: Pregătiți răspunsurile pe cardul Micro-SD

Acest pas este puțin mai complicat decât ai putea crede. Dacă nu doriți să creați propria listă de răspunsuri, treceți la ultimul paragraf al acestui pas.

Intenția este că putem oferi mingii orice listă de șiruri pentru a fi utilizate ca răspunsuri posibile și vor fi centrate pe ecran fără pauze în mijlocul cuvintelor. Nu vrem să facem această procesare pe microcontroler și vrem un fișier cu dimensiunea înregistrării statice pentru a putea găsi rapid o anumită linie.

Chiar dacă afișajul este rotund, este funcțional un afișaj dreptunghiular virtual, cu doar pixeli în cerc vizibili. Afișajul poate afișa text cu dimensiuni multiple, dar folosim doar cea mai mică versiune, care este de 6 x 8 pixeli. Folosind această dimensiune, există 315 de caractere pe care afișajul le poate afișa pe ecran (21 de caractere pe linie de câte 15 rânduri), dar numai 221 sunt vizibile și fiecare linie are un număr diferit de caractere vizibile. Vezi problema?

Am scris un program Java pentru a prelua un fișier de răspunsuri neformatate și a le converti în înregistrări complet centrate care ar putea fi afișate cu ușurință pe TFT-ul rotund. (link pentru a descărca fișierul „FormatToPicksFileFullyCentered.java”).

Fără a intra într-o explicație a întregului cod, ideea generală este că lucrăm cu drumul înapoi de la centru (ish) și inserând spații pentru a ne asigura că nu rupem cuvintele peste liniile vizibile, apoi facem același lucru din centru înainte. În cele din urmă, parcurgem toate liniile și centrăm fiecare linie în interiorul celor 21 de linii complete pentru a crea o înregistrare de exact 316 octeți (315 caractere alfanumerice plus un caracter nou de linie). Codul funcționează de fapt prin trei fonturi, x 3, x 2 și x 1 pentru a vedea care este cel mai mare font care poate fi folosit și încă se potrivește textului. Centrarea este puțin dezactivată pentru fonturile x 2 și x 3, îmi pare rău. Aveți grijă la caracterele care ocupă mai mult de un octet, acestea pot arunca fișierul care este redat.

Copiați fișierul „picks.txt” pe cardul micro-SD.

Dacă nu doriți să treceți prin dificultatea de a crea propria listă de alegeri, am inclus lista mea de alegeri pe care le puteți copia doar pe cardul SD și le puteți utiliza. Nu am putut încărca un fișier.txt în instructabile în acest moment, așa că iată un link către care puteți descărca fișierul picks.txt.

Pasul 4: Încărcați codul pe Arduino Mini

Încărcați codul pe Arduino Mini
Încărcați codul pe Arduino Mini
Încărcați codul pe Arduino Mini
Încărcați codul pe Arduino Mini
Încărcați codul pe Arduino Mini
Încărcați codul pe Arduino Mini

În primul rând, dacă nu ați folosit niciodată Arduino Pro Mini înainte, nu puteți conecta doar un cablu USB și descărca; trebuie să utilizați o placă FTDI și să conectați firele la pinii corespunzători de pe mini. Nu voi da un tutorial despre asta aici, sunt multe pe web. Pentru mine, nu am vrut să lipesc un conector permanent pe placa microcontrolerului care să fie folosit o singură dată pentru a descărca codul, așa că am creat un mic clip care poate fi folosit pentru a programa mini fără lipire (vezi imagini). Acest lucru a fost inspirat de produse precum Fiddy, dar nu am acces ușor la o imprimantă 3D, așa că mi-am făcut-o dintr-o clemă de cartofi. Dacă oamenii sunt interesați, voi face un instructiv doar pentru asta.

Pe cod. Există câteva părți interesante la acest cod, dar este în mare parte direct.

În funcția de configurare, există o cantitate decentă de cod care se ocupă de obținerea unei semințe aleatorii bune. Metoda tipică de utilizare a citirii analogice de la un pin neconectat nu oferă un răspuns suficient de variat în experiența mea. Primesc un număr între 477 și 482. Deoarece funcția aleatorie Arduino are o singură și o singură secvență, iar semințele determină de unde să înceapă în acea secvență, un astfel de interval îngust nu va produce suficiente răspunsuri posibile în final. Rețineți că acest cod începe în esență de fiecare dată când placa Wake-on-shake oprește și pornește din nou, astfel încât poziția inițială a secvenței determinată de sămânță este crucială. Pentru a ajuta la acest lucru, scriu un fișier foarte mic pe cardul SD pentru a ține evidența ultimei semințe și o adaug la o nouă valoare provenită de la pinul neconectat.

Odată ce o selecție este selectată în funcția buclă și citită într-o matrice de caractere, nu putem imprima doar întregul șir. Afișajul are o limită a timpului de șir pe care îl poate suporta simultan. Din acest motiv, trebuie să parcurgem fiecare dintre cele cincisprezece linii și să le trimitem pe afișaj pe rând.

Biblioteci externe necesare:

Biblioteca ST7687S

Biblioteca DFRobot-Display

Pasul 5: conectați componentele

Conectați componentele
Conectați componentele
Conectați componentele
Conectați componentele

E timpul să faceți toate lipirea firelor. Am avut tendința să greșesc firele puțin mai lungi decât aveam cu adevărat nevoie, dar asta a ajuns să funcționeze bine.

În schema atașată, afișajul TFT este reprezentat mai degrabă de un conector decât de o imagine a întregului afișaj (pentru care nu am putut găsi o parte Fritzing). Am etichetat firele / pinii în funcție de modul în care sunt etichetați pe piesă. În mod similar, cardul SD nu este exact pe care l-am folosit, dar am etichetat firele / pinii pentru partea listată.

Există o componentă pe care nu am lipit-o împreună la acest pas: bateria. În schimb, am folosit un conector cu patru pini cu cei doi pini din mijloc eliminați (a doua imagine). Acest lucru mi-a permis să testez toate componentele conectate împreună și apoi să deconectez bateria în timp ce atașam totul la minge.

În cele din urmă, am folosit un PCB permanent de un sfert de dimensiune pentru a ușura puterea și conexiunile partajate. Veți vedea asta în imaginile de asamblare.

Testați că totul funcționează

Pasul 6: Atașați componente la minge

Atașați componente la minge
Atașați componente la minge
Atașați componente la minge
Atașați componente la minge
Atașați componente la minge
Atașați componente la minge
Atașați componente la minge
Atașați componente la minge

Mai întâi puneți afișajul în loc și folosiți Sugru pentru a-l asigura (primele două imagini). Nu uitați de flanșa pe care ați scos-o mai devreme, ar trebui să o aveți la loc înainte de a fixa afișajul în poziție.

Apoi, am lipit placa proto în partea de jos a jumătății goale a mingii. Mi-am păstrat toate lipitele pe o parte a plăcii, așa că aveam încă jumătate din placă pe care o puteam lipi. Apoi am înregistrat bateria pe partea de sus a aceleiași jumătăți a plăcii proto (a treia imagine).

Ambele jumătăți sunt acum conectate prin fire. Aflați unde va ajunge gaura USB atunci când puneți cele două jumătăți împreună. Dacă buza albă are spini lipiți în sus, rețineți că trebuie să coboare centrată într-una dintre pene ale buzei albe, deoarece vom fixa placa de încărcare USB între două dintre crestele de plastic de pe buză.

Folosind o bucată mică de bandă de spumă pe două fețe, atașați placa de încărcare USB. Banda cu două fețe nu ar trebui să acopere toată partea inferioară a plăcii de încărcare, deoarece capătul cu firele atașate va atârna peste marginea centrală a buzei albe. Deci banda trebuie să acopere aproximativ trei sferturi din suprafața inferioară a plăcii. Puneți banda pe fundul plăcii mai întâi, apoi apăsați-o în locul pe care l-ați decis. Conectorul USB trebuie să fie la marginea mingii, lipindu-se în zona neagră a plasticului fără a ieși în afara mingii. În cele din urmă, utilizați mai mult Sugru peste partea superioară a plăcii și fixați-le pe ambele părți. Acest lucru adaugă doar putere suplimentară atunci când un cablu este împins în portul USB.

Introduceți cardul micro-SD în modulul cardului SD acum

Dacă doriți, puteți fixa celelalte componente pe buza albă. Tocmai am ascuns componentele rămase în spatele afișajului.

Pasul 7: Puneți cele două jumătăți la loc

Puneți cele două jumătăți înapoi împreună
Puneți cele două jumătăți înapoi împreună
Puneți cele două jumătăți înapoi împreună
Puneți cele două jumătăți înapoi împreună

Verificați de două ori dacă ați introdus cardul SD și că ați testat toate componentele împreună.

Ok, dacă sunteți gata, faceți un șarpe lung dintr-un lipici Sugru și rulați-l până la marginea jumătății mingii cu buza albă (prima imagine). Adezivul ar trebui să fie așezat chiar pe joncțiunea în care se unesc secțiunile alb-negru ale plasticului. Punerea adezivului aici vă asigură că aveți o legătură puternică, reducând în același timp cantitatea de adeziv care se stoarce din fisură după ce cele două jumătăți sunt unite.

Apăsați cele două jumătăți împreună asigurându-vă că portul USB se prinde prin orificiul tăiat anterior pentru acesta. Folosind clema de mobilier, fixați cele două jumătăți împreună suficient de strânse pentru a menține jumătățile unite, fără a fi nevoie să o strângeți cu putere. Lipiciul Sugru se va întări în aproximativ 24 de ore.

Dacă aveți o parte din adezivul care a fost scos din articulație, nu ezitați să-l răzuiti cu degetul sau cu o cârpă netedă / prosop de hârtie.

Recomandat: