Говорящие часы TalkingLEDClock Часть 2: Корпус и печатная плата

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

Внешний и внутренний дизайн

В качестве корпуса для данной конструкции решил взять стандартный пластиковый корпус для РЭА типа G738, имеющий габариты 140х110х35 мм:

Рис. 1. Корпус G738

Данный корпус не занимает много места на столе, имеет приятный внешний вид и хорошо себя зарекомендовал в первой версии говорящих электронных часов. Теперь немого поговорим об размещении органов управления и дисплея на данном корпусе. У нас имеется 5 кнопок, выполняющие следующие действия:

  • Tell — произнести текущее время и температуру;
  • Menu — меню часов;
  • Alarm — включить и настроить будильник;
  • Plus (+) — увеличить значение выбранного параметра на единицу;
  • Minus (-) — уменьшить значение выбранного параметра на единицу.

Кроме того, у нас еще имеются следующие элементы:

  • динамик;
  • индикатор включенного будильника (светодиод);
  • датчик освещенности (фототранзистор).

Кнопку Tell размещаем на передней панели рядом с дисплеем, думаю, ей там самое место. Остальные 4-е кнопки на верхней части корпуса в следующем порядке: Alarm, Menu, Plus, Minus.

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

Рис. 2. Компоновка элементов часов на передней и верхней части корпуса

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

Рис. 3. Компоненты задней панели часов

Перейдем теперь к внутреннему дизайну. Всю схему решил разбить на 3 печатных платы:

  1. основная плата, на которой установлена отладочная плата с микроконтроллером stm32f103c8, регулятор громкости, гнездо уличного термометра и другие компоненты;
  2. плата индикации: на ней размещены LED-индикаторы, индикатор будильника, датчик освещенности и кнопка Tell;
  3. плата с кнопками: на ней размещены кнопки Alarm, Menu, Plus, Minus.

Плата индикации соединена с основной платой с помощью жгута гибкого провода, в моем случае это был провод МГТФ. Шлейф с разъемами на концах был бы намного технологичней, но оставил так. Плата с кнопками и динамик подключаются с помощью разъемов. Элементы задней панели корпуса впаяны в основную плату.

Разработка печатной платы

После того, как дизайн часов был продуман и окончательно принят, настало время тщательных измерений габаритов самого корпуса, кнопок, и других внутренних компонентов будущих часов. Задача состояла в разработке такой внутренней компоновки, чтоб «все влезло и ни чего не мешало». Ну и немаловажной задачей было придумать способ крепления плат внутри корпуса.

Вот все компоненты, которые так или иначе выходят за пределы корпуса:

  • кнопки: тип KLS7-TS1204, 12х12, h=7 мм;
  • семисегментные индикаторы: BA56-12SRWA;
  • индикатор будильника: красный светодиод 3 мм;
  • датчик освещенности: фототранзистор BPW85 в «светодиодном корпусе» диаметр 3мм;
  • регулятор громкости: тип R-0901N-A100K-L25KQ, даташит в конце статьи;
  • комнатный термодатчик: DS18B20, корпус TO-92;
  • гнездо уличного термодатчика: телефонный разъем 6P4C, тип 1, даташит в конце статьи;
  • micro-USB разъем, размещенный на отладочной плате stm32f103c8;
  • динамик компьютерный, 0.5 ватт, диаметр 57мм, высота 16мм.

Следующий шаг — это крепеж компонентов и печатных плат внутри корпуса. Динамик было решено приклеить на обычный термоклей, держаться будет намертво. Основная плата размещена на латунных стойках 6 мм, которые в свою очередь по технологии «суперклей с содой» приклеены внутри корпуса на нижней его части (рис. 13, 14, 18, 19). Плата с кнопками так же через приклеенные латунные стойки закреплена изнутри на крышке корпуса, высота стоек 8 мм + 2 шайбы между платой и стойками (рис. 17). В крышке просверлены отверстия для колпачков кнопок.

Плата дисплея через те же латунные стойки 6 мм + 2 шайбы закреплена на лицевой панели корпуса часов. Однако, возникли небольшие проблемы с размещением кнопки Tell и дисплея на одной плате: высота кнопки немного больше высоты LED-индикаторов. Эту проблему можно было решить различными способами, но я выбрал следующий путь. В плате с индикаторами на месте копки фрезеруется прямоугольное отверстие, по размеру, немного больше размера самой кнопки. Кнопка устанавливается на небольшую переходную платку, и уже эта платка припаивается с обратной стороны платы дисплея. Таким образом, кнопка немного «утапливается» в основную плату и становится вровень с LED-индикаторами (см. рис. 11, 12).

В комплекте с корпусом G738 (рис. 1) идут черные пластиковые заглушки передней и задней панелей, в которых необходимо самостоятельно проделать отверстия для лицевых и тыльных элементов конструкции. Я решил не использовать эти заглушки, а изготовить их из стеклотекстолита вместе с печатными платами, так как это будет проще, и внешний вид будет намного лучше, в сравнении с ручным ковырянием дырок (отверстий, класса точности «дырка») в пластиковых заглушках.

Итого, мы имеем комплект из 6-и печатных плат:

  1. основная плата;
  2. плата с кнопками;
  3. плата дисплея;
  4. переходная платка для кнопки Tell;
  5. лицевая панель;
  6. задняя панель.

Платы разводил под очень грубый технологический процесс изготовления: почти все дорожки имеют толщину 0.5 мм, небольшая часть дорожек 0.3 мм. Переходные отверстия разместил так, чтоб была возможность изготовить плату без металлизации с последующей ручной запайкой переходных отверстий. В качестве элементной базы выбирал компоненты в достаточно крупных корпусах, которые можно без проблем запаять обычным паяльником. Тут как раз очень удачно выбрана отладочная плата с установленным микроконтроллером и разъемом micro-USB в качестве «мозга» конструкции: микроконтроллер stm32f103c8 трудно запаять в домашних условиях, так как шаг контактов у него довольно мал. Кроме того, разъем micro-USB является очень удобным решением для питания схемы, однако, в силу конструктивных особенностей, его пайка так же вызывает некоторые сложности. Платы после производства представлены на рис. 4, 5.

Заключение

В целом данный проект я считаю успешно завершенным. Использование лицевых панелей из текстолита считаю очень хорошим решением в данной конструкции. Хорошо бы еще наклеить какой-нибудь светофильтр на дисплей часов, но это уже мелкие «доделки», которые можно выполнить позже. Небольшой касяк произошел при сверлении отверстий под кнопки в крышке корпуса, нудного диаметра не нашлось, поэтому сверлил меньшим, затем расковыривал отверстия лезвием ножниц, при этом сбилась центовка у пары отверстий и плата с кнопкам плохо становилась. В итоге пришлось одно отверстие сделать немного овальным (для кнопки «плюс»), что слегка испортило внешний вид конструкции. Еще одной нерешенной задачей стало нанесение качественной маркировки на кнопки в домашних условиях. Но все это можно решить позже.

В конце статьи дам ссылку на архив с проектом печатной платы в формате DipTrace 3 и Gerber. В следующей части мы рассмотрим программную составляющую и пробежимся по всем функциям данных часов. 😉

Немного фоток

Рис. 4. Панель с печатными платами 

 

Рис. 5. Печатные платы, извлеченные из панели

 

Рис. 6. Основная плата в сборе, вид сверху

 

Рис. 7. Основная плата в сборе, вид с обратной стороны

 

Рис. 8. Плата дисплея в сборе, вид спереди

 

Рис. 9. Плата дисплея в сборе, вид с обратной стороны

 

Рис. 11. Крепление кнопки Tell на плате дисплея

 

Рис. 12. Крепление кнопки Tell на плате дисплея, другой ракурс фото

 

Рис. 13. Установка латунных стоек крепления основной платы

 

Рис. 14. Стойка крепления основной платы

 

Рис. 15. Стойки крепления платы дисплея на передней панели корпуса часов

 

Рис. 16. Стойки крепления платы дисплея #2

 

Рис. 17. Крепление динамика и платы с кнопками с внутренней стороны крышки корпуса

 

Рис. 18. Установка плат в корпус: вид спереди

 

Рис. 19. Установка плат в корпус: вид сзади

 

Рис. 20. Под «капотом»

 

Рис. 21. Внутренняя компоновка

 

Рис. 22. Чертеж основной платы

 

Рис. 23. Чертеж платы дисплея

 

Рис. 24. Чертеж платы кнопок 

 

Продолжение тут.

Ссылки

Печатная плата в формате DipTrace 3 и Gerber: https://yadi.sk/d/wMrlOvOrlovFOQ

Переменный резистор R-0901N-A100K-L25KQ

Телефонный разъем 6P4C KLS12-124-6P4C

Метки: . Закладка Постоянная ссылка.

6 комментариев: Говорящие часы TalkingLEDClock Часть 2: Корпус и печатная плата

  1. Alexander пишет:

    Здравствуйте Дмитрий!
    Присоединяюсь к многочисленным благодарностям за Ваши замечательные статьи и уважительную к вопросу и читателю манеру изложения.
    Кстати, реализация ваших часов восхищает аккуратной простотой, граничащей с гениальностью )))
    Для дальнейшего развития хочу предложить Вам тему о взаимодействии STM32 с инкрементальным энкодером. Это может применяться например, как регулятор громкости, освещения (вместо и намного изящнее потенциометра), или как способ установки времени в следующей версии Ваши часов, а может и быть частью системы сервоуправления. Уверен, не один я буду рад раскрытию Вами этой темы!
    Заранее спасибо!

  2. Alexander пишет:

    … вдогонку, —
    речь конечно же об аппаратной реализации этой задачи анонсированной в мануале: «…pulse counter and quadrature(incremental) encoder input…»

    • DiMoon пишет:

      Спасибо за отзыв! 🙂 Сейчас в процессе написания 3-я часть про часы, плюс зависла одна статья по STM32 про UART, времени сейчас не хватает к сожалению

      • Lazy-Fox пишет:

        Очень хорошо бы про UART. Как раз на stm32f103c8 нужно 3 разных модуля по uart слушать, разбирать и транслировать из одного другим. Весь мозг разломал, а у Вас и DMA внятно расписаны и прерывания.

    • DiMoon пишет:

      А насчет энкодеров, тема очень интересная, в STM32 некоторые таймеры могут работать как драйвер энкодера: крутишь в одну сторону — счетный регистр таймера увеличивается, крутишь в другую — уменьшается. Удобно 🙂 И все это работает аппаратно, из программы надо только забирать очередное значение из счетного регистра таймера, и все 😉 Когда-нибудь напишу статью на эту тему

  3. Alexander пишет:

    Спасибо, будем с нетерпением ждать.
    про UART тоже очень интересно!
    Удачи! )))

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *