Съдържание:

NeoClock: 7 стъпки (със снимки)
NeoClock: 7 стъпки (със снимки)

Видео: NeoClock: 7 стъпки (със снимки)

Видео: NeoClock: 7 стъпки (със снимки)
Видео: В чем секрет здоровья китайцев. Китай. Мир наизнанку 11 сезон 7 серия 2024, Юни
Anonim
Image
Image

Тук става въпрос за изграждане на часовник с помощта на фантастичните неопикселови пръстени от Adafruit. Забавното в този часовник е, че той всъщност има два пръстена неопиксели, един за измерване на часовете и един за минути, секунди и милисекунди. Часовникът поддържа перфектно време, използвайки чипа DS3234 DeadOn в реално време от Sparkfun. Лесен за изграждане и забавен за промяна. Надявам се, че това ще вдъхнови другите да създават часовници или друго изкуство, използвайки неопикселовите пръстени.

За тези от вас, които искат да получат всичките ми файлове в лесен за управление формат, не се колебайте да ги изтеглите от моето хранилище на github за този проект на адрес

Стъпка 1: Проектиране на часовника

Проектиране на часовника
Проектиране на часовника
Проектиране на часовника
Проектиране на часовника
Проектиране на часовника
Проектиране на часовника
Проектиране на часовника
Проектиране на часовника

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

С приключването на тази стъпка реших, че трябва да разбера електрониката, преди да създам плановете за лазерно рязане на корпуса на часовника.

Стъпка 2: Проектиране на електрониката

Проектиране на електроника
Проектиране на електроника
Проектиране на електроника
Проектиране на електроника
Проектиране на електроника
Проектиране на електроника
Проектиране на електроника
Проектиране на електроника

Проектирането на електроника се свеждаше до предварително познаване на елементите, които исках в часовника:

  • Неопикселови пръстени (60 броя и 24 броя)
  • Arduino (мозъкът)
  • Регулиране на часовника (arduinos не поддържат добро време)
  • Управление на енергията

Изискванията за размер и мощност на неопикселите са добре документирани. Тъй като те работят на 5V DC, реших да отида с 5V Arduino и да направя нещата по -прости за себе си. Като се има предвид космоса, реших да направя прототип на обикновен Arduino Uno, но за последната електроника избрах Arduino Mini.

Първата итерация на този проект дойде директно от страницата на NeoPixel Basic Connections на Adafruit. Включих диаграмата от уебсайта, за да улесня нещата. От това са важни две неща:

  1. Необходим е кондензатор 1000uF, за да се предотврати повредата на пикселите при първоначалния токов удар.
  2. Резистор от 470 ома е необходим на първия пиксел от пръстена с 60 броя (този резистор е вграден в пръстена с 24 броя)

Adafruit също има набор от NeoPixel Best Practices, които трябва да прочетете, преди да продължите с дизайна.

Запазването на времето на часовника е друг проблем. Вграденият часовник на arduino не е достатъчен за поддържане на добро време за дълги периоди от време. По -лош проблем е, че времето на arduino може да се наложи да се нулира всеки път. Компютрите решават този проблем, като използват малка батерия на часовника, за да запазят времето между изключванията. В миналото бих използвал нещо като ChronoDot от Adafruit. Но в този случай исках извинение да използвам DS3234 (DeadOn RTC) от SparkFun. Можете също така да съхранявате информация за дата в RTC DeadOn, ако искате да го интегрирате в часовника.

И накрая, управлението на захранването имаше нужда от известно обмисляне. Вече знаех всичко необходимо за 5V, но количеството необходим ток изглеждаше загадка. Често срещан регулатор на напрежението в повечето проекти е L7805. Това ще отнеме напрежение до 24V и максимален ток до 1.5A. Знаех, че имам 12V 1.5A стенна мъст, така че реших, че това ще бъде идеалният (и евтин!) Регулатор на напрежението за проекта.

Останалите парчета щяха да дойдат от моята кутия с части или Radio Shack. Те включваха проводници, ключове и DC захранващ жак.

Стъпка 3: Изграждане на електроника

Изграждане на електроника
Изграждане на електроника
Изграждане на електроника
Изграждане на електроника
Изграждане на електроника
Изграждане на електроника

Пълен списък на електрониката, която купих за изграждането на този проект, може да се намери в моето хранилище на github тук: Списък на части за електроника. Той има връзки към страницата на продукта за всяко парче и включва допълнителна информация, включително артикула на продукта. Бързо прототипирах това на чертеж и преминах към лазерното рязане и изграждане, преди да направя снимки. Въпреки това, аз го направих така, че лесно да се разглобява, така че разбих парчетата на снимките по -горе за вас.

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

Ще забележите, че направих няколко персонализирани дъски. Опитах се да снимам гърбовете на тези дъски, за да можете да ги повторите. Можете да закупите асортимент от дъски като тези за няколко долара и да ги накарате да отговарят на вашия проект.

Окабеляването е право напред, но важните неща, които трябва да запомните от изображенията, са следните:

  • Превключвателите Mode и Set ще се нуждаят от резистори надолу. Използвах резистори 2.21Ohm, които бях лежал наоколо, но всеки малък резистор ще работи (за предпочитане не по -малко от 1kOhm). Това стабилизира свързаните входни щифтове на Arduino, така че когато се издигнат високо, да се различава от шума.
  • Квадратната вълна (SQW) на DS3234 е заземена, тъй като не се използва.
  • Захранването от L7805 се поставя в Arduino Mini в RAW щифт. Винаги поставяйте силата, която идва в Arduino, в RAW.
  • Първият пиксел от пръстена от 60 неопиксела има резистор 470Ohm за намаляване на всякакви повреди на първия пиксел от скокове на данни. Това не би трябвало да е проблем, тъй като неопикселът с 24 броя вече има вграден резистор за това, но по -добре безопасно, отколкото съжаление.
  • Превключвателите Mode и Set са SPST моментни превключватели с бутони

Цветовете на проводниците са:

  • Червено: +5VDC
  • Черно: Земя
  • Зелено: Данни
  • Жълто, синьо, бяло: Специални проводници за DS3234

Ако за първи път използвате неопиксели, трябва да запомните, че те могат да се разглеждат като дълга верига. Така че може да изглежда странно да се говори за "първи пиксел" в пръстен, но всъщност има начало и край на всяка верига в пръстените. В този проект 24 -те пиксела на малкия пръстен идват на първо място, а 60 -те пиксела на по -големия пръстен идват след него. Това наистина означава, че имам верига от 84 неопиксела.

За окабеляване на Arduino Mini:

  • DS3234 се свързва на щифтове 10 - 13
  • Превключвателите Mode и Set са на щифтове 2 и 3
  • Неопикселовите данни идват от пин 6.

Препоръчвам също да поставите 6 -те заглавия в долната част на Arduino Mini, за да можете да го програмирате чрез FTDI кабел.

Важна забележка относно тока: Този часовник изисква много. Сигурен съм, че бих могъл да се справя, но моят практически опит е, че всичко равно или по -малко от 500mA в крайна сметка ще предизвика кафяви изходи. Това се проявява като часовникът мига луди цветове и не спазва времето. Последният ми мъст от стената е 12V и 1.5A и никога не съм имал кафяв цвят с него. Въпреки това, 1,5А е границата, която регулаторът на напрежението (и други части) ще поеме. Така че не превишавайте тази сума.

Стъпка 4: Кодиране на часовника

Кодиране на часовника
Кодиране на часовника

Пълният код за часовника може да се намери в NeoClock Code на GitHub. Включих файла тук, но всички промени ще настъпят в хранилището.

Намирам, че писането на код може да бъде обезсърчително, ако се опитате да направите всичко наведнъж. Вместо да се стремя към това, аз се опитвам да започна от работещ пример и да изградя функции според нуждите ми. Преди да вляза в това, искам да отбележа, че моят код идва от комбинирането на много примери от следните хранилища и форума на Arduino CC. Винаги давайте кредит там, където се дължи!

  • https://github.com/adafruit/Adafruit_NeoPixel
  • https://github.com/zeroeth/time_loop
  • https://github.com/sparkfun/DeadOn_RTC

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

Редът на операциите, които използвах за изграждането на кода, изглеждаше така:

  • Потвърдете работата на неопикселите с примера за тест Strand
  • Опитайте се да стартирате часовник с кода на времевия цикъл
  • Променете часовника, за да работи на два пръстена вместо само на един
  • Добавете DS3234, за да запазите времето чрез Примера за DeadOn RTC
  • Добавете режима и задайте превключватели
  • Добавете кода на Debounce с помощта на Arduion Debounce Tutorial
  • Добавете някои цветни теми за светодиодите на часовника
  • Добавете някои анимации за 0, 15, 30 и 45 минути
  • Добавете точки на компаса към часовника за ориентиране на 0, 15, 30 и 45 минути

Ако искате да видите как съм изградил този код, всъщност можете да използвате GitHub, за да разгледате всеки коммитен код. Историята на часовника е в Историята на фиксацията.

Цветовите схеми бяха забавни за добавяне, но в крайна сметка включих само четири от тях в менюто. Всяка тема задава специфичен цвят на часовите, минутните, вторите и милисекундните „стрелки“. Наистина опциите са безкрайни тук, но включих темите (изброени имена на методи):

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

В кода обаче можете да намерите тези допълнителни методи:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

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

  • 15 минути: Оцветете пръстените в червено
  • 30 минути: Оцветете пръстените в зелено
  • 45 минути: Оцветете пръстените в синьо
  • В началото на часа: Направете дъга по двата пръстена

Използването се оказа проблем с часовника, защото никой не можеше да ориентира часовника. В крайна сметка това са само два пръстена светодиоди. За да реша проблема, добавих компасните точки към часовника. Това подобри способността да се казва много време. Ако знаех за това, преди да изпратя за лазерно изрязани парчета, може би бих добавил нещо към изкуството. Но се оказва, че не можете да видите изкуството толкова добре на тъмно, така че наличието на точките на компаса наистина помага. Едно съображение при това е, че когато решите да оцветите пиксел, първо трябва да уловите текущия цвят и да създадете нов смесен цвят. Това му придава по -естествено усещане.

Последният детайл е около милисекундите. Милисекунди на Arduino излизат от вътрешния кристал Arduino, а не от DS3234. От вас зависи дали искате да покажете милисекунди или не, но аз го направих така, че часовникът винаги изглеждаше, че прави нещо. Може да ви смути, че милисекундите и секундите не винаги се подреждат, но на практика никой никога не ми е споменавал, когато гледа часовника и мисля, че изглежда добре.

Стъпка 5: Проектиране на лазерно изрязани файлове

Проектиране на лазерно изрязани файлове
Проектиране на лазерно изрязани файлове
Проектиране на лазерно изрязани файлове
Проектиране на лазерно изрязани файлове
Проектиране на лазерно изрязани файлове
Проектиране на лазерно изрязани файлове
Проектиране на лазерно изрязани файлове
Проектиране на лазерно изрязани файлове

Има две съображения, които трябваше да направя при проектирането на лазерно изрязани файлове. Първият беше материалът, от който исках да го изградя, а вторият беше как ще бъде изграден. Знаех, че искам покритие от дърво с акрил, което да разпръсква неопикселите. За да разбера материала, първо поръчах няколко проби от Ponoko:

  • 1x фурнир MDF - Орех
  • 1x фурнир MDF - Череша
  • 1x акрил - светло сив
  • 1x акрил - опал

Изборът на дърво ми позволява да видя как ще изглежда растеризацията и как ще изглежда изгарянето отстрани на часовника. Акрилът би ми позволил да тествам дифузия на неопикселите и да сравня как би изглеждал срещу дървото. В крайна сметка реших за черешово дърво с акрил Opal.

Размерите на часовника се определят главно от размера на неопикселовите пръстени. Това, което не знаех, беше колко дебела трябва да бъде, за да пасне на електрониката. След като изградих електрониката и знаех, че дървото е с дебелина около 5,5 мм, реших, че се нуждая от около 15 мм пространство в часовника. Това означаваше три слоя дърво. Но тъй като предната и задната част вече заеха по -голямата част от пространството в моя дизайн, трябваше да разбия тези пръстени на „ребра“, които по -късно да залепя.

Използвах InkScape, за да рисувам по шаблона, предоставен от Ponoko. След като извадих тялото на часовника, аз се заех да рисувам дървото на ръка. Не можах да импортирам оригиналното изображение, което ме вдъхнови, но не беше ужасно да разбера как да направя нещо подобно сам.

Цената на материалите беше само около 20 долара, но цената на рязането стана с около 100 долара повече. Две неща допринесоха за това:

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

След като завърших дизайна, изпратих EPS файловете на Ponoko и моите парчета бяха готови около седмица по -късно.

Обърнете внимание, че не включих превключвателите Mode и Set или DC Power Jack в дизайна. Когато изпратих това, все още не бях решил тези части. За да си осигуря повече гъвкавост, ги оставих и реших да ги пробия по -късно на ръка.

Стъпка 6: Конструиране на часовника

Конструиране на часовника
Конструиране на часовника
Конструиране на часовника
Конструиране на часовника
Конструиране на часовника
Конструиране на часовника
Конструиране на часовника
Конструиране на часовника

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

С конструираното тяло реших да пробия дупки за ключовете и щекера. Малко геометрия (както се вижда на снимката) ми помогна да подравня всичко. Използвайки отделно парче дърво отвън, докато пробивах (много внимателно!), Направих дупките и залепих ключовете и жака.

Следваше цялата електроника. Залепих първо неопикселите, последвани от кондензатора. Това ги свързах към неопикселовата платка за прекъсване на захранването. След това отзад сложих проводниците на ключовете и щекера за захранване. Включих и регулатора на напрежението L7805.

Бърза бележка за ориентиране на пръстените. За големия пръстен от 60 пиксела трябва да ориентирате часовника така, че един от пикселите да е точно отгоре, за да маркирате нулевите минути. Кой пиксел няма значение и ще разбера защо след минута. За малкия пръстен от 24 пиксела трябва да ориентирате часовника така, че горната част всъщност да е между два пиксела. Причината за това е, че ако искате да отбележите 12 часа, в крайна сметка осветявате два пиксела вместо един. С изместването и с разпространението на пластмасата, ще изглежда така, сякаш наистина имате 12 широки пиксела.

Що се отнася до пиксела, който кодът определя като „отгоре“за всеки пръстен, трябва да редактирате кода малко. Имам две стойности в кода си, наречени „inner_top_led“и „external_top_led“. В моите часовници „inner_top_led“беше на 11 пиксела от началото на малкия пръстен, а „external_top_led“беше на 36 пиксела от началото на големия пръстен. Ако се случи да ориентирате пръстените по различен начин, ще промените тези стойности като тези от вашата ориентация. Малко експериментиране и ще намерите правилната стойност доста бързо.

В този момент тествах, че всичко работи според очакванията.

Но както при всички проекти, се сблъсках с проблем, тъй като осъзнах, че не бях разбрал как ще се задържи заедно. Забелязах, че имам около 3/8 инча пространство между неопикселите и ребрата, затова се насочих към Home Depot и взех 3/8 инчов дюбел и редица неодимови магнити. Изградих малки стойки за дърво на три места и ги шлайфах, за да мога да поставя два магнита на всяка стойка (използвайки супер лепило). В крайна сметка получих 3 чифта по 2 стойки. След това залепих тези в рамката и държах всичко на място със скоба. Направих това, докато лепилото на стойките беше мокро, така че всичко да се подравнява и след това да изсъхне на правилното място. Това работи перфектно и обичам, че изданието е скрито.

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

Стъпка 7: Заключителни мисли

Този проект беше много забавен за изграждане и ми хареса да науча за неопикселите и DS3234. Особено ми хареса най -накрая да изградя проект, който изглеждаше хубав от началото до края. Има няколко неща, които бих актуализирал, ако направя това отново, но те са незначителни:

  • Избрах два бутона вместо три за простота. Но наличието на бутон, който би ми позволил да слизам, както и нагоре, би било хубаво за настройка на часовника
  • Бутонът за режим и бутонът за настройка са неразличими. Често ги смесвам. Може би в бъдеще бих ги поставил на противоположни страни.
  • Никога не съм завършил дървения фронт. Първоначално ми хареса изгледът суров, а по -късно се притесних, че ако объркам финала, поправянето му ще струва много.
  • Растеризирането на дървото беше добре, но в бъдеще можеше да нарисувам повече подробности за дървото.
  • Затъмняването на часовника също би било хубава функция, тъй като е доста ярко на тъмно. Затъмняването обаче е свързано с цвета и разбрах, че този бит отнема твърде много време, така че го пуснах. Вероятно бих инвестирал отново в тази функция в бъдеще.

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

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