Мазмуну:

Олед ойготкуч: 8 кадам (сүрөттөр менен)
Олед ойготкуч: 8 кадам (сүрөттөр менен)

Video: Олед ойготкуч: 8 кадам (сүрөттөр менен)

Video: Олед ойготкуч: 8 кадам (сүрөттөр менен)
Video: Жесткий пранк от жены / Baz TikTok (Тикток) 2024, Ноябрь
Anonim
Олед Ойготкуч Сааты
Олед Ойготкуч Сааты

Ардуино/ESP32 сааттары көп айланып жүрөт, бирок алар ошол сонун жана кычкыл OLEDдерди колдонушабы?

Мен бир аз убакыттан бери arduinos жана ESP32 менен эксперимент кылып жүрдүм, бирок мен аны эч качан даяр продуктка жеткире алган жокмун. Мен 4 1.3 дюймдук монохромдуу OLED менен ойготкуч саат жасадым. Саатта тумбочканын чырагы жана USB кубаттоочу порт да бар (эч кимдин керебетинин жанында запастык түйүндөрү жок). OLEDлер да бүдөмүк, бул менин сүйлөшкөн кызым коркуткандан кийин акыркы мүнөттө кошулган. Подругалар үнү жетиштүү караңгылашпаса, мен коддун версиясын бере алам, анда 3 дисплей белгилүү бир сааттардын ортосунда иштейт. Максаты "прототиптен" ары карап, оңой тейленүүчү саат жасоо болчу. Саатымды жасап жатканда, мен чечүүгө туура келген кээ бир кыйынчылыктарга туш болдум, ошондуктан мен бул үйрөткүч менен бөлүшүү керек деп ойлойм. Саатты кичинекей шаймандар менен жасаса болот, мага "жакпайт" жана кийинки кадам үчүн 10.000 €/$ CNC тегирмени "үйрөткүчтөрүмдү колдондум.

Бул үйрөтүлө турган (структуралаштырылбаган) айрым нерселер:

- Arduino/ESP32 менен I2C OLED дисплейин кантип колдонуу/зымдоо

- Бир arduino/ESP32 менен бир нече I2C объектилерин кантип колдонуу керек

- Ротари коддогучту колдонуп "жылдыра турган" менюну кантип жасоо керек (+ ESP32/arduino менен коддогучту кантип колдонуу керек)

- Фритзингди колдонуп жеке ПКБны кантип иштеп чыгуу жана заказ кылуу керек.

- Саат ошондой эле RTC (реалдуу убакыт сааты), жетектөөчү драйвер, чыңалуу модулун колдонот … Мен буларга кире албайм, анткени бул модулдар үчүн чынында көп маалымат бар.

Мен кесипкөй программист эмес экенимди белгилегим келет. Менин инструкторумдун максаты - мен жогоруда айткан пункттарды түшүндүрүү. Акыркы продуктум үчүн баарын кантип чогултканым эң таза жол эмес. Бул мага баарын көзөмөлдөөгө мүмкүнчүлүк берген жол.

Жабдуулар

Дүкөндөрдү сатып алууда мен сапаттын/документтин маанилүүлүгүн баага салыштырууга аракет кылам. Менин жабдыктарым А-бренддердин аралашмасы жана кытайдын арзаныраак бөлүктөрү. Эгер сапат маанилүү болсо, Mouser эң сонун жеткирүүчү, мен Banggood/Aliexpressтен арзаныраак бөлүктөргө заказ кылам.

- ESP32 тактасы, мен aduzzutтан Huzzah32 колдондум, бирок башка (арзан) варианттар көп. Мен Huzzah32ди тандадым, анткени ал абдан жакшы документтештирилген.

- 4 1.3 дюймдук I2C OLED дисплейлери (128x64, SH1106 драйвери менен), 0,96 дюймдары кеңири таралган, бирок бул долбоор үчүн мен 1.3 дюймду жактырам

- LED айдоо үчүн Sparkfun femtobuck айдоочусу

- RTC сааты, мен литий клеткасы бар бирөөнү колдондум

- Arduino nano

-Аял USB 2.0 порту (мен колдонгон: Stewart Connectorден SS-52200-002)

- Аялдын DC уячасы (мен колдондум: Switchcraftдан L722A)

- 12V 3A DC адаптери (Mean Wellдан GST36E12-P1J)

- Ыңгайлаштырылган ПХБ, милдеттүү эмес, бирок бул долбоорду бир топ компакттуу жана оңой тейлейт, эгерде анын бир бөлүгү өлүп калса + ишенимдүүлүгү көбүрөөк, анткени зымдар азыраак (jlcpcb.com)

- M3 бурамалар жана болттор

- М3 жезден салынган

- 12Vдан 5Vга чейин Pololu модулу (DF24V22F5)

- 3 ватт радиатор менен иштейт

- секирүүчү зымдар

- Коңгуроо

- I2C мультиплексор (adafruitтен TCA9548A)

- 2 Ротари коддоочу (Мен кээ бирлерин сынап көрдүм, баары эле менин кодум менен иштебейт. "DFrobot" догу бирөө иштейт, ошондой эле "DIYmore" догу тегерек ПКБ менен иштейт. Менин кодум баскыч үчүн иштебейт окшойт) KY-040 тибиндеги. Менин ойготкуч саат DIYmore менен иштейт, анткени алар панелге орнотууга абдан оңой (кошумча бурамалар/тешиктердин кереги жок).

- Аялдардын баш ассортименти (милдеттүү эмес)

- Рамка үчүн жыгач: 18mmx18mmx2400mm

- Издөө кагазы

Мен кээ бир шаймандарды (паяльник, 3 -колу, араа …) колдондум, бирок чынында экзотикалык эч нерсе жок.

1 -кадам: Oled колдонуу

Олед колдонуу
Олед колдонуу
Олед колдонуу
Олед колдонуу
Олед колдонуу
Олед колдонуу

OLEDди колдонуу үчүн китепкананы орнотушуңуз керек. Мен U8G2libди Оли Краустан колдоном, бул абдан түшүнүктүү жана ачык мисалдары бар маалымдама бар.

Тактаңызды туташтыруу үчүн (ESP же arduino) SDA жана SCL казыктарын табышыңыз керек. Бул казыктар I2C байланыш казыктары. Эгер таба албасаңыз, конкреттүү тактаңыздын "pinout" үчүн Google.

Мен кээ бир мисал кодун коштум. Код arduino үчүн да, ESP32 үчүн да иштейт, бирок ESP32 эс тутуму түгөнүп калуу ыктымалдуулугу аз. Мен буга чейин аракет кылган бардык оледдер 3.3v (ESP32) жана 5V менен иштейт.

2 -кадам: Бир нече OLED

Бир нече OLED
Бир нече OLED

Бул жерде менин долбоорум башка ойготкуч сааттардан айырмалана баштайт. Ардуино/ESPтин көпчүлүгүндө бир же эки I2C казыгы бар. Мындай түрү I2C бөлүктөрүн колдонууну чектейт. Эгерде менде I2C 4 сенсорлору бар болсо жана I2C дисплейде алардын көрсөткүчтөрүн көрсөтүүнү кааласамчы? Мультиплексорду киргизиңиз. Muliplexer 7 түрдүү I2C бөлүгүн чечүүгө мүмкүндүк берет. Бул менин ESP32ге I2C реалдуу убакыт саатын колдонууга жана I2Cди кайра колдонуу менен 4 дисплейде көрсөтүүгө мүмкүндүк берет (же андан көп, мени токтотууга жол бербе).

Мен ESP32 үчүн кээ бир мисал кодун коштум, бул жерден мен arduino уланта алаарына ишенбейм. Мисал дисплейлерди гана колдонот, бул I2C сенсорлору жана башка нерселер болушу мүмкүн. Принцип дайыма бирдей, сиз туура каналды "tcaselect (#);" менен чакырасыз; функциясы, анда сиз I2C объектиси үчүн керектүү болгон кодду аткарасыз.

3 -кадам: Ротари Encoder менен жылдырылуучу менюну түзүү

Ротари Encoder менен жылдырылуучу менюну түзүү
Ротари Encoder менен жылдырылуучу менюну түзүү
Ротари Encoder менен жылдырылуучу менюну түзүү
Ротари Encoder менен жылдырылуучу менюну түзүү
Ротари Encoder менен жылдырылуучу менюну түзүү
Ротари Encoder менен жылдырылуучу менюну түзүү

Биринчи кезекте, коддогучтарыңызды сынап көрүңүз. Мен коддогуч модулдарыңызды текшерүү үчүн кээ бир коддорду коштум. Берилиштерде айтылгандай: Мен кодду DF роботунун айлануучу коддогуч модулдары жана DIYmoreдун тегерек ПКБ менен модулу менен ийгиликтүү сынап көрдүм. Туура коддогучтар үчүн жогорудагы сүрөттөрдү караңыз.

Мен колдонгон китепкана бул:

Мен кошкон PDF менин саатыма колдонгон меню структурасына жардам берет деп үмүттөнөм.

Кодердин иштеши бул долбоордун мен үчүн эң кыйын бөлүгү болду. Ар кандай коддогучтар жана ESP32 менен дайыма эле шайкеш келе бербеген көптөгөн китепканалар бар. Бирок, мен ойлойм, (иштөөчү) ротационер - бул бир нерсе киргизгиңиз келсе, жарашыктуу чечим. Эгерде мен кнопкаларды гана колдонгон болсом, мага 1ден ашык керек болмок жана убакытты коюу көп басууну талап кылат.

4 -кадам: Мурунку кодду бирге коюу

Мурунку кодду бирге коюу
Мурунку кодду бирге коюу

Аталышы менин кылган иштеримди кыскача баяндайт. Мен жарым -жартылай аракет кылдым, анан баарын бириктирдим. Бирок эч нерсе оңой болбогондуктан, кээ бир нерселерди өзгөртүүгө туура келди. Сериялык байланыш жай процесс. Бул коддогучту туура окууга тоскоолдук кылат. Муну жеңүү үчүн, мен коддогучтун казыктарына үзгүлтүктөрдү коштум. Кодерди окуу коду, эгерде сиз коддогучту түртсөңүз же бурсаңыз, дароо чакырылат.

Менюнун кантип курулганын түшүнгөндөн кийин, өзгөчөлүктөрдү өзүңүз каалагандай кошуу же алып салуу абдан оңой экенин көрө аласыз. Балким, сиз учурдагы аба ырайын же убакытты интернеттен алып, көрсөтүүнү каалайсызбы?

Мен көптөгөн мындай ойлорду калтырдым, анткени мен баарынан мурда ишенимдүү убакыт-тынчтыкты кааладым. Автоматтык түрдө эч нерсе кылбаган адам. Мен күндүзгү үнөмдөө аймагында абдан так саат иштейм. Саат алмашкан сайын, мен ашыкча уктап калам. Телефонум саатты автоматтык түрдө алмаштырабы? Менин саатым болобу? Ооба, мен өзүм өзгөртпөсөм, саатым болбойт. Бирок, балким, саатыңызды ашканага салгыңыз келет? Ар кандай сценарий, эстутум өчкөнчө өзгөчөлүктөрдү кошуңуз!

5 -кадам: Fritzing + схемасы менен бажы PCB

Fritzing + схемасы менен бажы PCB
Fritzing + схемасы менен бажы PCB
Fritzing + схемасы менен бажы PCB
Fritzing + схемасы менен бажы PCB
Fritzing + схемасы менен бажы PCB
Fritzing + схемасы менен бажы PCB

Көңүл буруңуз: Adafruit huzzah32ди USB пин аркылуу иштете алсаңыз, микро USB кубаттуулукту бир убакта колдонбошуңуз керек экенин белгилейт. Менин ПКБым түшүүчү бак аркылуу иштейт, андан кийин USB пин аркылуу хуза иштейт. Ошентип, жүктөөдө дайыма тышкы электр кубатын өчүрүңүз/хузаны тактан алып салыңыз.

Мен аялзатынын баштарын ПХБда ширетүүнү чечтим, анткени анын бир бөлүгүн алмаштырууну же мисалга кошумча I2C сенсорун кошууну жеңилдетет. Бул ошондой эле программаларды жүктөө үчүн нанону же ESP32ди оңой алып салууга мүмкүндүк берет.

Мен Frizting файлын коштум, бул жерге роман тере алам, бирок мен мисал эң жакшы сүйлөйт деп ойлойм. Мен бүт орнотуунун схемасы менен баштадым. Фритзингдин урналарында көптөгөн бөлүктөрү бар болсо да, баары жок. Кээде интернеттен Fritzing бөлүгүн таба аласыз, кээде таба албайсыз. Мен таба албаган бөлүктөрдү жөн эле аялдын баш бөлүгү менен алмаштырдым. Эгер сиз аны оң бассаңыз, анда керектүү төөнөгүчтөрдүн башын түзөтүп, ага пинтутту дайындай аласыз. Мен муну таба албаган ар бир бөлүгүм менен жасадым. Дээрлик бардык модулдар 0.1ин (2.54мм) бирдей кадамды колдонушкандыктан, бул бөлүккө туура аралыкты берет.

Андан кийин сиз фритзинг колдонмосунун PCB көрүнүшүнө өтөсүз. ПКБ ордуна коюлат, эгер сиз аны бассаңыз, анын өлчөмүн коюп, бир же эки катмардуу ПХБны тандай аласыз. Меники 2 катмарды колдонот. Fritzing сиз схемалык түрдө жасаган байланыштарды сунуш кылат. Программанын autoroute варианты бар, бирок мен аны эч качан колдонбойм. Мен байланыштарды кол менен уюштурууну жакшы көрөм. ПХБ көрүнүшүндө сары туташуулар үстүңкү катмарда, апельсин астыңкы катмарда. Дагы, эгер сиз туташууну бассаңыз, анын касиеттерин тандай аласыз.

Чыныгы PCB жасоо үчүн, аны gerber файлы катары экспорттоо керек. Муну жасоодон мурун, "маршрут" өтмөгүнүн астында дизайн эрежелерин текшере аласыз. Эгерде баары текшерилсе, "ПХБ үчүн экспорттоону" чыкылдатыңыз. Көпчүлүк өндүрүүчүлөр gerber файлын сурашат, андыктан gerberге экспорттоону тандаңыз.

Мен ПКБны JLCPCBден заказ кылдым, мага алар дароо эле бааны айтышат. Албетте, башка көптөгөн варианттар бар.

Схема жөнүндө: 2 чыңалуу колдонулат. LED жана femtobuck түздөн -түз 12В менен камсыздалат. Калгандары 5 вольт менен түшүүчү бак аркылуу иштейт.

6 -кадам: Дизайн + Ласеркуттер

Дизайн + Lasercutter
Дизайн + Lasercutter
Дизайн + Lasercutter
Дизайн + Lasercutter

Биринчи дизайн үчүн мен катуу эменди колдонууга аракет кылдым (жыгаччылык боюнча сабактарды окуйм), бирок бул идеалдуу эмес экени бат эле билинди. Жыгач өтө коюу болгондуктан, тетиктериңизге туура келбейт. 3мм кайың мультиплекси кодерлерди жана дисплейлерди бекитүүнүн оңой жолдорун берет.

Мен Роттердамда жайгашкан хоббичилер үчүн жеткиликтүү snijlab.nl онлайн лазер кызматын таптым (алар Бельгия, Нидерландия жана Германияга жөнөтүшөт). Алардын веб -сайтында сиз чиймелериңизди жүктөй аласыз жана алар дароо сиздин бааңызды айтышат. Мен жумушта болгон Autocad колдондум, бирок программалык камсыздоонун мааниси жок. Бул жөн эле вектордук чийме болушу керек (Vectr, Illustrator, Inkscape …). Көпчүлүк дүкөндөр түстөрдү колдонуп, кесүүнү же оюп жазууну каалаарыңызды аныкташат.

Кээ бир нерселерди эстен чыгарбоо керек:

- Макс. лазердин өлчөмү (мен бөлүктөрүмдүн тегерегине чийме тарттым)

- Мин. кесүү ортосундагы аралык

- Кош сызыктарды тартпаганыңызды текшериңиз, лазер сизге кошумча чыгым алып келет жана сизге кымбатка түшөт.

- PDFке пландап жатканда, 1: 1 планын түзүңүз. Сиз масштабды төмөндөтүүнү же кагазга түшүүнү каалабайсыз.

7 -кадам: Ассамблея

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

Мен саатты жыгач алкактын тегерегинде курдум, панелдер M3 бурамалары жана рамкага салынган жерлери менен сакталат. Эгерде мен качандыр бир убакта 2 -версиясын курсам, панелдерди бекитүү үчүн алюминий "L" профилин колдонмокмун. Жез салынуучу тешиктерди так бургулоо абдан кыйын болду. Мага абдан көп убакыт кетти, болгону алгылыктуу жыйынтык. Бул албетте, лазердик сүрөттү кайра карап чыгуу керек дегенди билдирет. Мен ойлойм, алюминий профилдери жана жаңгактар менен болттор менен сиз жакшы натыйжага жетесиз.

Жарыкты жакшыраак таркатуу үчүн мен тешиктердин ичине калька чаптап койгом. Бул жарыкка жакшы жаркыроону берет.

8 -кадам: Бул жерде токтоп калбаңыз

Бул жерде токтобо
Бул жерде токтобо
Бул жерде токтобо
Бул жерде токтобо
Бул жерде токтобо
Бул жерде токтобо

Долбоор ESP32дин тегерегинде, мен аны дээрлик колдонгон жокмун. Менин уктоочу бөлмөмдүн жарыктары учурда blynkтин жардамы менен алыстан башкарылышы мүмкүн. Аларды саат менен көзөмөлдөө - бул кичинекей кадам. Балким, сиз үйүңүздүн айланасындагы температураны көрсөтүүчү кошумча дисплейлерди каалайсызбы? Же кээ бир жергиликтүү сенсорлор (бул мультиплексордо дагы эле запастык I2C туташуулары бар!). Балким, убакыт/ойготкучту колдонмо жана Bluetooth аркылуу коюңуз?

Мага эмнени өзгөрткөнүңдү, эмнени өзгөртөөрүңдү, мен эмнени өзгөртүшүм керектигин айт …

Сунушталууда: