Мазмұны:

Ultimate Binary Watch: 12 қадам (суреттермен)
Ultimate Binary Watch: 12 қадам (суреттермен)

Бейне: Ultimate Binary Watch: 12 қадам (суреттермен)

Бейне: Ultimate Binary Watch: 12 қадам (суреттермен)
Бейне: Стань трейдером за 3 шага. (eng / kaz sub) @uiartemzvezdin 2024, Шілде
Anonim
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch

Мен жақында бинарлық сағаттар ұғымымен таныстым және өзіме сағат жасай алатынымды білу үшін зерттеу жүргізе бастадым. Дегенмен, мен бір уақытта функционалды және стильді дизайнды таба алмадым. Сонымен, мен өзімнің дизайнымды толығымен нөлден жасауды шештім!

Жабдықтар

Бұл жобаның барлық файлдары:

Arduino кодының кітапханаларын GitHub -дан мына жерден жүктеуге болады:

M41T62 RTC кітапханасы

FastLED кітапханасы

LowPower кітапханасы

1 -қадам: Идея

Мен жақында келесі видеоға тап болдым:

DIY екілік білезік сағаты

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

Бірінші қадам - менің дизайнымның критерийлерін анықтау. Міне мен ойлап таптым:

  • Екілік RGB интерфейсі
  • Уақытты көрсету (өте дәл уақытты сақтай отырып)
  • Күнді көрсету
  • Секундомер функциясы
  • Дабыл функциясы
  • Батареяның қызмет ету мерзімі кемінде 2 апта
  • USB арқылы зарядтау
  • Пайдаланушы оңай реттей алатын бағдарламалық қамтамасыз ету
  • Таза және қарапайым дизайн

Бұл критерийлер бүкіл жобаның негізі болды. Келесі қадам сағаттардың қалай жұмыс істеуін қалайтынымды анықтау болды!

2-қадам: Кейбір екілік сағаттар теориясы

Кейбір екілік сағаттар теориясы
Кейбір екілік сағаттар теориясы

Жоспар қарапайым болды. Екілік сағаттар қарапайым сағаттар сияқты жұмыс істейтін болады, тек интерфейс екілік болады, атап айтқанда BCD (екілік кодталған ондық). BCD - екілік кодтаудың бір түрі, онда әрбір ондық разряд бекітілген бит санымен көрсетіледі. Маған 0-ден 9-ға дейінгі цифрды көрсету үшін 4 бит қажет. Ал стандарт үшін

сағ: мм

уақыт форматы, маған осы цифрлардың 4 -і қажет. Бұл маған 16 светодиод ұсынылатын 16 бит қажет екенін білдіреді.

BCD -де уақытты оқуға үйрену оңай. Сағаттың төменгі жағындағы жол ең маңызды битті (1) білдіреді, ал жоғарыдағы жол - ең маңызды бит (8). Әр баған цифрды көрсетеді

сағ: мм

уақыт форматы. Егер жарық диод қосулы болса, сіз бұл мәнді есептейсіз. Егер светодиод өшірулі болса, сіз оны елемейсіз.

Бірінші цифрды оқу үшін бірінші (ең сол жақта) бағанға сәйкес келетін барлық қосылған жарық диодтарын қосыңыз. Солдан оңға қарай басқа цифрлар үшін де солай істеңіз. Сіз қазір BCD -де уақытты оқыдыңыз!

Бұл принцип сағаттардың қалған функциялары үшін бірдей болады. RGB светодиодтарын қолдану әр түрлі түстерді қолдана отырып, әр түрлі функциялар мен режимдерді ажыратуға көмектеседі. Түстерді пайдаланушы таңдайды және оларды қалаған түстер палитрасына оңай реттеуге болады. Бұл пайдаланушыға шатастырмай, функцияларды оңай шарлауға мүмкіндік береді.

Келесі қадам блок -схеманы құру болды!

3 -қадам: жұмысқа кірісу

Жұмысқа кірісу
Жұмысқа кірісу

Электрониканың кез келген типтік жобасы сияқты, блок -схема жобалаудың бастапқы кезеңінің маңызды бөлігі болып табылады. Критерийлерді қолдана отырып, мен жоғарыдағы блок -схеманы құрастыра алдым. Диаграммадағы әрбір блок тізбектегі функцияны білдіреді, ал көрсеткілер функциялардың өзара байланысын көрсетеді. Блок -схема тұтастай схеманың қалай жұмыс істейтіні туралы жақсы шолуды береді.

Келесі қадам - блок -схемадағы әрбір блок бойынша жеке компоненттер бойынша шешім қабылдауды бастау!

4 -қадам: компоненттерді таңдау

Бұл тізбекте көптеген компоненттер болды. Төменде мен неліктен таңдағанымды түсіндіре отырып, ең маңыздыларының бірін таңдадым.

Жарық диодтары

Екілік интерфейс үшін таңдау өте қарапайым болды. Мен дисплейде жарықдиодты қолданғым келетінін білдім және мүмкіндігінше көп ақпаратты көрсету үшін олардың 16 -сы (4 × 4 торда) қажет екенін түсіндім. Мен мінсіз жарық диодты іздеу кезінде APA102 үнемі келе береді. Бұл түстердің кең диапазоны бар өте кішкентай (2мм x 2мм) адресті жарықдиодты және өте арзан. Мен бұған дейін олармен жұмыс істемеген болсам да, олар бұл жобаға сәйкес келетін сияқты көрінді, сондықтан мен оларды қолдануды шештім.

Микроконтроллер

Микроконтроллерді таңдау да өте қарапайым болды. Мен автономды қосымшаларда Atmega328P-AU қолдануда көп тәжірибе жинадым және оның ерекшеліктерімен жақсы таныстым. Бұл Arduino Nano тақталарында қолданылатын микроконтроллер. Мен қолдана алатын арзан микроконтроллер бар екенін білемін, бірақ Atmega328 барлық Arduino кітапханаларына толық қолдау көрсететінін білу бұл жобаны таңдауда үлкен фактор болды.

RTC (нақты уақыттағы сағат)

РТЖ үшін негізгі талап дәлдік болды. Мен сағаттарда интернет байланысы болмайтынын, сондықтан интернет байланысы арқылы қайта калибрлей алмайтынын білетінмін, пайдаланушы оны қолмен қайта калибрлеуі керек еді. Сондықтан мен уақытты есепке алуды мүмкіндігінше дәл етіп жасағым келді. M41T62 RTC мен табатын ең жоғары дәлдіктің біріне ие (± 2 ppm, бұл айына ± 5 секундқа тең). Жоғары дәлдікті I2C үйлесімділігімен және ең төменгі ток тұтынуымен біріктіру бұл РТЖ -ны осы жоба үшін жақсы таңдау етті.

DC-DC Boost түрлендіргіші

DC-DC Boost түрлендіргіші IC таңдау тек схемаға қарап, қандай кернеулер мен токтар қажет екенін анықтау арқылы жүзеге асырылды. Төмен кернеудегі тізбекті іске қосу ток шығынын азайтады, бірақ мен 4,5 В төмен түсе алмадым (микроконтроллердің минималды кернеуі 16 МГц) және мен 4.5 В -тан (РТЖ максималды кернеуі) көтеріле алмадым. Бұл компоненттерді олардың ұсынылған техникалық сипаттамалары бойынша жұмыс істеу үшін тізбекті дәл 4,5 В кернеуінде іске қосуым керек болды. Мен тізбектің максималды тогы 250 мА аспайтынын есептедім. Сонымен, мен талаптарға сәйкес келетін күшейткіш түрлендіргішті іздей бастадым және TPS61220 -ге тез тап болдым. TPS61220 минималды сыртқы компоненттерді қажет етті, өте арзан болды және ток пен кернеу талаптарын қанағаттандыра алды.

Батарея

Батареяға қойылатын негізгі талап - оның өлшемі. Батареяның көлемі шағын болып көрінбестен, ол сағат корпусына сыйып кететіндей болуы керек еді. Мен батарея 20 мм × 35 мм × 10 мм аспауы керек деп ойладым. Осы өлшем шектеулері мен 250 мА ағымдағы талаптарға байланысты менің таңдауым LiPo батареяларымен шектелді. Мен Hobbyking-те «Turnigy nano-tech 300mAh 1S» батареясын таптым, мен оны қолдануға шешім қабылдадым.

Зарядтау IC

Зарядтау реттегішіне 1S LiPo батареясымен үйлесімді болуды қоспағанда, ерекше талаптар болған жоқ. Мен MCP73831T таптым, бұл бір ұялы зарядтауға арналған толық интеграцияланған заряд контроллері. Оның ерекшеліктерінің бірі - сыртқы резистор арқылы зарядтау тогын реттеу мүмкіндігі, мен оны осы қосымшада өте пайдалы деп таптым.

LiPo қорғанысы

Мен аккумуляторды кез келген қауіпті асып кетуден және шамадан тыс зарядсызданудан қорғау үшін кернеу мен ток бақылауын қосқым келді. Мұндай мүмкіндіктерді қамтамасыз ететін шектеулі IC -лер болды және арзан нұсқалардың бірі BQ29700 IC болды. Ол сыртқы компоненттердің ең аз мөлшерін қажет етті және бір ұялы LiPo батареясының барлық қажетті қорғанысын қамтыды.

Енді компоненттер таңдалғаннан кейін схеманы құрудың уақыты келді!

5 -қадам: Схема

Схемалық
Схемалық

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

Келесі қадам схеманы ПХД -ге салу болды!

6 -қадам: ПХД орналасуы

ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы

ПХД орналасуы бұл жобаның ең қиын бөлігі болып шықты. ПХД өндіріс шығындарын минимумға дейін төмендету үшін мен 2 қабатты ПХД қолдануды жөн көрдім. Мен 36 мм стандартты сағатты қолдануды жөн көрдім, себебі бұл светодиодтарға жақсы сәйкес келеді. ПХД -ны сағат корпусына бекіту үшін мен 1 мм бұрандалы тесіктерді қостым. Мақсат-барлық компоненттерді (әрине жарық диодты қоспағанда) төменгі қабатқа орналастыру арқылы таза және әдемі дизайнды сақтау. Мен сонымен қатар жоғарғы қабатта көрінетін виас болмауы үшін вианың абсолютті ең аз санын қолданғым келді. Бұл тізбектің «шулы» бөліктерін сезімтал сигнал іздерінен алшақ ұстауды қамтамасыз ету үшін барлық іздерді бір қабатқа бағыттауым керек болды. Мен сондай -ақ барлық іздерді мүмкіндігінше қысқа сақтауға, айналып өтетін конденсаторларды жүктемеге жақын орналастыруға, қуатты компоненттерге арналған қалың іздерді қолдануға және ПХД дизайнының барлық жақсы тәжірибелерін ұстануға тырыстым. Маршруттау біраз уақытты алды, бірақ менің ойымша, бұл өте жақсы болды.

Келесі қадам - сағат корпусының 3D моделін жасау!

7 -қадам: 3D дизайны

3D дизайны
3D дизайны
3D дизайны
3D дизайны
3D дизайны
3D дизайны

Сағат корпусы Fusion 360 көмегімен өте қарапайым, классикалық сағаттар дизайнынан кейін жасалған. Мен сағатты басқа көптеген белдіктермен үйлесімді ету үшін сағат белбеуінің стандартты 18 мм аралығын қолдандым. ПХД-ге арналған кесу кез келген өндірістік қателіктерді ескере отырып, ПХД-дан 0,4 мм үлкенірек етіп жасалған. Мен ПХД орнатуға арналған бұрандалы тіректерді және ПХД төсеу үшін кішкене шетін енгіздім. Жарық диодтарының өткір жиектері киімге жабысып қалмас үшін мен ПХД -ны жоғарыдан фем миллиметр тереңдікке бекітіп қойдым. Корпустың биіктігі тек батареяның қалыңдығымен анықталды. Қалған қоршау дөңгелектелген жиектермен және жылтыратылған бұрыштармен жақсы көрінуге арналған. Мен 3D-басып шығаруды ыңғайлы ұстауым керек болды, сонда мен оны ешбір қосымша материалсыз 3D-де басып шығара аламын.

Жабдық аяқталғаннан кейін бағдарламалық жасақтамамен жұмыс істеудің уақыты келді!

8 -қадам: Кодекс

Кодекс
Кодекс

Мен кодты барлық қажетті кітапханаларды қосудан бастадым. Бұған РТЖ -мен байланыс орнатуға және жарық диодты жарықтандыруға арналған кітапхана кіреді. Осыдан кейін мен әр режим үшін жеке функциялар жасадым. Пайдаланушы батырманы басу арқылы режимді ауыстырған кезде, бағдарлама осы режимге сәйкес келетін функцияны шақырады. Егер пайдаланушы көрсетілген уақыт ішінде түймені баспаса, сағат ұйқыға кетеді.

Ұйқы режимі барлық светодиодтар сөнгенше сөнеді. Ұйқы режимін пайдалану батареяның қызмет ету мерзімін едәуір арттырады және жарықдиодты қолданбаған кезде өшіреді. Қолданушы сағатты жоғарғы түймені басу арқылы оята алады. Ояту кезінде сағат зарядтауды қажет етпейтініне көз жеткізу үшін батарея деңгейін тексереді. Егер зарядтау қажет болса, светодиодтар уақытты көрсетпес бұрын бірнеше рет қызыл болып жыпылықтайды. Егер батарея өте төмен деңгейден төмен болса, ол мүлде қосылмайды.

Қалған уақытта бағдарламалау басқа режимдерді мүмкіндігінше интуитивті етіп жасауға кірісті. Мен барлық режимдерде бірдей функцияға жауап беретін бір түйменің болуы ең интуитивті болады деп ойладым. Бірнеше тестілеуден кейін бұл түйменің конфигурациясы:

  • Жоғарғы түймені басу: «Дисплей уақыты», «Көрсету күні», «Секундомер» және «Дабыл» режимдерінің арасындағы ояту / цикл.
  • Жоғарғы түймені ұстап тұру: «Уақытты орнату», «Күнді орнату», «Секундомерді бастау» немесе «Дабылды орнату» режимін енгізіңіз.
  • Төменгі батырманы басу: жарықтығын арттыру.
  • Төменгі батырманы ұстап тұру: «Түсті таңдау» режиміне өтіңіз.

Төменгі түйме әрқашан жарықтығы мен түсінің реттелуіне жауап береді, сіз қандай режимде боласыз. Қолданушы «Түсті таңдау» режиміне кірген кезде, жарық диодты шамалар барлық мүмкін RGB түстері бойынша айнала бастайды. Қолданушы анимацияны кідірте алады және сол режимге ұнайтын түсті таңдай алады (Дисплей уақыты қызыл, дисплей күні көк және т.б.). Түстерді пайдаланушы әр түрлі режимдерді ажыратуға көмектесу үшін оңай реттеуге арналған.

Енді код аяқталды, оны микроконтроллерге жүктеу уақыты келді!

9 -қадам: бағдарламалау

Бағдарламалау
Бағдарламалау

Дәнекерлеу мен жинау уақыты келді, бірақ оған дейін микроконтроллерді бағдарламалау керек болды. Мен бұл оқулықты орындадым

Жүктеушіні ATmega328P-AU SMD-ге жазыңыз

жүктеушіні қалай жазу керек және бағдарламашы ретінде қарапайым Arduino Uno көмегімен микроконтроллерді бағдарламалау.

Бірінші қадам «ArduinoISP» мысал кодын жүктеу арқылы Arduino Uno -ны провайдерге айналдыру болды. Мен тақтаны бағдарламалау розеткасымен бірге қолдандым және оқулықтан схеманы жалғадым. Осыдан кейін мен Arduino IDE ішіндегі «Burn Bootloader» батырмасын басу арқылы микроконтроллерге жүктеушіні жаза алдым.

Микроконтроллерде жүктеуші болғаннан кейін, мен Arduino Uno -дан қолданыстағы микроконтроллерді алып тастадым және кодты бағдарламалық розеткадағы микроконтроллерге жүктеу үшін Arduino Uno тақтасын USB -сериялық адаптер ретінде қолдандым. Жүктеу аяқталғаннан кейін мен дәнекерлеу процесін бастай аламын.

Келесі қадам - барлық компоненттерді жинау және оларды дәнекерлеу!

10 -қадам: дәнекерлеу

Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу

Дәнекерлеу процесі екі бөлікке бөлінді. Алдымен төменгі қабатты, содан кейін жоғарғы қабатты дәнекерлеу қажет болды.

Мен лента көмегімен бірнеше прототипті тақталар арасындағы сағаттардың ПХД -ны бекіттім. Бұл ПХД дәнекерлеу кезінде қозғалмайтынын қамтамасыз етті, бұл өте маңызды. Содан кейін мен дәнекерлеуге арналған трафаретті ПХД үстіне қойдым және дәнекерленген жастықшалардың барлығын жабу үшін мол дәнекерленген пастаны қолдандым. Мен барлық компоненттерді сәйкес жастықшаларға орналастыру үшін жұқа пинцет қолдандым. Содан кейін мен барлық компоненттерді дәнекерлеу үшін жылу тапаншасын қолдандым.

Төменгі қабат дәнекерленген кезде, мен дәнекерлеудің сәтті болғанына көз жеткізу үшін тез визуалды тексеруден өттім. Содан кейін мен тақтаны аударып, екінші жағынан дәнекерлеу процесін қайталадым, бұл жолы барлық жарық диодты шамдармен. Үстіңгі қабатты дәнекерлеу кезінде тақтаны қызып кетпеу өте маңызды болды, өйткені оның астындағы барлық компоненттер құлап кету қаупі бар. Бақытымызға орай, барлық компоненттер орнында қалды және кәдімгі дәнекерлеу үтігінің көмегімен түймелерді дәнекерлегеннен кейін ПХД аяқталды!

Енді соңғы жиналыстың уақыты келді!

11 -қадам: құрастыру

Ассамблея
Ассамблея

Құрастыру өте қарапайым болды. Мен батареяны ПХД -ге қосып, батарея мен ПХД -ны 3D басып шығарылған корпустың ішіне қойдым. Мен ПХД әр бұрышындағы бекіту тесіктеріндегі төрт бұранданы бұра бастадым. Осыдан кейін мен сағат белбеуін 18 мм серіппелі штангалармен бекіттім, сағаттар аяқталды!

12 -қадам: Қорытынды және жетілдіру

Қорытынды және жетілдіру
Қорытынды және жетілдіру
Қорытынды және жетілдіру
Қорытынды және жетілдіру

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

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

Егер сізде осы жоба бойынша қандай да бір ойлар, пікірлер немесе сұрақтар болса, оларды төменде қалдырыңыз. Сіз оларды [email protected] электронды поштасына жібере аласыз.

Сағат сайысы
Сағат сайысы
Сағат сайысы
Сағат сайысы

Сағат байқауының бірінші жүлдесі

Ұсынылған: