- БОЛЬШИЕ ЧАСЫ НА LED ЛЕНТАХ
- Изготовление корпуса больших часов
- Электроника часов (схема и программа)
- Самодельные электронные часы, элементная база — часть 2
- 1. Устройства вывода
- Сегментная индикация
- Матричные индикаторы
- ЖК-индикаторы
- OLED-индикаторы
- Газоразрядные индикаторы (ИН-14, ИН-18)
- 2. Выбор платформы
- Arduino
- 32-разрядные процессоры STM
- Raspberry PI
- ESP8266
- Вместо заключения
БОЛЬШИЕ ЧАСЫ НА LED ЛЕНТАХ
Светодиодных часов продаётся гора — маленькие, средние, с большими цифрами. Но что если нужны индикаторы ещё больше? Придётся делать своими руками! Вот цифровый часы RGB, которые сделаны на светодиодных лентах WS2812B. Это реально большие часы. Высота цифр составляет около 110 мм, а вся конструкция имеет размеры высота = 190 мм, ширина = 480 мм, глубина = 60 мм. Они были сделаны из таких материалов, как оргстекло, вспененный ПВХ, дерево, но в принципе пойдёт всё что есть под рукой.
Изготовление корпуса больших часов
Предполагалось, что часы будут сделаны так, чтобы их можно было увидеть из любой точки большой комнаты. Визуальный дизайн был создан в Fusion 360. Электроника в Eagle, программное обеспечение в Bascom.
Вначале с помощью самодельного фрезерного станка с ЧПУ выфрезеровали канавки на деревянной доске, в которую поместили нарезанные светодиодные ленты, по два LED в каждой. То есть два светодиода на каждый сегмент дисплея. Затем все нарезанные кусочки были соединены тонкими проводами.
Потом снова на помощь пришёл ЧПУ. Вырезаем отверстия из вспененного ПВХ для всех сегментов дисплея. Две пластины толщиной 5 мм и одна 1 мм. В конце разрезаем по размеру оргстекло.
Сборка идёт по порядку: деревянное основание со светодиодными лентами, две 5-миллиметровые ПВХ-пластины (позже использовал светорассеивающий фильтр), затем ПВХ 1 мм, окрашенный в черный лак, и, наконец, оргстекло, тонированное фольгой лобового стекла автомобиля. Все это скрутить декоративными винтами. На том же фрезерном станке вырезаем корпус электроники, а также ручку для настенного монтажа.
Электроника часов (схема и программа)
Печатная плата создана методом ЛУТ. Все контролируется м/к Atmega8 с тактовой частотой 16 МГц на кварце, питание от готового импульсного источника питания. Блок питания установлен на основной плате, как показано на фото.
Схема имеет датчик освещенности для автоматической регулировки яркости и вход для цифрового датчика температуры DS1820. Также добавлена возможность устанавливать цвет дисплея часов (10 цветов плюс случайное изменение цвета каждую секунду). Установка цвета отображения температуры. А ещё:
- Восемь настроек для точек между часами и минутами.
- Четыре различных эффекта перехода между временем и температурой.
- Восемь настроек минимальной яркости дисплея в темноте плюс максимальная яркость.
- Время отображения часов от 5 с до 45 с плюс только часы все время без термометра.
- Время отображения температуры от 1 до 9 с.
Вот такой получился интересный проект, который при желании можно ещё увеличить путём удлинения и утолщения кусков светодиодной ленты. Если кто-то также захочет сделать эти часы, во вложении все необходимые файлы и описание.
Форум по обсуждению материала БОЛЬШИЕ ЧАСЫ НА LED ЛЕНТАХ
Модуль драйвера BLDC двигателя жесткого диска — принципиальные электрические схемы включения и обзор готовых блоков.
Предусилитель со стерео темброблоком для усилителя мощности, собранный на ОУ 4558.
Увеличение мощности интегральных усилителей транзисторами. Рассматривается на примере схем LM3886 и TDA7294.
Источник
Самодельные электронные часы, элементная база — часть 2
Привет, geektimes! В первой части статьи были рассмотрены принципы получения точного времени на самодельных часах. Пойдем дальше, и рассмотрим, как и на чем это время лучше выводить.
1. Устройства вывода
Итак, у нас есть некая платформа (Arduino, Raspberry, PIC/AVR/STM-контроллер, etc), и стоит задача подключить к нему некую индикацию. Есть множество вариантов, которые мы и рассмотрим.
Сегментная индикация
Тут все просто. Сегментный индикатор состоит из обычных светодиодов, которые банально подключаются к микроконтроллеру через гасящие резисторы.
Осторожно, траффик!
Плюсы: простота конструкции, хорошие углы обзора, невысокая цена.
Минус: количество отображаемой информации ограничено.
Конструкции индикаторов бывают двух видов, с общим катодом и общим анодом, внутри это выглядит примерно так (схема с сайта производителя).
Есть 1001 статья как подключить светодиод к микроконтроллеру, гугл в помощь. Сложности начинаются тогда, когда мы захотим сделать большие часы — ведь смотреть на мелкий индикатор не особо удобно. Тогда нам нужны такие индикаторы (фото с eBay):
Они питаются от 12В, и напрямую от микроконтроллера просто не заработают. Тут нам в помощь приходит микросхема CD4511, как раз для этого предназначенная. Она не только преобразует данные с 4-битной линии в нужные цифры, но и содержит встроенный транзисторный ключ для подачи напряжения на индикатор. Таким образом, нам в схеме нужно будет иметь «силовое» напряжение в 9-12В, и отдельный понижающий преобразователь (например L7805) для питания «логики» схемы.
Матричные индикаторы
По сути, это те же светодиоды, только в виде матрицы 8х8. Фото с eBay:
Продаются на eBay в виде одиночных модулей либо готовых блоков, например по 4 штуки. Управление ими весьма просто — на модулях уже распаяна микросхема MAX7219, обеспечивающая их работу и подключение к микроконтроллеру с помощью всего лишь 5 проводов. Для Arduino есть много библиотек, желающие могут посмотреть код.
Плюсы: невысокая цена, хорошие углы обзора и яркость.
Минус: невысокое разрешение. Но для задачи вывода времени вполне достаточно.
ЖК-индикаторы
ЖК-индикаторы бывают графические и текстовые.
Графические дороже, однако позволяют выводить более разнообразную информацию (например график атмосферного давления). Текстовые дешевле, и с ними проще работать, они также позволяют выводить псевдографику — есть возможность загружать в дисплей пользовательские символы.
Работать с ЖК-индикатором из кода несложно, но есть определенный минус — индикатор требует много управляющих линий (от 7 до 12) от микроконтроллера, что неудобно. Поэтому китайцы придумали совместить ЖК-индикатор с i2c-контроллером, получилось в итоге очень удобно — для подключения достаточно всего 4х проводов (фото с eBay).
ЖК-индикаторы достаточно дешевые (если брать на еБее), крупные, их просто подключать, и можно выводить разнообразную информацию. Единственный минус это не очень большие углы обзора.
OLED-индикаторы
Являются улучшенным продолжением предыдущего варианта. Варьируются от маленьких и дешевых с диагональю 1.1″, до больших и дорогих. Фото с eBay.
Собственно, хороши всем кроме цены. Что касается мелких индикаторов, размером 0.9-1.1″, то (кроме изучения работы с i2c) какое-то практическое применение им найти сложно.
Газоразрядные индикаторы (ИН-14, ИН-18)
Эти индикаторы сейчас весьма популярны, видимо из-за «теплого лампового звукасвета» и оригинальности конструкции.
(фото с сайта nocrotec.com)
Схема их подключения несколько сложнее, т.к. эти индикаторы для зажигания используют напряжение в 170В. Преобразователь из 12В=>180В может быть сделан на микросхеме MAX771. Для подачи напряжения на индикаторы используется советская микросхема К155ИД1, которая специально для этого и была создана. Цена вопроса при самостоятельном изготовлении: около 500р за каждый индикатор и 100р за К155ИД1, все остальные детали, как писали в старых журналах, «дефицитными не являются». Основная сложность тут в том, что и ИН-хх, и К155ИД1, давно сняты с производства, и купить их можно разве что на радиорынках или в немногих специализированных магазинах.
2. Выбор платформы
С индикацией мы более-менее разобрались, осталось решить, какую аппаратную платформу лучше использовать. Тут есть несколько вариантов (самодельные я не рассматриваю, т.к. тем кто умеет развести плату и припаять процессор, эта статья не нужна).
Arduino
Самый простой вариант для начинающих. Готовая плата стоит недорого (около 10$ на eBay с бесплатной доставкой), имеет все необходимые разъемы для программирования. Фото с eBay:
Под Arduino есть огромное количество разных библиотек (например для тех же ЖК-экранов, модулей реального времени), Arduino аппаратно совместима с различными дополнительными модулями.
Главный минус: сложность отладки (только через консоль последовательного порта) и довольно-таки слабый по современным меркам процессор (2КБайт RAM и 16МГц).
Главный плюс: можно сделать много чего, практически не заморачиваясь с пайкой, покупкой программатора и разводкой плат, модули достаточно соединить друг с другом.
32-разрядные процессоры STM
Для тех кто захочет что-то помощнее, есть готовые платы с процессорами STM, например плата с STM32F103RBT6 и TFT-экраном. Фото с eBay:
Здесь мы уже имеем полноценную отладку в полноценной IDE (из всех разных мне больше понравилась Coocox IDE), однако понадобится отдельный программатор-отладчик ST-LINK с разъемом JTAG (цена вопроса 20-40$ на eBay). Как вариант, можно купить отладочную плату STM32F4Discovery, на которой этот программатор уже встроен, и его можно использовать отдельно.
Raspberry PI
И наконец, для тех кто хочет полной интеграции с современным миром, есть одноплатные компьютеры с Linux, всем уже наверное известные Raspberry PI. Фото с eBay:
Это полноценный компьютер с Linux, гигабайтом RAM и 4х-ядерным процессором на борту. С краю платы выведена панель из 40 пинов, позволяющая подключать различную периферию (пины доступны из кода, например на Python, не говоря о C/C++), есть также стандартный USB в виде 4х разъемов (можно подключить WiFi). Так же есть стандартный HDMI.
Мощности платы хватит к примеру, не только чтобы выводить время, но и чтобы держать HTTP-сервер для настройки параметров через web-интерфейс, подгружать прогноз погоды через интернет, и так далее. В общем, простор для полета фантазии большой.
С Raspberry (и процессорами STM32) есть одна единственная сложность — ее пины используют 3-вольтовую логику, а большинство внешних устройств (например ЖК-экраны) работают «по старинке» от 5В. Можно конечно подключить и так, в принципе заработает, но это не совсем правильный метод, да и испортить плату за 50$ как-то жалко. Правильный способ — использовать «logic level converter», который на eBay стоит всего 1-2$.
Фото с eBay:
Теперь достаточно подключить наше устройство через такой модуль, и все параметры будут согласованы.
ESP8266
Способ скорее экзотический, но довольно-таки перспективный в силу компактности и дешевизны решения. За совсем небольшие деньги (около 4-5$ на eBay) можно купить модуль ESP8266, содержащий процессор и WiFi на борту.
Фото с eBay:
Изначально такие модули предназначались как WiFi-мост для обмена по serial-порту, однако энтузиастами было написано множество альтернативных прошивок, позволяющих работать с датчиками, i2c-устройствами, PWM и пр. Гипотетически вполне возможно получать время от NTP-сервера и выводить его по i2c на дисплей. Для тех кто хочет подключить много различной периферии, есть специальные платы NodeMCU с большим числом выводов, цена вопроса около 500р (разумеется на eBay):
Единственный минус — ESP8266 имеет очень мало памяти RAM (в зависимости от прошивки, от 1 до 32КБайт), но задача от этого становится даже интересней. Модули ESP8266 используют 3-вольтовую логику, так что вышеприведенный конвертор уровней тут также пригодится.
На этом вводный экскурс в самодельную электронику можно закончить, автор желает всем удачных экспериментов.
Вместо заключения
Я в итоге остановился на использовании Raspberry PI с текстовым индикатором, настроенным на работу с псевдографикой (что вышло дешевле чем графический экран той же диагонали). Сфоткал экран настольных часов во время написания этой статьи.
Часы выводят точное время, взятое из Интернета, и погоду которая обновляется с Яндекса, все это написано на Python, и вполне работает уже несколько месяцев. Параллельно на часах запущен FTP-сервер, что позволяет (вкупе с пробросом портов на роутере) обновить на них прошивку не только из дома, но и из любого места где есть Интернет. Как бонус, ресурсов Raspberry в принципе хватит и для подключения камеры и/или микрофона с возможностью удаленного наблюдения за квартирой, или для управлением различными модулями/реле/датчиками. Можно добавить всякие «плюшки», типа светодиодной индикации о пришедшей почте, и так далее.
PS: Почему eBay?
Как можно было видеть, для всех девайсов приводились цены или фото с ебея. Почему так? К сожалению, наши магазины часто живут по принципу «за 1$ купил, за 3$ продал, на эти 2 процента и живу». В качестве простого примера, Arduino Uno R3 стоит (на момент написания статьи) 3600р в Петербурге, и 350р на eBay с бесплатной доставкой из Китая. Разница действительно на порядок, безо всяких литературных преувеличений. Да, придется подождать месяц чтобы забрать посылку на почте, но такая разница в цене думаю, того стоит. Но впрочем, если кому-то надо прямо сейчас и срочно, то наверно и в местных магазинах есть выбор, тут каждый решает сам.
Источник