Съдържание:

Часовник за космически нашественици (с бюджет!): 6 стъпки (със снимки)
Часовник за космически нашественици (с бюджет!): 6 стъпки (със снимки)

Видео: Часовник за космически нашественици (с бюджет!): 6 стъпки (със снимки)

Видео: Часовник за космически нашественици (с бюджет!): 6 стъпки (със снимки)
Видео: Детето ми се храни само със зеленчуци 2024, Юли
Anonim
Image
Image
Съберете части
Съберете части

Наскоро видях страхотна конструкция от GeckoDiode и веднага исках да я построя сам. Instructable е настолен часовник Space Invaders и препоръчвам да го разгледате, след като прочетете това.

Проектът е почти изцяло изграден от части, получени от Adafruit с 3D отпечатан корпус и лазерно изрязано лице. Добавянето на всичко към цената на изграждането става много скъпо! (около £ 100 или повече). Проблемът е, че ако не притежавате 3D принтер, трябва да платите, за да отпечатате модела си, или да купите грозно заграждение от ebay, което често е просто малко прекалено малко, твърде тясно, късо или обратното.

Повечето от моите конструкции трябва да бъдат направени с бюджет за любители и загражденията винаги са най -скъпата част. Затова реших да построя същия часовник, но с приличен бюджет.

Ако обичате да гледате странни часовници, разгледайте моя часовник за волтаметър Steampunk, който използва същите строителни материали за корпуса:-)

Стъпка 1: Съберете части

За да направите този проект, ще ви трябва следното. Имайте предвид, че с материалите за заграждението ще имате МНОГО остатъци, които можете да използвате в други проекти (което прави цената на бъдещите строителства още по-евтина). Качих PDF файлове от нещата, от които се нуждаете, ако искате да проверите цената и т.н. в ebay.

Инструменти (предполагам, че вече ще ги имате)

  • Поялник
  • Припой
  • Помпа за запояване (ако направите грешка и трябва да премахнете спойка)
  • Пистолет за горещо лепило
  • Топли лепилни пръчки
  • Занаятчийски нож (известен още като нож Stanley)
  • Линийка / измервателна лента / шублер
  • Акумулаторна бормашина + свредла (от 1 мм до 13 мм)
  • Ротационен многофункционален инструмент с режещ диск (известен още като Dremel)
  • Почистваща течност като изопропилов алкохол (евтин афтършейв също работи)
  • Предпазна маска (използва се при боядисване със спрей)

Електроника (Разходи за електроника = £ 13,05)

Някои от тях имах безплатно. Старите електронни играчки имат тези хубави Mylar високоговорители вътре, ако ги разглобите. Докато сте там, вероятно ще получите DC варел и бутон.

  • Кабели Dupont / Jumper - 0,99 паунда
  • DS1307 Модул за часовник в реално време - £ 0,99 (бих препоръчал вместо това да вземете DS3231, където е наличен)
  • Arduino nano + usb кабел - 2,23 паунда
  • 8 Ohm Mylar високоговорител - £ 0,99
  • Моментален бутон за SPST - £ 1.49
  • 5,5 мм гнездо за постоянен ток - 1,26 паунда
  • 5v, 0.5A DC захранване - £ 2.83
  • MAX7219 Матричен дисплей - £ 3.76

Корпус (Цената на материалите за заграждение = £ 17,19)

  • 60 мм квадратна дренажна тръба - £ 5,99 (ще ви останат много от това за още проекти)
  • Черна спрей боя - 4,85 паунда
  • Черен PVC (пенопласт) - £ 2.99
  • Супер лепило - £ 0.99
  • 60 мм крайни капачки - £ 2.37

Обща цена = 30,24 британски лири:-) ……… от днес това е еквивалентът на 38 USD за международни читатели.

Обичам да работя с PVC квадратна тръба. Те са лесни за пробиване, изрязване, боядисване и аз използвах един за моя часовник Steampunk.

Стъпка 2: Подгответе източващата тръба

Подгответе източващата тръба
Подгответе източващата тръба

Отбележете къде искате да поставите нещата

Това беше толкова лесно. Не използвах нищо фантастично. Първо отрязах дължината от 2,5 м до подходящ размер за пейката у дома (около 30 см) с трион. По -късно изрязах това с дремел, за да направя ръбовете хубави и прави. След това оставих компонентите на повърхността на тръбата и използвах постоянен пазар, за да маркирам къде искам да пробивам и режа. Проследих около външната страна на LED матрицата и използвах ротационен многофункционален инструмент, за да изрежа квадратна дупка, за да се поберат. Използвах цифров шублер за измерване на диаметъра на бутона и DC цевта, за да изрежа отворите с правилния размер отзад и отгоре.

Изрежете рамка

Имам много плоскости от PVC пяна от предишни проекти. Те са чудесни за монтиране на вериги в заграждения, използвайки го за смесване на епоксидна смола върху него и за изработване на други битове и бобове. Вземете парче с размер А4 или А5 и изрежете квадратна 5 мм обшивка или рамка, за да рамкирате LED матрицата. Това ще скрие всички нестабилни ръбове, които сте направили при изрязването на квадратната дупка за матрицата. За това нарисувах малък шаблон в Inkscape и го разпечатах (прикачен файл SVG). След това го залепих с маскираща лента към пенопласта и внимателно го изрязах около занаятчийски нож. Трудно е да се оправиш, препоръчвам първо да изрежеш вътрешната страна, а след това външната.

Боядисвайте всичко

След като всички отвори са пробити и изрязани, отстранете всички набраздени ръбове. Почистете повърхностите с алкохолни кърпички, за да премахнете праха или замърсяването (или малко евтино след бръснене, ако нямате IPA). Опитайте да пръскате в добре проветриво помещение и използвайте маска, когато е възможно. Направих това отвън с малко картон на пода, но не е идеално, дори и лек ветрец може да накара боята да полети обратно в лицето ви. Бъдете внимателни и носете защитно оборудване, когато е възможно.

Напръскайте тръбата, рамката и крайните капачки, така че да са от един и същи вид черен цвят, след което оставете да изсъхне за няколко часа.

Стъпка 3: Програмирайте Arduino

Програмирайте Arduino
Програмирайте Arduino

Малко информация за кода

Кредит на GeckoDiode, тъй като взех кода му и го модифицирах, за да работи с чипа MAX7219. Версията Adafruit използва I2C шина, а MAX използва SPI шината. За това използвах библиотеката MaxMatrix, която изтеглих и инсталирах в Arduino IDE. Ако искате да научите повече за MaxMatrix и принципа на работа на LED матрицата, има много кратък урок за HowToMechatronics.com. LED матрицата се състои единствено от един цвят на светодиодите, вместо да има многоцветен дисплей.

Едно разочарование, което имах, е, че няма ясни дефиниции за това какви са функциите на библиотеката и какви аргументи трябва да бъдат предадени във всяка. За щастие успях да разбера какво е направил чрез опити и грешки и в крайна сметка не беше твърде трудно да го накарам да работи правилно. Първото нещо, което трябва да разберете, е, че трябва да определите колко модула 8x8 са във вашата матрица. В моя код това се съхранява в цяло число, наречено "модули" по следния начин:

"int модули = 4;"

Това е НОМЕРът от 8x8 модули, които сте свързали заедно на дисплея си. Не броят на светодиодите или какъв пин използвате данните за изпращане. Следващото нещо, което трябва да запомните, е, че ако вашият „спрайт“или каквото и да е друго покрива четирите матрици, тогава байтовият масив трябва да бъде дефиниран така:

"байт text_start_bmp = {32, 8, …*някои байтови данни*…};"

Числата показват количеството редове и колони в матрицата. По този повод байтът с име "text_start_bmp" се показва над 32 колони и 8 реда. Числата се показват само на една единична матрица 8x8, така че минутата номер 10 изглежда така:

"байт minute_ten_bmp = {8, 8,…*някои байтови данни*…};"

Нашествениците покриват две матрици, така че байтът ще получи 16, 8 в байтовите данни.

Другото, което ме привлече, беше позиционирането на спрайт данните. Можете да помолите Arduino да покаже спрайта в различна позиция X/Y на матрицата от началната позиция по подразбиране. Кодът изглежда така за нула минута:

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

Едно число е корекция X, а друго е Y. Не мога да си спомня кое е кое сега, но ако искате да бутате спрайта нагоре или надолу с 1 ред или колона, просто увеличавате числото положително или минус. Достатъчно просто за 8x8 матрица, но когато вашият спрайт покрива повече от една матрица, трябва да настроите съответно началната позиция. Спрайт "POP" е показан по -долу:

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

Забележете сега как началната позиция е 16, а не 8? Тук кодът показва, че спрайтът се показва отляво надясно от позиционен ред/колона 16. Той счита два дисплея 8x8 за един 16x8 дисплей, въпреки че има 4! Ето защо е важно да се помисли за това колко дисплея ще се показва спрайт и да се оразмерят съответно байтовия масив на всеки спрайт. В противен случай ще имате някои много интересни спрайтове!

DS1307 RTC

Въпреки че DS1307 работи добре с библиотеката Adafruit RTClib.h, не можете ръчно да настроите времето, което е просто болка. Просто отидох с това, защото това означаваше по -малко код за промяна. DS1307 задава времето, използвайки часа и датата, на която кодът е компилиран от времето на вашите компютри. Вместо това научете как да използвате библиотеката DS3231 и я настройте веднъж за една или две минути напред в бъдеще. Той също така има по -малко "дрейф", така че запазва времето по -добре с течение на времето. И двата модула използват шината I2C и вярвам, че DS3231 може да се използва с RTClib.h, ако искате да продължите да го използвате.

Качете кода

След като сте доволни от кода, качете го в Arduino. Приложих моята скица на Arduino за ваше разглеждане.

Стъпка 4: Сглобяване на електроника

Сглобяване на електроника
Сглобяване на електроника

Докато качвате кода, бих препоръчал първо електрониката да бъде сглобена с кабели dupont/jumper на макет, така че когато качвате кода, знаете, че всичко работи по предназначение. Това ви позволява да изгладите всички проблеми с показването на спрайтовете и т.н., преди да започнете да лепите и залепвате. В моя код можете да видите, че използвам цифрови щифтове 4, 5, 6, 7, 9, но можете да ги промените, ако е необходимо. Може да се наложи да запоите кабели към бутона, жака за постоянен ток и високоговорителя, но по -голямата част трябва да са лесни за поставяне на конектори.

След като сте щастливи, че електрониката работи по предназначение, трябва да помислите за запояване на връзките. Можете да направите това с медна лента/вероборд, но за малкото компоненти можете да запоявате директно към щифтовете на Arduino. Ще изглежда като гнездо на плъхове, но никой няма да види вътре в заграждението, след като все пак е сглобен, просто се уверете, че всички метални части са разделени, не искате нищо да късо в кутията.

Накарах бутона да работи, когато щифтът "mainButton" е издърпан ниско. Открих, че Arduino разпознава фалшив бутон, натиснат, когато плаващата електроника се настани върху него. Използването на 10K падащ резистор на бутона и настройката на щифта на „INPUT_PULLUP“реши този проблем за мен.

Приложена е схемата в PDF и PNG, за да знаете къде да свържете щифтовете.

Стъпка 5: Монтирайте електрониката и затворете отблизо

Монтирайте електрониката и затворете отблизо
Монтирайте електрониката и затворете отблизо
Монтирайте електрониката и затворете отблизо
Монтирайте електрониката и затворете отблизо

За часовника си монтирах електрониката с помощта на горещо лепило, но внимавайте да не нанасяте твърде много (електрониката не обича да се нагрява твърде дълго). Използвах малка капка супер лепило, осеяно около рамката и я притиснах към предната част. Завърших корпуса, като натиснах крайните капачки от всеки край. Разбира се, можете да залепите крайните капачки, за да затворите напълно монтажа, но оставих едната си страна отворена, за да мога все още да получа достъп до USB порта на arduino, за да нулирам датата и часа в бъдеще.

Стъпка 6: Насладете се

Наслади се
Наслади се
Наслади се
Наслади се

Като цяло съм доволен от начина, по който това се случи, като се има предвид само някаква улучна тръба и спрей боя. Надявам се да ви хареса и да ме уведомите, ако се сетите за някакви готини ъпгрейди, които могат да бъдат добавени. Бих се интересувал дали някой може да направи това по -евтино или ако има друг пестелив начин да направя заграждение, което мога да опитам в следващия си проект.

Препоръчано: