Например TDA7294

РадиоКот >Конкурсы >Поздравь Кота по-человечески 2019! >

Теги статьи: Добавить тег

HEXAGON «ПЧЁЛА»

Автор: Radan
Опубликовано 25.09.2019
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2019"

 
Привет всем! Сразу же предупреждаю, всё, что вы прочитаете ниже, может быть использовано против вас. Вы можете лишится сна, покоя и аппетита. И это будет до тех пор, пока вы не станете владеть «Пчёлой»!

Этот проект родился в результате многолетних творческих исследований и научных экспериментов в области нано технологий, антропологии и пчеловодства, которая имеет ёмкое название - хобби. Руки заняты работой, ноги передвижением туда и обратно, голова иногда кушает, периодически разговаривает и спит. В остальное время интенсивно думает. И поток этих думаний так быстро летит, что не угнаться за ними ни рукам, ни ногам. Сижу на кухне, кофеёк попиваю, а они, мысли в смысле, тут как тут. Ну что, сидишь? А как же «Пчёла»? Ещё три дня у тебя есть, успеть должен! Тут стоит сделать паузу, чтобы ввести читателя в курс дела, что такое эта «Пчёла» и какие такие три дня. Три дня, как ни крути, они и в Африке три дня есть. Три дня до окончания принятия решения участия в кошачьем конкурсе работ. Условия просты как двери марта – «что нужно сделать, чтобы … пошагово: Вы думаете, Вы придумываете, Вы пишете». Первые два пункта выполнены, далее наступает точка невозврата - написать осталось! Держитесь крепче, взлетаем! Однако… «Пчёла» - это отдельная тема. Постараюсь быть кратким, насколько смогу. Но не сильно, чтобы не потерять смысла. Зайду, пожалуй, издалека. Мы с женой дружим с молодой многодетной семьёй. Иногда моя любимая подвизается в качестве бесплатной няньки для старших детей – дошкольников. В один из обыденных дней в руках у Машеньки большая красивая азбука с картинками. Машенька – это маленькая девочка, но она уже буквы все знает и даже умеет их вместе складывать в слова. Быстрый взгляд на картинку, потом концентрация на потолке и вот он, уникальный контент – «Пчёла»! Жена у меня бдительная, её так просто не проведёшь – «А ну читай внимательно по буквам, а то я тебе сейчас дам «Пчёла»!». Взгляд медленно и удивлённо перемещается с потолка в книгу: Ооо – с – ааа! Удивлению Машеньки не было предела! Как это получилось, что «Пчёла» с картинки вдруг стала осой?! Запомнилась мне эта «Пчёла», и когда дело дошло до названия, другие варианты просто не рассматривались. Ну что же, шутки в сторону. Поговорим серьёзно.
Итак, «Пчёла» это часы. Банально!? Возможно, но они немного нестандартные, может быть даже слегка креативные, и своей формой шестигранника, и способом считывания времени. 

 В природе, кроме этого индивидуума, существуют, как минимум два других вида – наручные и настенные. Фи, плагиат какой-то! Возможно, только здесь есть опасность извечный вопрос без ответа поднять: курица или яйцо, Маркони или Попов, японцы или «Юный техник», интернет или моя старая рабочая тетрадь с идеями.

Но как бы там не было, вы сейчас в преддверии получения уникальной информации для самостоятельной сборки оригинальных часов. Кто осилил это чтиво до сего места, поздравляю. Далее будут скучные технические подробности, можете смело пропускать и пролистывать ближе к окончанию, там вас ждёт поздравление Коту.

Часы «Пчёла» - электронное устройство с визуальным методом отображения текущего времени на светодиодном экране. Экран имеет форму шестигранника. В центре экрана находятся две семи сегментные стилизованные цифры из 5-ти миллиметровых светодиодов. Они выполняют различные функции - или отображают часы, или минуты, в зависимости от режима работы. По периметру экрана расположены 3-х миллиметровые светодиоды, которые в зависимости от режима работы могут показывать часы, минуты и секунды. Управляет 128 светодиодами микроконтроллер ATMEGA8. Простой подсчёт показывает, что для такого количества светодиодов, включенных в матрицу, необходимо 24 свободных пина. В используемом контроллере такого количества пинов нет, и тем не менее, он самостоятельно, без помощи дополнительных корпусов логики, обслуживает не только светодиоды, но и часовую микросхему, и кнопку. Никакого секрета здесь нет. Используется разновидность давно известного метода управления светодиодами Чарлиплексинг. 

Часы собраны на заводской двухсторонней плате. Все элементы, за исключением светодиодов и держателя батарейки, для поверхностного монтажа.  

Светодиоды специально выбраны выводные, они так более интересно, на мой взгляд, смотрятся. Впрочем, никто не мешает переделать плату под СМД.

В часах заложены 6 эффектов.
1 - часы в центре, минуты по периметру, без секунд
2 - часы в центре, минуты по периметру, секунды
3 - часы в центре, минуты по периметру, без секунд + "пчёлы"
4 - минуты в центре, часы по периметру (12 часовый формат), часовые маркеры
5 - минуты в центре, часы по периметру (12 часовый формат), часовые маркеры, секунды
6 - минуты в центре, часы по периметру (12 часовый формат), часовые маркеры + "пчёлы"


Наигравшись с переключением эффектов, оставил второй эффект. В центре часы, по периметру полоса светодиодов, однозначно показывающая сколько минут.
Управление часами – однокнопочное. Раз выставил время, выбрал понравившийся эффект и забыл. Кому-то покажется неудобным, но это у меня уже не первая конструкция, где всего одна кнопка и она имеет право на жизнь. Здесь логика очень простая: короткое нажатие (примерно секунду) – инкремент минут, секунды в ноль. Длинное нажатие (примерно три секунды) – инкремент часов. Очень длинное нажатие (выше пяти секунд) – переключение эффектов по кругу. Выбранный эффект сохраняется в энергонезависимой памяти контроллера.
Есть ещё интересная фишка – установка времени для некоторых индивидуумов, если с кнопкой вдруг не сможет разобраться. Тогда такая последовательность действий нужна: выключить часы, нажать и удерживать кнопку. Дождаться ровно 12 дня или лучше ночи и отпустить кнопку. Часы установятся правильно!
В качестве часовой микросхемы можно использовать как старушку DS1307 с внешним кварцем, так и её более молодую родственницу DS3231, причём последнюю в разных корпусах, на плате это предусмотрено.
Резервное питание для них также представлено в двух видах – или батарейка, или ионистор. Для ионистора дополнительно придётся поставить диод шотки и сопротивление порядка 100 Ом. Ионистор по габаритам встанет 1 или1,5 фарада. Только не используйте всё сразу, я вас умоляю! И ещё, DS3231, впрочем, как и DS1307, та ещё лотерея, если на Алиэкспрессе покупать. В местных магазинах кстати тоже, они ведь тоже на Алиэкспрессе отовариваются. Правда, есть ещё возможность получить оригиналы в виде сэмплов, но это уже другая история. А иначе очень дорого, но надежно на диджикей…
Смена яркости не предусмотрена, часы у меня в ночное время выполняют вторую задачу – светильник, чтобы вместо тапок приспавшего кота не обуть. Но при необходимости это не трудно сделать, потому что есть свободные АЦП, шестой и седьмой.

Ограничительные резисторы на светодиоды от сотни Ом до десятка кило Ом, в зависимости от яркости последних. У меня на белых – 100 Ом, а на оранжевых - 470.
Светодиоды можно использовать разные. Сколько людей, столько и мнений, и о них, как известно не спорят. Но есть несколько общих правил, которые позволят не допустить серьезных промахов и как результат не будет разочарований. К выбору светодиодов необходимо подойти с особой ответственностью. От этого полностью зависит визуальное эстетическое восприятие, которое может быть испорчено неправильным выбором. Ниже приведены несколько рекомендаций:
• На данный момент времени выбор цветовой гаммы не такой уж и большой – красные, желтые, зелёные, синие и белые. Есть ещё фиолетовые и белые теплого оттенка, а также пастельных цветов, но они до сих пор относительно дорогие и не так повсеместно распространены. Подумайте, какие цвета вы будете использовать в циферблате, а какие в цифрах. Цвета должны гармонировать друг с другом, поэтому до приобретения светодиодов лучше смоделировать их соответствие на компьютере, а ещё лучше вживую, подключив рядом несколько светодиодов разных цветов.
• Круглые светодиоды бывают нескольких типов – в прозрачном, матовом или цветном корпусах и с разным углом обзора – от 15-20 градусов до практически 200 градусов. Обычно светодиоды в матовом корпусе имеют повышенный угол обзора и часы на их основе прекрасно смотрятся с любой стороны. Напротив, прозрачный корпус характерен для острого угла. Такие светодиоды обычно намного ярче матовых, хотя и дешевле. Правда, презентабельный вид часы на их основе имеют только при просмотре «в лоб».
• Плохая идея использовать светодиоды нескольких типов в одной конструкции – например в матовом и прозрачном корпусах.
• Недопустимо использовать светодиоды с большим разбросом по яркости.
• Циферблат часов собран по схеме так называемого «Чарлиплексинга». Это накладывает дополнительные ограничения - если использовать светодиоды с разным прямым напряжением (например, разных цветов), некоторые диоды могут гореть, когда не должны. Если у одного светодиода прямое напряжение 4 В, а у двух других диодов - по 2 В, то они будут гореть вместе с первым. Это решается проверкой диодов на совместимость — или установкой одинаковых светодиодов.
• Скважность импульсов для светодиодов – 1/12. Поэтому нужно брать светодиоды повышенной яркости.
• Нельзя приобретать светодиоды впритык – по количеству, указанному в инструкции. Нужно брать с небольшим запасом. Проблему может создать и заводской брак, и перегрев при монтаже, или выход из строя в процессе эксплуатации. А вам окажется нечем заменить.


Часы обязательно должны иметь корпус! Трудно сейчас представить самоделку без 3-Д принтера. И меня эта радость не обошла стороной. Корпус разработан и напечатан. Переднее стекло из дымчатого акрила убирает чрезмерную яркость и значительно повышает контрастность. Приклеивается к корпусу двухсторонним прозрачным скотчем. 

Как работает прошивка? Она написана на Баскоме. Я не профессионал, я любитель. Мне бейсика хватает, и мой бедный ум он пока не сломал . Сначала инициализируем контроллер и периферию. Заводим таймер, в котором крутится динамическая индикация. В основном цикле идёт опрос кнопки, часовой микросхемы и принятие решения по необходимости формирования видео информации часов. Все модули стандартные, кроме формирования видео и динамической индикации. Видео формируется двумя способами – табличным и с помощью кода. В моём случае это позволило добиться высокой скорости разработки. Больше всего времени ушло на сопоставление элементов программного массива и светодиодов.

Конечно, это всё можно и нужно оптимизировать. Но есть много других интересных идей, которые так и просятся в реализацию. Представляю, как сейчас налетят коршуны и начнут заклёвывать «Пчёлу» за такой код. Друзья, вы лучше не клюйте, а посоветуйте что-то дельное, а то ненароком зажалим, нас вон как много! Кстати, о пчёлах. Эффект роения формируется из случайных чисел и накладывается на светодиоды периметра. Тут интересная идея используется, кому понадобится, дарю. Функция формирования случайного числа не стандартная встроенная, а самодельная. Она родилась на одном из форумов по Си, а затем с успехом была переписана на Баском. При вызове функции генерируется сразу три случайных числа в диапазоне от нуля до двести пятидесяти пяти. Эти числа сравниваются с некоторой константой, и если они попадают в заданный диапазон, состояние светодиода периметра меняется на противоположное. Увеличивая константу, мы добиваемся большего количества «пчёлок» и наоборот. Мне нужно было сразу пять случайных чисел вместо трёх, и я здесь схитрил – стал проверять числа константой в начале и в конце. Тем самым расширил рандомные возможности и сократил время формирования эффекта роения «пчёл». Динамическая индикация написана на ассемблере. Довольно интересно было запустить такое количество светодиодов, используя третье, высоко импедансное состояние выходов. Исходники часов прилагаются. Но есть один маленький нюанс – динамическую индикацию я зашифровал крипто шифром (Баском рулит!). Исходники даже в таком случае компилируются, можно дополнять основной функционал, изменять логику работы, модифицировать шрифты цифр и при этом всё так же будет собираться, и работать. Зашифрованная часть работает как встроенная библиотека – принимает массив видеоданных и разворачивает их на светодиоды. По некоторым причинам мне не хотелось бы показывать зашифрованный участок кода, там чистый ассемблер и написан он человеком, который его пока не знает (мною…). Не переживайте, в зашифрованном коде закладки нет. И часы однажды в 12 ночи не превратятся в тыкву - мне важно моё доброе имя! Тем более, здесь есть такие коты, что могут из любой тыквы (ака кекса) сделать чистый хрусталь. Не так давно сам был свидетелем. Так что тыквы в «Пчёле» нет, чисто один мёд!

Кто захочет поменять шрифт цифр, смотрите таблицы с данными и рисунок соответствия данных и светодиодов. Десятки часов, единицы часов – всё понятно. А может быть кто-то новую идею подкинет по визуализации часов?

Фьюзы, куда же без них?

Когда принял решение разработать эти часы, то сразу пошел проверенным путем – напечатал распиновку контроллера на А4, дорисовал нужные элементы и соединения, а затем сразу начал разработку печатной платы.

Почему-то для меня это самый увлекательный процесс оказывается, кроме оживления устройства, конечно. Плату сразу старался вместить в тот заветный размер 100х100, вы же меня понимаете, кто в теме?! Герберы для заказа роилагаются! На этот раз схему не макетировал ни в Протеусе, ни в железе, понадеялся, что всё получится сразу и без ошибок. И я не ошибся! Плату разработал в Спринтлайоуте. Дилетантство! Возможно, но она работает и радует меня и близких. Не может же один кот всех мышей сразу выловить! Платы заказал на заводе (здесь, на Коте, есть его реклама, да и спонсором этого конкурса он выступает). Они пришли недели через три. Пару дней полежали на рабочем столе, пока аппетит не нагулялся. Затем в один из вечеров собрался с духом и запаял все детали. Программатор увидел контроллер, можно спать. На следующий вечер после работы оживил цифры в центре, а ещё один вечер посвятил окантовке и функционалу. Часы работают, время бежит. Ещё один вечер на моделирование корпуса и печать. И последний вечер на эту статью. Завтра пофотографирую и сниму видео.

 

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

Слышишь, Кот? Да, да, я к тебе обращаюсь! Знакомство с твоим сайтом у меня произошло тогда, когда я на часы набрёл. С тех пор частенько здесь бываю. Жалко только, что в последнее время ты как-то редко здесь появляешься. Переходный возраст даёт о себе знать, но мы с коллегами надеемся, что к 15 ты начнёшь относится к профессии Кота более ответственно.

Процветания и успехов Коту, котосайту и его неизменным спутникам! Мира вам! И чтобы "Пчёла" работала правильно!

 


Файлы:

Пршивка, исходник, плата, схема, корпус.


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

36 12 9