630

Вторая жизнь таксофона или Чем я на майских праздниках занимался

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

Входящий звонок

Исходящий звонок

Итак, где-то полгода назад работали мы в одном из жилых домов. И встретился мне там таксофон, брошенный и всеми забытый. Само собой, моё сердце не выдержало и решил я приютить страдальца у себя. Но монтировки под рукой у меня тогда не оказалось: 4 дюбеля из пистолета ПЦ-84, загнанные по самую шляпку в бетонную стену - это вам не шутки.

Монтажный пистолет ПЦ-84 со всем знакомыми дюбелями и строительными патронами (прям снова почувствовал запах приключений и родительских звездюлей)

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

Решил делать всё антуражно, чтобы без всяких цифровых пищалок и прочего. Но без монетоприёмника, просто телефон - не хотелось переусложнять проект. Под рукой у меня оказались arduino uno, китайская arduino nano, китайский же GPRS-шилд на модуле SIM900, утащенный откуда-то звонок-колокольчики от старого телефона и еще немного радиорассыпухи по мелочи. Не то, чтобы это всё было нужно в домашнем хозяйстве, но раз начал заниматься мелким электронным колхозом, становится трудно остановиться.

Перво-наперво начал разбираться с кнопками. Как выяснилось, ничего сложного в них не было, обыкновенная матричная клавиатура, поэтому библиотека Keypad и несколько строк кода позволили легко и просто узнавать какая кнопка нажата.

Далее пришло время разобраться уже с самой логикой работы телефона. В процессе работы я нашел похожий и отлично задокументированный проект, который и использовал в качестве базы. Сначала ничего не заводилось - библиотека iarduino_GSM была написана под другой GPRS-модуль и не хотела работать с моим. И я уже начал переписывать основной код без использования библиотеки, отправляя одни лишь AT-команды, но решил поковыряться в коде библиотеки, тоже снабжённой, кстати говоря, отличными и подробнейшими комментариями. Спустя несколько часов проблема в библиотеке была найдена и исправлена, а также в процессе работы будут переписаны ещё несколько необходимых для работы функций (в основном были поправлены AT-команды, которые отправлялись на GPRS-модуль).

Дело пошло веселее, и вот я уже могу звонить и отвечать на звонки. На скорую руку была переделана трубка (немного изменил порядок проводов) и переделан капсюль микрофона: в нём был встроенный усилитель, который мне был не нужен - обрезал все ненужные дороги и подпаялся напрямую. Вуаля - теперь я могу ещё и разговаривать! А ещё слышать, что мне отвечают!

Следующие два дня прошли в модернизации, дописывании и оптимизации кода. Если в паре слов, то автор оригинального проекта в угоду простоте и читаемости кода не стал углубляться в даташит модуля и его AT-команды. А я стал. Поэтому гудки в трубке у меня самые настоящие - они генерируются самим GPRS-модулем, а не пьезопищалкой, как в оригинале. Также при наборе номера в трубке слышны те самые DTMF-сигналы - спасибо интернетам за функцию, которая позволяет генерировать их правильно. Этот функционал есть и в GPRS-модуле, но срабатывает он очень медленно, поэтому пришлось идти обходным путём. Кроме того, я при наборе номера не стал привязываться к его длине, а сделал отправку вызова, если телефон за 3 секунды не дождался следующей цифры (всегда бесило, когда при наборе номера с бумажки телефону было невтерпёж и он начинал вызов не дождавшись, пока я завершу набирать номер).

Далее встал вопрос с рычагом трубки - в самом таксофоне доступных контактов, которые бы замыкались при нажатии рычага нет. Сначала пытался пристроить куда-нибудь концевой выключатель, но места ему так и не нашёл. На помощь пришла моя работа: взял охранный датчик ИО-102-1 (по сути простой геркон) и вклеил его в корпус на эпоксидку, а на шток, который толкает рычаг трубки, приклеил магнит, который отшелушил из того же датчика.

Пришла очередь звонка - на предыдущей фотографии можно его увидеть. Звонок тоже необходимо было переделать, поскольку я планировал питать всю систему от 12 вольт постоянного тока, а катушка рассчитана 60-120 вольт переменки (именно поэтому, собственно, звонок и звенит). У ребят с работы очень удачно была найдена дохлая железка с живым соленоидом на 12 вольт. Его-то я и поставил. Немного сверления, немного пайки (полевой транзистор, стягивающий резистор, подстроечный резистор для настройки силы втягивания сердечника и диод для защиты транзистора и гашения импульса самоиндукции соленоида) - и вот готов звонок для нашего аппарата.

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

Вроде бы всё работает. Дописываю и причёсываю код, правлю последние косяки, пишу комментарии, чтобы через месяц не забыть что это за хрень я тут наваял. Осталось упаковать всё в корпус таксофона. Немного пилю бормашиной, чуть больше сверлю. Перепаял коммутацию в клеммнике и разъёме под себя.

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

Кот, скотина, потоптался на ноутбуке. Неоднократно Т_Т

Я дико доволен получившимся результатом. Функционал телефона выполняется корректно и полноценнно:

- при входящем вызове звучит "правильный" звонок - тарахтение по колокольчикам;

- ответ на звонок поднятием трубки;

- входящие и исходящие вызовы (в том числе на городские и на экстренные номера даже в старом формате - 01 - 04) работают без нареканий;

- при поднятии трубки звучит гудок;

- при наборе номера в трубке звучит DTMF-сигналы;

- при окончании разговора в трубке звучат короткие гудки (причём все эти сигналы генерируются в соответствии со стандартами);

- разговор можно завершить опусканием трубки на рычаг.

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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества