Цветофон

193 прочитали
1. С чего началось 
Когда под рукой есть отдельные, уже отработанные схемотехнически и программно модули — трудно удержаться и не попробовать собрать их вместе в одном устройстве.

1. С чего началось


Когда под рукой есть отдельные, уже отработанные схемотехнически и программно модули — трудно удержаться и не попробовать собрать их вместе в одном устройстве. Так случилось и на этот раз. Добавив к AVR-микроконтроллеру
кнопочный модуль управления, индикацию на сегментных светодиодах, простейший однотранзисторный усилитель звука с громкоговорителем и регулятором громкости и линейку из восьми программируемых светодиодов WS2812B, а затем дополнив всё это незатейливой прошивкой из (примерно) четырёх с половиной сотен строк кода на Bascom-AVR, получим несложную конструкцию, называемую "Цветофоном".

02. Готовые модули для беспаечной макетной платы: модуль адресных светодиодов WS2812B, модуль кнопок "Нажать и распознать. Версия 2.0. Мини", регулятор громкости и мини-USB разъём для питания конструкции.
02. Готовые модули для беспаечной макетной платы: модуль адресных светодиодов WS2812B, модуль кнопок "Нажать и распознать. Версия 2.0. Мини", регулятор громкости и мини-USB разъём для питания конструкции.

2. Важное примечание


Данное устройство не претендует на новизну, оригинальность либо какую-то особую практическую востребованность.

Собиралось оно исключительно с целью отработки отдельных схемотехнических решений и некоторых программных компонентов алгоритма прошивки.

Это только некий очередной промежуточный этап перед разработкой и сборкой окончательного прибора.

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

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

3. Что она делает

Штука эта умеет всего лишь при нажатии на кнопки извлекать звуки (в пределах восьми нот первой-второй октав) да подсвечивать их разноцветными огоньками. При запуске старается привлечь к себе внимание, выдавая в демо-заставке практически всё, на что способна.
Да ещё при нажатии на кнопки отображает номер текущей нажатой клавиши на сегментном индикаторе и светодиодной шкале.

Несмотря на ограниченность подобного функционала собирать её было интересно, а программировать ещё интереснее. По крайней мере мне.
Возможно и кому-то из вас она пригодится, если не с целью развлечения, то хотя бы в процессе изучения программирования микроконтроллеров AVR или программирования адресных светодиодов WS2812B.

4. Схема устройства

Схема электрическая принципиальная "Цветофона" представлена ниже.

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

03. Схема электрическая принципиальная.
03. Схема электрическая принципиальная.

Скачать схему "Цветофона" в формате .JPG или в формате .PDF.

Фактически это тщательно отработанные и рассмотренные подробно в предыдущих статьях в разделе "Arduino и микроконтроллеры" данного блога модули, собранные вокруг микроконтроллера ATmega328P. Как обычно перечень связанных статей и ссылок приводится в конце текущего повествования, кому интересны более подробные детали и тонкости — заглядывайте туда.

5. Конструкция

04. Собранная на беспаечных макетных платах конструкция.
04. Собранная на беспаечных макетных платах конструкция.

Как можно заметить, и как было сказано выше, вся конструкция собрана на паре беспаечных макетных плат MB-102, соединённых в нужных точках схемы либо лужёными проволочными скобками, либо многожильными проводками в цветной изоляции.

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

С другой стороны, схемы на беспаечных макетных платах собираются гораздо быстрее и проще, словно детали детского конструктора. При наличии готовых узлов, отдельных радиодеталей и соединительных проводов-скобок таким схемам уже не нужны паяльник, канифоль и припой или дополнительные инструменты. Также с помощью беспаечных макеток можно отработать идею отдельного узла схемы или кусок программного кода используемого в микроконтроллере гораздо быстрее.

Из собственного опыта ещё могу заметить, что если у вас получилось запустить свою схему на беспаечной макетной плате и она стабильно работает, то уж на разработанной впоследствии плате печатной она, с большой долей вероятности, заработает тоже и скорее всего исправно и обязательно.

6. Монтажная схема

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

05_Монтажная схема соединения деталей, проводников и модулей конструкции.
05_Монтажная схема соединения деталей, проводников и модулей конструкции.

Скачать монтажную схему в формате .JPG или в формате .PDF.

Я постарался выполнить её как можно ближе к исходной конструкции. Хотя потом по ней конструкцию заново не пересобирал.

Если при сборке у вас всё-таки возникнут какие-либо затруднения или недопонимания — постарайтесь всё же обратиться к схеме электрической принципиальной и отталкиваться от неё.

7. Код программы

Исходный код программы для прошивки микроконтроллера написан на языке Bascom-AVR и компилировался в этой же программной среде.

06. Скриншот исходного кода программы  на Bascom-AVR.
06. Скриншот исходного кода программы на Bascom-AVR.

Скачать исходный код программы "Цветофона" с подробными комментариями, .BAS-файл.

Исходный код "Цветофона" открыт всем и доступен для свободного скачивания и последующего изучения. А также для последующих всевозможных модификаций, ограниченных только вашей творческой фантазией. Для этого исходный код снабжён подробными пояснительными комментариями. Текстовый файл исходного кода может быть отображён как в самой программной среде Bascom-AVR, так и в любом текстовом редакторе.

Так как в памяти микроконтроллера прошивка занимает более 4-х килобайт, обойтись для компиляции программы применением демонстрационной и бесплатной версии программной среды Bascom-AVR уже не получится, вам понадобится полнофункциональный пакет Bascom-AVR, без ограничений на размер программы.

Впрочем, если изучение и модификация исходного программного кода в ваши цели не входит, а требуется только воспроизвести начальную функциональность устройства "как есть — один к одному" — достаточно просто будет использовать уже откомпилированный .HEX-файл, прошив им микроконтроллер.

Скачать откомпилированный файл прошивки "Цветофона" для загрузки в микроконтроллер, .HEX-файл.

8. Прошивка микроконтроллера

Прошивку микроконтроллера скачанным или полученным после компиляции .HEX-файлом вы можете произвести с помощью программатора любым удобным для вас и привычным вам способом. Например с помощью многочисленных утилит, таких как AVRDude, Khazama AVR Programmer, SinaProg или им подобных.

Я использую для этого программатор "Мастер Кит" BM9010 — AVR910 и режим программирования Chip Programmer среды CodeVisionAVR.

Ключевым моментом при программировании FUSE-бит является обеспечение работы нашего микроконтроллера на частоте 8 мГц от внутреннего тактового генератора. Для этого при программировании FUSE-бит в среде
CodeVisionAVR необходимо установить режим Calibrated int. 8 MHz osc.

Также стоит обратить внимание на режим Divide Clock by 8 — установленного крыжика в данном параметре быть не должно.

Весь набор FUSE-бит при прошивке через
CodeVisionAVR будет выглядеть так:

07. Скриншот установки FUSE-бит при прошивке через CodeVisionAVR.
07. Скриншот установки FUSE-бит при прошивке через CodeVisionAVR.

Подробно про весь процесс компиляции программ на Bascom-AVR и прошивки их в микроконтроллер можно прочитать, например, здесь.

9. Проверка работоспособности

После программирования микроконтроллера и подключения устройства к источнику питания (от USB-разъёма с постоянным напряжением 5 вольт) проверяем его работоспособность. Для этого перезапускаем микроконтроллер, подав кратковременно "минус" питания на его вход RESET (временно замкнув вывод 1 микроконтроллера на общий провод).

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

При этом на светодиодном индикаторе приветствие —HI— должно смениться приглашением —GO—.

08. Приглашение на индикаторе к нажатиям кнопок, после отработки демо-заставки.
08. Приглашение на индикаторе к нажатиям кнопок, после отработки демо-заставки.

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

В правильности выдачи устройством нужного цвета убедиться очень легко — нужно только визуально проверить его, нажимая-перебирая кнопку за кнопкой.

  • Кнопка 1 — Красный
  • Кнопка 2 — Оранжевый
  • Кнопка 3 — Жёлтый
  • Кнопка 4 — Зелёный
  • Кнопка 5 — Голубой
  • Кнопка 6 — Синий
  • Кнопка 7 — Фиолетовый
  • Кнопка 8 — Белый

09. Перебираем кнопку за кнопкой. Нажата кнопка 1 — цвет красный. В громкоговорителе звучит нота До первой октавы.
09. Перебираем кнопку за кнопкой. Нажата кнопка 1 — цвет красный. В громкоговорителе звучит нота До первой октавы.

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

При подключении его к выходу звукового порта микроконтроллера (вывод 6), работающего на частоте 8 мГц, либо к точке соединения резистора R12 и потенциометра RV1, и при переборе кнопок контрольный прибор должен показывать значения частот в герцах (нот первой и второй октав) из ряда:

  • До — 261.63
  • Ре — 293.66
  • Ми — 329.63
  • Фа — 349.23
  • Соль — 392.00
  • Ля — 440.00
  • Си — 493.88
  • До (2-я октава) — 523.25


, либо очень близкие к ним с учётом округления и погрешности вашего измерительного прибора.

Если показания измерений отличаются от нужных кратно и в несколько раз — скорее всего ваш микроконтроллер работает на какой-то другой частоте, например на 1 мГц или 16 мГц. В этом случае необходимо проверить настройки FUSE-бит и перепрограммировать их.

10. Проверка правильности выдачи нот с помощью осциллографа. Нота Ля первой октавы — частота 440 Гц.
10. Проверка правильности выдачи нот с помощью осциллографа. Нота Ля первой октавы — частота 440 Гц.

10. Результат проделанной работы

Результат представлен на видео. Устройство гудит, пищит, светится и мигает.

Если с помощью данного устройства кому-то из читателей удастся наиграть простую или даже не очень простую мелодию — прошу поделиться этим достижением в комментариях к статье.

12. Работающая конструкция. Максимум яркости и света в демонстрационной заставке.
12. Работающая конструкция. Максимум яркости и света в демонстрационной заставке.

С наступившей весной!

И пусть она станет для Вас тёплой, яркой и красочной!

01 марта 2023 года.

С уважением, Ваш @mp42b.

<-- Предыдущая статья | Содержание 2019-2022 | Следующая статья -->

Предыдущие статьи по данной теме:

1. Нажать и распознать ‒ микроконтроллер, Bascom-AVR и несколько кнопок

2. Снова просто кнопки или "Нажать и распознать. Версия 2.0. Мини"

3. "Цифровой кирпичик номер 3": микроконтроллер, Bascom-AVR и сегментные индикаторы

4. Микроконтроллер вместо Arduino ‒ это просто! И три дополнительных мелодии для "шарманки"

5. Бегут и переливаются: Arduino, Bascom-AVR и светодиоды WS2812B

1. С чего началось 
Когда под рукой есть отдельные, уже отработанные схемотехнически и программно модули — трудно удержаться и не попробовать собрать их вместе в одном устройстве.-12

#радиоэлектроника #электроника #программирование

#простые вещи #сделай сам

#микроконтроллеры #Bascom-AVR

#сверкалки и гуделки

#mp42b #микроконтроллеры_mp42b