Obsah:

Hodiny Space Invaders (s rozpočtem!): 6 kroků (s obrázky)
Hodiny Space Invaders (s rozpočtem!): 6 kroků (s obrázky)

Video: Hodiny Space Invaders (s rozpočtem!): 6 kroků (s obrázky)

Video: Hodiny Space Invaders (s rozpočtem!): 6 kroků (s obrázky)
Video: Sedmikrásky online | 130 - Tomáš Přibyl o planetce Psyche 2024, Červenec
Anonim
Image
Image
Shromážděte díly
Shromážděte díly

Nedávno jsem viděl skvělou sestavu od GeckoDiode a okamžitě jsem ji chtěl postavit sám. Instructable jsou stolní hodiny Space Invaders a po přečtení vám doporučuji se na ně podívat.

Projekt byl téměř výhradně postaven z dílů pocházejících z Adafruit s 3D tištěným krytem a laserem řezané fasády. Sčítání všeho do nákladů na stavbu se stává velmi nákladným! (kolem 100 liber a více). Problém je, pokud nevlastníte 3D tiskárnu, musíte zaplatit za vytištění svého modelu, nebo si koupit ošklivý kryt z ebay, který je často příliš malý, příliš úzký, krátký nebo naopak.

Většina mých stavění musí být provedena s rozpočtem fandů a ohrady vždy skončí jako nejdražší část. Rozhodl jsem se tedy postavit stejné hodiny, ale se slušným rozpočtem.

Pokud vás baví dívat se na podivné hodiny, podívejte se na mé hodiny voltmetru Steampunk, které pro kryt používají stejné stavební materiály:-)

Krok 1: Shromážděte součásti

K vytvoření tohoto projektu budete potřebovat následující. Pamatujte na to, že s materiály pro skříň budete mít MNOHO zbytků, které můžete použít v jiných projektech (což činí náklady na budoucí stavby ještě levnější). Nahrál jsem soubory PDF z věcí, které potřebujete, pokud chcete zkontrolovat cenu atd. Na ebay.

Nástroje (předpokládám, že už je budete mít)

  • Páječka
  • Pájka
  • Pájecí čerpadlo (pokud uděláte chybu a potřebujete odstranit pájku)
  • Horká lepicí pistole
  • Horké lepicí tyčinky
  • Řemeslný nůž (také znám jako nůž Stanley)
  • Pravítko / měřicí páska / posuvné měřítko
  • Aku vrtačka + vrtáky (1 mm až 13 mm)
  • Rotační multifunkční nástroj s řezacím kotoučem (také Dremel)
  • Čisticí kapalina jako isopropylalkohol (funguje i levná voda po holení)
  • Bezpečnostní maska (používá se při nástřiku)

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

Některé z nich jsem měl zdarma. Staré elektronické hračky mají tyto pěkné reproduktory Mylar uvnitř, pokud je rozeberete. Když jste tam, pravděpodobně můžete získat také DC barel a tlačítko.

  • Dupont / propojovací kabely - 0,99 GBP
  • DS1307 Hodinový modul v reálném čase - 0,99 GBP (doporučil bych místo toho získat DS3231)
  • Arduino nano + USB kabel - 2,23 GBP
  • 8 ohmový reproduktor Mylar - 0,99 GBP
  • Okamžité tlačítko SPST - 1,49 GBP
  • Zásuvka 5,5 mm DC - 1,26 GBP
  • Napájení 5v, 0,5A DC - 2,83 GBP
  • MAX7219 Bodový displej - 3,76 GBP

Příloha (Náklady na materiály skříně = 17,19 GBP)

  • 60 mm čtvercová odtoková trubka - 5,99 GBP (zbude vám MNOHO toho pro další projekty)
  • Černá barva ve spreji - 4,85 GBP
  • Černé PVC (pěnová deska) - 2,99 GBP
  • Super lepidlo - 0,99 GBP
  • 60 mm koncovky - 2,37 GBP

Celkové náklady = 30,24 GBP:-) …….. k dnešnímu dni je to ekvivalent 38 USD pro všechny mezinárodní čtenáře.

Baví mě práce se čtvercovou trubkou z PVC. Lze je snadno vrtat, řezat, malovat a jeden jsem použil na hodiny Steampunk.

Krok 2: Připravte si vypouštěcí potrubí

Připravte si vypouštěcí potrubí
Připravte si vypouštěcí potrubí

Označte, kam chcete věci uložit

Bylo to tak snadné. Nepoužil jsem nic fantastického. Nejdříve jsem délku 2,5 m zkrátil na rozumnou velikost pro svou lavičku doma (asi 30 cm) pomocí pily. Později jsem to řezal dremelem, aby byly okraje pěkné a rovné. Poté jsem položil součásti na povrch potrubí a pomocí trvalého trhu jsem označil, kde chci vrtat a řezat. Prošel jsem vnější stranu matice LED a pomocí rotačního nástroje jsem vyřízl čtvercový otvor, aby se vešel do roviny. Pomocí digitálního posuvného měřítka jsem změřil průměr tlačítka a barel DC, abych vyřízl otvory správné velikosti v zadní a horní části.

Vyřízněte lunetu

Mám spoustu pěnové desky z PVC, která se pokládá z předchozích projektů. Jsou skvělé pro montáž obvodů do skříní, jejich použití k míchání epoxidů dohromady a vytváření dalších bitů a bobů. Vezměte kus velikosti A4 nebo A5 a ořízněte čtvercový 5 mm rámeček nebo rámeček, abyste rámovali matici LED. Tím se skryjí všechny nevyzpytatelné konce, které jste udělali při řezání čtvercového otvoru pro matici. Za tímto účelem jsem nakreslil malou šablonu na Inkscape a vytiskl ji (připojený soubor SVG). Potom jsem to přelepil maskovací páskou na pěnovou desku a opatrně kolem toho prořízl řemeslným nožem. Je složité správně se dostat, doporučuji nejprve proříznout vnitřek a potom vnější.

Všechno namalovat

Jakmile jsou všechny otvory vyvrtány a vyříznuty, odstraňte všechny zahrabané hrany. Očistěte povrchy některými alkoholovými ubrousky, abyste odstranili veškerý prach nebo znečištění (nebo nějaké levné vody po holení, pokud nemáte IPA). Zkuste stříkat na dobře větraném místě a pokud je to možné, použijte masku. Udělal jsem to venku s trochou lepenky na podlaze, ale není to ideální, dokonce i malý vánek může způsobit, že vám barva odletí zpět do obličeje. Buďte opatrní a pokud je to možné, noste ochranné prostředky.

Nastříkejte trubku, lunetu a koncovky tak, aby byly všechny stejného typu černé, a poté nechte několik hodin zaschnout.

Krok 3: Naprogramujte Arduino

Naprogramujte Arduino
Naprogramujte Arduino

Některé informace o kódu

Kredit pro GeckoDiode, protože jsem převzal jeho kód a upravil jej tak, aby fungoval s čipem MAX7219. Verze Adafruit používá sběrnici I2C a MAX používá sběrnici SPI. K tomu jsem použil knihovnu MaxMatrix, kterou jsem stáhl a nainstaloval do Arduino IDE. Pokud se chcete dozvědět více o MaxMatrixu a o tom, jak v principu funguje LED matice, je na HowToMechatronics.com velmi krátký návod. LED matice je tvořena pouze jednou barvou LED diod, nikoli vícebarevným displejem.

Jedna frustrace, kterou jsem měl, je, že neexistují ŽÁDNÉ jasné definice toho, jaké jsou funkce pro knihovnu a jaké argumenty je třeba předat do každé z nich. Naštěstí se mi podařilo pokusem a omylem zjistit, co co udělalo, a nakonec nebylo příliš obtížné, aby to fungovalo správně. První věcí, kterou musíte pochopit, je, že musíte definovat, kolik modulů 8x8 je ve vaší matici. V mém kódu je to uloženo v celém čísle nazývaném "moduly" takto:

"int moduly = 4;"

Toto je POČET modulů 8x8, které jste na displeji propojili. Ne počet LED diod nebo pin, který používáte k odesílání dat. Další věcí, kterou je třeba si zapamatovat, je, že pokud váš „sprite“nebo cokoli jiného pokrývá všechny čtyři matice, je třeba bajtové pole definovat takto:

"byte text_start_bmp = {32, 8, …*některá bajtová data*…};"

Čísla udávají počet řádků a sloupců v matici. Při této příležitosti se bajt s názvem "text_start_bmp" zobrazí přes 32 sloupců a 8 řádků. Čísla se zobrazují pouze na jedné matici 8x8, takže minutové číslo 10 vypadá takto:

"byte minute_ten_bmp = {8, 8, …*některá bajtová data*…};"

Útočníci pokrývají dvě matice, takže bajtu bude v bajtových datech přiděleno 16, 8.

Další věc, která mě chytila, bylo umístění dat sprite. Můžete požádat Arduino, aby zobrazil sprite v jiné pozici X/Y na matici od výchozí domovské pozice. Kód vypadá takto pro minutu nula:

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

Jedno číslo je úprava X a druhé Y. Nemůžu si vzpomenout, který z nich je nyní, ale pokud chcete posunout sprite nahoru nebo dolů o 1 řádek nebo sloupec, jednoduše zvýšíte číslo kladně nebo mínus. Je to dost jednoduché pro matici 8x8, ale když váš sprite pokrývá více než jednu matici, musíte podle toho nastavit domovskou pozici. Sprite „POP“je zobrazen níže:

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

Všimněte si nyní, jak je výchozí pozice 16, nikoli 8? Zde kód ukazuje, že sprite je zobrazen zleva doprava z pozice řádku/sloupce 16. Považuje dva displeje 8x8 za jeden displej 16x8, přestože jsou 4! Proto je důležité zamyslet se nad tím, kolik displejů bude sprite zobrazeno, a podle toho přizpůsobit velikost bajtového pole každého sprite. Jinak budete mít pár velmi zajímavých skřítků!

DS1307 RTC

Přestože DS1307 funguje dobře s knihovnou Adafruit RTClib.h, nemůžete ručně nastavit čas, což je bolest. Právě jsem šel s tím, protože to znamenalo méně kódu ke změně. DS1307 nastavuje čas pomocí času a data, kdy byl kód zkompilován z času vašeho počítače. Místo toho se naučte používat knihovnu DS3231 a jednou ji v budoucnu nastavit na jednu nebo dvě minuty dopředu. Má také menší „drift“, takže udržuje čas lépe v průběhu času. Oba moduly používají sběrnici I2C a domnívám se, že DS3231 lze použít s RTClib.h, pokud jej budete chtít i nadále používat.

Nahrajte kód

Jakmile budete s kódem spokojeni, nahrajte jej do Arduina. Připojil jsem svůj skica Arduino pro vaši úvahu.

Krok 4: Sestavení elektroniky

Montáž elektroniky
Montáž elektroniky

Při odesílání kódu bych doporučil mít nejprve elektroniku sestavenou z dupontních/propojovacích vodičů na prkénku, takže když nahrajete kód, víte, že vše funguje tak, jak bylo zamýšleno. To vám umožní vyžehlit všechny problémy se zobrazením skřítků atd., Než začnete lepit a lepit. V mém kódu vidíte, že používám digitální piny 4, 5, 6, 7, 9, ale v případě potřeby je můžete změnit. Možná budete muset připájet kabely k tlačítku, DC konektoru a reproduktoru, ale většina by měla být snadno zapojitelná ve stylu konektorů.

Jakmile jste spokojeni, elektronika funguje tak, jak měla, měli byste zvážit pájení spojů. Můžete to udělat s měděným páskem/veroboardem, ale pro malé množství součástek můžete pájet přímo na piny Arduina. Bude to vypadat jako krysí hnízdo, ale nikdo ho uvnitř neuvidí, jakmile bude sestaven, jen se ujistěte, že jsou všechny kovové části odděleny, nechcete, aby se v kufru něco zkratovalo.

Když je kolík „mainButton“vytažen nízko, spustil jsem tlačítko. Zjistil jsem, že Arduino rozpoznává stisknuté falešné tlačítko, když se na něj usazuje plovoucí elektronika. Použití 10K pulldown rezistoru na tlačítku a nastavení pinu na "INPUT_PULLUP" tento problém vyřešil za mě.

V příloze je schéma v PDF a PNG, abyste věděli, kam piny připojit.

Krok 5: Namontujte elektroniku a zavřete

Namontujte elektroniku a zavřete
Namontujte elektroniku a zavřete
Namontujte elektroniku a zavřete
Namontujte elektroniku a zavřete

U hodin jsem namontoval elektroniku pomocí horkého lepidla, ale dávejte pozor, abyste nepoužili příliš mnoho (elektronika nemá ráda příliš dlouhé zahřívání). Použil jsem malou kapku super lepidla tečkovaného kolem lunety a přitiskl ji na přední stranu. Dokončil jsem skříň tím, že jsem na obou koncích zatlačil koncovky. Samozřejmě můžete nalepit koncové kryty, abyste kompletně uzavřeli sestavu, ale jednu stranu jsem nechal otevřenou, abych měl stále přístup k USB portu arduina a v budoucnu resetoval datum a čas.

Krok 6: Užijte si to

Užívat si
Užívat si
Užívat si
Užívat si

Celkově jsem spokojený s tím, jak to vyšlo, vzhledem k tomu, že to byla jen nějaká okapová trubka a barva ve spreji. Doufám, že se vám bude líbit, a dejte mi vědět, jestli vás napadnou nějaké skvělé upgrady, které lze přidat. Zajímalo by mě, jestli to někdo může zlevnit, nebo jestli existuje jiný šetrný způsob, jak vytvořit kryt, který mohu vyzkoušet ve svém dalším projektu.

Doporučuje: