Подарок от электроника на 14 февраля // Счётчик
Привет всем!
Имею некое хобби с недавнего времени - это электроника, а точнее реализовывать свои мелочные идеи в реальность. Так вот, сердечко из светодиодов я когда то делал, плата была с чёрной маской, светодиоды красные, выглядело волшебно. Теперь хотелось всё с нуля и самому, а не слизать с кого-то.. Так что начну с начала:
Сложилось так, что мы очень романтическая пара. :) Ну это обязательно надо написать.
С 2010 года 27 июля мы считаем праздником 27-ое число каждого месяца, и изредка любим в калькуляторе дней в интернете посмотреть сколько же мы всего дней вместе.
Так вот, пришло в голову, почему бы не сделать некую табличку (декор), которая бы это считала и отображала скажем эти цифры на семисегментных дисплеях.
ОК, идея есть, ещё необходимо:
1. Разработать схему
2. Спроектировать и развести плату
3. Написать свою первую прошивку
4. Спроектировать и напечатать корпус
5. Нигде не лохонуться
Первые два пункта дались легко, я уже имел небольшой опыт самоучки в программе Proteus.
1. Схему налепил за пару часов, повторюсь, я не электронщик и близко к ним не отношусь, по этому камнями закидывать не нужно. Почему закидывать? Потому что всё сделал на двух микроконтроллерах, то есть два счётчика:
а) показывает сколько лет, месяцев и дней мы вместе
б) показывает сколько всего дней вместе
Да, да, да.. Я на 100500% знаю что можно было всё сделать на одном микроконтроллере, но мне бы пришлось тогда сделать подарок через год, пока я бы влез в этот пока что для меня тёмный лес, так что импровизировал как мог, сделать то что сделал не имея НИКАКИХ навыков и знаний программирования для меня было выше моего потолка. Два счётчика = значит две схемы решил я.
2. При проектировании платы уже конечно сразу обдумал как будет выглядеть всё в конце, где расположить дисплеи и USB порт для питания.
Как всегда я всё делал по порядку и не постепенно, по этому не имея никакого понятия как я буду писать прошивку сразу заказал платы на jlcpcb.com. :)
Платы как всегда у них на высшем уровне, никаких проблем по качеству не обнаружено.
3. Это отдельный фрагмент, я в первый раз в жизни прикоснулся к программированию и знаете, перелопатив кучу чужого кода, я смог более менее разобраться, модифицировать и собрать из всего один "полноценный" код для работы устройства.
Параллельно этому я понял что я прыгнул сразу в реку не умея плавать, пришлось на ходу учится.
Конечно теперь, закончив свой лютый для меня проект я начал с изучения самого простого, с нуля, с самого дна, с основ и боже, это целый нереальный мир где ты можешь всё что захочешь. Ладно, отошли от темы..
4. Корпус спроектировал в бесплатной онлайн среде для 3D моделирования - tinkercad.com.
Она очень простая и идеально подошла для простой задачи, разобрался с интерфейсом и за один вечер уже всё сделал.
Далее распечатал на 3D принтере, и всё сошлось по размерам, нигде не ошибся и слава богу.
5. Я нигде не ошибся, и это для меня стало огромным удивлением, так как я бежал впереди паровоза и не на одном этапе не разу не проверял того что уже сделал
Ладно, вру, footprint для кварцевых генераторов для часов DS1307 сделал под корпус HC-49 THT, но их в таком корпусе не существует, но всё равно запаял и проблем это не создало.
Итак, по шагам прошлись, теперь о трудностях с которыми я столкнулся, все они с связаны с программированием, перечислять нет смысла, кроме одной над решением которой я отсидел больше всего времени - это учитывать високосные года при вычислении разницы дат. Мда, тут конечно был подводный камень, я такой крутой написал какую то прошивку, загоняю в микроконтроллер, запускаю, сравниваю с калькулятором в интернете и вижу что есть разница в днях, и тут меня осенило что я совсем забыл про эти долбаные високосные года. Неделя ушла на то, что бы разобраться как решить это и заставить считать правильно, ведь не интересно посмотреть на табличку 27-го числа и увидеть что она показывает не ровное количество месяцев в этот день.
В итоге результат:
Ещё нужно подобрать лучше светофильтр что бы лишнего не засвечивалось.
Сейчас заказана лицевая панель из фанерки с лазерной гравировкой надписей и рисунка, но уже и в таком виде я подарил его аж на наши 9,5 лет вместе, не стал держать до 14 февраля, ибо идеи ещё родились что сделать на день Святого Валентина!