GrabDuck

Проект RetroGSM, или как удивить бабушку

:

Для начала посмотрите тизер:

(если вдруг Vimeo отказывается работать, ссылка)
        «Сначала была идея», как гласит забытый файл в текстовом редакторе. Действительно, идея была. Она прорабатывалась, обдумывалась, а потом — р-раз — и нечто похожее было найдено уже реализованным на одном американском сайте. Впрочем, это не помешало ее претворению в жизнь, а в чем-то даже упростило.


Негласные законы жанра Pin-Up требовали, чтобы «главное» демонстрировалось только намеком, а не напрямую.
Western Electric рекламирует свои телефонные аппараты. «Соедините это в единое целое и звоните, куда угодно».
Все началось давным-давно, когда в рекламе только начали появляться полуобнаженные девушки в чулках, а в рекламе телефонных аппаратов чаще упоминалось слово надежность. Эти устройства с их единственной функцией изменили культуру, став вполне романтичными свидетелями эпохи.
Итак, чтобы напомнить о ней, я задумал сделать телефон. Казалось бы, что в этом такого? И, главное, зачем это делать, очередной велосипед? Впрочем, эти вопросы оставим на потом.

Оформление богатого внутреннего мира, или — корпус


Многие люди, решившие сделать устройство, сталкиваются с проблемой корпуса, и часто хорошее дело остается лежать на столе в виде макета, постепенно растворяясь в новых разработках, становясь донором деталей. Или пылится в шкафу, будучи мало приспособленным к использованию. Чтобы этого не произошло, было принято стратегическое решение —начать с подборки корпуса. А так как мы делаем телефон, то и корпус должен быть соответствующим. Однако, заказывать литье по трехмерным моделям —идеологически правильно, но дорого в 2012 году, так что обойдемся донором. В качестве донора нам достался телефонный аппарат с дисковым номеронабирателем польского производства FeTap-611. Просто так сложилось, что он был в хорошем состоянии, пригодном для модификации.

Из него были вынуты детали схемы, но оставлена плата, на которую был запаян переключатель под трубкой, а также родной механический звонок (Рис.4). На фото уже видна небольшая плата, о ней чуть позже.

Модуль сердца


По сути, схема устройства проста, но встал вопрос за ее сердцем — модулем сотовой связи. Был рассмотрен вариант использования начинки старого телефона Siemens, благо они управляются простыми AT-командами, но позже, волею судьбы, забросившей меня на полгода в Финляндию учиться, я получил возможность заказывать товары с Ebay, и ждать при этом всего две недели, и получать удовольствие от прихода на почту. Чего я только не поназаказывал… Но главное я получил в первую очередь — плату для прототипирования и GSM модуль Siemens TC35i. На рис. 5 приведен общий вид платы. К ней в комплекте прилагается антенна и плата для подключения аудиогарнитуры.

На плате распаян чип MAX232 для согласования уровней с COM портом. После примерки всего этого внутри телефона стало ясно, что просто перемычками к контроллеру я не отделаюсь. Пришлось отсоединить модуль, выпаять разъем шлейфа, так как в продаже он не был найден во время очередной валазки на Родину. Это было нечто, с горелым текстолитом от перегретого жала паяльника, но все закончилось благополучно. Вторая плата лишилась всех гнезд и разьемов, и была припаяна напрямую к витому шнуру телефонной трубки. К слову, в телефоне был установлен электретный микрофон, и ничего придумывать для получения нужного уровня сигнала для gsm-модуля не пришлось. Динамик также заработал сразу и как надо.

Для соединения разъема шлейфа и контроллера сначала была предпринята попытка напаять проводков напрямую к контактам с шагом в 0.5 мм. Однако, надежной эта конструкция не оказалась. В итоге я решил сделать дополнительную плату, так называемый breakout. Вытравив и напаяв основной разъем, все-таки я не смог заранее просчитать, что мне понадобится, и то, что придется переносить разъем для SIM-карты на шлейф, и это привело к некоторому хаосу из МГТФ. На рис.6 можно увидеть, как все это выглядело в ответственный момент проверки после сборки. SIM карта еще находится на обратной стороне breakout-платы.


AT...OK!

Звонок


Помните, я оставил штатный механический звонок? Настало время и его пустить в дело! Но как сделать из 3.6 вольт литиевого аккмуулятора переменные 25÷30 В? Спасибо SparkFun, которые сделали это раньше меня, и выложили все в открытый доступ. Был собран DC-DC преобразователь на микросхеме MC34063 с типовой схемой включения, и путем долгих экспериментов с катушками, резисторами и конденсаторами, на выходе я получил 30 В постоянного тока. Однако, далее надо сделать из этого переменный ток! Нам на помощь приходит драйвер двигателя, H-bridge, L298B. Ему подается два питания – для схемы управления U сх, и коммутируемое напряжение U комм. Два входа, при наличии разрешающих логических единиц, коммутируют два выхода на +U комм или на землю. При этом, U комм может быть вплоть до… это надо смотреть в спецификации на конкретную ревизию.

В качестве генератора частоты применена старая добрая микросхема ЛА7, которая генерирует пачки импульсов частотой 20-30 Гц длительностью примерно 1 сек с перерывом около 1,5 сек. Кто хочет пятерку, может посчитать скважность. Параметры частоты задаются настроечными резисторами. Для того, чтобы все это не съедало во время простоя батарейку, весь блок звонка подключается по сигналу с контроллера через полевой транзистор. Вся схема потребляет примерно 0.4 А во время звонка. Конденсатор нужен для сглаживаия просадки напряжения во время включения звонка. Рекомендуется подобрать частоту звонка для достижения частоты резонанса самого звонка, и тогда он будет громче звенеть. Использована макетная плата, так как под рукой не было утюга, хлорного железа, сверлильного станка и текстолита, по понятным причинам обратную сторону не покажу, впрочем, макетка с соединенными по три отверстия пятачками из меди очень удобна, хотя и не обошлось без МГТФ. Для обдумывания трассировки были напечатаны листы, изображающие макетку.

Контроллер


Небольшой «отказ от ответственности за срач в комментах» для тех, кто зарабатывает на хлеб ассемблером и Си. Я ценю свое время, и в данном случае выбрал платформу, прости господи, Arduino в качестве управляющего контроллера. Она позволила быстро выдать работающее устройство, а особого быстродействия тут и не требовалось.

Избыточность основной платы была решена путем заказа модуля Arduino-mini, который самый компактный, несет микроконтроллер Atmega328 и не имеет ничего лишнего. После тестирования кусков скетча, отвечающих за считывание органов управления (поднятие трубки, набор номера, общение с gsm-модулем), все это было собрано в единый скетч. В принципе, ничего сложного тут не было, для подавления дребезгов контактов была применен программный метод. Внутренних подтягивающих резисторов контроллера хватает для уверенной работы.

Питание


Настал самый сложный этап, как оказалось. Задача была все это сделать мобильным, соотетственно, на аккумуляторе. Чтобы упростить себе жизнь, был заказан li-ion аккуммулятор без защиты, а также держатель для него (типоразмер 18650) и плата защиты, отключающая потребителя при снижении напряжения на аккумуляторе до 3 В. Несмотря на комментарии на форуме известного онлайн магазина китайчатины, характеристики прибывшего были вполне сносные. Позже на самодельном стенде я замерил емкость аккумуляторов, и она оказалась не ниже 90 % обещанной. Возможно, я просто везучий.

Сложностей возникло две:
— при входящем звонке резко возросший ток вырубал защиту, возможно, это ее фича, но скорее баг, и в итоге модуль терял связь с сетью.
— контроллер жрал вместе с модулем непозволительные 60÷100 мА. По расчетам, при таком раскладе аккумулятора надолго не хватит.
Первая проблема была решена путем включения схемы звонка в обход защиты. Это не очень хорошо, но уж очень надоело возиться с выбором контроллеров защиты от переразряда аккумулятора. По идее, если контроллер будет обесточен, то он не запустит звонок, то есть не откроет полевой транзистор. Смоделировать эту ситауцию так и не получилось, но вскоре, наверное, через неделю, я все же дождусь разрядки аккумулятора…
Вторая проблема решилась путем внимательного чтения документации на gsm-модуль. Командой AT+CFUN=0 модуль переводится в состояние сна. Потребление снижается с 10 мА до 3 мА (типовые значения). При этом он на связи с базовой станцией, и может проснуться от входящего звонка, или встроенного будильника. Чтобы разбудить модем, нужно линию RTS посадить на землю.
Энергопотребление контроллера решилось вдумчивым чтением datasheet и примером, найденным в сети. Контроллер вводится в состояние сна если в течение 10 секунд не совершается никаких манипуляций с ним и трубка положена на аппарат. Просыпается он по ниспадающему фронту на выводах, имеющих вектор прерывания, один “следит” за поднятием трубки, второй — за линией RING gsm-модуля.
В итоге общее потребление снизилось до 0.5÷1 мА в режиме простоя, если верить моему авометру. В режиме разговора редко поднимается до 100 мА, думаю, это из-за хорошего покрытия сети.
Зарядка аккумулятора производится от приобретенного модуля ЗУ на контроллере TP4056, схема его проста, несколько резисторов, на входе 5÷7 В, два светодиода индикации работы. Для подключени блока питания в технологическом отверстии телефонного аппарата устроен штырьковый разъем, удобно закрывающийся крышечкой.

Морошка на десерт


Чего нам еще не хватает? Конечно, сигнализации о том, что модуль успешно соединился с сетью и готов к звонку. Для этого через резистор соединяем один из выводов, идущих на динамик, с контроллером, и подаем “гудок” стандартной для АТС частоты, соответствующей сигналу “ответ АТС” в момент поднятия трубки, после прохождения проверки регистрации модуля в сети GSM.
Также добавлены некоторые специальные функции, для реинициализации модема или отключения его от сети, если это необходимо. Все это делается путем набора трехзначного сервисного номера. В ответ контроллер пищит в трубку спец. последовательностью. Если цифр было набрано больше 7, то первая «8» заменяется на «+», чтобы корректно набрать номер.

Сборка


Настало время собрать все в корпус. Держатель аккумулятора, плата звонка, модуль были закреплены на прочный двусторонний скотч на вспененном полиэтилене. Держит хорошо, но смывать его клей – не самое приятное занятие.
Удалось все собрать без вспомогательной платы с разъемами номеронабирателя и т.п., но проводов получилось прилично. Частично их количество увеличилось из-за необходимости вывода последовательного порта контроллера и модуля к технологической нише на дне аппарата для диагностики аппарата и обновления прошивки, где также расположился разъем SIM-карты. Bluetooth? Нет, спасибо, нам хватит.

Неприлично замотанные красной, а не синей изолентой – платы защиты и зарядки аккумулятора. Нет, они не греются настолько, чтобы это учитывать.

Торжественная сборка и завинчивание последнего винта, и… вот, главный инструмент для развлечения и “троллинга” прохожих и посетителей кафетериев. Выдает его только антеннка, но какие люди делают глаза, когда слышат гудок в трубке!

Характеристики проекта

развернуть
Стоимость деталей составила примерно 3000 рублей.
Заняло неизвестно сколько времени, но можно сделать за месяц по выходным, если не встретить особых граблей и все купить заранее.
Блок-схема начинки устройства:


Планы


Доработать сервисные номера аппарата. Добавить возможность управлять телефонной книгой, хотя возможность звонить по номерам из книги на SIM-карте уже есть. Также как и возможность набрать последний набранный номер. Если вдруг когда-нибудь кто-то захочет сделать что-то похожее – сделайте печатную плату. Очень вас прошу.

Послесловие


Хочу сказать спасибо:
всем тем, кто не отправил меня раньше времени в психушку;
товарищу Паше, сделавшему первый звонок из соседней комнаты нашей квартиры на Teknologiapuistonkatu; соучастникам съемки видеоролика, «Брынзе» за некогда вкусные чебуреки.
И, напоследок, фотовознаграждение для тех, кто дочитал до конца.