HandMade32.ru - сделай своими руками

Настольные часы из машинки

Рад снова приветствовать вас. Мне очень нравятся дисплеи для Arduino типа OLED. Конкретно небольшие диагональю 0.96 дюймов с разрешение 128 на 64 точек. Если взглянуть на мою страничку на этом сайте, можно найти много разных проектов с этим дисплеем. Устройства типа вольтметра или амперметра с таким дисплеем, конечно получаются компактными, но используются достаточно редко, и удобнее использовать готовый, продаваемый в любом радиомагазине мультиметр. А мне хочется, чтобы моя самоделка стояла на столе и радовала глаз, при каждом взгляде на нее, каждый день. Поэтому часы, самое лучшее для этого решение. У меня было много вариантов часов с этим дисплеем, на Arduino, на Attiny85, на аккумуляторах, питание от USB, с подсветкой, с термометром и тд и тп. Но у всем их были какие-то недостатки: нестабильное питание, некрасивый корпус, недостаточно памяти для реализации функции показа даты (Attiny85). Но в результате большого количества проб и ошибок, я нашел оптимальное решение по моим запросам. На этот раз мы будем использовать:

— Машинка Modarri
— Arduino Pro Mini 5v 16 Mhz
— DS28B20 (Цифровой датчик температуры)
— WS2812 (Адресная светодиодная лента)
— USB-TTL (Для заливки скетча)
— OLED 0.96 128х64
— Кнопки
— Монтажная плата
— Резистор 4.7 кОм
— Керамический конденсатор 104, 2 шт
— Листовой пластик толщиной 1-2 мм
— Соединительные провода
— USB провод
— Темроклеевой пистолет
— Пальник и все что нужно для пайки
Шаг 1 Выбор корпуса.
После долгих и мучительных попыток изготовить корпус для часов так чтобы он мне понравился, я решил поискать основу для корпуса у себя (и не только у себя) на полках. Мне на глаза попались машинки, которые мне нравятся. Это маленькие, хорошо сделанные, с резиновыми колесами и амортизаторами игрушечные машинки фирмы Modarri
Настольные часы из машинки
У этой фирмы большой ассортимент товаров. Машинки есть на любой вкус и цвет. А самое главное для нас у них есть место, предусмотренное для управление пальцем. И оно отлично подходит для нашего маленького экрана. У меня нашлось три модели:
Настольные часы из машинкиНастольные часы из машинкиНастольные часы из машинки
Сделать такие часы можно из любой, но мне больше остальных, понравилась черная. Также многие детали машинок взаимозаменяемые, можете собрать как вам понравиться. На мой взгляд, это отличный корпус, сделано аккуратно, выглядит красиво и вполне достаточно места для размещения электроники.

Шаг 2 Подготовка экрана.
Наш экран – маленький, но симпатичный является графическим дисплеем. Из особенностей, стоит подчеркнуть то, что каждый пиксель является самостоятельным светодиодом. OLED расшифровывается как organic light-emitting diode. Для подключения используется 4 провода. VCC (плюсовой провод питания, можно запитать от 5 или 3.3 вольт), GND (минусовой провод питания), SCL и SDA (подключаются к Arduino). Соединение с Arduino происходит через последовательную асимметричную шину связи I2С. Сам дисплей выглядит вот так:
Настольные часы из машинки
Припаиваем провода ко всем 4 контактами, лучше использовать разноцветные провода и записать какой к какому контакту ведет:
Настольные часы из машинки
Чтобы внешний экрана не портил общий вид, изготовим для него небольшой корпус. Для корпуса подойдёт небольшой лист тонкого пластика. Ради часов я пожертвовал канцелярским планшетом:
Настольные часы из машинки
Он идеально подошел для изготовления корпуса. По нижеследующей схеме вырезаем из пластика небольшой корпус:
Настольные часы из машинки
Внутренний прямоугольник необходимо аккуратно вырезать, а по пунктирным линиям согнуть:
Настольные часы из машинки
Помещаем внутрь наш дисплей, фиксируем экран и боковые стенки термоклеем, провода также лучше залить клеем, чтобы не выдрать их, если вдруг, случайно зацепите:
Настольные часы из машинки
С внешней стороны должно быть так:
Настольные часы из машинки
Шаг 3 Подготовка датчика температуры.
Ну и какие же часы без датчика температуры! Оптимальный выбор – цифровой датчик. Наиболее доступный – DS28B20. О его плюсах можно говорить бесконечно, поэтому вкратце. Не использует процессор Arduino для вычисления температуры, подключается всего одним провод к Arduino (работает по протоколу OneWire). DS28B20 можно подключить разными способами. Использовать внешнее питание, запитав его от 5 вольт через контакт VDD, паразитное питание соединив контакты VDD и GND, или можно найти схему улучшенного паразитного питания. У всех вариантов есть свои плюсы и минусы. Мы же остановимся на внешнем питании, будем подключать VDD к +5, GND к GND, DQ к пину Arduino, также нужно использовать резистор на 3.3 кОм для подтяжки DQ к питанию. Схема следующая:
Настольные часы из машинки
Резистор удобнее всего разместить рядом с датчиком, припаяв между ножками. DS28B20 выпускаю в разных корпусах, лучше всего брать в корпусе ТО-92. Распиновка датчика следующая:
Настольные часы из машинки
Средний контакт это DQ – шина данных, припаиваем к нему провод и одни из контактов резистора (4.7 кОм):
Настольные часы из машинки
Изолируем средний контакт от боковых, используя изоленту. Загибаем вторую ножку резистора, и вместе с проводом припаиваем к контакту Vdd. Присваиваем третий контакт GND, записываем цвета проводов и изолируем все оставшиеся контакты.

Шаг 4 Подготовка кнопок управления.
Установка времени и даты будет возможно двумя способами. Через Монитор порта или кнопками. В скетче часов предусмотрено использование трех кнопок (Set, Plus, Minus). Но можно обойтись двумя, отключив минусовую кнопку. Распаиваем кнопки на монтажной плате:
Настольные часы из машинки
Не забывайте записывать цвета проводов, чтобы знать какой к чему ведет. У кнопок один из проводов общий, он будет подключаться к GND. Параллельно кнопкам припаиваем керамические конденсаторы с маркировкой 104 (устраняют эффект дребезжания контактов).
Настольные часы из машинки
Припаянные провода лучше залить термоклеем.

Шаг 5 Подготовка WS2812.
Адресную ленту WS2812, а точнее сказать всего один светодиод WS2812, будем использовать для подсветки машинки. Я отрезал один светодиод от ленты, но вы можете приобрести их по отдельности. Приклеиваем WS2812 снизу машинки и припаиваем к нему следующие провода: +5 (плюсовой провод питания), GND (минусовой провод питания), Din. Обратите внимание адресная лента имеет направление подачи сигнала. Поэтому сигнальный провод надо припаивать к контакту Din (вход сигнала), Do оставляем не распаянным:
Настольные часы из машинки
Светодиод нужен для украшения. Он не обязателен, часы будут работать и без него. Забегая немного вперед, фото работы подсветки:
Настольные часы из машинкиНастольные часы из машинки
В скетче указано 5 цветов подсветки, но вы можете добавить и свои цвета, отредактировав скетч.

Шаг 5 Размещение всей электроники в машинке.
Итак, наконец-таки переходим к машинке. Разбираем ее. Размещаем заранее подготовленный дисплей на месте для пальца:
Настольные часы из машинки
Провода от дисплея проводим с правой стороны от кресла. Датчик температуры DS28B12 размещаем над левым задним колесом. Провода от датчика следует зафиксировать, а сам датчик должен висеть на проводах, не касаясь деталей корпуса:
Настольные часы из машинки
Arduino будем размещать с левой стороны от кресла. Заводим все провода туда. Размещаем плату, и припаиваем провода на месте, так легче рассчитать длину проводов. Питаться машинка будет от USB. В один пучок надо будет скрутить и спаять много проводов для питания. Рекомендую скрутить и спаять их на небольшом отдаление от Arduino, разместить в заднем бампере, а к Arduino подвести только два провода питания. Подключение следующее:

USB +5 — Arduino +5 – Oled Vcc — DS28B20 Vdd — WS2812 +5 (скручиваем и спаиваем вместе)
USB GND — Arduino GND — Oled GND — DS28B20 GND — WS2812 GND — Общий от кнопок (скручиваем и спаиваем вместе)
Oled SDA – D8 Arduino
Oled SCI – D9 Arduino
Кнопка 1 Set – D2 Arduino
Кнопка 2 Plus – D3 Arduino
Кнопка 3 Minus – D4 Arduino (необязательна)
WS2812 Din – D5 Arduino
DS28B20 DQ – D10 Arduino

Номера пинов можно поменять в скетче. После пайки всех проводов можно начать сборку корпуса:
Настольные часы из машинки
Шаг 6 Редактирование и заливка скетча.
Как обычно, нам нужна среда программирования Arduino IDE. Заходим на официальный сайт и скачиваем ее.

Делаем как вам удобнее. Можете скачать установщик, а можете просто архив, разницы нет.
Теперь нам нужны библиотеки:

OLED_I2C – идет вместе с Arduino IDE
OneWire – ссылка на скачивание ниже
Adafruit_NeoPixel – ссылка на скачивание ниже

Вы можете установить эти библиотеки зайдя в раздел «Управление библиотеками» в самой Arduino IDE. Найдите их по имени и установите. Если проблемы с интернетом скачайте архивы внизу и распакуйте в папку «libraries», находящуюся в месте установи Arduino IDE.

У меня есть два скетча для этих часов. Первый с отображение секунд:
Настольные часы из машинкиНастольные часы из машинки
И второй вариант без секунд:
Настольные часы из машинкиНастольные часы из машинки
Выбирайте на свой вкус из файлов ниже.
Настольные часы из машинки
Скачать файлы проекта

administrator

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.