НЕБОЛЬШИЕ наручные часы с OLED-дисплеем, напечатанные на 3D-принтере: 6 шагов
НЕБОЛЬШИЕ наручные часы с OLED-дисплеем, напечатанные на 3D-принтере: 6 шагов
Anonim
НЕБОЛЬШИЕ наручные часы OLED с 3D-печатью
НЕБОЛЬШИЕ наручные часы OLED с 3D-печатью
НЕБОЛЬШИЕ наручные часы OLED с 3D-печатью
НЕБОЛЬШИЕ наручные часы OLED с 3D-печатью

Здравствуйте, вы любите создавать свои собственные наручные часы?

Конечно, создать такие маленькие наручные часы своими руками - непростая задача. Выгода - это удовольствие воплотить свою идею в жизнь и гордиться достижением этого уровня навыков …

Причина, по которой я сделал свои собственные часы, заключалась в том, что мои дешевые умные часы, заявленные как водонепроницаемые, потеряли свой бедный призрак, когда окунулись в бассейн … «-watch тоже сдались - его пропиетарный малогабаритный аккумулятор заменить не удалось…).

С другой стороны, существующие проекты DIY-Watch для моего вкуса были в основном слишком тяжелыми или слишком простоватыми - поэтому я решил создать свои собственные часы, имея возможность включить мои предпочтительные функции!

Если хотите, вы можете изменить программное обеспечение, чтобы реализовать свои собственные идеи: я закомментировал каждую строку (в зависимости от выбранной программы от 700 до 800 строк…) - Но имейте в виду: этот проект действительно сложный и, конечно, не для новичков ! Небольшая и легкая форма (30 x 30 x 10 мм) требует аккуратного обращения с корпусом с 3D-печатью и тщательной пайки двусторонней платы: хотя существует возможность заказа платы на печатной плате (файлы Eagle и Gerber) прилагается) здесь я сделал это с помощью моего специального метода Toner-Direct - поэтому инструкция также включена здесь).

Свойства часов:

- OLED-дисплей 128x64px показывает цифровые и аналоговые часы, активируемые правой кнопкой, показывая дату, время, уровень заряда батареи и температуру запястья. В качестве альтернативы (если хотите) он может включать будильник или таймер.

- Полный календарь на месяц отображается при нажатии кнопки «Влево» более 0,6 секунды с выделением текущего дня недели.

- Кратковременное нажатие левой кнопки выбирает простое меню для выбора даты, времени (и будильника или таймера, если они выбраны для включения в программу), значения для установки с помощью правой кнопки.

- Двойное нажатие правой кнопки активирует небольшой светодиод - «Факел» - Подсветка (подходит для черных ночей).

- Между 22:00 и 7:00 OLED-дисплей автоматически затемняется (см. Там, с включенной специальной функцией затемнения!), Поэтому он не слепит ночью.

- Литий-ионная батарея работает почти 2 года, при условии, что дисплей и электроника потребляют около 25 мА при продолжительности работы 5 секунд, отображая часы примерно 10 раз в день.

Шаг 1: Список деталей

Список деталей
Список деталей
Список деталей
Список деталей

Необходимые инструменты:

Если вы любите экспериментировать с аппаратным и программным обеспечением, вам понадобятся:

• Макетная плата 8,2 x 5,5 см AliExpress

• Источник питания с регулируемым напряжением 3,3 В, как показано на схеме выше, или аналогичный, например, источник питания. от разъема 5V-USB (500 мА). ⇒ AMS1117-Adj ⇒ ebay

• Переходник SMD SOIC-8 на DIP-8 pin для RTC-Chip ebay

• Интернет-провайдер Atmel, например USBTiny - AliExpress

• Arduino Pro Mini AliExpress

• Перемычки для макетных плат Banggood

(Электронные) Необходимые детали:

• ⇒ см. Html-BOM-файл для электронных деталей (Скачать).

• Двусторонняя плата для самих часов: ⇒ см. Шаг «Как сделать двустороннюю плату с помощью метода прямого тонера».

• 1x - Батарея ø24 x 3 мм - Литиевая батарея 3, 2 В (кнопочный элемент) - CR2430 - AliExpress

• Каптон / полимидная лента # 25 мм для изоляции между платой / батареей и OLED-платой

• 1x ремешок на запястье 20 мм - я рекомендую «Ремешок для наручных часов Milanaise из нержавеющей стали» - ebay

• Корпус, напечатанный на 3D-принтере: ⇒ см. Загрузить файл с инструкциями (Шаг).

Одна доска из двух?

Если вы хотите сделать одну плату из двух (uC, RTC, остальные части И OLED-плату управления в одном), вы можете использовать мою схему + макет платы для дисплея SSD1306-I2C (см. Скачать: OLED-Display_SSD1306-I2C-Circuit.zip). Используйте 2 целых слоя и изолируйте их от дисплея и батареи с помощью каптоновой ленты, чтобы часы могли быть примерно на 1,5 мм ровнее.

Шаг 2: Электронная схема

Электронная схема
Электронная схема
Электронная схема
Электронная схема
Электронная схема
Электронная схема
Электронная схема
Электронная схема

Прежде всего нам нужно знать основы:

Эти OLED-часы изготовлены с использованием чипа DS3231 RTC (часы реального времени в меньшей форме SMD SO-8), которым управляет всем известный ATMega328P- (Arduino) -µController, и - в отличие от обычно используемого программного обеспечения. -StandBy (из µController) - эти часы имеют полное электрическое отключение через 5 секунд, помимо RTC. Я сделал это отключение с помощью двух МОП-транзисторов, которые действуют как «тумблер» вместе с микроконтроллером и правой кнопкой (D8).

Две маленькие кнопки на обеих сторонах корпуса (D6 и D8) действуют как входы, они управляют меню и настройками часов.

Часы имеют отображение даты и времени, (отображение будильника - если включено в программу), фонарик и календарь текущего месяца + дня. Во 2-м. В версии я включил будильник, его также можно заменить на таймер.

Дисплей затемняется с 23:00 до 7:00 (с 23:00 до 07:00) ночью.

Функции 2 кнопок (слева и справа):

• Кнопка «ИЗМЕНИТЬ» D8, (правая), нажатие:

1x = активация микроконтроллера / дисплея для отображения времени + даты и т. Д. В течение примерно 5 секунд перед выключением (= дисплей темный).

2x = зажечь фонарик / фонарик.

3x = вернуться в нормальный режим (= Mode-0).

• Кнопка ВЫБОР D6 (левая):

Однократное нажатие D6 выбирает РЕЖИМ, переключая режимы от 1 до 10, для изменения даты / времени и т. Д. (Время, день, год, время, секунды, будильник… вкл / выкл).

Кнопка-D8 справа поднимает выбранные значения РЕЖИМА, устанавливает и сохраняет выбор следующего РЕЖИМА (с помощью левой кнопки-D6)…

Чтобы изменить секунды, установите часы на +1 минуту, затем нажмите правую кнопку (D8) на 59 секундах для синхронизации с внешним временем.

Синхронизация времени / даты также возможна, загружая время ПК для каждого пакетного файла: последовательное соединение с внешним Arduino - оттуда к четырем выводам I2C на OLED-часах. (Микроконтроллер часов остается отключенным в это время, для этой цели я включил 2 резистора R по 4,7 кОм, R7 и R8 - соедините их, если они не используются!)…

• Календарь месяца / даты:

Если левая кнопка (D6) нажимается более 0,6 секунды, отображается текущий календарь на месяц. Никакой самодеактивации! Если еще раз нажать одну из двух кнопок, календарь останется.

• СИГНАЛИЗАЦИЯ: (если включена в программу + оборудована аппаратным твитером или микропьезо-звуковым сигналом)

Может быть установлен звуковой сигнал при совпадении времени каждый день в одно и то же время (24 часа, 60 минут). Звездочка в правом верхнем углу дисплея указывает, включен ли сигнал тревоги. Полезной альтернативой программе будильника, возможно, был бы таймер… (делать).

• Батарея:

Батарея представляет собой литиевую батарею CR2430 (ø24x3 мм) с мощностью около 300 мА. Символ батареи указывает (аналоговый) уровень заряда батареи (3, 25 В = полная, 2, 75 В = разряженная). Часы работают с напряжениями от +5, 0 В до +2, 0 В (по умолчанию: 3, 0 В). Только Flash-LED работает от макс. От +4, 0В до +2, 7В. Предупреждение: не активируйте его с помощью 5 В! - это слишком много для светодиода - он гаснет за несколько секунд, хотя и имеет сопротивление 33 Ом. Абсолютное максимальное напряжение для процессора и RTC составляет 5,25 В (+ 5 В USB для программирования микроконтроллера напрямую через ISP, без загрузчика!).

• Температура:

RTC имеет встроенный датчик температуры (для корректировки температурного отклонения встроенного кристалла), поэтому мы можем использовать его для отображения температуры (запястья).

• Мигающий светодиод:

Если дважды нажать кнопку CHANGE (D8), относительно яркий свет будет «светиться в темноте». Атрибут: Самодеактивации нет! Только повторное нажатие на эту правую кнопку деактивирует этот светодиод, показывая нормальный дисплей в течение примерно 5 секунд.

• Вывод мягкого сброса: вывод сброса (D7) сбрасывает все сохраненные данные, если он заземлен (открытый корпус: внизу справа). Используется во время программирования, сокращенно для «мягкого сброса» всех входных значений…

Схема:

Если мы посмотрим на схему, слева есть голый µКонтроллер «Arduino» (ATMega328-P), активируемый правой кнопкой (D8) на входе D12: кнопка-D8 опускает шлюз P-Mosfet через сопротивление R5. и диод D1, так что P-Mosfet включается и соединяет VBAT с VCC: µController + Display получает ток!

Чтобы увидеть «Принцип переключения двух МОП-транзисторов», я загрузил этот «Триггер с двумя МОП-транзисторами» (файлы Eagle).

Через 5 с микроконтроллер автоматически отключается через Выход-D5, который деактивирует оба МОП-транзистора, понижая затвор N-МОП-транзистора, поэтому R5 (и затвор P-МОП-транзистора) становится «высоким», а P-МОП-транзистор отключает напряжение ток микроконтроллера и OLED-дисплея. Падение VCC удерживает затвор N-Mosfet через R3 и R6 (ниже его порогового напряжения затвора), поэтому схема остается выключенной.

В верхнем левом углу мы видим "увеличенное" напряжение VBAT через простой белый светодиод с напряжением около 2,5 В, уменьшенное на 100 кОм с VBAT (около 3,2 В) до около 1,1 В (макс.), Которое используется как внутренний аналоговый вход для измерения фактического напряжения батареи.

µКонтроллер, RTC и OLED-дисплей обмениваются данными через I²C, простую и эффективную двухпроводную связь, реализованную для каждой библиотеки.

Для пайки SMD-деталей полезно использовать небольшой пинцет с остроконечными концами, чтобы было легче обрабатывать небольшие SMD-детали (позиционировать), а затем припаять их с помощью тонкого паяльного жала, припаяв сначала одну сторону SMD. - Часть, предварительно нагревая точку пайки примерно до 330 ° C перед добавлением легкоплавкой и тонкой оловянной проволоки (ø 0,5 мм) в точку пайки.

Скачать Схему + Плата-макет:

Шаг 3: Аппаратное обеспечение: как сделать двустороннюю плату методом прямого тонера

Аппаратное обеспечение: как сделать двустороннюю плату методом прямого тонера
Аппаратное обеспечение: как сделать двустороннюю плату методом прямого тонера
Аппаратное обеспечение: как сделать двустороннюю плату методом прямого тонера
Аппаратное обеспечение: как сделать двустороннюю плату методом прямого тонера
Аппаратное обеспечение: как сделать двустороннюю плату методом прямого тонера
Аппаратное обеспечение: как сделать двустороннюю плату методом прямого тонера

Если вы хотите купить двухстороннюю плату, здесь предоставляются Eagle + (необходимые) Gerber-файлы (Скачать).

Если вам нравится делать плату самостоятельно, я покажу вам точный метод изготовления двусторонней платы с помощью «TonerDirect».

1. Распечатайте файл "OLED-Clock-2-nl_TonerDirect.pdf" на "Бумаге для переноса тонера", 2. Вырежьте 2 полосы из бумаги, по одной полосе с каждой стороны доски, 3. иглами ø 0,5 мм точно уколите 4 угла доски (используйте увеличительное стекло с ярким светом - очень важно уколоть иглы с максимально возможной точностью посередине 4 угловых переходных отверстий!).

4. Распечатайте (на обычном чистом листе) файл «OLED-Clock-2-nl_Frame.pdf» и скрепите результат на двухсторонней медной печатной плате (толщиной 0,5-0,8 мм). Выпилите доску с допуском примерно на 2-3 мм (здесь примерно 35 x 35 мм), затем просверлите 4 отверстия точно по углам сверлом 0,6 мм. После этого шага удалите бумагу ацетоном и отшлифуйте 2 медные стороны доски тонкой шлифовальной бумагой (мин. 400). После этого шага больше не касайтесь доски пустыми пальцами! Допускается захватывать его боком (чистыми пальцами).

5. Отметьте совпадающее направление бумаги для переноса тонера на 2 стороны без печати!

6. Проденьте иглы через бумагу, затем через доску и, наконец, проткните им противоположную бумагу.

7. После того, как три «слоя» точно совпадают, замените иглы на 4 куска медной проволоки толщиной 0,5 мм, согнутые на одном конце на 90 °, чтобы они не проходили сквозь них. После этого согните провода с другой стороны на 90 ° и обрежьте концы.

8. Подготовленный таким образом кусок можно 3 раза пропустить через (модифицированный) тонер-ламинатор, нагретый до 200 °!

9. Отрежьте небольшие кусочки 0,5-миллиметровой проволоки и удалите оставшиеся остатки проволоки. Затем удалите две бумаги и вуаля: тонер плотно прилипает к меди.

10. Контролируйте чистые линии: если линия порвалась, мы можем отремонтировать ее водонепроницаемой ручкой. В большинстве случаев необходимо закрыть несколько маленьких отверстий только на больших поверхностях. В противном случае (если результат неудовлетворительный) удалите тонер с помощью кухонной бумаги и ацетона и повторите шаги 1–9.

11. Чистое травление: я протравливаю свои самодельные медные доски раствором персульфата натрия (одна-две чайные ложки) с уровнем воды около 5 мм в классической посуде из пирекса (1-1,5 л), этот раствор нагревается до около 80 ° C (я знаю, что эта относительно высокая температура разрушает персульфат, но он травится намного быстрее, чем при более низких температурах, и делает острые и чистые края за несколько минут). Я позволяю оставшемуся персульфату затухнуть после полного высыхания и выцарапываю кристаллы, собирая их в старую банку для переработки!

11. Контролируйте медные линии и поверхности с помощью лупы.

12. Удалите выступающие границы с помощью вертикальной ленточной шлифовальной машины (как в моем первом руководстве) и проверьте размеры штангенциркулем: две стороны кнопки должны быть параллельны, на расстоянии 27,4 мм, но будьте осторожны, чтобы не шлифовать. из 2 кнопок-контактов!

Шаг 4: Программное обеспечение и перепрошивка

Программирование платы:

Программа написана на C ++, поэтому мы можем изменить ее с помощью простого ASCII-редактора, и для этого необходимо прочитать пояснения в конце каждой строки …

Важно: мы не можем использовать последовательную прошивку Arduino для программирования микроконтроллера, потому что загрузчику требуется слишком много времени между «Start» (нажатие кнопки D8) и «Display-On». Поэтому мы должны прошить его без загрузчика (обычно используется на всех платах Arduino). Итак, мы программируем нашу плату на (Atmel) ISP-Connector + Programmer. Сделанный здесь ISP-коннектор (на плате) состоит из 6 миниатюрных разъемов-разъемов, выломанных в ряд и припаянных внутри на правой стороне платы, затем соединенных (маленькой!) 6-контактной планкой (2,54 мм- сетка), как на последней фотографии в предыдущем шаге.

Для компиляции программы вам понадобится не только графический интерфейс Arduino, но и еще несколько библиотек (для загрузки):

- Библиотека Wire (содержащаяся в программе Arduino) - для связи по I²C между. µC, RTC и OLED-дисплей

- Библиотека EEPROM (также содержится в программе Arduino) - для хранения нескольких значений в µController

- "Adafruit_GFX" + "Adafruit_SSD1306" - обе библиотеки для управления OLED-дисплеем

- EnableInterrupt - для работы с прерываниями портов / контактов Arduino (⇒ Button-Inputs)

-DS3231-RTC-chip: мне не нужна библиотека, я выписал функции нескольких библиотек, найденных в Интернете, и стало проще в использовании. Они включены в конце основной программы ("OLED-Clock-2-nl.ino").

Внимание: библиотека Adafruit (до сих пор) не очень эффективна для затемнения OLED-чипа, поэтому я скопировал строку из Интернета и вставил ее в конец библиотеки "Adafruit_SSD1306", с помощью которой можно затемнить дисплей, немного полезнее… (⇒ см. Загрузку надстройки «Как настроить яркость на OLED display.zip» здесь, в конце).

Работа с напряжением 3,2 В - так что с использованием внутреннего 8Mhz (без 16Mhz-Crystal):

Микроконтроллер здесь достаточно быстр, чтобы работать без кристалла с частотой 16 МГц, поэтому (при 3,2 В от батареи) мы можем использовать внутреннюю предварительно запрограммированную частоту 8 МГц (на одну часть для пайки меньше:-).

После загрузки и компиляции предоставленной программы "OLED-Clock-2-nl.ino" в графическом интерфейсе Arduino (загрузка) скопируйте результат.hex в папку avrdude.

(скомпилированный.hex-файл находится во временной папке ПК, в подпапке, например:

«C: / Tmp / arduino_build_646711 / xyz.ino» - в нем вы можете найти нужный скомпилированный шестнадцатеричный файл, в данном случае наш «OLED-Clock-2-nl.ino.hex».

Шестнадцатеричный файл теперь можно прошить (здесь «вручную» для каждого avrdude в командной строке) через ISP-Connector, но вам понадобится программатор, такой как USBTiny или AVRISP2 с 6-контактным ISP-Connector (мой ISP-Connector - это Сделайте самодельный из небольшого 6-контактного разъема, как показано на моем последнем фото, так что вы можете перепрограммировать плату в любое время, если потребуется).

Теперь подключите 6-контактный программатор к плате (я полагаю, что это известный опыт работы с платами Arduino) …

Подключено, в командном окне (в Windows перейдите в папку avrdude, затем введите cmd) - вставьте следующую строку:

avrdude.exe -C avrdude.conf -v -V -p m328p -c usbtiny -e -D -U flash: w: OLED-Clock-2-nl.ino.ino.hex: i

По окончании мигания µController необходимо установить соответствующие «предохранители» (µController):

avrdude -p atmega328p -c usbtiny -U lfuse: w: 0xFF: m -U hfuse: w: 0xD7: m -U efuse: w: 0xFF: m -U lock: w: 0x3F: m

Если вы хотите изменить одну из этих настроек, вы можете узнать больше об этом онлайн-калькуляторе предохранителей.

Шаг 5: Дело

Дело
Дело
Дело
Дело

Сложно не только изготовление электронной платы, но и небольшой и легкий корпус для этой платы!

Здесь можно загрузить чехол, на который я нацелился, с возможным адаптером батареи CR2032, чтобы вставить более часто используемую батарею. Электронная плата и батарея должны быть полностью изолированы друг от друга с помощью каптон-полимид-ленты или прочного альтернативного средства. Не используйте простую клейкую ленту, она слишком слабая, чтобы надежно изолировать ее, и может вызвать короткое замыкание аккумулятора!

Я экспериментировал со многими макетами (для 3D-печати PLA) и пришел к выводу, что толщина стенок составляет около 1,3 мм. В этой форме силы, исходящие от браслета, эффективно удерживаются через обе стороны корпуса в сочетании с защелкивающейся крышкой. Другие стороны могут быть тоньше, примерно на 1,0 мм…

Так что изменение высоты корпуса (в случае изменения платы…?) Не будет большой проблемой.

Кроме того, если у вас внутри есть будильник или таймер, вам понадобится еще один футляр, поэтому я сделал предложение, как вставить небольшой пьезо-твитер (или, например, этот микро-динамик: CUI-15062S)… (См. Дело-2).

После распечатки корпуса (с рекомендуемой высотой слоя 0,1 мм и заполнением около 50% с «нахлестом») вы должны зачистить преодолевающие боковые струны, достаточно закруглить края, но не слишком сильно… A Немного сложнее запилить 4 маленьких защелки крышки под прямым углом ~ 100-120 °, чтобы они вошли в корпус достаточно прочно, но не расширялись и не ломались - в результате крышка не стала слишком маленькой. чтобы оставаться на месте…

Квадратное отверстие для OLED также должно быть тщательно распилено, чтобы точно соответствовать очертаниям OLED-стекла, не разбивая его при попытке вставить плату + OLED-дисплей (теперь вместе). Так что будьте осторожны при подаче и неоднократно пытайтесь увидеть, подходят ли все детали.

Образующиеся дымоходы лучше всего удалить острым ножом.

Теперь можно вставить браслет с отрезком латунной проволоки (ø1мм, длина: 28,5мм). Для этого необходимо просверлить 2 отверстия кронштейнов корпуса таким образом, чтобы провод проходил сквозь них, но при этом прочно вставлялся в кронштейны.

Перед тем как вооружить корпус электроникой и ремешками - можно покрыть эмалью краской (рекомендую автомобильный разбавитель-спрей - он быстрее сохнет, меньше пыли на поверхности!). Я также рекомендую сначала обработать его (более тонким) спреем для заземления, который затем можно отшлифовать до мелко гладкой поверхности без печатных линий и дефектов. Лично я предпочитаю золотую или серебряную отделку, или еще было бы неплохо деревянное покрытие - это на ваш выбор …

Шаг 6: выводы

Рекомендации по использованию батареи:

Литий-ионная батарея CR2432 имеет емкость около 300 мАч, поэтому она работает примерно 2 года при отображении часов примерно 10 раз (каждые 5 секунд) в день. Таким образом, вы можете заменить его на более распространенную (но меньшую) литий-ионную батарею CR2032, которая выдерживает около 1,4 года с емкостью 210 мА.

Я искал также перезаряжаемую литиевую кнопочную батарею, такую как (обычный) CR2430, и нашел это: «LIR-2430». Емкость этой батареи составляет всего около 50 мА, но она является перезаряжаемой, например. через беспроводную передачу энергии… Для этой цели я сделал пробник, и вы можете увидеть результат на схеме + прилагаемый макет. Сама передача мощности очень хорошо справляется со своей задачей. Протравить плоскую катушку с примерно 30 витками на плоской крышке из эпоксидной доски остается делом… Для зарядки аккумулятора я предложил простую схему зарядки с белым светодиодом и двумя диодами Шоттки для ограничения конечного напряжения заряда. для этой перезаряжаемой батареи максимум около 3,6 В…

Напоследок - ОЧЕНЬ важно:

!!! НИКОГДА НЕ ЗАРЯЖАЙТЕ НЕПЕРЕЗАРЯЖАЕМЫЕ БАТАРЕИ !!! - он может взорваться и загореться!

Любопытно, что я экспериментировал с (неперезаряжаемым) Li-Ion-Button-Cell CR2430 - в качестве меры предосторожности - в закрытой банке … Примерно через час, заряжаясь постоянным напряжением 3,3 В, я заметил небольшую выпуклую деформацию корпуса … и хотя напряжение этой батареи увеличилось с 2,8 до 3,2 В, емкость в конце значительно уменьшилась! - так что перезарядка не имеет смысла: эти кнопочные элементы действительно НЕПерезаряжаемые.

Ремаинг делать:

• (программная) функция таймера + (аппаратное обеспечение + корпус) -ВЧ-динамик или вибратор-мотор

• Схема беспроводной подзарядки

• Глянцевая отделка под металл или дерево.