Управление елочной гирляндой с мобильного телефона
Статья опубликована в журнале "Радио" №11, 2012.
В статье описан вариант управления елочной гирляндой «китайского производства» с помощью сотового телефона. Память SIM карты телефона используется для хранения программ управления гирляндой. Клавиатура телефона используется для выбора программы управления гирляндой. Звонком на телефон можно включить или выключить гирлянду. Сопряжение телефона с устройством управления гирляндой осуществляется с помощью последовательного интерфейса. Устройство управления гирляндой реализовано на базе микроконтроллера MCS51 (AT89C51), в качестве телефона использован Siemens C60.
В статье описан вариант управления елочной гирляндой «китайского производства» с помощью сотового телефона. Память SIM карты телефона используется для хранения программ управления гирляндой. Клавиатура телефона используется для выбора программы управления гирляндой. Звонком на телефон можно включить или выключить гирлянду. Сопряжение телефона с устройством управления гирляндой осуществляется с помощью последовательного интерфейса. Устройство управления гирляндой реализовано на базе микроконтроллера MCS51 (AT89C51), в качестве телефона использован Siemens C60.
Введение
В процессе подготовки к Новогодним праздникам в ящике с игрушками обнаружилась неработающая гирлянда «китайского производства». Она была из тех что можно купить перед Новым годом в любом ларьке, торгующем игрушками за 100 рублей (см.фото). Любопытство радиоинженера: «А как там все устроено?» получило свое удовлетворение после разборки небольшой зеленой коробочки со схемой управления гирляндой. Невольное восхищение вызвала простота конструкции: диодный мост, четыре «микротиристора» и микроконтроллер. Вспомнились «советские времена», когда подобные устройства реализовывались на нескольких микросхемах, мощных (и дефицитных!!!) КУ202М или на «релюшках», это «чудо инженерной мысли» упаковывалось в солидный ящичек и ставилось под елку для управления обычными гирляндами из 15-20 лампочек. Немного повздыхав от ностальгических воспоминаний, неожиданно появилась мысль: «А нельзя ли как-то модифицировать «чудо китайской мысли?». Направление модернизации было выбрано в сторону детского творчества: дать возможность ребенку (а может и взрослый не откажется) самому придумать алгоритм управления четырьмя гирляндами. А затем лично убедиться в его работоспособности.
Основные принципы конструкции устройства управления гирляндой
Определившись с темой работ, начались поиски конкретной реализации задуманного. С исполнительным устройством вопросов не было: берем «китайский» блок управления, удаляем контроллер. Вместо него к управляющим электродам тиристоров подключаем какой-нибудь из доступных микроконтроллеров (далее МК) и запитываем его. Встает вопрос оперативного внесения самой программы управления гирляндой в МК и ее изменения. Эта процедура не должна быть сложной и требовать наличия какой-то сложной техники. В качестве такого терминала очень удачно подошел давно валявшийся без дела старенький «мобильник» Siemens C60. Технику раньше делали довольно надежную – С60 оказался вполне работоспособным.
С60 как и все старые сотовые телефоны (далее СТ) имеет последовательный порт. Через него с помощью АТ+С команд [1] можно получить доступ как к ячейкам памяти на SIM карте, так и клавиатуре самого телефона – что нам и нужно! В ячейки памяти SIM-ки (телефонный справочник) можно занести закодированную последовательность включения ламп в гирлянде. МК будет эти ячейки считывать и выдавать управляющие сигналы на тиристоры (далее каналы управления). Конкретную программу можно выбрать, считав код нажатой на телефоне клавиши, либо циклически перебирая все ячейки памяти СТ.
С60 как и все старые сотовые телефоны (далее СТ) имеет последовательный порт. Через него с помощью АТ+С команд [1] можно получить доступ как к ячейкам памяти на SIM карте, так и клавиатуре самого телефона – что нам и нужно! В ячейки памяти SIM-ки (телефонный справочник) можно занести закодированную последовательность включения ламп в гирлянде. МК будет эти ячейки считывать и выдавать управляющие сигналы на тиристоры (далее каналы управления). Конкретную программу можно выбрать, считав код нажатой на телефоне клавиши, либо циклически перебирая все ячейки памяти СТ.
Принципиальная схема
Принципиальная схема устройства управления гирляндами показана на рисунке.
Как было указано выше, в качестве микроконтроллера выбрана однокристальная микроЭВМ AT89C51 24PI (DD1). Подключение цепей сброса и синхронизации типовое. Четыре младшие разряда порта Р2 используются для управления тиристорами VD7..VD10, в анодные цепи которых включены гирлянды. Условно на принципиальной схеме рис.2 лампы гирлянд заменены светодиодами (VD3..VD6) и токоограничивающими резисторами (R4..R7) – на этапе отладки устройства такую замену удобно использовать. Обычно в цепях управляющих электродов тиристоров применяют токоограничительные резисторы. В предлагаемой схеме роль таких резисторов выполняет токоограничивающая схема выходного буфера порта МК.
Цепи синхронизации (С2, С3 и Q1) и сброса (R1, C1, S1) МК выполнены по стандартной схеме.
Один из разрядов (Р0.2) порта Р0, как самого мощного в МК задействован для подключения контрольного светодиода VD1. На этапе отладки по миганиям светодиода можно контролировать работоспособность МК устройства.
В качестве пульта управления и устройства хранения программы управления гирляндой использован СТ с COM интерфейсом (использовались телефоны Siemens C60, CF62). Аппаратное подключение телефона к микроконтроллеру не вызывает трудностей. Используются только линии передачи данных (Tx, Rx): контакт 3 телефона (Tx) соединяется с входом последовательного приемопередатчика микроконтроллера (P3.0), а контакт 4 (Rx) - с выходом P3.1. Никаких согласований по уровню (питание телефона 3,3В) не требуется, т.к. микросборка на входе телефона имеет и защитные диоды, и привязку уровня, и фильтрующие конденсаторы.
Гирлянды подключаются к сети 220В через диодный мостик VD11..VD14. Таким образом, лампы запитываются пульсирующим напряжением, что обеспечивает надежное выключение управляющих тиристоров. Включение тиристоров производится выводом в соответствующий разряд порта Р2 логической единицы.
Питание микроконтроллера осуществляется от зарядного устройства СТ (на схеме не показано). Для защиты цепей питания МК от перенапряжения используется параметрический стабилизатор на стабилитроне VD2. Допустимо отказаться от отдельного блока питания для МК и подать напряжение на стабилитрон прямо с диодного моста VD11..VD14 через диод (аналогичный, используемым в мосте), сглаживающий конденсатор (при проверке был использован бумажный на 0,1 мкФ) и резистор 10КОм (мощность резистора должна составлять 6-10Вт).
Как было указано выше, в качестве микроконтроллера выбрана однокристальная микроЭВМ AT89C51 24PI (DD1). Подключение цепей сброса и синхронизации типовое. Четыре младшие разряда порта Р2 используются для управления тиристорами VD7..VD10, в анодные цепи которых включены гирлянды. Условно на принципиальной схеме рис.2 лампы гирлянд заменены светодиодами (VD3..VD6) и токоограничивающими резисторами (R4..R7) – на этапе отладки устройства такую замену удобно использовать. Обычно в цепях управляющих электродов тиристоров применяют токоограничительные резисторы. В предлагаемой схеме роль таких резисторов выполняет токоограничивающая схема выходного буфера порта МК.
Цепи синхронизации (С2, С3 и Q1) и сброса (R1, C1, S1) МК выполнены по стандартной схеме.
Один из разрядов (Р0.2) порта Р0, как самого мощного в МК задействован для подключения контрольного светодиода VD1. На этапе отладки по миганиям светодиода можно контролировать работоспособность МК устройства.
В качестве пульта управления и устройства хранения программы управления гирляндой использован СТ с COM интерфейсом (использовались телефоны Siemens C60, CF62). Аппаратное подключение телефона к микроконтроллеру не вызывает трудностей. Используются только линии передачи данных (Tx, Rx): контакт 3 телефона (Tx) соединяется с входом последовательного приемопередатчика микроконтроллера (P3.0), а контакт 4 (Rx) - с выходом P3.1. Никаких согласований по уровню (питание телефона 3,3В) не требуется, т.к. микросборка на входе телефона имеет и защитные диоды, и привязку уровня, и фильтрующие конденсаторы.
Гирлянды подключаются к сети 220В через диодный мостик VD11..VD14. Таким образом, лампы запитываются пульсирующим напряжением, что обеспечивает надежное выключение управляющих тиристоров. Включение тиристоров производится выводом в соответствующий разряд порта Р2 логической единицы.
Питание микроконтроллера осуществляется от зарядного устройства СТ (на схеме не показано). Для защиты цепей питания МК от перенапряжения используется параметрический стабилизатор на стабилитроне VD2. Допустимо отказаться от отдельного блока питания для МК и подать напряжение на стабилитрон прямо с диодного моста VD11..VD14 через диод (аналогичный, используемым в мосте), сглаживающий конденсатор (при проверке был использован бумажный на 0,1 мкФ) и резистор 10КОм (мощность резистора должна составлять 6-10Вт).
Конструкция
Схема собрана на двух платах. Одна из них (см.фото) – это целиком плата из родного блока управления гирляндой. На ней задействованы тиристоры (по схеме выше – это VD7..VD10) и диодный мостик (VD11..VD14), остальные элементы – не используются. С платы удален контроллер (кусок гетинакса с бескорпусной микросхемой). К контактам управляющих электродов тиристоров подпаян шлейф идущий ко второй плате, где распаян МК с кнопкой сброса и контрольным светодиодом (на рисунке не показана).
Номиналы используемых элементов указаны на принципиальной схеме. В качестве светодиодов использованы красные АЛ307БМ, допустимо использовать другие с аналогичными параметрами. Кварцевый резонатор использован от старой видео- или мульти- карты компьютера.
Номиналы используемых элементов указаны на принципиальной схеме. В качестве светодиодов использованы красные АЛ307БМ, допустимо использовать другие с аналогичными параметрами. Кварцевый резонатор использован от старой видео- или мульти- карты компьютера.
Программа
Коды программы микроконтроллера приведены в таблице 1, текст программы на ассемблере - в таблице 2. Алгоритм работы программы более подробно выглядит так: гасится контрольный светодиод VD1, производится настройка таймера и последовательного порта МК. В СТ дважды посылается команда ATZ (сброс). В случае не получения ответа от СТ в течение трех секунд, устройство считает, что СТ не подключен и переходит к циклическому последовательному включению гирлянд.
Если ответ «ОК» от СТ получен, то на экран телефона выводится номер версии программы, а его клавиатура переключается на трансляцию кода нажатой клавиши в последовательный порт (работа с СТ в таком режиме рассмотрена в [2]). Контрольный светодиод переходит в режим мигания.
Далее устройство начинает считывание «программы управления гирляндами» из ячеек памяти SIM карты телефона, «распаковывает» ее в памяти МК и «запускает» ее исполнение.
При получении кода нажатой клавиши от СТ, устройство переходит к считыванию соответствующей ячейки СТ и исполнению считанной «программы».
По окончании исполнения очередной «программы», устройство переходит к считыванию следующей ячейки. После исполнения «программы», считанной из ячейки девять, устройство возвращается к первой ячейке.
Скорость связи по последовательному интерфейсу телефон выбирает автоматически (с целью более точного соответствия стандартному значению, при частоте кварцевого резонатора микроконтроллера 14,3 МГц, была выбрана скорость связи 1200 бит/с). Параметры посылки - длина 8 бит, без контроля четности, 1 стоп бит.
Если ответ «ОК» от СТ получен, то на экран телефона выводится номер версии программы, а его клавиатура переключается на трансляцию кода нажатой клавиши в последовательный порт (работа с СТ в таком режиме рассмотрена в [2]). Контрольный светодиод переходит в режим мигания.
Далее устройство начинает считывание «программы управления гирляндами» из ячеек памяти SIM карты телефона, «распаковывает» ее в памяти МК и «запускает» ее исполнение.
При получении кода нажатой клавиши от СТ, устройство переходит к считыванию соответствующей ячейки СТ и исполнению считанной «программы».
По окончании исполнения очередной «программы», устройство переходит к считыванию следующей ячейки. После исполнения «программы», считанной из ячейки девять, устройство возвращается к первой ячейке.
Скорость связи по последовательному интерфейсу телефон выбирает автоматически (с целью более точного соответствия стандартному значению, при частоте кварцевого резонатора микроконтроллера 14,3 МГц, была выбрана скорость связи 1200 бит/с). Параметры посылки - длина 8 бит, без контроля четности, 1 стоп бит.
«Синтаксис программ управления гирляндой»
«Программа» управления (ПУ) гирляндой представляет собой последовательность ASCII символов – строку. Каждый символ соответствует одному состоянию четырех гирлянд, подключенных к тиристорам управляемым портом Р2 МК. Используются символы шестнадцатеричных чисел: цифры «0», «1», .., «9» и латинские буквы “A”,..,”F”. Младший бит тетрады соответствует состоянию порта Р2.0 МК (далее – «Канал 0»), старший – Р2.3 («Канал 3»). Строка заносится в ячейку памяти телефона, точнее, памяти, расположенной на SIM карте в телефоне. Такой выбор места хранения программы позволяет менять ПУ путем замены SIM карты и «не портить» основной справочник телефонов СТ.
Выбранное решение (МК АТ89С51) в силу ограниченного объема ОЗУ не позволяет отрабатывать ПУ длиннее, чем 40 символов. Кроме того, в поле «ИМЯ» ячейки SIM карты не сохраняется строка длиннее, чем 13 символов (возможно, это ограничение конкретного СТ). Для полного заполнения буфера в ОЗУ МК возможно использование до трех последовательных ячеек памяти телефона.
С целью упрощения программы МК «программа» управления гирляндой может располагаться только в первых девяти ячейках СТ.
Назначение применяемых в ПУ символов приведено в таблице 3.
При занесении программы в память СТ следует придерживаться следующих правил:
Пример программы управления гирляндой - программа 1:
Ячейка 1 1*4001248421-
Ячейка 2 2=37F73.
Пояснения к программе 1:
Ячейка 1:
«1» - не играет роли, т.к. стоит до символа начала программы. Удобен для сортировки телефонного справочника – сразу видно, что первая ячейка.
«*» - признак начала программы, далее идет сама программа.
«4» - длительность одного состояния гирлянд – примерно пол-секунды.
«00» - программа будет «крутиться вечно»
«1» - HEX цифра, где «1» в младшем бите тетрады, что соответствует включенной гирлянде, подключенной к каналу 0, остальные гирлянды – погашены.
«2» - горит гирлянда канала 1, подключенного к тиристору, управляемому через порт Р2.1 МК.
«48421» - последовательное включение на пол-секунды (см выше) гирлянд каналов 2, 3, 2, 1, 0.
«-» - признак продолжения программы в следующей ячейке.
Ячейка 2:
«2» - не играет роли, т.к. стоит до символа продолжения программы. Удобен для сортировки телефонного справочника – сразу видно, что вторая ячейка.
«=» - признак продолжения программы, далее идет продолжение самой программы.
«3» - HEX цифра, где «1» в младших двух битах тетрады, что соответствует включенной гирлянде, подключенной к каналу 0 и 1, остальные гирлянды – погашены.
«7» - горят гирлянды каналов 0, 1 и 2.
«F» - горят гирлянды всех четырех каналов.
«7» - горят гирлянды каналов 0, 1 и 2.
«3» - горят гирлянды каналов 0 и 1.
«.» - признак окончания программы.
Пример программы управления гирляндой - программа 2:
Ячейка 1 1*4081248421-
Ячейка 2 2=37F73.
Пояснения к программе 2:
Та же программа, но после восьми повторов, устройство управления производит поиск следующей программы (символа «*») в ячейке 3 и далее до ячейки 9. Если программа не найдена, поиск продолжается с ячейки 1.
Выбранное решение (МК АТ89С51) в силу ограниченного объема ОЗУ не позволяет отрабатывать ПУ длиннее, чем 40 символов. Кроме того, в поле «ИМЯ» ячейки SIM карты не сохраняется строка длиннее, чем 13 символов (возможно, это ограничение конкретного СТ). Для полного заполнения буфера в ОЗУ МК возможно использование до трех последовательных ячеек памяти телефона.
С целью упрощения программы МК «программа» управления гирляндой может располагаться только в первых девяти ячейках СТ.
Назначение применяемых в ПУ символов приведено в таблице 3.
При занесении программы в память СТ следует придерживаться следующих правил:
- Программа должна начинаться с ячейки номер 1
- Программа должна заноситься в ячейки памяти на SIM карте
- Одна программа не должна занимать более трех последовательных ячеек
- Символы программы заносятся в поле «ИМЯ» телефонного справочника.
- Содержимое поля «НОМЕР» не имеет значения
- Программа должна начинаться с символа «*» («звездочка»). Этот символ должен встречаться в программе и ячейке один раз
- Первые три символа после «звездочки» имеют следующее назначение:
- Первый – определяет длительность одного состояния гирлянды (от «1», что соответствует 50 мс, до «8», что соответствует примерно 6 секундам)
- Два вторых – двузначное десятичное число (от «00» до «99») – определяет количество циклических повторов программы. Значение «00» соответствует «бесконечному» проигрыванию программы.
- Программа должна заканчиваться символом «.» («точка»).
- Признак наличия продолжения программы в следующей ячейке «-» («минус») заканчивает строку в текущей ячейке.
- Ячейка с продолжением программы, начатой ранее, должна содержать символ «=»(«равно») – с него продолжается программа.
Пример программы управления гирляндой - программа 1:
Ячейка 1 1*4001248421-
Ячейка 2 2=37F73.
Пояснения к программе 1:
Ячейка 1:
«1» - не играет роли, т.к. стоит до символа начала программы. Удобен для сортировки телефонного справочника – сразу видно, что первая ячейка.
«*» - признак начала программы, далее идет сама программа.
«4» - длительность одного состояния гирлянд – примерно пол-секунды.
«00» - программа будет «крутиться вечно»
«1» - HEX цифра, где «1» в младшем бите тетрады, что соответствует включенной гирлянде, подключенной к каналу 0, остальные гирлянды – погашены.
«2» - горит гирлянда канала 1, подключенного к тиристору, управляемому через порт Р2.1 МК.
«48421» - последовательное включение на пол-секунды (см выше) гирлянд каналов 2, 3, 2, 1, 0.
«-» - признак продолжения программы в следующей ячейке.
Ячейка 2:
«2» - не играет роли, т.к. стоит до символа продолжения программы. Удобен для сортировки телефонного справочника – сразу видно, что вторая ячейка.
«=» - признак продолжения программы, далее идет продолжение самой программы.
«3» - HEX цифра, где «1» в младших двух битах тетрады, что соответствует включенной гирлянде, подключенной к каналу 0 и 1, остальные гирлянды – погашены.
«7» - горят гирлянды каналов 0, 1 и 2.
«F» - горят гирлянды всех четырех каналов.
«7» - горят гирлянды каналов 0, 1 и 2.
«3» - горят гирлянды каналов 0 и 1.
«.» - признак окончания программы.
Пример программы управления гирляндой - программа 2:
Ячейка 1 1*4081248421-
Ячейка 2 2=37F73.
Пояснения к программе 2:
Та же программа, но после восьми повторов, устройство управления производит поиск следующей программы (символа «*») в ячейке 3 и далее до ячейки 9. Если программа не найдена, поиск продолжается с ячейки 1.
Порядок работы с устройством
Сначала разрабатываем «программу» управления включением гирлянд – «сочиняем» последовательность HEX цифр.
Затем разбиваем получившуюся последовательность на цепочки длиной до 7 цифр. Следим, чтобы количество цепочек не превысило трех для одной «программы».
Дополняем цепочки необходимыми символами старта (*), продолжения (-,=), окончания (.) и кодами управления (см.выше)
Заносим получившиеся команды в ячейки памяти на SIM карте телефона (с первой по девятую). Для СТ Siemens C60 действия такие: Меню - Телефонный справочник - Другие справочники - Телефонный справочник на SIM - Опции - Новая запись - (открывается окно для ввода информации. Из всех доступных полей для нас важны: "Имя:" - сюда вводим "программу", "Запись номер:" - здесь указываем номер ячейки на SIM карте (от 1 до 9)) - Сохранить - и т.д.
Подключаем СТ к устройству и подаем питание. Устройство начинает отрабатывать программу с первой ячейки SIM карты.
Для выбора заданной программы (из внесенных в память SIM) с клавиатуры СТ вводим номер ячейки (одну цифру от 1 до 9). Устройство считывает «программу» из заданной ячейки (либо ближайшей следующей, где обнаружится символ старта (*)) и начинает ее отрабатывать.
Сделав звонок на СТ, можно выключить гирлянды. При этом СТ подаст команду отбой вызывающему абоненту. Повторным звонком на СТ можно «запустить» устройство с прерванного места.
Затем разбиваем получившуюся последовательность на цепочки длиной до 7 цифр. Следим, чтобы количество цепочек не превысило трех для одной «программы».
Дополняем цепочки необходимыми символами старта (*), продолжения (-,=), окончания (.) и кодами управления (см.выше)
Заносим получившиеся команды в ячейки памяти на SIM карте телефона (с первой по девятую). Для СТ Siemens C60 действия такие: Меню - Телефонный справочник - Другие справочники - Телефонный справочник на SIM - Опции - Новая запись - (открывается окно для ввода информации. Из всех доступных полей для нас важны: "Имя:" - сюда вводим "программу", "Запись номер:" - здесь указываем номер ячейки на SIM карте (от 1 до 9)) - Сохранить - и т.д.
Подключаем СТ к устройству и подаем питание. Устройство начинает отрабатывать программу с первой ячейки SIM карты.
Для выбора заданной программы (из внесенных в память SIM) с клавиатуры СТ вводим номер ячейки (одну цифру от 1 до 9). Устройство считывает «программу» из заданной ячейки (либо ближайшей следующей, где обнаружится символ старта (*)) и начинает ее отрабатывать.
Сделав звонок на СТ, можно выключить гирлянды. При этом СТ подаст команду отбой вызывающему абоненту. Повторным звонком на СТ можно «запустить» устройство с прерванного места.
Выводы. Перспективы.
Описанное устройство управления гирляндой может стать хорошей игрушкой для ребенка. В некоторой степени оно может пробудить интерес к программированию и творчеству вообще!
Устройство имеет массу перспектив для развития, например:
Устройство имеет массу перспектив для развития, например:
- само-собой напрашивается добавление синхронизации МК с частотой сети 220В (как сделано у «китайских инженеров») для фазового управления тиристорами и получения «плавного» изменения яркости гирлянд. Конечно, это потребует развития «языка программирования гирляндой» и, скорей всего, замены МК на более современный и функциональный.
- без изменения аппаратных средств (чисто программными средствами) возможно добавление функции анализа принятых СМС, для загрузки программ в МК из тела сообщения. В таком случае можно дистанционно управлять гирляндой, включенной где угодно на планете.
Литература
1. AT-команды. Руководство по использованию АТ-команд для GSM/GPRS модемов.: Пер. с англ. – М.: Серия «Библиотека Компэла». ЗАО «Компэл», 2005. – 432 с.