Мазмұны:

Space Invaders сағаты (бюджетте!): 6 қадам (суреттермен)
Space Invaders сағаты (бюджетте!): 6 қадам (суреттермен)

Бейне: Space Invaders сағаты (бюджетте!): 6 қадам (суреттермен)

Бейне: Space Invaders сағаты (бюджетте!): 6 қадам (суреттермен)
Бейне: История Студии GAINAX: Жизнь до Евангелиона 2024, Қараша
Anonim
Image
Image
Бөлшектерді жинау
Бөлшектерді жинау

Жақында мен GeckoDiode -дің керемет құрылысын көрдім және мен оны дереу өзім салғым келді. Нұсқаулық - бұл Space Invaders жұмыс үстелі сағаты, мен оны оқығаннан кейін оны қарауды ұсынамын.

Жоба тек қана 3D басып шығарылған корпусы бар Adafruit -тен алынған бөліктерден және лазермен кесілген фасиядан жасалған. Құрылыстың құнын бәрін қосу өте қымбатқа түседі! (шамамен 100 фунт стерлинг немесе одан көп). Мәселе мынада, егер сізде 3D принтер болмаса, сіз өзіңіздің моделіңізді басып шығару үшін ақы төлеуіңіз керек немесе ebay -ден өте ұсақ, тым тар, қысқа немесе керісінше ұсқынсыз қоршау сатып алуыңыз керек.

Менің құрылыстарымның көпшілігі әуесқойлық бюджетпен жасалуы керек, және қоршаулар әрқашан ең қымбат бөлігі болып қалады. Сондықтан мен сол сағатты, бірақ лайықты бюджетке құруды шештім.

Егер сізге біртүрлі сағаттарға қарау ұнайтын болса, менің Steampunk вольтметр сағатын қараңыз, ол қоршау үшін бірдей құрылыс материалдарын пайдаланады:-)

1 -қадам: Бөлшектерді жинау

Бұл жобаны жасау үшін сізге төмендегілер қажет болады. Қоршауға арналған материалдарды есте сақтаңыз, сізде басқа жобаларда қолдануға болатын көп мөлшерде қалдықтар болады (бұл болашақ құрылыстардың құнын одан да арзан етеді). Егер сіз ebay -дегі бағаны және т.б тексергіңіз келсе, мен сізге қажет материалдарды PDF форматында жүктедім.

Құралдар (сізде бұлар болады деп ойлаймын)

  • Пісіру темірі
  • Дәнекер
  • Дәнекерлік сорғы (егер сіз қателесеңіз және дәнекерлеуді алып тастау қажет болса)
  • Ыстық желім қаруы
  • Ыстық желім таяқшалары
  • Қолөнер пышағы (Стэнли пышағы)
  • Сызғыш / өлшеуіш таспа / Верньер калибрі
  • Сымсыз бұрғылау + бұрғылар (1 мм -ден 13 мм -ге дейін)
  • Кескіш дискісі бар айналмалы мульти-құрал (aka aka Dremel)
  • Изопропил-спирт сияқты тазартқыш сұйықтық (арзан қырынудан кейін де жұмыс істейді)
  • Қауіпсіздік маскасы (спреймен бояу кезінде қолданылады)

Электроника (электрониканың құны = 13,05 фунт стерлинг)

Олардың кейбіреулері менде тегін болды. Ескі электронды ойыншықтарда Mylar динамиктері бар, егер сіз оларды ажыратсаңыз. Сіз сонда болсаңыз, сізде тұрақты ток баррелі мен батырмасы болуы мүмкін.

  • Dupont / Jumper кабельдері - 0,99 фунт стерлинг
  • DS1307 Нақты уақыттағы сағат модулі - 0,99 фунт (қол жетімді жерде DS3231 алуды ұсынамын)
  • Arduino nano + USB кабелі - 2,23 фунт стерлинг
  • 8 Ом Mylar динамигі - 0,99 фунт
  • SPST лезде басу түймесі - 1,49 фунт
  • 5,5мм тұрақты ток баррель розеткасы - 1,26 фунт стерлинг
  • 5в, 0,5А тұрақты ток көзі - 2,83 фунт
  • MAX7219 Нүктелік матрицалық дисплей - 3,76 фунт

Қоршау (қоршау материалдарының құны = 17,19 фунт стерлинг)

  • 60 мм шаршы дренажды құбыр - 5,99 фунт стерлинг (сізде көп жобалар болады)
  • Қара спрей бояуы - 4,85 фунт
  • Қара ПВХ (көбік тақтасы) - 2,99 фунт
  • Супер желім - 0,99 фунт
  • 60 мм соңғы қақпақтары - 2,37 фунт

Жалпы құны = 30,24 фунт стерлинг:-) …….. бүгінгі күні бұл кез келген халықаралық оқырмандар үшін 38 АҚШ долларына балама.

ПВХ квадрат құбырымен жұмыс жасау маған ұнайды. Оларды бұрғылау, кесу, бояу оңай, мен оны Steampunk сағаты үшін қолдандым.

2 -қадам: ағызу құбырын дайындаңыз

Су төгетін құбырды дайындаңыз
Су төгетін құбырды дайындаңыз

Заттарды қай жерге қойғыңыз келетінін белгілеңіз

Бұл соншалықты оңай болды. Мен керемет нәрсені қолданған жоқпын. Алдымен мен үйдегі орындыққа (шамамен 30 см) 2,5 м ұзындықты кесетін арамен қолайлы мөлшерге дейін қысқарттым. Мен кейінірек шеттерін әдемі және тегіс ету үшін оны дремельмен кесіп алдым. Содан кейін мен компоненттерді құбырдың бетіне қойдым және бұрғылау мен кесу керек жерді белгілеу үшін тұрақты базарды қолдандым. Мен жарықдиодты матрицаның сыртын бақыладым және айналмалы көпбұрышты пайдаланып, оған сәйкес келу үшін төртбұрышты тесікті кесіп алдым. Мен түйменің диаметрін өлшеу үшін сандық калибрді және артқы және жоғарғы жағындағы дұрыс тесіктерді кесу үшін DC баррелін қолдандым.

Шеңберді кесіңіз

Менде алдыңғы жобалардан жасалған ПВХ көбік тақтасы бар. Олар схемаларды корпустарға бекітуге, эпоксидті араластыруға және басқа биттер мен бобтарды жасауға өте ыңғайлы. А4 немесе А5 өлшемді бөлікті алыңыз және жарықдиодты матрицаны жақтау үшін 5 мм төртбұрышты немесе шеңберді кесіңіз. Бұл матрицаның төртбұрышты саңылауын кесу кезінде жасаған барлық қателіктерді жасырады. Бұл үшін мен Inkscape -те шағын үлгіні салып, оны басып шығардым (SVG файлы қоса берілген). Содан кейін мен оны көбік тақтасына таспамен жабыстырып, қолмен пышақпен мұқият айналдырдым. Дұрыс болу қиын, мен алдымен ішін, содан кейін сыртын кесуді ұсынамын.

Бәрін боя

Барлық тесіктер бұрғыланып, кесілгеннен кейін, бұралған шеттерін алып тастаңыз. Кез келген шаңды немесе ластануды кетіру үшін беттерді алкогольді майлықтармен тазалаңыз (немесе IPA болмаса, қырынудан кейін арзан). Жақсы желдетілетін жерде шашыратып көріңіз және мүмкіндігінше маска қолданыңыз. Мен мұны сыртта еденде картонмен жасадым, бірақ бұл өте жақсы емес, тіпті кішкене самал бояудың бетіңізге қайта түсуіне әкелуі мүмкін. Мүмкіндігінше сақ болыңыз және қорғаныс құралдарын киіңіз.

Құбырды, жапқышты және ұштың қақпақтарын біркелкі қара етіп шашыратыңыз, содан кейін бірнеше сағат құрғатыңыз.

3 -қадам: Arduino бағдарламасын жасаңыз

Arduino бағдарламасын жасаңыз
Arduino бағдарламасын жасаңыз

Код туралы кейбір ақпарат

GeckoDiode -ге несие, өйткені мен оның кодын алып, оны MAX7219 чипімен жұмыс істеу үшін өзгерттім. Adafruit нұсқасы I2C шинасын, ал MAX SPI шинасын қолданады. Ол үшін мен Arduino IDE -ге жүктеп, орнатқан MaxMatrix кітапханасын қолдандым. Егер сіз MaxMatrix туралы көбірек білгіңіз келсе және жарықдиодты матрица қалай жұмыс істейтінін білгіңіз келсе HowToMechatronics.com сайтында өте қысқа нұсқаулық бар. Жарық диодты матрицасы көп түсті дисплейден гөрі тек бір түсті жарық диодынан тұрады.

Мені мазалаған нәрсе - кітапхана үшін қандай функциялар бар және олардың әрқайсысына қандай аргументтерді енгізу керек екендігі туралы нақты анықтамалар жоқ. Бақытымызға орай, мен не істегенімді сынақ және қателік арқылы білдім, ақырында оны дұрыс жұмыс істеу қиынға соқпады. Түсіну керек бірінші нәрсе - сіздің матрицада қанша 8х8 модуль бар екенін анықтау керек. Менің кодымда бұл «модульдер» деп аталатын бүтін санда сақталады:

«int модульдері = 4;»

Бұл сіз дисплейде байланыстырған 8x8 модульдерінің НОМЕРІ. Жарықдиодты шамдардың саны немесе жіберу деректерін пайдаланатын түйін емес. Есте сақтау керек келесі нәрсе - егер сіздің «спрайт» немесе барлық төрт матрицаны қамтитын болса, онда байт массивін келесідей анықтау қажет:

«байт text_start_bmp = {32, 8,…*кейбір байттық деректер*…};»

Сандар матрицадағы жолдар мен бағандардың санын көрсетеді. Бұл жағдайда «text_start_bmp» деп аталатын байт 32 баған мен 8 жолда көрсетіледі. Сандар бір ғана 8x8 матрицада көрсетіледі, сондықтан 10 минуттық нөмір келесідей:

«byte minute_ten_bmp = {8, 8,…*кейбір байттық деректер*…};»

Басқыншылар екі матрицаны қамтиды, сондықтан байт деректерінде байтқа 16, 8 беріледі.

Мені қызықтырған тағы бір нәрсе - бұл спрайт деректерінің орналасуы. Сіз Arduino -дан спрайтты матрицаның басқа X/Y позициясында әдепкі бастапқы күйден көрсетуді сұрай аласыз. Код нөл минутына келесідей көрінеді:

«matrix.writeSprite (8, 0, minutes_zero_bmp);»

Бір сан - X реттеу, екіншісі - Y. Қазір қайсысы екенін есімде жоқ, бірақ егер сіз спрайтты 1 қатарға немесе бағанға жоғары немесе төмен итергіңіз келсе, санды оң немесе минусқа көбейтесіз. 8x8 матрица үшін жеткілікті қарапайым, бірақ сіздің спрайт бірнеше матрицаны қамтыған кезде, сіз сәйкесінше үй жағдайын орнатуыңыз керек. «POP» спрайт төменде көрсетілген:

«matrix.writeSprite (16, 0, invader_pop_bmp);»

Назар аударыңыз, үйдегі позиция қалай 16 емес 8? Бұл жерде код спрайттың жолдан/бағаннан 16 солдан оңға қарай көрсетілетінін көрсетеді. Ол 4х болса да 8x8 екі дисплейді 16х8 дисплей деп есептейді! Сондықтан спрайт қанша дисплейде көрсетілетінін және әрбір спрайттың байт массивін сәйкесінше мөлшерлеу туралы ойлану маңызды. Әйтпесе сізде өте қызықты сприттер болады!

DS1307 RTC

DS1307 Adafruit RTClib.h кітапханасымен жақсы жұмыс істейді деп ойласаңыз, сіз уақытты қолмен орната алмайсыз, бұл азап. Мен мұны істедім, себебі бұл кодты өзгертуді қажет етпейді. DS1307 коды сіздің компьютеріңіздің уақытынан құрастырылған уақыт пен күнді пайдаланып уақытты орнатады. Оның орнына DS3231 кітапханасын қалай пайдалану керектігін біліп, оны болашақта бір немесе екі минутқа бір рет орнатыңыз. Сонымен қатар, оның «дрейфі» аз, сондықтан ол уақытты уақыт бойынша жақсы сақтайды. Екі модуль де I2C шинасын қолданады, ал егер оны пайдалануды жалғастырғыңыз келсе, DS3231 RTClib.h -мен бірге қолданыла алады деп ойлаймын.

Кодты жүктеңіз

Егер сіз кодты ұнатсаңыз, оны Arduino -ға жүктеңіз. Мен сіздің қарауыңызға Arduino эскизін тіркедім.

4 -қадам: электрониканы жинау

Электрониканы жинау
Электрониканы жинау

Кодты жүктеу кезінде мен электрониканы дупонт/секіргіш сымдармен бірге тақтаға орнатуды ұсынар едім, сондықтан сіз кодты жүктеген кезде бәрі ойдағыдай жұмыс істейтінін білесіз. Бұл желімдеу мен жабыстыруды бастамас бұрын спрайттарды көрсетудегі кез келген мәселелерді шешуге мүмкіндік береді. Менің кодымда 4, 5, 6, 7, 9 цифрлық түйреуіштерді қолданатынымды көре аласыз, бірақ қажет болған жағдайда оларды өзгерте аласыз. Сізге кабельдерді түйме, тұрақты ток ұяшығы мен динамикке дәнекерлеу қажет болуы мүмкін, бірақ олардың көпшілігі басуға ыңғайлы стильді қосқыштар болуы керек.

Электроника ойдағыдай жұмыс жасайтынына қуанышты болғаннан кейін, қосылыстарды дәнекерлеуді қарастырған жөн. Сіз мұны мыс лента/веронамен жасай аласыз, бірақ аз мөлшерде компоненттер үшін сіз тікелей Arduino түйреуіштеріне дәнекерлей аласыз. Бұл егеуқұйрықтардың ұясына ұқсайды, бірақ оны қоршап алғаннан кейін оны ешкім көрмейді, тек барлық металл бөлшектердің бөлінгеніне көз жеткізіңіз, бұл жағдайда ештеңе жетпей қалады.

Мен бас түймені «mainButton» түйреуіші төмен тартылған кезде жұмыс істедім. Мен Arduino қалқымалы электроника қонған кезде басылған жалған батырманы танитынын білдім. Басу түймесіндегі 10K түсетін резисторды пайдалану және түйреуішті «INPUT_PULLUP» күйіне қою мен үшін бұл мәселені шешті.

Схемалар PDF және-p.webp

5 -қадам: электрониканы орнатыңыз және жабыңыз

Электрониканы орнатыңыз және жабыңыз
Электрониканы орнатыңыз және жабыңыз
Электрониканы орнатыңыз және жабыңыз
Электрониканы орнатыңыз және жабыңыз

Мен сағатыма электрониканы ыстық желіммен орнаттым, бірақ тым көп жағудан сақ болыңыз (электроника тым ұзақ қыздыруды ұнатпайды). Мен жапсырманың айналасында орналасқан супер желімнің кішкене тамшысын қолдандым және оны алдыңғы жағына қыстым. Мен қоршауды әр ұшындағы қақпақтарды басу арқылы аяқтадым. Әрине, сіз жинақты толығымен жабу үшін қақпақтарды жабыстыра аласыз, бірақ мен бір жағымды ашық қалдырдым, сондықтан болашақта күн мен уақытты қалпына келтіру үшін arduino USB портына кіре аламын.

6 -қадам: ләззат алыңыз

Ләззат алыңыз
Ләззат алыңыз
Ләззат алыңыз
Ләззат алыңыз

Тұтастай алғанда, мен бұл шығатын құбыр мен бүріккіш бояуды ескере отырып, оның шыққанына риза болдым. Сізге ұнайды деп үміттенемін және сіз қосуға болатын керемет жаңартулар туралы ойлана аласыз ба, маған хабарлаңыз. Мен мұны кез -келген адам арзанырақ жасай алатынын білгім келеді немесе қоршауды жасаудың басқа үнемді әдісі бар ма, мен оны келесі жобада қолдана аламын.

Ұсынылған: