Turinys:

Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu: 7 žingsniai
Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu: 7 žingsniai

Video: Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu: 7 žingsniai

Video: Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu: 7 žingsniai
Video: NEVYKĖLIS MOKOSI KREPŠINIO PAGRINDŲ 2024, Liepa
Anonim
Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu
Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu
Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu
Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu
Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu
Magiškų atsakymų kamuolys su „Arduino Pro Mini“ir TFT ekranu

Prieš kurį laiką su dukra išardėme „Magic 8“rutulį, kad ji galėtų pakeisti dvidešimt atsakymų pasirinktais. Tai buvo dovana jos draugui. Tai privertė mane galvoti, kaip tai padaryti plačiau. Ar galime gauti daug daugiau nei 20 atsakymų? Su elektronine versija mes galime!

Taigi čia bus aprašyta, kaip aš išardžiau „Mattel Magic 8 Ball“(atsiprašau, „Mattel“) ir panaudojau apvalų TFT ekraną, kad parodytų neįtikėtinai daug papildomų atsakymų (mažiausia mano rasta „micro-SD“kortelė buvo 8 GB, taigi tai tikrai per daug kam jis naudojamas). Kamuolys naudoja „Sparkfun Wake-on-shake“lentą, kad suaktyvintų atsaką ir vėliau išjungtų kamuolį, kad būtų taupoma baterija. Įkrovimo plokštė naudojama, kad būtų galima įkrauti akumuliatorių iš USB jungties.

Prekės

Dalys:

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

„SparkFun Wake on Shake“

Ličio jonų baterija - 400 mAh

Organizatorius 12 vnt. TP4056 įkrovimo modulis 5V „Micro USB 1A 18650“ličio akumuliatoriaus įkrovimo plokštė su apsauginiu įkroviklio moduliu (jums reikia tik vieno iš šių, bet 12 pakuočių kaina buvo mažesnė nei 9 USD)

DAOKI 5 vnt. „Micro SD“atminties plokštė (vėlgi, jums reikia tik vienos, bet 5 pakuotė vis tiek buvo mažesnė nei 9 USD)

2,2 colio DFRobot TFT LCD ekrano modulis

„Kingston“8 GB „microSD“(galbūt jūsų namuose yra senas)

„Perma-Proto“ketvirčio dydžio duonos lentos PCB (taip pat galite naudoti bet kokias jums patinkančias PCB)

Magic 8 kamuolys

FTDI Basic Breakout 3.3V (galbūt jau turite vieną iš jų, jei atlikote panašų projektą su „Arduino Pro Mini“ar panašia plokšte)

4 kontaktų korpusas su 2,54 mm „JST XH“kištukinio/moteriško kaiščio antgalio „Dupont“laidų jungčių rinkiniu (neprivaloma, tačiau rekomenduojama prijungti akumuliatorių)

Kiti pagrindiniai reikmenys:

„Sugru“formuojamas klijai (gali būti naudojama lipni juosta ir karšti klijai, bet man tai labiau patinka)

Lipni juosta

Dvipusė putų juosta

Viela

Įrankiai:

Lituoklis

Jūsų pasirinktas sukamasis įrankis (pvz., „Dremel“)

Baldų spaustukas

1 žingsnis: perpjaukite „Magic 8“kamuoliuką per pusę

Perpjaukite „Magic 8“kamuoliuką per pusę
Perpjaukite „Magic 8“kamuoliuką per pusę
Perpjaukite „Magic 8“kamuoliuką per pusę
Perpjaukite „Magic 8“kamuoliuką per pusę

Pirmiausia turėsite padalinti „Magic 8 Ball“per pusę. Aš pritvirtinau savo prie darbo stalo plokščia puse žemyn, naudodamas baldų spaustuką. Naudodami „Dremel“su pritvirtintu pagrindiniu pjovimo disku, supjaustykite išilgai rutulio siūlės. Turėsite pjauti giliai, beveik tiek, kiek leidžia pjovimo diskas. Lėčiau. Net ir visiškai nupjovę, galutiniam atskyrimui gali tekti naudoti atsuktuvą ar kaltą plokščia galvute. Viduje yra cilindras, kuriame yra „stebuklingas“skystis ir ikosaedras (dvidešimties pusių formos - taip, aš turėjau tai pažiūrėti). Tiesiog išmeskite tai arba naudokite jį kitame projekte. Jei naudosite jį kitame projekte, praneškite man, ką padarėte, kad aš žinosiu, ką daryti su savo.

Jums liks dvi pusės, kaip parodyta paveikslėliuose. Aš tai padariau tris kartus ir pastarąjį kartą, balta lūpa buvo lygi, o ne su keteromis, todėl jūsų kamuolys gali atrodyti šiek tiek kitaip nei paveikslėlyje.

Aplink išorinį kraštą vis tiek liks plastiko šlakas (ištirpęs ir sukietėjęs plastikas). Sustabdykite tai rankomis, jei galite; naudojant įrankį kyla pavojus subraižyti kamuoliuko paviršių ir šlakas gana lengvai pasišalina.

2 žingsnis: Paruoškite kamuolį

Paruoškite kamuolį
Paruoškite kamuolį
Paruoškite kamuolį
Paruoškite kamuolį
Paruoškite kamuolį
Paruoškite kamuolį

Turime atlikti dvi plastikinių rutulio pusių modifikacijas.

Pirma, atviroje pusėje, kurioje yra „8“, turėsime nusiskusti pakankamai didelę plotą, kad mūsų USB įkrovimo plokštė galėtų sėdėti, o USB prievadas išsikišęs. Naudojau „Dremel“su prikabintu šiurkščiavilnių būgnu. Norite, kad tai būtų kuo ploniau, neišsivalydami. Tada nupjaukite mažą angą, pakankamai didelę, kad USB prievadas galėtų prasiskverbti į išorę. Aš naudoju slankmačius USB prievadui matuoti, bet, jei reikia, tikriausiai galite tai pamatyti. Vėlgi, aš padariau angą „Dremel“su mažu pjovimo priedu. Pirmosios dvi nuotraukos rodo atidarymą ir kaip tai atrodo, kai USB plokštė yra už jos.

Antra, kitoje pusėje, kurioje yra skylė abiejose pusėse ir balta plastikinė lūpa, paruoškite vietą ekranui sėdėti. Tiesiog angos viduje, kurioje bus ekranas, yra plastikiniai keteros ir guminis (?) Flanšas angos viduje. Išimkite flanšą ir atidėkite. Vėliau tai sugrąžinsime, bet norime, kad tai neatliktų šio žingsnio. Ekranas turi stačiakampį išspaudimą iš vienos pusės, kuris neleis jam sėdėti anga, jei kai kurie iš šių keterų nebus pašalinti. Vėl naudodami „Dremel“šiurkščiavilnių šlifavimo būgną, kiek įmanoma nuskuskite juos žemyn. Įeikite iš skylės, kurioje bus rodomas geriausias kampas. Baigęs jis turėtų atrodyti kaip nuotraukos. Atminkite, kad paveikslėliai rodo, kad ekranas yra vietoje, bet dar to neprisijunkite.

3 žingsnis: Paruoškite atsakymus „Micro-SD“kortelėje

Šis žingsnis yra šiek tiek sudėtingesnis, nei manote. Jei nenorite kurti savo atsakymų sąrašo, pereikite prie paskutinės šio veiksmo pastraipos.

Tikslas yra tas, kad mes galime pateikti kamuoliui bet kokį eilučių sąrašą, kuris bus naudojamas kaip galimas atsakymas, ir jie bus centre ekrane be jokių pertraukų žodžių viduryje. Mes nenorime atlikti šio apdorojimo mikrovaldiklyje ir norime statinio įrašo dydžio failo, kad galėtume greitai rasti bet kurią eilutę.

Nors ekranas yra apvalus, funkciškai tai yra virtualus stačiakampis ekranas, kuriame matomi tik apskritimo taškai. Ekrane gali būti rodomas kelių dydžių tekstas, tačiau mes naudojame tik mažiausią 6 x 8 pikselių versiją. Naudojant šį dydį, ekrane gali būti 315 simbolių (21 simbolis eilutėje ir 15 eilučių), tačiau matomas tik 221 simbolis ir kiekvienoje eilutėje yra skirtingas matomų simbolių skaičius. Matai problemą?

Parašiau „Java“programą, norėdamas surinkti nesuformatuotų atsakymų failą ir paversti juos visiškai centruotais įrašais, kuriuos būtų galima lengvai parodyti apvaliame TFT. (nuoroda atsisiųsti failą „FormatToPicksFileFullyCentered.java“).

Nesileisdami į viso kodo paaiškinimą, bendra mintis yra ta, kad mes einame atgal nuo centro (ish) ir įterpiame tarpus, kad įsitikintume, jog nesulaužome žodžių per matomas eilutes, o tada darome tą patį iš centras į priekį. Galiausiai, mes einame per visas eilutes ir centruojame kiekvieną eilutę iš visų 21 simbolių eilučių, kad sukurtume tiksliai 316 baitų įrašą (315 raidinių ir skaitinių simbolių bei naujos eilutės simbolis). Kodas iš tikrųjų veikia per tris šriftus, x 3, x 2 ir x 1, kad pamatytumėte, kuris yra didžiausias šriftas, kurį galima naudoti ir kuris vis dar tinka tekstui. Apgailestaujame, kad x 2 ir x 3 šriftų centravimas yra šiek tiek sutrikęs. Būkite atsargūs dėl simbolių, užimančių daugiau nei vieną baitą, jie gali išmesti išvestį.

Nukopijuokite failą „picks.txt“į „micro-SD“kortelę.

Jei nenorite susidurti su savo pasirinkimo sąrašo problemomis, įtraukiau savo pasirinkimų sąrašą, kurį galite tiesiog nukopijuoti į SD kortelę ir naudoti. Šiuo metu nepavyko įkelti.txt failo į instrukcijas, todėl čia yra nuoroda, iš kurios galite atsisiųsti failą picks.txt.

4 veiksmas: įkelkite kodą į „Arduino Mini“

Įkelkite kodą į „Arduino Mini“
Įkelkite kodą į „Arduino Mini“
Įkelkite kodą į „Arduino Mini“
Įkelkite kodą į „Arduino Mini“
Įkelkite kodą į „Arduino Mini“
Įkelkite kodą į „Arduino Mini“

Pirmiausia, jei niekada nesinaudojote „Arduino Pro Mini“, negalite tiesiog prijungti USB kabelio ir atsisiųsti; turite naudoti FTDI plokštę ir prijungti laidus prie atitinkamų mini kaiščių. Aš čia nepateiksiu pamokos apie tai, internete yra daug. Man nesinorėjo ant mikrovaldiklio plokštės lituoti nuolatinės jungties, kuri būtų naudojama tik vieną kartą kodui atsisiųsti, todėl sukūriau nedidelį klipą, kuriuo galima programuoti mini be litavimo (žr. Paveikslėlius). Tai įkvėpė tokie produktai kaip „Fiddy“, tačiau neturiu lengvos prieigos prie 3D spausdintuvo, todėl iš bulvių traškučio padariau savo. Jei žmonės susidomės, aš padarysiu pamoką tik dėl to.

Prie kodo. Yra keletas įdomių šio kodo dalių, tačiau dažniausiai jis yra tiesioginis.

Sąrankos funkcijoje yra tinkamas kodo kiekis, susijęs su geros atsitiktinės sėklos gavimu. Įprastas metodas, naudojant analoginį skaitymą iš neprijungto kaiščio, mano patirtimi nesuteikia pakankamai įvairios reakcijos. Gaunu skaičių nuo 477 iki 482. Kadangi „Arduino“atsitiktinė funkcija turi vieną ir tik vieną seką, o sėkla nustato, nuo ko pradėti tą seką, galiausiai toks siauras diapazonas nesukels pakankamai galimų atsakymų. Atminkite, kad šis kodas iš esmės prasideda iš naujo kiekvieną kartą, kai „Wake-on-Shake“lenta išjungia ir vėl įjungia maitinimą, todėl pradinė sekos padėtis, kurią nustato sėkla, yra labai svarbi. Norėdami tai padaryti, aš įrašau labai mažą failą į SD kortelę, kad galėčiau sekti paskutinę sėklą ir pridėti ją prie naujos vertės, gaunamos iš neprijungto kaiščio.

Kai ciklo funkcijoje pasirenkamas pasirinkimas ir perskaitomas į simbolių masyvą, negalime tiesiog išspausdinti visos eilutės. Ekranas riboja, kiek laiko eilutė vienu metu gali dirbti. Dėl šios priežasties turime pereiti kiekvieną iš penkiolikos eilučių ir išsiųsti jas į ekraną po vieną.

Reikalingos išorinės bibliotekos:

ST7687S biblioteka

„DFRobot-Display Library“

5 žingsnis: prijunkite komponentus

Sujunkite komponentus
Sujunkite komponentus
Sujunkite komponentus
Sujunkite komponentus

Laikas atlikti visus laidų litavimo darbus. Aš linkęs klysti šiek tiek ilgesnių laidų pusėje, nei man iš tikrųjų reikėjo, tačiau tai baigėsi gerai.

Pridedamoje schemoje TFT ekranas pavaizduotas jungtimi, o ne viso ekrano nuotrauka (kuriai neradau „Fritzing“dalies). Aš pažymėjau laidus/kaiščius pagal tai, kaip jie pažymėti ant dalies. Panašiai SD kortelė nėra tiksli, kurią naudojau, bet pažymėjau nurodytos dalies laidus/kaiščius.

Yra vienas komponentas, kurio šiame etape nesulaukiau kartu: akumuliatorius. Vietoj to aš naudojau keturių kontaktų jungtį su dviem viduriniais kaiščiais (antra nuotrauka). Tai leido išbandyti visus sujungtus komponentus ir tada atjungti akumuliatorių, kol viską pritvirtinau prie rutulio.

Galiausiai, norėdamas palengvinti maitinimą ir bendrus ryšius, naudojau ketvirtadalio dydžio nuolatinę duonos plokštės PCB. Tai pamatysite surinkimo nuotraukose.

Patikrinkite, ar viskas veikia

6 žingsnis: pritvirtinkite komponentus prie rutulio

Pritvirtinkite komponentus prie rutulio
Pritvirtinkite komponentus prie rutulio
Pritvirtinkite komponentus prie rutulio
Pritvirtinkite komponentus prie rutulio
Pritvirtinkite komponentus prie rutulio
Pritvirtinkite komponentus prie rutulio
Pritvirtinkite komponentus prie rutulio
Pritvirtinkite komponentus prie rutulio

Pirmiausia įdėkite ekraną į vietą ir apsaugokite jį „Sugru“(pirmieji du vaizdai). Nepamirškite apie anksčiau nuimtą flanšą, prieš pritvirtindami ekraną, turėtumėte jį sugrąžinti į vietą.

Tada priklijavau lentą į tuščios rutulio pusės apačią. Visus savo lydmetalius laikiau vienoje lentos pusėje, todėl dar turėjau pusę lentos, kurią galėjau perklijuoti. Tada aš užklijavau bateriją ant tos pačios protinės plokštės pusės (trečias vaizdas).

Abi pusės dabar yra sujungtos laidais. Išsiaiškinkite, kur atsidurs USB skylė, kai sujungsite abi puses. Jei baltos lūpos stuburai užsikabina, atminkite, kad ji turi nusileisti centre į vieną iš baltos lūpos pleištų, nes USB įkrovimo plokštę įtvirtinsime tarp dviejų plastikinių keterų.

Naudodami nedidelį dvipusės putplasčio juostos gabalėlį, pritvirtinkite USB įkrovimo plokštę. Dvipusė juosta neturėtų uždengti visos įkrovimo plokštės apačios, nes galas su pritvirtintais laidais pakabins virš baltos lūpos vidurio krašto. Taigi juosta turėtų padengti maždaug tris ketvirtadalius apatinio plokštės paviršiaus. Pirmiausia uždėkite juostą ant lentos apačios, tada paspauskite ją į vietą, kurią nusprendėte. USB jungtis turi būti rutulio krašte, prilipti prie juodos plastiko srities, neišeinant iš rutulio. Galiausiai naudokite dar šiek tiek „Sugru“ant lentos viršaus ir pritvirtinkite iš abiejų pusių. Tai tik suteikia papildomos jėgos, kai kabelis įkišamas į USB prievadą.

Dabar įdėkite „micro-SD“kortelę į SD kortelės modulį

Jei norite, kitus komponentus galite pritvirtinti prie baltos lūpos. Likusias sudedamąsias dalis užkišau už ekrano.

7 žingsnis: Sudėkite abi puses kartu

Sudėkite abi puses kartu
Sudėkite abi puses kartu
Sudėkite abi puses kartu
Sudėkite abi puses kartu

Dar kartą patikrinkite, ar įdėjote SD kortelę ir ar kartu išbandėte visus komponentus.

Gerai, jei būsite pasiruošę, padarykite ilgą gyvatę iš kokių nors „Sugru“klijų ir perbraukite ją iki pusės rutulio krašto su balta lūpa (pirmoji nuotrauka). Klijai turėtų būti dedami tiesiai ant sankryžos, kur susilieja juodos ir baltos plastiko dalys. Čia įdėję klijus užtikrinsite tvirtą ryšį ir sumažinsite klijų kiekį, kuris išsispaudžia iš įtrūkimo po dviejų pusių sujungimo.

Suspauskite abi puses kartu, įsitikindami, kad USB prievadas įkišamas pro jam anksčiau iškirstą skylę. Naudodami baldų spaustuką, abi puses suspauskite pakankamai tvirtai, kad pusės būtų kartu, nereikia stipriai spausti. „Sugru“klijai sukietėja maždaug per 24 valandas.

Jei turite šiek tiek klijų, išsispaudusių iš sąnario, drąsiai juos nubraukite pirštu arba lygiu audiniu/popieriniu rankšluosčiu.

Rekomenduojamas: