Sadržaj:

Lopta za čarobne odgovore sa Arduino Pro Mini i TFT ekranom: 7 koraka
Lopta za čarobne odgovore sa Arduino Pro Mini i TFT ekranom: 7 koraka

Video: Lopta za čarobne odgovore sa Arduino Pro Mini i TFT ekranom: 7 koraka

Video: Lopta za čarobne odgovore sa Arduino Pro Mini i TFT ekranom: 7 koraka
Video: Дэвид МакКэндлесс: Красота визуализации данных 2024, Novembar
Anonim
Magic Answers Ball sa Arduino Pro Mini i TFT ekranom
Magic Answers Ball sa Arduino Pro Mini i TFT ekranom
Magic Answers Ball sa Arduino Pro Mini i TFT ekranom
Magic Answers Ball sa Arduino Pro Mini i TFT ekranom
Magic Answers Ball sa Arduino Pro Mini i TFT ekranom
Magic Answers Ball sa Arduino Pro Mini i TFT ekranom

Pre nekog vremena moja ćerka i ja smo razdvojile loptu Magic 8 tako da je ona mogla da zameni dvadeset odgovora onima koje ona odabere. Ovo je bio poklon za njenu prijateljicu. To me je navelo na razmišljanje kako to učiniti u većem obimu. Možemo li imati puno više od 20 odgovora? S elektroničkom verzijom možemo!

Ovo će opisati kako sam rastavio Mattel Magic 8 Ball (oprostite, Mattel) i upotrijebio okrugli TFT ekran za prikaz nevjerojatnog broja dodatnih odgovora (najmanja micro-SD kartica koju sam mogao pronaći bila je 8 GB, pa je zaista pretjerano za za šta se koristi). Lopta koristi Sparkfun Wake-on-shake ploču za aktiviranje odgovora i za isključivanje loptice nakon toga radi očuvanja baterije. Ploča za punjenje se koristi za dopunjavanje baterije putem USB veze.

Supplies

Dijelovi:

Arduino Pro Mini 328 - 3.3V/8MHz

SparkFun Wake on Shake

Litijum -jonska baterija - 400mAh

Organizator 12 kom. TP4056 Modul za punjenje 5V Micro USB 1A 18650 Litijeva baterija za punjenje sa zaštitnim modulom punjača (potreban vam je samo jedan od ovih, ali paket od 12 je bio manji od 9 USD)

DAOKI 5 kom Micro SD memorijska ploča (opet, potreban vam je samo jedan, ali paket od 5 je i dalje bio manji od 9 USD)

DFRobot 2,2 inčni TFT LCD modul

Kingston 8 GB microSD (možda imate staru od ovih koja vam leži oko kuće)

Perma-Proto četvrtasta PCB pločica (možete koristiti i bilo koju PCB ploču koja vam se sviđa)

Magic 8 Ball

FTDI Basic proboj 3.3V (možda ste već imali jedan od ovih ako ste radili sličan projekt s Arduino Pro Mini ili sličnom pločom)

4 -pinsko kućište sa 2,54 mm JST XH muškim/ženskim zaglavljem Dupont komplet za povezivanje žica (opcionalno, ali preporučuje se za spajanje baterije)

Ostale osnovne potrepštine:

Ljepilo Sugru za oblikovanje (moglo bi se koristiti ljepljiva traka i vruće ljepilo, ali ovo mi se više sviđa)

Ljepljiva traka

Dvostrana pjenasta traka

Žica

Alati:

Lemilica

Rotacijski alat po vašem izboru (tj. Dremel)

Stezaljka za namještaj

Korak 1: Prerežite čarobnu kuglu 8 na pola

Prerežite čarobnu kuglu 8 na pola
Prerežite čarobnu kuglu 8 na pola
Prerežite čarobnu kuglu 8 na pola
Prerežite čarobnu kuglu 8 na pola

Prvo ćete morati podijeliti Magic 8 Ball na pola. Svoju sam pričvrstio stezaljkom za namještaj sa radnom stolom prema dolje. Koristeći Dremel s pričvršćenim osnovnim reznim diskom, izrežite uz šav kugle. Morat ćete duboko rezati, koliko god to rezni disk dozvoljava. Uspori. Čak i nakon što ste prerezali do kraja, možda ćete morati upotrijebiti odvijač s ravnom glavom ili dlijeto za konačno odvajanje. Postoji cilindar koji drži "čarobnu" tekućinu i ikosaedar (dvadesetostrani oblik - da, morao sam to pogledati gore) unutra. Samo bacite to ili ga upotrijebite u nekom drugom projektu. Ako ga ipak koristite u nekom drugom projektu, javite mi šta ste radili pa ću znati šta ću sa svojim.

Ostat će vam dvije polovice kako je prikazano na slikama. Učinio sam to već tri puta, a posljednji put bijela usna je bila glatka, a ne imala grebene, pa vam lopta može izgledati malo drugačije od one na slici.

I dalje će biti neke plastične troske oko vanjskog ruba (otopljena i očvrsnuta plastika). Kočite to rukama, ako možete; upotrebom alata postoji opasnost da se lopta pokvari, a troska se prilično lako odlijepi.

Korak 2: Pripremite loptu

Pripremite loptu
Pripremite loptu
Pripremite loptu
Pripremite loptu
Pripremite loptu
Pripremite loptu

Postoje dvije izmjene koje ćemo morati napraviti na plastičnim polovicama lopte.

Prvo, na otvorenoj polovici, onoj na kojoj je oslikana "8", morat ćemo obrijati područje dovoljno veliko da naša USB ploča za punjenje može sjediti s USB portom koji strši. Koristio sam svoj Dremel sa pričvršćenim bubnjem za grubo brušenje. Želite da ovo bude što tanje, a da niste čisti. Zatim izrežite mali otvor dovoljno velik da dozvolite USB priključku da proviri prema van. Koristio sam čeljust za mjerenje USB priključka, ali vjerovatno biste ovo mogli pogledati ako je potrebno. Ponovo sam za otvaranje upotrijebio Dremel s malim nastavkom za rezanje. Prve dvije slike prikazuju otvor i kako to izgleda s USB pločom iza njega.

Drugo, u drugoj polovici, onoj s rupom na obje strane i bijelom plastičnom ivicom, pripremite mjesto za prikaz ekrana. Neposredno unutar otvora u kojem će se nalaziti zaslon nalaze se plastični rubovi i gumena (?) Prirubnica s unutarnje strane otvora. Izvadite prirubnicu i ostavite je sa strane. To ćemo vratiti kasnije, ali želimo da se to ukloni s ovog koraka. Ekran ima pravokutnu istisnutu stranu s jedne strane koja mu neće dopustiti da sjedi ravno u otvoru ako se neki od ovih rubova ne uklone. Ponovno obrišite bubanj za grubo brušenje na Dremelu. Uđite iz rupe u kojoj će biti ekran za najbolji ugao. Trebalo bi da izgleda kao slike kada se završi. Imajte na umu da slike prikazuju zaslon na mjestu, ali ga još NE PRIKLJUČITE.

Korak 3: Pripremite odgovore na Micro-SD kartici

Ovaj korak je malo složeniji nego što mislite. Ako ne želite stvoriti vlastitu listu odgovora, prijeđite na posljednji odlomak ovog koraka.

Namjera je da lopti možemo dati bilo koju listu nizova koja će se koristiti kao moguće odgovore i oni će biti centrirani na ekranu bez ikakvih pauza u sredini riječi. Ne želimo raditi ovu obradu na mikrokontroleru i želimo datoteku sa statičkom veličinom zapisa kako bismo mogli brzo pronaći bilo koju određenu liniju.

Iako je zaslon okrugao, funkcionalno je virtualni pravokutni zaslon sa vidljivim samo pikselima unutar kruga. Zaslon može prikazati tekst više veličina, ali koristimo samo najmanju verziju koja ima 6 x 8 piksela. Koristeći ovu veličinu, postoji 315 znakova koje ekran može staviti na ekran (21 znak po redu puta 15 redova), ali samo 221 je vidljivo i svaki red ima drugačiji broj vidljivih znakova. Vidite problem?

Napisao sam Java program za preuzimanje datoteke neformatiranih odgovora i njihovo pretvaranje u potpuno centrirane zapise koji se lako mogu prikazati na okruglom TFT -u. (veza za preuzimanje datoteke "FormatToPicksFileFullyCentered.java").

Bez ulaženja u objašnjenje cijelog koda, opća ideja je da radimo unatrag od središta (ish) i unosimo razmake kako bismo bili sigurni da ne lomimo riječi preko vidljivih redova, a zatim radimo istu stvar iz centarfor. Konačno, prolazimo kroz sve redove i centriramo svaki red unutar punih 21 redaka znakova kako bismo stvorili zapis od točno 316 bajtova (315 alfanumeričkih znakova plus znak novog retka). Kod zapravo funkcionira kroz tri fonta, x 3, x 2 i x 1 kako bi se vidio koji je najveći font koji se može koristiti i još uvijek pristajati uz tekst. Žao nam je, centriranje je malo isključeno za fontove x 2 i x 3. Budite oprezni sa znakovima koji zauzimaju više od jednog bajta jer mogu odbaciti izlaznu datoteku.

Kopirajte datoteku "picks.txt" na mikro-SD karticu.

Ako ne želite imati problema sa stvaranjem vlastite liste odabira, uključio sam svoju listu odabira koje možete jednostavno kopirati na SD karticu i koristiti. Trenutno ne mogu otpremiti.txt datoteku na instrukcije, pa evo veze do mjesta gdje možete preuzeti datoteku picks.txt.

Korak 4: Otpremite kôd na Arduino Mini

Otpremite kôd na Arduino Mini
Otpremite kôd na Arduino Mini
Otpremite kôd na Arduino Mini
Otpremite kôd na Arduino Mini
Otpremite kôd na Arduino Mini
Otpremite kôd na Arduino Mini

Prije svega, ako nikada prije niste koristili Arduino Pro Mini, ne možete samo priključiti USB kabel i preuzeti; morate koristiti FTDI ploču i spojiti žice na odgovarajuće pinove na mini. Ovdje neću davati uputstva o tome, ima ih dosta na webu. Za mene, nisam želio lemiti stalni konektor na ploču mikrokontrolera koji bi se koristio samo jednom za preuzimanje koda, pa sam stvorio mali isječak koji se može koristiti za programiranje mini -a bez lemljenja (vidi slike). Ovo je inspirisano proizvodima poput Fiddyja, ali nemam lak pristup 3D štampaču, pa sam napravio svoj od isječka za čips. Ako su ljudi zainteresirani, napravit ću instrukciju samo za to.

Pređite na kod. Ovaj kôd ima nekoliko zanimljivih dijelova, ali uglavnom je jasan.

U funkciji postavljanja postoji pristojna količina koda koja se bavi dobivanjem dobrog nasumičnog sjemena. Tipična metoda korištenja analognog očitanja s nepovezanog pina prema mom iskustvu ne daje dovoljno raznolik odgovor. Dobijam broj između 477 i 482. Budući da Arduino slučajna funkcija ima jednu i samo jednu sekvencu, a sjeme određuje odakle će početi u tom nizu, tako uski raspon na kraju neće proizvesti dovoljno mogućih odgovora. Imajte na umu da se ovaj kôd u osnovi pokreće svaki put kad ploča za buđenje pri protresanju isključi i ponovo uključi napajanje, pa je početni položaj slijeda koji određuje sjeme od ključne važnosti. Da bih pomogao u tome, zapisujem vrlo malu datoteku na SD karticu kako bih pratio posljednje sjeme i dodao to novoj vrijednosti koja dolazi iz nepovezanog pina.

Nakon što je odabir odabran u funkciji petlje i pročitan u niz znakova, ne možemo samo ispisati cijeli niz. Zaslon ima ograničenje koliko dugo niz može istovremeno rukovati. Iz tog razloga moramo proći kroz svaki od petnaest redova i poslati ih na ekran jedan po jedan.

Potrebne vanjske biblioteke:

Biblioteka ST7687S

Biblioteka DFRobot-Display

Korak 5: Povežite komponente

Povežite komponente
Povežite komponente
Povežite komponente
Povežite komponente

Vrijeme je da obavite sve lemljenje žica. Imao sam tendenciju da griješim sa strane malo dužih žica nego što mi je zaista trebalo, ali to je na kraju uspjelo.

U priloženoj shemi, TFT ekran je predstavljen konektorom, a ne slikom cijelog ekrana (za koji nisam mogao pronaći dio Fritzing). Označio sam žice/pinove na osnovu načina na koji su označeni na dijelu. Slično tome, SD kartica nije tačna koju sam koristio, ali sam označio žice/pinove za navedeni dio.

Postoji jedna komponenta koju u ovom koraku nisam lemio zajedno: baterija. Umjesto toga, koristio sam četveroiglični konektor sa uklonjena dva srednja pina (druga slika). Ovo mi je omogućilo da testiram sve komponente povezane zajedno, a zatim odspojim bateriju dok sam sve pričvrstio za loptu.

Konačno, upotrijebio sam stalnu matičnu ploču veličine četvrtine kako bih olakšao napajanje i zajedničke veze. To ćete vidjeti na slikama montaže.

Testirajte da li sve radi

Korak 6: Pričvrstite komponente na kuglu

Pričvrstite komponente na loptu
Pričvrstite komponente na loptu
Pričvrstite komponente na loptu
Pričvrstite komponente na loptu
Pričvrstite komponente na loptu
Pričvrstite komponente na loptu
Pričvrstite komponente na loptu
Pričvrstite komponente na loptu

Prvo postavite zaslon na mjesto i upotrijebite Sugru da ga učvrstite (prve dvije slike). Ne zaboravite na prirubnicu koju ste ranije uklonili, trebali biste je vratiti na mjesto prije pričvršćivanja zaslona.

Zatim sam proto ploču zalijepio na dno prazne polovice loptice. Sve sam lemilice držao na jednoj strani ploče, pa sam još imao pola ploče koju sam mogao zalijepiti. Zatim sam zalijepio bateriju na istu polovinu proto-ploče (treća slika).

Obje polovine su sada povezane žicama. Otkrijte gdje će USB rupa završiti kada spojite dvije polovice. Ako bijela usna ima izbočene bodlje, imajte na umu da se mora spustiti centrirano u jedan od klinova bijele usne jer ćemo pričvrstiti USB ploču za punjenje između dva plastična ruba na usni.

Pomoću malog komada dvostrane pjene trake pričvrstite USB ploču za punjenje. Dvostrana traka ne smije pokriti cijelo dno ploče za punjenje jer će kraj s pričvršćenim žicama visjeti preko središnjeg ruba bijelog ruba. Dakle, traka bi trebala pokriti oko tri četvrtine donje površine ploče. Prvo stavite traku na dno ploče, a zatim je pritisnite na mjesto za koje ste se odlučili. USB konektor bi trebao biti na rubu loptice, zalijepljen u crnu površinu plastike, a da ne izlazi iz kugle. Na kraju, upotrijebite još Sugru preko vrha ploče i pričvrstite ga s obje strane. Ovo samo dodaje dodatnu snagu kada se kabel gurne u USB priključak.

Odmah umetnite mikro-SD karticu u modul SD kartice

Ostale komponente možete pričvrstiti na bijelu usnu ako želite. Ostale komponente sam upravo stavio iza ekrana.

Korak 7: Ponovo spojite dvije polovine

Ponovo spojite dve polovine
Ponovo spojite dve polovine
Ponovo spojite dve polovine
Ponovo spojite dve polovine

Dvaput provjerite jeste li umetnuli SD karticu i jeste li zajedno testirali sve komponente.

U redu, ako ste spremni, napravite dugačku zmiju od ljepila Sugru i provucite je do ruba polovice loptice s bijelom usnom (prva slika). Ljepilo treba položiti točno na mjesto spajanja crno -bijelih dijelova plastike. Stavljanjem ljepila ovdje osiguravate snažnu vezu, a minimizirate količinu ljepila koje se istisne iz pukotine nakon spajanja dviju polovica.

Pritisnite dvije polovice zajedno pazeći da USB priključak provuče kroz prethodno izrezanu rupu za njega. Koristeći stezaljku za namještaj, spojite dvije polovice dovoljno čvrsto da polovice ostanu zajedno, nema potrebe da je čvrsto stežete. Supu ljepilo će se stvrdnuti za oko 24 sata.

Ako imate dio ljepila koje se istisnulo iz fuge, slobodno ga ostružite prstom ili glatkom krpom/papirnatim ubrusom.

Preporučuje se: