Turinys:

„Space Invaders“laikrodis (turint biudžetą!): 6 žingsniai (su nuotraukomis)
„Space Invaders“laikrodis (turint biudžetą!): 6 žingsniai (su nuotraukomis)

Video: „Space Invaders“laikrodis (turint biudžetą!): 6 žingsniai (su nuotraukomis)

Video: „Space Invaders“laikrodis (turint biudžetą!): 6 žingsniai (su nuotraukomis)
Video: Part 1 - The War of the Worlds Audiobook by H. G. Wells (Book 1 - Chs 1-12) 2024, Liepa
Anonim
Image
Image
Surinkite dalis
Surinkite dalis

Neseniai pamačiau šaunią „GeckoDiode“konstrukciją ir iškart norėjau ją pasigaminti pati. „Instructable“yra „Space Invaders“darbalaukio laikrodis, ir aš rekomenduoju jums jį pažvelgti perskaičius.

Projektas buvo beveik vien sudarytas iš dalių, gautų iš „Adafruit“su 3D atspausdintais gaubtais ir lazeriu išpjauta fascija. Viską sudėjus, statybos kaina tampa labai brangi! (apie 100 svarų ir daugiau). Problema yra ta, kad jei neturite 3D spausdintuvo, turite sumokėti, kad išspausdintumėte savo modelį, arba nusipirksite negražią korpusą iš „ebay“, kuris dažnai yra šiek tiek per mažas, per siauras, trumpas arba priešingai.

Dauguma mano kūrinių turi būti atliekami iš mėgėjų biudžeto, o gaubtai visada yra brangiausia dalis. Taigi nusprendžiau sukurti tą patį laikrodį, tačiau turėdamas tinkamą biudžetą.

Jei jums patinka žiūrėti keistus laikrodžius, peržiūrėkite mano „Steampunk“voltmetro laikrodį, kuriame gaubtui naudojamos tos pačios statybinės medžiagos:-)

1 žingsnis: Surinkite dalis

Norėdami sukurti šį projektą, jums reikės šių dalykų. Turėkite omenyje su korpuso medžiagomis turėsite DAUG likučių, kuriuos galėsite panaudoti kitiems projektams (dėl to būsimų statybų kaina bus dar pigesnė). Aš įkėliau PDF failus, kurių jums reikia, jei norite patikrinti kainą ir pan. „Ebay“.

Įrankiai (manau, kad jau turėsite)

  • Lituoklis
  • Lituoklis
  • Lituoklio siurblys (jei suklydote ir reikia pašalinti lydmetalį)
  • Karštas klijų pistoletas
  • Karštų klijų lazdelės
  • Amatinis peilis (dar žinomas kaip Stanley peilis)
  • Liniuotė / matavimo juosta / Vernier apkaba
  • Akumuliatorinis gręžtuvas + grąžtai (nuo 1 mm iki 13 mm)
  • Sukamasis daugiafunkcis įrankis su pjovimo disku (dar žinomas kaip „Dremel“)
  • Valymo skystis, pavyzdžiui, izopropilo alkoholis (taip pat veikia pigus skutimasis)
  • Apsauginė kaukė (naudojama dažant purškiant)

Elektronika (elektronikos kaina = £ 13.05)

Kai kuriuos iš jų turėjau nemokamai. Senuose elektroniniuose žaisluose yra šie gražūs „Mylar“garsiakalbiai, jei juos išardysite. Kol esate ten, tikriausiai galite gauti nuolatinės srovės statinę ir mygtuką.

  • „Dupont“/ „Jumper“kabeliai - 0,99 svaro sterlingų
  • DS1307 realaus laiko laikrodžio modulis - 0,99 svaro sterlingų (rekomenduočiau vietoj to įsigyti DS3231)
  • „Arduino nano +“USB kabelis - 2,23 svaro
  • 8 omų „Mylar“garsiakalbis - 0,99 svaro
  • SPST momentinis mygtukas - 1,49 svaro
  • 5,5 mm nuolatinės srovės statinės lizdas - 1,26 svaro
  • 5v, 0,5A nuolatinės srovės maitinimo šaltinis - £ 2,83
  • MAX7219 Taškų matricos ekranas - £ 3.76

Korpusas (gaubto medžiagų kaina = 17,19 £)

  • 60 mm kvadratinis kanalizacijos vamzdis - 5,99 svaro sterlingų (to turėsite LIKTI daugiau projektų)
  • Juodi purškiami dažai - 4,85 svaro sterlingų
  • Juodas PVC (putplasčio plokštė) - 2,99 £
  • Super klijai - 0,99 £
  • 60 mm galiniai dangteliai - 2,37 svaro

Bendra kaina = 30,24 svarų sterlingų:-) …….. šiandien tai yra 38 USD ekvivalentas bet kuriam tarptautiniam skaitytojui.

Man patinka dirbti su kvadratiniu PVC vamzdžiu. Juos lengva gręžti, pjauti, dažyti, o aš naudojau vieną savo „Steampunk“laikrodžiui.

2 žingsnis: Paruoškite kanalizacijos vamzdį

Paruoškite kanalizacijos vamzdį
Paruoškite kanalizacijos vamzdį

Pažymėkite, kur norite sudėti daiktus

Tai buvo taip lengva. Nieko įmantraus nenaudojau. Pirmiausia pjovimo pjūklu nukirpiau 2,5 m ilgį iki tinkamo dydžio savo suoleliui namuose (apie 30 cm). Vėliau nupjoviau dremeliu, kad kraštai būtų gražūs ir tiesūs. Tada komponentus padėjau ant vamzdžio paviršiaus ir nuolatinėje rinkoje pažymėjau, kur noriu gręžti ir pjauti. Aš sekiau aplink LED matricos išorę ir sukamuoju daugiafunkciniu įrankiu iškirpiau kvadratinę skylę, kad ji tilptų. Aš naudoju skaitmeninį suportą, norėdamas išmatuoti mygtuko ir nuolatinės srovės statinės skersmenį, kad galinėje ir viršutinėje dalyje iškirptų reikiamo dydžio skyles.

Iškirpkite rėmelį

Turiu daugybę PVC putplasčio plokščių iš ankstesnių projektų. Jie puikiai tinka montuoti grandines į gaubtus, naudojant jį kartu maišant epoksidą ir gaminant kitus gabalus ir bobas. Paimkite A4 arba A5 dydžio gabalėlį ir iškirpkite kvadratinį 5 mm apvadą arba rėmelį, kad įrėmintumėte LED matricą. Tai paslėps bet kokius beprotiškus kraštus, kuriuos padarėte pjaustydami kvadratinę skylę matricai. Tam aš nubraižiau nedidelį šabloną „Inkscape“ir atsispausdinau (pridėtas SVG failas). Tada priklijavau lipnia juostele prie putplasčio plokštės ir atsargiai supjaustiau aplink ją amato peiliu. Sunku išsirinkti teisingai, rekomenduoju pirmiausia nupjauti vidų, o paskui išorę.

Viską dažyti

Kai visos skylės yra išgręžtos ir supjaustytos, pašalinkite visus įbrėžusius kraštus. Nuvalykite paviršius tam tikromis alkoholio servetėlėmis, kad pašalintumėte dulkes ar taršą (arba pigiai po skutimosi, jei neturite IPA). Pabandykite purkšti gerai vėdinamoje vietoje ir, jei įmanoma, naudokite kaukę. Aš tai padariau lauke su kartonu ant grindų, bet tai nėra idealu, net ir nedidelis vėjelis gali sukelti dažų grįžimą į veidą. Būkite atsargūs ir, jei įmanoma, dėvėkite apsaugines priemones.

Purškite vamzdį, rėmą ir galinius dangtelius, kad jie visi būtų to paties tipo juodi, tada palikite kelias valandas išdžiūti.

3 žingsnis: užprogramuokite „Arduino“

Programuokite „Arduino“
Programuokite „Arduino“

Šiek tiek informacijos apie kodą

Kreditas „GeckoDiode“, nes paėmiau jo kodą ir pakeičiau jį, kad jis veiktų su „MAX7219 Chip“. „Adafruit“versijoje naudojama I2C magistralė, o MAX - SPI magistralė. Tam naudojau „MaxMatrix“biblioteką, kurią atsisiunčiau ir įdiegiau į „Arduino IDE“. Jei norite sužinoti daugiau apie „MaxMatrix“ir tai, kaip iš esmės veikia LED matrica, yra labai trumpa „HowToMechatronics.com“pamoka. LED matricą sudaro tik vienos spalvos šviesos diodai, o ne įvairiaspalvis ekranas.

Turėjau nusivylimą, kad nėra aiškių apibrėžimų, kokios yra bibliotekos funkcijos ir kokie argumentai turi būti perduoti kiekvienai. Laimei, man pavyko išsiaiškinti, ką padarė bandymai ir klaidos, ir galų gale nebuvo per sunku jį tinkamai veikti. Pirmiausia reikia suprasti, kad turite nustatyti, kiek 8x8 modulių yra jūsų matricoje. Mano kode tai saugoma sveiku skaičiumi, vadinamu „moduliais“:

"int moduliai = 4;"

Tai yra NUMERIS 8x8 modulių, kuriuos susiejote ekrane. Ne šviesos diodų skaičius ar kaištis, kurį naudojate siunčiant duomenis. Kitas dalykas, kurį reikia atsiminti, yra tai, kad jei jūsų „sprite“ar bet kas apima visas keturias matricas, baitų masyvą reikia apibrėžti taip:

"baitų tekstas_start_bmp = {32, 8,…*kai kurie baitų duomenys*…};"

Skaičiai nurodo eilučių ir stulpelių skaičių matricoje. Šia proga baitas pavadinimu „text_start_bmp“rodomas per 32 stulpelius ir 8 eilutes. Skaičiai rodomi tik vienoje 8x8 matricoje, todėl minučių skaičius 10 atrodo taip:

"baitas minute_ten_bmp = {8, 8,…*kai kurie baitų duomenys*…};"

Įsibrovėliai padengia dvi matricas, todėl baitų duomenyse baitui bus pateikta 16, 8.

Kitas dalykas, kuris mane patraukė, buvo „Sprite“duomenų išdėstymas. Galite paprašyti „Arduino“rodyti spritą kitoje X/Y padėtyje matricoje nei numatytoji pradinė padėtis. Minutės nulio kodas atrodo taip:

"matrix.writeSprite (8, 0, minute_zero_bmp);"

Vienas skaičius yra X koregavimas, o kitas - Y. Neprisimenu, kuris iš jų yra dabar, bet jei norite pastumti sprite aukštyn arba žemyn 1 eilute ar stulpeliu, tiesiog padidinkite skaičių teigiamai arba minusai. Pakankamai paprasta 8x8 matricai, bet kai jūsų „Sprite“apima daugiau nei vieną matricą, turite atitinkamai nustatyti pradinę padėtį. „POP“sprite parodyta žemiau:

"matrix.writeSprite (16, 0, invader_pop_bmp);"

Dabar pastebėkite, kaip pradinė padėtis yra 16, o ne 8? Čia kodas nurodo, kad sprite rodomas iš kairės į dešinę nuo 16 pozicijos eilutės/stulpelio. Du 8x8 ekranai laikomi vienu 16x8 ekranu, nors yra 4! Todėl svarbu pagalvoti, kiek ekranų bus rodomas, ir atitinkamai nustatyti kiekvieno sprito baitų masyvą. Priešingu atveju turėsite labai įdomių spritų!

DS1307 RTC

Nors DS1307 puikiai veikia su „Adafruit RTClib.h“biblioteka, jūs negalite rankiniu būdu nustatyti tik skausmo. Aš tiesiog tai padariau, nes tai reiškė mažiau kodo keitimo. DS1307 nustato laiką, naudodamas laiką ir datą, kai kodas buvo surinktas pagal jūsų kompiuterio laiką. Vietoj to išmokite naudotis DS3231 biblioteka ir vieną kartą nustatykite ją vieną ar dvi minutes į priekį ateityje. Jis taip pat turi mažiau „dreifo“, todėl laikui bėgant geriau išlaiko laiką. Abu moduliai naudoja I2C magistralę, ir manau, kad DS3231 galima naudoti su RTClib.h, jei norite ir toliau jį naudoti.

Įkelkite kodą

Kai būsite patenkinti kodu, įkelkite jį į „Arduino“. Pridėjau savo „Arduino“eskizą jūsų svarstymui.

4 žingsnis: Elektronikos surinkimas

Elektronikos surinkimas
Elektronikos surinkimas

Įkeliant kodą, aš rekomenduočiau, kad elektronika būtų surinkta su „dupont/jumper“laidais ant duonos lentos, kad įkeldami kodą žinotumėte, jog viskas veikia taip, kaip numatyta. Tai leidžia išspręsti problemas, susijusias su spritų rodymu ir tt, prieš pradedant klijuoti ir klijuoti. Mano kode galite matyti, kad naudoju 4, 5, 6, 7, 9 skaitmeninius kaiščius, tačiau prireikus galite juos pakeisti. Jums gali tekti lituoti kabelius ant mygtuko, nuolatinės srovės lizdo ir garsiakalbio, tačiau dauguma jų turėtų būti lengvai stumdomos jungtys.

Kai būsite patenkinti, elektronika veikia taip, kaip numatyta, turėtumėte apsvarstyti jungčių litavimą. Tai galite padaryti naudodami varinę juostelę/veroboardą, tačiau nedidelį komponentų kiekį galite lituoti tiesiai prie „Arduino“kaiščių. Tai atrodys kaip žiurkių lizdas, tačiau surinkus gaubtą niekas vis tiek nematys, tiesiog įsitikinkite, kad visos metalinės dalys yra atskirtos, ir nenorite, kad korpuse nieko netrūktų.

Aš privertiau mygtuką paspausti, kai „mainButton“kaištis yra žemai patrauktas. Radau, kad „Arduino“atpažįsta klaidingą paspaudžiamą mygtuką, kai ant jo nusėda plaukiojanti elektronika. Naudojant 10K ištraukiamą rezistorių ant mygtuko ir nustatant kaištį į „INPUT_PULLUP“, ši problema man išsprendė.

Pridedama schema PDF ir-p.webp

5 žingsnis: sumontuokite elektroniką ir uždarykite

Sumontuokite elektroniką ir uždarykite
Sumontuokite elektroniką ir uždarykite
Sumontuokite elektroniką ir uždarykite
Sumontuokite elektroniką ir uždarykite

Savo laikrodžiui elektroniką sumontavau karštais klijais, tačiau būkite atsargūs, kad neteptumėte per daug (elektronika nemėgsta būti per ilgai įkaitusi). Aš panaudojau nedidelį super klijų lašą, išmargintą aplink rėmelį, ir prispaudžiau jį prie priekio. Užbaigiau aptvarą, kiekviename gale įstumdamas galinius dangtelius. Žinoma, galite priklijuoti galinius dangtelius, kad visiškai uždengtumėte agregatą, tačiau palikau vieną savo pusę atvirą, kad vis tiek galėčiau pasiekti arduino USB prievadą, kad ateityje būtų galima iš naujo nustatyti datą ir laiką.

6 žingsnis: mėgaukitės

Mėgautis
Mėgautis
Mėgautis
Mėgautis

Apskritai esu patenkintas tuo, kaip tai pasirodė, atsižvelgiant į tai, kad tai yra tik latakas ir purškiami dažai. Tikiuosi, kad jums tai patiks, ir praneškite man, ar galite sugalvoti kokių puikių atnaujinimų, kuriuos būtų galima pridėti. Man būtų įdomu sužinoti, ar kas nors gali tai padaryti pigiau, ar yra dar vienas taupus būdas padaryti aptvarą, kurį galėčiau išbandyti savo kitame projekte.

Rekomenduojamas: