Съдържание:
- Стъпка 1: Събиране на части и дървообработване
- Стъпка 2: Акрилни кръгове
- Стъпка 3: Запояване
- Стъпка 4: Кодът
- Стъпка 5: Датско масло
Видео: Ish Clock: 5 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Често се оказвам, че си купувам неща, за които нямам представа какво ще правя. Този проект е резултат от покупка на пръстен с включени 12x WS2812b светодиоди. Нямах планове за това, но изглеждаше страхотно онлайн, затова забих един в количката си, играх с него известно време, когато пристигна и след това забравих всичко.
Малко по -късно си мислех да направя часовник и се сетих, че е седнал и не прави нищо. Мислех да купя втори пръстен с включени 60 светодиода, за да компенсирам минутите, но след това започнах да мисля как ние / аз сме склонни да гледаме часа и да го закръглим до най -близките 5 минути.
С това в моята тръгнах с моя 12 LED пръстен, за да направя иш часовника. Той показва 1 светодиод наведнъж за 1 секунда, за да покаже часа (син светодиод) и след това минутите (червен светодиод), закръглени надолу
Стъпка 1: Събиране на части и дървообработване
Имах голям късмет да пристигна на работа един ден и да забележа палет. Този палет ми изпъкна, тъй като не приличаше на стандартния ти палет от мелницата. Беше чист, термично обработен и най -необичайно масивен дъб.
Този проект е направен от едно от парчетата на този палет. (Попитах шефа, преди да го занеса у дома)
Използва се също:
- 12 пиксела ws2812b LED пръстен
- Модул за часовник в реално време (RTC) (използвам DS3231 с I2C)
- Съвместим с Arduino Nano v3.0
- Акрилен лист (5 мм)
- Цветна тел
Инструменти
- Бормашина
- Рутер
- Регулируем плосък дървен накрайник
- Шлифовъчна машина
- Ръчен трион
- Поялник
- Пистолет за горещо лепило
- Шкурка
- Датско масло
Шлайфане
Започнах с помощта на шлифовъчната машина за изправяне и почистване на дървения блок, докато всички страни станат чисти и гладки. Оставих някои несъвършенства видими и не са идеално прави или квадратни, тъй като ми харесва да мога да видя част от историята в гората.
Маркиране и изрязване на дупките
След шлайфане избрах страната, която исках да е циферблатът, и маркирах центъра, като нарисувах линии от всеки ъгъл. Поставих регулируемата дървесина малко по -голяма от светодиодния пръстен, така че да има рафт, върху който да седне акрилът и да отреже около 5 мм дълбочина, след което да се регулира фрезата точно над размера на LED пръстена и отрязах още 5 мм.
Отвори за фрезоване и кабели
Използвайки моя рутер с 12 -милиметровия бит, извадих вдлъбнатина в долната част на блока, за да скрия RTC и Arduino. Нейната дълбочина е около 15 мм и не по -малко от 5 мм от всеки ръб. Маркирах центъра (иш) отдолу и пробих с помощта на 10 мм бит малко по средата, за да позволя LED проводниците. След това с помощта на 5 мм бит пробих от центъра на LED вдлъбнатината, за да срещна 10 мм отвор отдолу.
Още един 4 мм отвор на гърба за захранване и с помощта на по -малък рутер за направа на канал за проводниците на гърба на LED пръстена и работата с дървото е свършена.
Стъпка 2: Акрилни кръгове
За да направя акрила за предната част на часовника, заявих, че изрязвам квадратно парче, което е просто по -голямо от дупката, която трябва да запълни. След това с помощта на шлифовъчната машина започнах да премахвам ъглите, докато стане с правилната форма и размер. След това преминах към ръчно шлайфане, за да не прекалявам и трябваше да започна отначало.
Това беше бавен и досаден процес на опити и грешки, докато не се вмести точно, но мисля, че крайният резултат си заслужава. Завърших с помощта на много фина хартия, за да придадем на матрицата на акрила предна част.
Стъпка 3: Запояване
Обичам да използвам цветна система за кабелите си по този повод, който избирам:
- Червено за захранване (5v)
- Бяло за земя
- Жълто за данни
- Зелено за часовника
Започнах със запояване на 3 -те необходими проводника върху LED пръстена, като използвах системата по -горе и натиснах проводниците надолу през отвора. Тъй като не трябва да се излага на действително принудително, използвах малко горещо лепило, за да задържа пръстена на място. (Може да се наложи да го сменя някой път) и да инсталирам акрила само с малко горещо лепило по ръба.
След това запоявах 4 -те проводника към RTC, използвайки горната система. За да поддържам нещата по -спретнати, реших да черпя захранване за RTC от Arduino. След това свърза всичко към Arduino и запоява 1 проводник за захранване и друг за заземяване към Arduino.
RTC
- SCL (часовник) към аналогов извод 5
- SDA (данни) към аналогов извод 4
- VCC до 5V
- GND към всеки GND на Arduino
LED пръстен
Din към цифров пин 6
Имах един стар USB кабел, който висеше наоколо, затова реших да го използвам за захранване на часовника. Отрязах края, който обикновено се свързва с нещо и го избутах през дупката на гърба. След това отстранете и опънете краищата преди запояване на VCC към Arduino и LED пръстена към положителната страна и заземяването от Arduino и LED към земята. Малко по -късно се свивам и изглеждаше добре, Пистолетът за горещо лепило излезе, за да задържи всичко. Реших да напусна Arduino с достатъчно игра, така че ще мога да получа достъп до USB порта, за да го програмирам в бъдеще, но не толкова, че да изпадна.
Стъпка 4: Кодът
Вече трябва да можете да качите този код в Arduino.
Ако RTC не работи, този код ще зададе часа въз основа на кода е компилиран, така че не забравяйте просто да натиснете бутона за качване и да не проверявате.
алтернативно това също работи много добре за настройка на часа.
www.instructables.com/id/Setting-the-DS130…
Голяма част от този код заимствах от библиотеката Adafruit NeoPixel, а някои от библиотеката на RTC, която намерих, а някои измислих сам.
// включва кода на библиотеката: #include
#включва
#включва
// дефинираме щифтове
#дефинирайте ПИН 6
#define BRIGHTNESS 20 // задайте максимална яркост
#дефинирайте r 5
#дефинирайте g 5
#дефинирайте b 5
RTC_DS3231 rtc; // Създаване на часовник обект
Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // лентов обект
void setup () {
Wire.begin (); // Започнете I2C
rtc.begin (); // започва часовник
Serial.begin (9600);
// задаване на pinmodes
pinMode (PIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC загуби захранване, нека зададем часа!");
// следният ред задава RTC на датата и часа на съставяне на тази скица
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));
// Този ред задава RTC с изрична дата и час, например за задаване
// 21 януари 2014 г. в 3 часа сутринта бихте се обадили:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Инициализиране на всички пиксели на „изключено“
DateTime theTime = rtc.now (); // отчита лятното часово време
байт secondval = theTime.second (); // получаваме секунди
байт minuteval = theTime.minute (); // получавам минути
int hourval = theTime.hour ();
точка (лента. Цвят (0, g, 0), 50);
}
void loop () {
// получавам време
DateTime theTime = rtc.now (); // отчита лятното часово време
int minuteval = theTime.minute (); // получавам минути
int hourval = theTime.hour (); // получавам часове
int secondval = theTime.second ();
if (minuteval 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
иначе ако (minuteval <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
забавяне (1000);
за (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
ако (hourval == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
иначе ако (hourval == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
иначе ако (hourval == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
иначе ако (hourval == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
иначе ако (hourval == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
иначе ако (hourval == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
иначе ако (hourval == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
иначе ако (hourval == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
иначе ако (hourval == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
иначе ако (hourval == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
иначе ако (hourval == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
иначе ако (hourval == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
иначе ако (hourval == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
иначе ако (hourval == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
иначе ако (hourval == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
иначе ако (hourval == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
иначе ако (hourval == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
иначе ако (hourval == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
иначе ако (hourval == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
иначе ако (hourval == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
иначе ако (hourval == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
иначе ако (hourval == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
иначе ако (hourval == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
иначе ако (hourval == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
забавяне (1000);
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// за серийно отстраняване на грешки
Serial.print (hourval, DEC);
Serial.print (':');
Serial.print (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
void dot (uint32_t c, uint8_t wait) {
за (int j = 0; j <3; j ++) {
за (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
забавяне (изчакване);
за (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Стъпка 5: Датско масло
Последната и незадължителна стъпка е да нанесете малко датско масло върху дървото. Много ми харесва как извежда зърното плюс предлага известна защита от петна и влага. Така че горещо го препоръчвам.
Можете да го изчеткате или просто използвам стара кърпа, за да го избърша.
Сега остава само да го включите и да се насладите.
Препоръчано:
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
Буферният будилник прави събуждането забавно (ish): 7 стъпки (със снимки)
Буферният будилник прави събуждането забавно (иш): Събуждането до бръмчене на будилника е гадно. Аз съм от хората, които не обичат да се събуждат преди слънцето да е излязло (или е излязло много часове). И така, какъв по -добър начин да направите събуждането забавно от това да правите парти с балончета в леглото! Използване на arduino и
Лек хак за стая със зрителни увреждания със слухови увреждания: 7 стъпки (със снимки)
Лек хак на стаята със слухови увреждания на вратата: Проблем: баща ми е регистриран като глух, а майка ми е с увреден слух и поради това често им е трудно да чуят звънеца на вратата. Това би могло да бъде проблем, претърпян и от много други.Купиха мигащ светлинен звънец на вратата, за да им помогнат с
LittleBits Mad Libs (-ish): 7 стъпки (със снимки)
LittleBits Mad Libs (-ish): Готови ли сте да ангажирате учениците си в предизвикателство, което интегрира инженерните практики на NGSS (следващо поколение научни стандарти) (и повече, ако добавите други ограничения!)? Използване на littleBits или друг комплект от няколко части за електроника (SAM Labs, Lego WeDo, LEGO
Персонализиран часовник със стрелки за снимки: 5 стъпки (със снимки)
Персонализиран часовник със стрелки за снимки: Някои хора наблюдават часовника. Сега всеки може да бъде часовник. Други проекти персонализират лицето на часовника. Този персонализира стрелките на часовника. Изглежда скъп, но е по -малко от 5 долара и около 30 минути на часовник. Перфектен за Chr