Sisällysluettelo:

Space Invaders Clock (budjetilla!): 6 vaihetta (kuvilla)
Space Invaders Clock (budjetilla!): 6 vaihetta (kuvilla)

Video: Space Invaders Clock (budjetilla!): 6 vaihetta (kuvilla)

Video: Space Invaders Clock (budjetilla!): 6 vaihetta (kuvilla)
Video: 【生放送】ロシアによる侵略。ウクライナがどれだけ持ちこたえられるのか。現状の解説などでライブ 2024, Heinäkuu
Anonim
Image
Image
Kerää osat
Kerää osat

Äskettäin näin GeckoDioden hienon rakenteen ja halusin heti rakentaa sen itse. Instructable on Space Invaders -työpöytäkello, ja suosittelen katsomaan sitä tämän lukemisen jälkeen.

Projekti rakennettiin lähes yksinomaan Adafruitista hankituista osista, joissa oli 3D -tulostettu kotelo ja laserleikattu kasvot. Kaikkien rakennuskustannusten lisääminen tulee erittäin kalliiksi! (noin 100 € tai enemmän). Ongelmana on, että jos sinulla ei ole 3D -tulostinta, sinun on maksettava mallisi tulostamisesta tai ostettava ruma kotelo ebaystä, joka on usein vain hieman liian pieni, liian kapea, lyhyt tai päinvastoin.

Suurin osa rakennuksistani on tehtävä harrastajabudjetilla ja kotelot ovat aina kallein osa. Joten päätin rakentaa saman kellon, mutta kohtuullisella budjetilla.

Jos pidät katsomasta outoja kelloja, tutustu Steampunk-volttimittarini, joka käyttää samoja rakennusmateriaaleja koteloon:-)

Vaihe 1: Kerää osat

Tämän projektin toteuttamiseksi tarvitset seuraavat asiat. Muista kotelon materiaalit, joten sinulla on PALJON jäämiä, joita voit käyttää muihin projekteihin (mikä tekee tulevien rakennusten kustannuksista vielä halvempia). Olen ladannut PDF -tiedostoja tavaroista, joita tarvitset, jos haluat tarkistaa hinnan jne. Ebaystä.

Työkalut (oletan, että sinulla on nämä jo)

  • Juotin
  • Juottaa
  • Juotospumppu (jos teet virheen ja joudut poistamaan juotteen)
  • Kuuma liimapistooli
  • Kuumat liimapuikot
  • Käsityöveitsi (alias Stanley -veitsi)
  • Viivain / mittanauha / Vernier -jarrusatula
  • Akkuporakone + poranterät (1-13 mm)
  • Pyörivä monityökalu leikkuulautasella (eli Dremel)
  • Puhdistusneste, kuten isopropyylialkoholi (myös halvat parranajon jälkeiset tuotteet)
  • Turvamaski (käytetään ruiskumaalauksessa)

Elektroniikka (elektroniikan hinta = 13,05 €)

Jotkut näistä sain ilmaiseksi. Vanhoissa elektronisissa leluissa on nämä mukavat Mylar -kaiuttimet sisällä, jos irrotat ne. Kun olet siellä, saat todennäköisesti myös DC -tynnyrin ja painikkeen.

  • Dupont / Jumper -kaapelit - 0,99 €
  • DS1307 Reaaliaikainen kellomoduuli - 0,99 £ (suosittelen hankkimaan DS3231 sen sijaan, jos saatavilla)
  • Arduino nano + USB -kaapeli - 2,23 €
  • 8 ohmin Mylar -kaiutin - 0,99 €
  • SPST hetkellinen painike - 1,49 €
  • 5,5 mm DC -tynnyripistorasia - 1,26 €
  • 5v, 0,5A DC -virtalähde - 2,83 €
  • MAX7219 Pistematriisinäyttö - 3,76 €

Kotelo (kotelomateriaalien hinta = 17,19 €)

  • 60 mm: n neliömäinen tyhjennysputki - 5,99 puntaa (sinulla on PALJON tätä jäljellä muihin projekteihin)
  • Musta ruiskumaali - 4,85 €
  • Musta PVC (vaahtolevy) - 2,99 £
  • Superliima - 0,99 €
  • 60 mm päätykappaleet - 2,37 €

Kokonaiskustannukset = 30,24 puntaa:-) …….. nykyään tämä vastaa 38 dollaria kaikille kansainvälisille lukijoille.

Nautin työskentelystä neliömäisen PVC -putken kanssa. Ne on helppo porata, leikata, maalata ja minä käytin sellaista Steampunk -kellossani.

Vaihe 2: Valmistele tyhjennysputki

Valmista tyhjennysputki
Valmista tyhjennysputki

Merkitse mihin haluat sijoittaa asioita

Tämä oli niin helppoa. En käyttänyt mitään hienoa. Ensin leikkasin 2,5 metrin pituuden kohtuulliseen kokoon kotipenkilleni (noin 30 cm) hakkersahalla. Leikkasin tämän myöhemmin dremelillä, jotta reunat olisivat kauniit ja suorat. Sitten lepäsin komponentit putken pinnalle ja käytin pysyviä markkinoita merkitsemään, mihin halusin porata ja leikata. Seurasin LED-matriisin ulkopuolta ja leikkasin pyörivää monityökalua leikkaamaan neliömäisen reiän, jotta se sopisi tasoon. Mittasin painonapin ja DC -tynnyrin halkaisijan digitaalisella jarrusatulalla oikean kokoisten reikien leikkaamiseksi taakse ja yläosaan.

Leikkaa kehys

Minulla on runsaasti PVC -vaahtomuovilevyjä aiemmista projekteista. Ne sopivat erinomaisesti piirien asentamiseen koteloihin, käyttämällä sitä epoksin sekoittamiseen sen päälle ja muiden bittien ja rullien tekemiseen. Ota A4- tai A5 -kokoinen kappale ja leikkaa neliömäinen 5 mm: n kehys tai kehys kehystämään LED -matriisi. Tämä piilottaa epämiellyttävät päät, jotka teit, kun leikkaat matriisin neliöreikää. Tätä varten piirsin pienen mallin Inkscapeen ja tulostin sen (SVG -tiedosto liitteenä). Teipasin sen sitten maalarinteipillä vaahtolevylle ja leikkasin sen varovasti käsiveitsellä. On vaikea päästä oikealle, suosittelen leikkaamaan ensin sisäpuolta ja sitten ulkoa.

Maalaa kaikki

Kun kaikki reiät on porattu ja leikattu, poista kaikki palanut reunat. Puhdista pinnat alkoholipyyhkeillä pölyn tai epäpuhtauksien poistamiseksi (tai halvalla parranajon jälkeen, jos sinulla ei ole IPA: ta). Kokeile ja suihkuta hyvin ilmastoidussa tilassa ja käytä naamaria mahdollisuuksien mukaan. Tein tämän ulkona pahvilla lattialla, mutta se ei ole ihanteellinen, jopa pieni tuuli voi saada maalin lentämään takaisin kasvoihisi. Ole varovainen ja käytä suojavarusteita mahdollisuuksien mukaan.

Suihkuta putki, kehys ja päätykannet niin, että ne ovat kaikki samantyyppistä mustaa, ja anna kuivua muutama tunti.

Vaihe 3: Ohjelmoi Arduino

Ohjelmoi Arduino
Ohjelmoi Arduino

Muutama tieto koodista

Hyvitä GeckoDiode, koska olen ottanut hänen koodinsa ja muokannut sitä toimimaan MAX7219 -sirun kanssa. Adafruit -versio käyttää I2C -väylää ja MAX käyttää SPI -väylää. Tätä varten käytin MaxMatrix -kirjastoa, jonka latasin ja asensin Arduino IDE: hen. Jos haluat oppia lisää MaxMatrixista ja siitä, miten LED -matriisi toimii periaatteessa, HowToMechatronics.com -sivustossa on hyvin lyhyt opetusohjelma. LED-matriisi koostuu yksivärisistä LED-valoista sen sijaan, että siinä olisi monivärinen näyttö.

Yksi turhautumiseni oli se, että ei ole selkeitä määritelmiä siitä, mitkä kirjaston toiminnot ovat ja mitkä argumentit on annettava kuhunkin. Onneksi pystyin selvittämään, mitä teki yritys ja erehdys, ja lopulta ei ollut liian vaikeaa saada se toimimaan kunnolla. Ensimmäinen asia on ymmärtää, että sinun on määritettävä, kuinka monta 8x8 -moduulia matriisiisi kuuluu. Koodissani tämä on tallennettu kokonaislukuun nimeltä "moduulit" seuraavasti:

"int -moduulit = 4;"

Tämä on NUMERO 8x8 moduulista, jotka olet linkittänyt yhteen näytössäsi. Ei merkkivalojen lukumäärää tai sitä, mitä pinä käytät lähetystietoja. Seuraava asia on muistaa, että jos "sprite" tai mikä tahansa kattaa kaikki neljä matriisia, tavutaulukko on määritettävä seuraavasti:

"tavu text_start_bmp = {32, 8,…*joitain tavutietoja*…};"

Numerot osoittavat matriisin rivien ja sarakkeiden määrän. Tässä tapauksessa tavu nimeltä "text_start_bmp" näkyy 32 sarakkeen ja 8 rivin päällä. Numerot näytetään vain yhdessä 8x8 -matriisissa, joten minuuttiluku 10 näyttää tältä:

"tavu minuutti_ten_bmp = {8, 8,…*joitain tavutietoja*…};"

Hyökkääjät peittävät kaksi matriisia, joten tavu annetaan 16, 8 tavutiedoissa.

Toinen asia, joka sai minut kiinni, oli sprite -tietojen sijoittelu. Voit pyytää Arduinoa näyttämään spriten eri X/Y -asemassa matriisissa kuin oletusasento. Minuutin nollan koodi näyttää tältä:

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

Yksi numero on X -säätö ja toinen on Y. En muista nyt kumpi on kumpi, mutta jos haluat työntää spriteä ylös tai alas yhdellä rivillä tai sarakkeella, lisäät numeroa vain positiivisesti tai miinuksella. Yksinkertainen 8x8 matriisille, mutta kun sprite kattaa useamman kuin yhden matriisin, sinun on asetettava kotiasento sen mukaan. POP -sprite on esitetty alla:

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

Huomaa nyt, kuinka kotiasento on 16 eikä 8? Tässä koodi osoittaa, että sprite näytetään vasemmalta oikealle sijaintiriviltä/sarakkeelta 16. Se pitää kahta 8x8 -näyttöä yhtenä 16x8 -näytönä, vaikka niitä on 4! Siksi on tärkeää miettiä, kuinka monta näyttöä sprite näytetään, ja mitoittaa kunkin spriten tavutaulukko vastaavasti. Muuten sinulla on erittäin mielenkiintoisia spritejä!

DS1307 RTC

Vaikka DS1307 toimii hyvin Adafruit RTClib.h -kirjaston kanssa, et voi asettaa aikaa manuaalisesti. Valitsin tämän, koska se merkitsi vähemmän koodin muuttamista. DS1307 asettaa kellonajan ja päivämäärän, jolloin koodi on koottu tietokoneesi ajasta. Sen sijaan opi käyttämään DS3231 -kirjastoa ja aseta se kerran yhdeksi tai kahdeksi minuutiksi eteenpäin. Siinä on myös vähemmän "ajelehtimista", joten se pitää ajan paremmin ajan myötä. Molemmat moduulit käyttävät I2C -väylää ja uskon, että DS3231: tä voidaan käyttää RTClib.h: n kanssa, jos haluat jatkaa sen käyttöä.

Lataa koodi

Kun olet tyytyväinen koodiin, lähetä se Arduinolle. Olen liittänyt Arduino -luonnoksen harkittavaksesi.

Vaihe 4: Elektroniikan kokoaminen

Elektroniikan kokoaminen
Elektroniikan kokoaminen

Koodin lataamisen aikana suosittelen, että elektroniikka on koottu dupont-/hyppyjohtimilla ensin leipäpöydälle, joten kun lataat koodin, tiedät, että kaikki toimii tarkoitetulla tavalla. Tämän avulla voit tasoittaa kaikki spriteiden jne. Näyttämisongelmat ennen liimaamisen ja liimaamisen aloittamista. Koodissani näet, että käytän digitaalisia nastoja 4, 5, 6, 7, 9, mutta voit muuttaa niitä tarvittaessa. Saatat joutua juottamaan kaapeleita painikkeeseen, tasavirtaliittimeen ja kaiuttimeen, mutta suurimman osan pitäisi olla helppokäyttöiset liittimet.

Kun olet tyytyväinen, elektroniikka toimii suunnitellusti, sinun kannattaa harkita liitosten juottamista. Voit tehdä tämän kuparinauhalla/veroboardilla, mutta pieniä määriä komponentteja voit juottaa suoraan Arduinon tappeihin. Se näyttää rotan pesältä, mutta kukaan ei näe kotelon sisälle, kun se on koottu, varmista vain, että kaikki metalliosat on erotettu toisistaan, et halua mitään oikosulkua kotelossa.

Olen saanut painikkeen toimimaan, kun "mainButton" -tappi vedetään alas. Huomasin, että Arduino tunnisti väärän painikkeen painettuna, kun kelluva elektroniikka laskeutui siihen. Käyttämällä 10K: n alasvetovastusta painikkeessa ja asettamalla nasta "INPUT_PULLUP" ratkaisi ongelman minulle.

Liitteenä on kaavio PDF- ja-p.webp

Vaihe 5: Asenna elektroniikka ja lähikuva

Asenna elektroniikka ja lähikuva
Asenna elektroniikka ja lähikuva
Asenna elektroniikka ja lähikuva
Asenna elektroniikka ja lähikuva

Asensin kelloni elektroniikan kuumaliimalla, mutta varo levittämästä liikaa (elektroniikka ei pidä liian pitkästä lämmöstä). Käytin pienen tipan superliimaa, joka oli pilkottuna kehyksen ympärille, ja painoin sen etuosaa vasten. Lopetin kotelon työntämällä päätykappaleet molemmista päistä. Tietenkin voit liimata päätykannet kokonaan kokoonpanon sisälle, mutta jätin yhden sivuni auki, jotta voin edelleen käyttää arduinon USB -porttia nollataksesi päivämäärän ja kellonajan tulevaisuudessa.

Vaihe 6: Nauti

Nauttia
Nauttia
Nauttia
Nauttia

Kaiken kaikkiaan olen tyytyväinen tapaan, jolla tämä tuli ulos, kun otetaan huomioon, että se on vain kouruputki ja ruiskumaali. Toivon, että pidät siitä ja kerro minulle, jos voit ajatella mitä tahansa hienoja päivityksiä, joita voidaan lisätä. Olisin kiinnostunut tietämään, voiko joku tehdä tämän halvemmalla tai onko olemassa jokin muu säästävä tapa tehdä kotelo, jota voin kokeilla seuraavassa projektissani.

Suositeltava: