Добър ден, днес искам да споделя инструкции за изработка на часовници на базата на Attiny 85 с дисплей Oled. Характеристиките на часовника ми не се ограничават само до часовника ми. Те могат да се използват и като десктоп, а също така можете да смажете цифров сензор за температура.
За направата домашно ще ни трябва:
- Синтетична каишка (всякакъв цвят)
- велкро за дрехи
- Digispark Attiny85
- Oled дисплей с резолюция 128x64, I2C
- ds18b20 - цифров сензор за температура (по избор)
- Резистор 4.7 Kom 0.25 W
- Arduino Digispark Attiny85 платка за фърмуер (ISP програмист)
- Лист от тънка пластмаса
- Цветни проводници
- конектори Dupont 2,54 мм „женски“
- Бутони 2 бр.
- Малка платка или малко парче платка
- поялник, спойка, колофон
- Нишка, игла, ножица
- чиновнически нож
- Пистолет за горещо лепило
- горещо лепило
- Двустранна лента
Стъпка 1 Подготовка на колана.
Можете да си купите каишка във всеки магазин за ръкоделие. Изберете каишка с ширина 25 мм. Всякакъв цвят. Нуждаем се от лента от около 50 см. Сгънете нашата каишка наполовина и шийте по краищата. След това в средата на каишката правим прорез, но само в една от частите. Зашийте велкро от краищата на каишката.
Поставете конеца с иглата отстрани и вземете поялника.
Стъпка 2 Подгответе дъската и OLED дисплея.
„Мозъкът“ на часовника ни ще бъде контролерът Digispark Attiny85. Те се предлагат в няколко версии. Трябва да си купите платка с Micro USB конектор. Други версии на платката няма да се поберат в кутията на часовника.
Ако сте закупили дъска с споени контакти, първо трябва да ги разкачите. След това вземаме проводници с различни цветове, имаме нужда от 9 различни цвята. Отсечете около 15 см от всяка жица, отстранете я и спойка към Attiny85. Веднага си струва да запишете коя жица към кой щифт е споена, за да не се объркате по-късно.
В моя случай проводниците по цветове изглеждат така:
PB0 MOSI - жълт
PB1 MISO - син
PB2 CSK - син
PB3 - лилаво
PB4 - Бял
PB5 NRES - сив
GND - черен
+5 - червено
Вин - портокал
Цветовете на вашите проводници могат да варират, основното е да ги запишете.
Да преминем към екрана. Ще използваме oled дисплей. Разделителна способност на екрана 128x64, работи на I2C шината. В продажба има екрани с различни цветове: бяло, синьо, синьо с жълто. Бъдете внимателни! Думата "двуцветна" в описанието и заглавието на този екран показва наличието на лента от цветове, различна от основната в горната част на екрана, а не възможността за показване на два цвята с този екран! Всички екрани от този тип показват само един цвят, или в горната част лента от един цвят, в долната част на друг. Хареса ми синият екран, с жълта лента в горната част. Цветът не играе особена роля, изберете коя да харесвате. Както при Attiny85, ако сте закупили екран с споени контакти, първо трябва да ги разкачите.
На гърба на екрана трябва да спойкате малки проводници. По-добре е да използвате проводници от същите цветове като при Attiny85, за да не ги объркате по-късно. В моя случай споявам жълтия проводник към SDA на екрана, към SCL - син, GND - черен, VCC - червен.
На двустранна лента прикрепяме Attiny85 към гърба на екрана Oled. Attiny85 не трябва да надхвърля екрана на Oled.
Ние спояваме Attiny85 и Oled заедно.
PB0 MOSI Attiny85 - Жълт - SDA Oled
PB2 CSK Attiny85 - син - SCL Oled
GND Attiny85 - Черен - GND Oled
+5 Attiny85 - Червен - VCC Oled
Ние събираме всички жици в един ред, така че да получим контур. Навиваме го с електрическа лента на няколко места, за да не се разпадне.
Преминете към силата на нашите часовници. За целта вземете малка литиева батерия. Запоявайте проводниците към него.
Ако няма батерия, може да се използва тип A27 или A23 батерия.
Поставяме акумулатора или батерията в най-отдалечения ъгъл на джоба, образуван от каишката, сгъната наполовина. Ако използвате батерия, осигурете слот, който да я замените.
В дупката, направена в средата на каишката, ние залепваме кабела си от проводниците.
И ги опъваме до края на каишката, така че да стърчат, а часовникът е точно над слота, така че слотът да се затваря с часове.
Ние отрязваме излишните и пресяваме всички проводници на Dupont 2,54 мм „майка“ конектори. Вмъкваме го в пластмасови калъфи и го увиваме с електрическа лента, така че да получим чист конектор, с всички изводи Attiny85. Тук също си струва да напишете или още по-добре да очертаете всички контакти на получения конектор. GND Attiny, GND Oled и минусът на батерията могат да бъдат незабавно свързани и кримпвани в един контакт. За допълнително попълване на скицата и свързване на добавки е най-удобно да подредите контактите по следния начин:
PB0 | PB1 | PB2 | PB5 | +5 ВНИМАНИЕ | GND ВНИМАНИЕ
PB3 | PB4 | VCC OLED | GND OLED | Вин ВНИМАНИЕ | + НДНТ
Сега е време да преминете към корпуса.
Стъпка 3 Съставяне на случая.
За тялото ще ви трябва тънка пластмаса. Може да се купи в онлайн магазина. Или можете да си купите папка с дебел пластмасов капак в магазина за канцеларски материали и да направите калъф от корицата. Върху пластмасата маркираме метенето на часовника. Твърдите линии са отрязани линии, пунктирани линии - огъване.
С помощта на чиновнически нож внимателно изрежете прозореца в средата. Извиваме всички пунктирани линии. Трябва да е така:
И от обратната страна:
Поставяме слот на екрана си, огъваме краищата и с помощта на горещо разтопено лепило събираме тялото си. Също така си струва да залепите калъфа към каишката, за предпочитане вътре, за да не излезе лепилото.
Стъпка 4 Подготовка на програмната среда.
За работа с фърмуера (или скица) ще използваме Arduino IDE. Изтеглете архива или инсталатора от официалния сайт Arduino IDE.
В допълнение, ние трябва да добавим Attiny поддръжка към Arduino IDE. За да направите това, стартирайте Arduino IDE, след това File - Settings - в полето „Допълнителни URL адреси на мениджър на дъски“, поставете връзката:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Щракнете върху OK (можете да въведете няколко връзки, разделени със запетая в това поле). След това отидете на Tools - Board - Boards Manager в полето за филтри, въведете Attiny и изберете "attiny by David A. Mellis". Щракнете върху Инсталиране и изчакайте изтеглянето да приключи.
Ще ви трябва и библиотека, за да работите с екрана Oled. Има много от тях, хареса ми и препоръчвам да използвате TinyOzOLED. Той е удобен и най-важното - вписва се в паметта:
В бъдеще можете да разширите функционалността на часовника, като добавите температурен сензор. Добавете библиотека за този сензор веднага. Библиотека на OneWire.
Инсталирайте тези библиотеки. За целта направо в средата за програмиране на Arduino IDE, без да разопаковате изтеглените архиви, изберете менюто Sketch - Connect Library. В самия връх на падащия списък изберете елемента „Добавяне. Zip library“. В диалоговия прозорец, който се показва, изберете библиотеката, която искате да добавите, в този случай две изтеглени. Сега отворете отново менюто Sketch - Connect Library. В самото дъно на падащия списък трябва да видите нови библиотеки. Отсега нататък библиотеките могат да се използват в програми. След всичко това рестартирайте Arduino IDE. Можете също така просто да го разархивирате в папката „библиотеки“, разположена в папката с инсталирания Arduino IDE.
Стъпка 5 Подготовка на програмиста.
Digispark Attiny85 може да се програмира чрез микро USB конектор на платката с помощта на Arduino IDE. Въпреки това, в същото време трябва да пожертвате 2 KB от 8 KB флаш памет за зареждащия механизъм.Скицата на часовника не пасва на зареждащия инструмент, така че трябва да използвате ISP програмиста, като по този начин изтриете зареждащия механизъм. Ако няма под ръка ISP програмист (като моя), можете да използвате Arduino дъската вместо това. Ще използвам Arduino Uno. Но можете да използвате всяка друга дъска. И така, свързваме Arduino Uno с компютъра. Стартирайте Arduino IDE, отворете File - Примери - Arduino ISP. Изберете от менюто Инструменти - Дъска - Arduino Uno. Избираме порта, към който е свързан, Arduino и кликваме изтеглянето. Скицата започва с намек за това как да свържете Arduino към програмируемия контролер.
// 10: нулиране на роб
// 11: MOSI
// 12: МИСО
// 13: SCK
Схема на връзка с Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Стъпка 6 Подгответе жицата за зареждане на скицата.
Има няколко варианта за скицата и точно за удобството на изтеглянето ще произведем жица, свързваща Arduino Uno (като ISP програмист) и часовника ни. Тук също препоръчвам да използвате цветни проводници, които съответстват на цвета, който вече сме използвали. От една страна, трябва да има блок:
PB0 Жълт | PB1 Blue | PB2 Blue | PB5 Сив | +5 Червено | GND Черен
Този блок се свързва с часовника, в горната част на блока за гледане.
От друга страна, има две подложки за свързване към Arduino Uno:
Пин 10 сив | Пин 11 жълт | Пин 12 син | Пин 13 синьо
+5 Червено | GND Черен
Тя трябва да изглежда така:
Стъпка 7 Фърмуер.
И така, написах някои опции за скици за нашите часовници. Ще напиша по-късно какви са разликите и ще изложа всичко. За да попълните скицата, стартирайте Arduino IDE, изберете менюто Инструменти, задайте следните параметри:
Борд - Attiny 25/45/85
Процесор - Attiny 85
Часовник - вътрешен 16
Изберете серийния порт, към който е свързан ISP програмистът или Arduino като програмист. Също така в менюто Инструменти - Програмист изберете "Arduino като ISP". Сега изберете Скица - Изтеглете чрез програмиста. Остава да изчакаме изтеглянето да завърши.
Стъпка 8 Скици.
Първият вариант е часовник с дата. За да зададете времето, ще трябва да свържете бутони, нещо подобно:
Към щифтове PB1, PB3, PB4.
Вторият вариант е само часовник. За да зададете времето, което трябва да използвате USB-TTL.
И третата опция, настолен часовник с дата и термометър.
Стъпка 9 Стартиране.
За да стартирате часовника, ако използвате литиева батерия, трябва да инсталирате джъмпер в блока между контактите BAT, +5 и VCC. Можете да използвате малко парче тънка тел. Ако имате батерия, ще ви трябват два джъмпера, поставете първия между BAT и Vin, втория - + 5 и VCC.