Съдържание:

Мултитаймер W/ Външно управление: 13 стъпки
Мултитаймер W/ Външно управление: 13 стъпки

Видео: Мултитаймер W/ Външно управление: 13 стъпки

Видео: Мултитаймер W/ Външно управление: 13 стъпки
Видео: Как ИДЕАЛЬНО настроить новый MacBook? + Скрытая настройка MacOS 2024, Юли
Anonim
Мултитаймер W/ Външно управление
Мултитаймер W/ Външно управление

Този проект Instructable е изграждане на многофункционален таймер

Този таймер може да функционира като:

  1. Аларма с общо предназначение с възможност за избор между 1 секунда и +90 часа. Имате обратно отброяване със звукова аларма и/или управление на външно устройство до завършване, след това отчитане на времето от алармата.
  2. Таймер за дрямка със 7 избираеми часа, отброяване и аларма при завършване.
  3. Таймер за медитация с 4 избираеми часа, с обратно броене и кратко цвърчене при завършване, отброяване с още едно чуруликане на 5 минути след това.

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

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

Винаги, когато създавам платка, често откривам, че има недостатъци в дизайна или поставянето на компоненти. Платките, които изграждам, също са едно от двете изключения. Освен това просто обичам да участвам във всички аспекти на един проект от началото до края. Това са някои от причините да направя свои собствени платки, вместо да изпращам файловете на Gerber в чужбина за производство. Може би просто съм стар и заседнал в пътищата си. Този проект отразява това пристрастие. Тъй като правя свои собствени платки, моите дизайни и файловете ми Gerber не отговарят на производствените стандарти, не съм включил тези файлове. Тези, които не желаят да гравират и завършват дъските, са добре дошли да подготвят свои собствени дизайни и да публикуват файловете на Gerber в секцията за коментари. Моля, направете вашите дъски произведени и тествани преди публикуването.

Стъпка 1: Преглед на хардуерните елементи

Устройството се захранва от 4 батерии AAA и се управлява от Arduino Pro Mini 5V.

Малък зумер/високоговорител осигурява звукова аларма.

Миниатюрно 5V реле осигурява управляващи напрежения на външни устройства. Гъвкавостта е осигурена в източника на това изходно напрежение за управление.

Ротационен енкодер с бутон осигурява избор на меню.

OLED дисплей и моментен превключвател за стартиране/спиране допълват потребителския интерфейс.

Допълнителният електронен хардуер се състои от превключвател за захранване SPDT и миниатюрен жак за телефон за свързване към външни устройства.

Освен това се предоставят файлове, които да ви помогнат в този проект:

STL файлове за 3D отпечатан калъф за проект.

Изображения на маска от мед и спойка за ецване и довършване на платката за управление и въртящия се енкодер.

Схеми и изображения на дъската като справка за тези, които искат да променят дизайна ми.

Може да пожелаете да прегледате моята инструкция за създаване на двустранни платки като пример за начина на производство на платки.

Стъпка 2: Преглед на софтуера

Заедно с изходните файлове на Arduino, допълнителна информация, която може да бъде полезна.

Библиотеките за хардуерно управление се използват, когато са налични (отказ от бутони, OLED контрол, четене с въртящ се енкодер).

Програмата реализира обикновена машина с крайни състояния (FSM) за управление на изпълнението на код като оператор switch във функцията цикъл.

Класът на менюто е дефиниран, за да позволи избор на показани опции на OLED и избор с помощта на въртящ се енкодер.

Въвеждането се осъществява чрез директно анкетиране (без прекъсване), тъй като не е критично за времето и прави кода по-ясен.

Отчетите за печат към Serial се използват за подпомагане на проследяването на изпълнението на кода и отстраняването на грешки

Различни видове елементи на структурата на програмата, включително:

  • Множество кодови раздели за изолиране на някои от функциите и променливите за управление на хардуера.
  • Превключете операторите, за да зададете стойността на състоянието (FSM) и контролните променливи.
  • Определение на структурата
  • Изброявания, които позволяват присвояване на стойности на състоянието като текст.
  • #define предварително процесор дефиниции за хардуер пин и стандартни стойности.

Стъпка 3: Списък на частите

Създайте корпуса
Създайте корпуса

Не бях сигурен къде да поставя тази стъпка, тъй като тя може да бъде направена почти във всеки момент. Използвах кутия за запечатан 3D печат. Възможно е да нямате достъп до 3D принтер или да предпочитате друг тип заграждение като алуминиева кутия, лазерно нарязана пластмаса, ръчно издълбано дърво или друг вид, който използвате за вашите електронни проекти. Включих STL файловете за горната, долната част, въртящото се кодиращо устройство и OLED панела. Използвайте тези файлове и резачката по ваш избор, за да създадете gcode файлове за вашия принтер.

Разпечатвам всички части, използвайки нишка PLA, един цвят за горната и долната част на кутията, друг контрастен за копчето и рамката (който е залепен отгоре.) Няма да посочвам всичките си настройки за рязане, но използвайте Tri -Попълване с шестоъгълник поне 35%, за да се позволи почукване на ъгловите винтове и настройка "без опора", за да се четат врязаните букви. Отпечатах кутията, използвайки принтерите си "нормална" височина на слоя.

Стъпка 9: Код за проектиране и писане

Тази стъпка не е задължителна, но се предлага за по -добро разбиране.

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

Следните коментари могат да бъдат полезни за разбирането на този процес.

  • Коментари - Коментирайте подробно, докато вървите - често пиша коментарите, преди да напиша кода.
  • Разделяне и завладяване - използвайте функции, класове и модули (раздели.) Използвайте чести компилации (Проверете), за да проверите синтаксиса. Отстраняване на грешки - Използвайте изявления за печат, за да проверите потока и тестовите стойности и хардуерните интерфейси. Не се страхувайте да преодолеете проблемите, докато вървите, никой не пише код, който не съдържа грешки!
  • Константи - #define инструкции за предварително компилиране присвояват имена на пинови номера. Определенията на променливите на const с коментари намаляват или премахват „вълшебните“числа. Използването на константи, разположени в началото на програма или функция, позволява промяна на параметрите без пренаписване на код
  • Предварително дефинирани библиотеки - Използването на предварително дефинирани библиотеки намалява натоварването при програмиране и времето за отстраняване на грешки.
  • Блокове за проектиране - създадени с помощта на функции, изолиране на кода в отделни раздели (свързани програми и.h файлове), изброяване, класове и структури. Фокусирайте вниманието си върху всеки един, за да разберете как работят във връзка с останалата част от кода.
  • State Machine (s) - Това е модел на програмиране, който работи чудесно с Arduinos или всякакви програми, които се използват за управление на изходи или реагиране на входове. Съществуват няколко вкуса на държавните машини. Този код използва машина за състояния, базирана на оператора switch във функцията цикъл. Тази форма е лесна за разбиране и отстраняване на грешки.
  • Дисплей и менюта - OLED изходът е кратък, но осигурява достатъчно обратна връзка за обикновени потребители и поддържа избора на опции. Той се интегрира добре с машината на състоянието (почти всички държави имат свързан OLED екран). Класът Menu беше полезен при изолирането на код за показване и избор на опции от менюто

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

Стъпка 10: Инсталирайте програмата

Копирайте прикачения файл на вашия компютър, след което го разархивирайте в директорията Sketches

Свържете Arduino към компютъра си и изтеглете програмния код по нормалния начин. Отворете серийния монитор на Arduino IDE, за да проверите дали програмата работи и да помогнете за отстраняване на грешки.

Стъпка 11: Сглобете таймера

Сглобете таймера
Сглобете таймера
Сглобете таймера
Сглобете таймера
Сглобете таймера
Сглобете таймера
Сглобете таймера
Сглобете таймера

След като горната и долната част на кутията бъдат отпечатани и почистени, компонентите могат да бъдат прикрепени с помощта на малки самонарезни пластмасови винтове. Първо държачът на батерията е щракнат отзад. Останалите части са прикрепени към горната част на корпуса в следния ред:

  1. OLED и кабел
  2. Старт/Стоп ключ и окабеляване
  3. Ротационен енкодер и кабел
  4. Високоговорител / зумер и окабеляване
  5. Външен жак за управление и окабеляване
  6. Плъзгащ превключвател за включване/изключване и окабеляване (проверете отново ориентацията, така че включването да е в желаната от вас посока

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

Ако използвате щифтове и конектори на Dupont, първо прикрепете основната платка към гърба с помощта на винтове, след това включете компонентите. Внимавайте, когато свързвате батерията към основната платка и спазвайте правилния полярност. В този момент също трябва да настроите джъмперите за управление на релето или окабеляването.

Дъното на кутията се свързва с горната част чрез 4-40 винта на машината с кръгла глава, по един във всеки ъгъл. Четирите отвора в горната част трябва или да бъдат почукани с кран 4/40, или ако използвате 4-40 вложки с резба, ще трябва да пробиете дупките, за да ги приемете. Четирите отвора за монтаж на основната платка на дъното също трябва да бъдат пробити. Поставете тази платка към захващащата се батерия и маркирайте местата на отворите. Пробийте, както е подходящо за вашите монтажни винтове.

Стъпка 12: Тестване за интеграция

Интеграционно тестване
Интеграционно тестване
Интеграционно тестване
Интеграционно тестване
Интеграционно тестване
Интеграционно тестване

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

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

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

Благодаря за отделеното време за разглеждане и/или изграждане на този проект.

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