Obsah:

Hodiny Space Invaders (s rozpočtom!): 6 krokov (s obrázkami)
Hodiny Space Invaders (s rozpočtom!): 6 krokov (s obrázkami)

Video: Hodiny Space Invaders (s rozpočtom!): 6 krokov (s obrázkami)

Video: Hodiny Space Invaders (s rozpočtom!): 6 krokov (s obrázkami)
Video: James Cameron — génius, který vytvořil revoluci ve filmu | Vše o režisérovi "Avatar" a "Terminátor" 2024, Júl
Anonim
Image
Image
Zhromaždite diely
Zhromaždite diely

Nedávno som videl skvelú zostavu od GeckoDiode a okamžite som ju chcel postaviť sám. Instructable sú stolné hodiny Space Invaders a po prečítaní tohto článku vám odporúčam pozrieť sa na ne.

Projekt bol takmer výlučne postavený na častiach pochádzajúcich z Adafruitu s 3D tlačeným krytom a laserom rezanej fasáde. Pripočítanie všetkého k cene stavby je veľmi nákladné! (okolo 100 libier a viac). Problém je, ak nevlastníte 3D tlačiareň, musíte si za vytlačenie modelu zaplatiť alebo si kúpiť škaredý kryt z ebay, ktorý je často príliš malý, príliš úzky, krátky alebo naopak.

Väčšina mojich stavieb musí byť vykonaná s rozpočtom pre domácich majstrov a kryty sú vždy najdrahšou súčasťou. Rozhodol som sa postaviť rovnaké hodiny, ale so slušným rozpočtom.

Ak vás baví pozerať sa na podivné hodiny, pozrite sa na moje voltmetrové hodiny Steampunk, ktoré na ohradu používajú rovnaké stavebné materiály:-)

Krok 1: Zhromaždite diely

Na uskutočnenie tohto projektu budete potrebovať nasledujúce. Majte na pamäti, že pri materiáloch krytu budete mať VEĽA zvyškov, ktoré môžete použiť v iných projektoch (čo robí náklady na budúce stavby ešte lacnejšie). Na ebay som nahral súbory PDF, ktoré potrebujete, ak chcete zistiť cenu atď.

Nástroje (predpokladám, že ich už budete mať)

  • Spájkovačka
  • Spájka
  • Spájkovacie čerpadlo (ak urobíte chybu a potrebujete odstrániť spájku)
  • Horúca lepiaca pištoľ
  • Horúce lepiace tyčinky
  • Remeselný nôž (známy tiež ako stanleyho nôž)
  • Pravítko / krajčírsky meter / posuvné meradlo
  • Aku vŕtačka + vrtáky (1 mm až 13 mm)
  • Rotačný multifunkčný nástroj s rezacím kotúčom (známy tiež ako Dremel)
  • Čistiaca kvapalina ako izopropylalkohol (funguje aj lacná voda po holení)
  • Bezpečnostná maska (používa sa pri striekaní)

Elektronika (Náklady na elektroniku = 13,05 GBP)

Niektoré z nich som mal zadarmo. Staré elektronické hračky majú tieto pekné reproduktory Mylar vo vnútri, ak ich rozložíte. Keď ste tam, pravdepodobne budete mať tiež sud DC a tlačidlo.

  • Dupont / prepojovacie káble - 0,99 GBP
  • DS1307 Hodinový modul v reálnom čase - 0,99 GBP (Odporúčam namiesto toho získať DS3231, ak je k dispozícii)
  • Kábel Arduino nano + USB - 2,23 GBP
  • 8 ohmový reproduktor Mylar - 0,99 GBP
  • Krátke tlačidlo SPST - 1,49 GBP
  • 5,5 mm sudová zásuvka DC - 1,26 GBP
  • Napájanie 5 V, 0,5 A DC - 2,83 GBP
  • MAX7219 Ihličkový displej - 3,76 GBP

Príloha (Náklady na materiály krytu = 17,19 GBP)

  • 60 mm štvorhranná odtoková rúra - 5,99 GBP (na ďalšie projekty vám ostane MNOŽSTVO tohto)
  • Čierna farba v spreji - 4,85 libry
  • Čierne PVC (penová doska) - 2,99 GBP
  • Super lepidlo - 0,99 GBP
  • 60 mm koncové krytky - 2,37 GBP

Celkové náklady = 30,24 GBP:-) …….. v dnešnej dobe to je ekvivalent 38 USD pre všetkých medzinárodných čitateľov.

Baví ma práca so štvorcovou rúrkou z PVC. Dajú sa ľahko vŕtať, rezať, maľovať a jeden som použil na hodiny Steampunk.

Krok 2: Pripravte si odtokovú rúrku

Pripravte si odtokovú rúrku
Pripravte si odtokovú rúrku

Označte si, kam chcete veci uložiť

Bolo to také ľahké. Nepoužil som nič vymyslené. Najprv som pílou skrátil dĺžku 2,5 m na primeranú veľkosť pre svoju lavičku doma (asi 30 cm). Toto som neskôr zrezal dremelom, aby boli okraje pekné a rovné. Potom som položil súčiastky na povrch potrubia a trvalým trhom som označil, kde chcem vŕtať a rezať. Prehľadal som vonkajšiu stranu matice LED a rotačným multifunkčným nástrojom som vyrezal štvorcový otvor, aby sa zmestil do jednej roviny. Pomocou digitálneho posuvného meradla som zmeral priemer tlačidla a hlaveň DC, aby som vyrezal otvory správnej veľkosti v zadnej a hornej časti.

Vyrežte lunetu

Z predchádzajúcich projektov mám položených veľa penovej dosky z PVC. Sú skvelé na montáž obvodov do skriniek, ich použitie na miešanie epoxidov dohromady a na výrobu ďalších bitov a bobov. Vezmite si kus veľkosti A4 alebo A5 a orežte štvorcový 5 mm rám alebo rámček, aby rámoval maticu LED. Tým sa skryjú všetky výstredné konce, ktoré ste urobili pri rezaní štvorcového otvoru pre maticu. Na to som nakreslil malú šablónu na Inkscape a vytlačil ju (priložený súbor SVG). Potom som to nalepil maskovacou páskou na penovú dosku a opatrne som okolo toho narezal remeselným nožom. Je náročné dostať sa správne, odporúčam najskôr rozrezať vnútro a potom zvonka.

Namaľovať všetko

Akonáhle sú všetky otvory vyvŕtané a vyrezané, odstráňte všetky zahrabané hrany. Povrch očistite alkoholovými tampónmi, aby ste odstránili prach alebo znečistenie (alebo lacným balzamom po holení, ak nemáte IPA). Skúste nastriekať v dobre vetranom priestore a podľa možnosti použite masku. Robil som to vonku s nejakou lepenkou na podlahe, ale nie je to ideálne, dokonca aj malý vánok môže spôsobiť, že vám farba bude lietať späť do tváre. Buďte opatrní a noste ochranné prostriedky, kde je to možné.

Nastriekajte potrubie, lunetu a koncovky tak, aby boli všetky rovnakého druhu čiernej farby, potom nechajte niekoľko hodín zaschnúť.

Krok 3: Naprogramujte Arduino

Naprogramujte Arduino
Naprogramujte Arduino

Niektoré informácie o kóde

Kredit pre GeckoDiode, pretože som prevzal jeho kód a upravil ho tak, aby fungoval s čipom MAX7219. Verzia Adafruit používa zbernicu I2C a MAX používa zbernicu SPI. Na to som použil knižnicu MaxMatrix, ktorú som stiahol a nainštaloval do Arduino IDE. Ak sa chcete dozvedieť viac o MaxMatrix a ako principiálne funguje matica LED, na HowToMechatronics.com je veľmi krátky návod. LED matica je tvorená iba jednou farbou LED diód, nie viacfarebným displejom.

Jedna frustrácia, ktorú som mal, je, že neexistujú ŽIADNE jasné definície toho, aké funkcie knižnica obsahuje a aké argumenty je potrebné do každej z nich zadať. Našťastie sa mi podarilo pokusom a omylom zistiť, čo čo urobilo, a nakoniec nebolo ťažké dosiahnuť, aby to správne fungovalo. Prvá vec, ktorú musíte pochopiť, je, že musíte definovať, koľko modulov 8x8 je vo vašej matici. V mojom kóde je to uložené v celom čísle nazývanom „moduly“takto:

"int moduly = 4;"

Toto je POČET modulov 8x8, ktoré ste prepojili na svojom displeji. Nie je to počet diód LED alebo pin, ktorý používate na odosielanie údajov. Ďalšou vecou, ktorú si treba zapamätať, je, že ak váš „sprite“alebo čokoľvek iné pokrýva všetky štyri matice, potom je potrebné definovať bajtové pole takto:

"byte text_start_bmp = {32, 8, …*niektoré bajtové údaje*…};"

Čísla označujú počet riadkov a stĺpcov v matici. Pri tejto príležitosti sa bajt s názvom "text_start_bmp" zobrazí v 32 stĺpcoch a 8 riadkoch. Čísla sa zobrazujú iba na jednej matici 8x8, takže minútové číslo 10 vyzerá takto:

"byte minute_ten_bmp = {8, 8, …*niektoré bajtové údaje*…};"

Útočníci pokrývajú dve matice, takže bajtu bude v bajtových dátach priradených 16, 8.

Ďalšou vecou, ktorá ma chytila, bolo umiestnenie údajov sprite. Môžete požiadať Arduino, aby zobrazil sprite v inej polohe X/Y na matici ako predvolenú domácu pozíciu. Kód vyzerá takto pre minútu nula:

"matrix.writeSprite (8, 0, minúta_zero_bmp);"

Jedno číslo je úprava X a druhé Y. Nemôžem si spomenúť, ktoré z nich je teraz, ale ak chcete posunúť sprite nahor alebo nadol o 1 riadok alebo stĺpec, jednoducho zvýšite číslo kladne alebo mínus. Dostatočne jednoduché pre maticu 8x8, ale keď váš sprite pokrýva viac ako jednu maticu, musíte podľa toho nastaviť domácu pozíciu. Sprite "POP" je zobrazený nižšie:

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

Všimnite si teraz, ako je domáca pozícia 16, nie 8? Tu kód naznačuje, že sprite je zobrazený zľava doprava z riadka/stĺpca 16 pozície. Považuje dva displeje 8x8 za jeden displej 16x8, aj keď existujú 4! Preto je dôležité zamyslieť sa nad tým, na koľkých displejoch sa sprite zobrazí, a podľa toho prispôsobiť veľkosť bajtového poľa každého sprite. V opačnom prípade budete mať niekoľko veľmi zaujímavých škriatkov!

DS1307 RTC

Napriek tomu, že DS1307 funguje dobre s knižnicou Adafruit RTClib.h, nemôžete ručne nastaviť čas, ktorý je bolestivý. Práve som sa na to obrátil, pretože to znamenalo menej kódu na zmenu. DS1307 nastavuje čas pomocou času a dátumu, kedy bol kód zostavený z času vášho počítača. Namiesto toho sa naučte používať knižnicu DS3231 a nastavte ju raz v budúcnosti na jednu alebo dve minúty dopredu. Má tiež menší „drift“, takže v priebehu času lepšie udrží čas. Oba moduly používajú zbernicu I2C a domnievam sa, že DS3231 je možné použiť s RTClib.h, ak vám ho bude naďalej ponúkať.

Nahrajte kód

Akonáhle budete s kódom spokojní, nahrajte ho do Arduina. Pripájam svoju skicu Arduino na zváženie.

Krok 4: Zostavenie elektroniky

Zostavovanie elektroniky
Zostavovanie elektroniky

Pri odosielaní kódu by som odporučil najskôr zostaviť elektroniku s dupontnými/prepojovacími vodičmi na doske, aby ste pri odosielaní kódu vedeli, že všetko funguje tak, ako má. To vám umožní vyriešiť všetky problémy so zobrazením škriatkov atď. Skôr, ako začnete lepiť a lepiť. V mojom kóde vidíte, že používam digitálne piny 4, 5, 6, 7, 9, ale v prípade potreby ich môžete zmeniť. Možno budete musieť spájkovať káble na tlačidlo, konektor DC a reproduktor, ale väčšinu by mali tvoriť ľahko zasúvateľné konektory.

Akonáhle ste spokojní, že elektronika funguje tak, ako má, mali by ste zvážiť spájkovanie spojov. Môžete to urobiť s medeným pásom/veroboardom, ale pre malé množstvo komponentov sa môžete spájkovať priamo s kolíkmi Arduina. Bude to vyzerať ako hniezdo pre potkany, ale nikto nebude vidieť priestor v kryte, akonáhle bude zostavený, uistite sa, že sú všetky kovové časti oddelené, nechcete, aby sa v puzdre niečo skratovalo.

Spustil som tlačidlo, keď je kolík „mainButton“potiahnutý nízko. Zistil som, že Arduino rozpoznal stlačené falošné tlačidlo, keď sa na ňom usadila plávajúca elektronika. Tento problém mi vyriešil použitie 10K rozbaľovacieho odporu na tlačidle a nastavenie kolíka na „INPUT_PULLUP“.

V prílohe je schéma vo formáte PDF a PNG, aby ste vedeli, kam pripojiť piny.

Krok 5: Namontujte elektroniku a zblízka

Namontujte elektroniku a zatvorte
Namontujte elektroniku a zatvorte
Namontujte elektroniku a zatvorte
Namontujte elektroniku a zatvorte

Na hodiny som namontoval elektroniku pomocou horúceho lepidla, ale dávajte si pozor, aby ste toho nenanášali príliš veľa (elektronika nemá rada príliš dlhé zahrievanie). Použil som malú kvapku super lepidla bodkovaného okolo lunety a pritlačil som ju na prednú stranu. Dokončil som ohradu zatlačením koncových krytov na oboch koncoch. Koncovky môžete samozrejme prilepiť, aby sa zostava úplne uzavrela, ale jednu stranu som nechal otvorenú, aby som mal stále prístup k portu USB arduina a v budúcnosti resetovať dátum a čas.

Krok 6: Užite si to

Užite si to
Užite si to
Užite si to
Užite si to

Celkovo som spokojný s tým, ako to vyšlo, pretože to považujem len za odkvapovú rúru a farbu v spreji. Dúfam, že sa vám bude páčiť a dajte mi vedieť, či vás napadnú nejaké skvelé vylepšenia, ktoré je možné pridať. Zaujímalo by ma, či to môže niekto urobiť lacnejšie alebo či existuje iný šetrný spôsob výroby krytu, ktorý môžem vyskúšať vo svojom ďalšom projekte.

Odporúča: