Однажды у нас с друзьями появилась идея, почему бы не сделать так, чтобы на старом дисковом телефоне можно было набрать какое-то сообщение и отправить его. А и правда, подумал я, тем более мне давно хотелось сделать что-нибудь на базе Arduino, ведь платформа доступная и простая в изучении. Да и идея с вдыханием новой жизни в винтажный телефонный аппарат показалась привлекательной. В результате получился Tweephone.
Небольшая видео-демонстрация, а ниже расскажу о процессе создания.
Чтобы была возможность набирать символы, я выбрал принцип набора текста на мобильниках с 12-ти кнопочной клавиатурой. Например, чтобы набрать букву «a» нужно провернуть двойку один раз, а для буквы «f» — тройку три раза.
Недолго думая, я организовал среди друзей поиск собственно самого аппарата (который был найден у бабушки моего приятеля), достал Arduino и LCD экран 16*2 строчек, паяльные принадлежности, свободное время, ну и острое желание сделать что-то руками.
Заполучив Arduino, я сразу подключил к нему LCD, покрутил тестовые примеры для светодиодов, кнопок и LCD экрана. Найти их можно на сайте Arduino.
Сняв крышку корпуса телефона и изучив внутренности, я обнаружил, что работа самого номеронаберателя очень проста: он имеет 3 контакта, один из которых замыкается с двумя другими. С первым — в случае, когда диск прокручивается, а со вторым — по умолчанию замкнут, но в процессе того, как диск возвращается в исходное состояние, размыкается определенное количество раз, в зависимости от номера, относительно которого диск начинал движение. Это всё было видно невооруженным взглядом, но дополнительно убедиться в правильности работы можно используя мультиметр, который пищит при коротком замыкании контактов. Также стало понятно, что состояние “трубка на аппарате”/”трубка снята” тоже можно использовать программно, потому что это действие попросту замыкает-размыкает контакты кнопки на плате телефона.
Учитывая эти знания, стало понятно, что грубо говоря, я имею дело с 3-мя кнопками, данные с которых нужно считывать программно, а всё остальное — дело алгоритма. Поэтому каждую из них я подключил по схеме с сайта к digital-портам Arduino, и собрал всё это дело на макетной плате.
Осталось открыть среду разработки и написать код, который бы считывал импульсы с digital-портов, преобразовывал их в символы и отправлял в твиттер. Так как плат коммуникаций для Arduino под рукой не оказалось, то решено было подключать телефон по USB компьютеру, на котором запущен скрипт, который считывает строки из Serial-порта Arduino и постит их.
Так как алгоритм всего процесса достаточно тривиален, то весь код тут приводить не буду, расскажу только о том, как считываются данные, набранные с диска.
Во-первых, чтобы работать с digital-портом, нужно указать, каков режим этого порта при инициализации:
const unsigned int diskState = 7;
const unsigned int diskCounter = 8;
Как видно из листинга, я использовал 7 и 8 порты для подключения непосредственно номеронабирателя.
Далее, внутри бесконечного цикла, в котором происходит выполнение сценария, нужно проверять состояние первого порта, и если на нем есть логическое “да”, то это значит, что пользователь начал крутить диск. Пока диск не вернется обратно, нужно увеличивать счетчик каждый раз, когда второй порт разомкнут.
unsigned int prevDiskCountState = HIGH;
void loop() {
unsigned int currDiskState = digitalRead(diskState);
unsigned int currDiskCountState = digitalRead(diskCounter);
Такая же проверка осуществляется для статуса телефонной трубки, и в случае, если есть текст и трубку положили, выполняется запись строки в Serial порт.
Serial.println(msg);
А на компьютере запущен небольшой Ruby-скрипт, который считывает строку и отправляет ее в твиттер.
require "serialport"
require "twitter"
# params for serial port
port_str = "/dev/tty.usbserial-A900cdNp"
baud_rate = 9600
data_bits = 8
stop_bits = 1
parity = SerialPort::NONE
while true do
line = sp.gets
if line
puts line
client.update(line)
end
end
sp.close
Убедившись, что всё отлично работает, я перенес всю схему с макетной платы на монтажную, и поместил всё внутрь корпуса, предварительно выпилив отверстие для дисплея.
Статья конечно хороша, на какую пользу для сообщества несут ваши возгласы? Благодарность можно плюсом выразить или написать сообщение, если очень хочется. Подзапарили просто такого рода комменты в начале каждой годной статьи.
Но на самом деле годная статья может оказаться интересной только одному — двум читателям. И писать статью, а в результате не получить обратной связи хоть бы в подобном возгласе неприятно. А так хоть видно, что не просто так старался и хоть один ее прочел…
А еще я заметил (а может мне показалось), что самый первый коммент имеет шанс набрать много плюсиков или минусиков (как фишки лягут). Вот и идет борьба за место под рекламой.
Да не нужно мне плюсов. Вот сейчас ты сказал, не напишу ни одного комментария, не дай бог тебе не понравится.
А я люблю поблагодарить автора прелюдно, после того как поставлю плюс за статью и в карму. Потому как человек — существо эмоциональное. Вот требовала у меня душа всячески отблагодарить автора, я это сделал тем способом, который пришел в голову. И еще, смоделируйте ситуацию, когда бы оскара вручали при закрытых дверях в кабинете один на один, без камер и свидетелей. Или евровидение проходило бы в сарае, прослушали, оценили, сказали сухо по ТВ и всё. Да показухой попахивает, но это у вас под носом, я писал коммент от души и не для плюсов.
Хорошо, а теперь представьте, что каждый будет писать в каждом понравившемся ему посте «Спасибо, автор молодец!». Будет ли удобно искать среди кучи таких комментов полезные? Думаю, что нет, хабр просто превратится в отделение фишек.нет.
Хочется поблагодарить автора? Как я и писал, ставьте +1, ну или напишите ему сообщение лично.
Может я конечно в чем то не прав, но имхо, чем меньше бессмысленных комментариев, тем лучше пост.
Дык и сухими «man»ами статьи не должны быть. Вам не хватает сухости в доках? Никто же санта-барбару не устраивает здесь. Плюсодины, первонахи и всякая такая лабуда минусуется правильно, ибо по моему мнению не интеллектуальна и не несет вообще никакой информации. Вообщем, чего я распинаюсь, делайте, что хотите, не нравится — минусуйте. Для того она(карма) и нужна. Удачи
Оба «красавцы».
В первой же ветке обсуждения часто и густо наблюдается какой-то идеологический/культурный/воспитательный/мировоззренческий и далекий от IT срач не по теме статьи — вот это беда для хабра реально. Блин, и я туда же…
Это можно было бы сделать без проблем, просто соответствующего Shield не оказалось под рукой.
Я вообще задумывал сделать с Wi-Fi или GPRS, чтоб совсем автономно.
Не-не-не! Никакого Wi-Fi! Только теплая ламповая телефонная лапша. В крайнем случае — витая пара.
Еще заметил в вашем телефне советский DIN-разъем (кстати, для чего он был изначально?), было бы здорово вывести USB на него.
Не, самый смак это подцепить к ардуине обычный диалап модем и реализовать все это. Получится совсем автономный девайс втыкаемый как и обычный телефон в телефонную розетку =)
Функциональным быть, возможно, и не мешает. Вот только номер мобильного телефона в привате является основным идентификатором клиента. Таким образом, «привязывая» на том сайте номер телефона к твиттер-акку вы, вероятно, осуществляете в приватовской базе привязку этого акка ко всем остальным существующим в этой базе данным о вас. Не то, чтобы это совсем плохо, но не мешало бы как минимум сообщать об этой «фиче» перед регистрацией.
А те другие сервисы тоже имеют в распоряжении всю идентифицирующую информацию о вашей личности — ФИО, номера документов, физ. адрес, и т.д.?
Поведение привата здесь не столько опасно, сколько просто некрасиво. Не секрет, что они стараются собрать как можно больше информации на каждого чтобы потом ей банально «барыжить». Просто стоит о факте сбора информации хотя-бы предупреждать. Кроме того — банк должен заниматься деньгами, а не всякой фигнёй.
Согласен с тем, что они те еще хитрюги.
Но я не вижу особой опасности в том, что они свяжут мой аккаунт клиента с моим аккаунтом твиттера.
Я же не виртуал, и твиттер у меня частный. Если я буду чувствовать что-то неладное — сделаю твиттер приватным.
Я уж подумал, ваш телефон твиты через теелфонную сеть шлёт, глаза мои загорелись, начал судорожно искать, как вы это реализовали… а тут через USB к компу… немного разочарован. Но статья всё равно понравилась.
айфон сложнее руками собирать, потому как прямоугольник с закругленными углами и металлическим ободком уже кем-то запатентован. А оно нам надо, по судам таскаться?
Айфон, как уже готовое изделие, оффтопичен данному топику, который называется «Сделай сам».
Вот если бы обсуждаемый в статье телефон подключался к айфону, то он (айфон) бы уже не был оффтопиком :)
На самом деле, вся статья про теплый ламповый твиттер-клиент пульсовым набором настраивает на ироничный лад.
Я ни в коей мере никого не хотел обидеть.
А говоря про кнопочный телефон я имел ввиду что-то типа телефонов с АОН середины 90-х, когда он классно бибикал при нажатии на кнопки. Что то типа такого http://i015.radikal.ru/1108/01/98b882dca3a1.jpg
Есть и более старые модели кнопочных телефонов. Корпус похож на такой, как у меня, только вместо диска — кнопки.
Я имею ввиду, что можно было сделать и с таким, но чем старей — тем лучше же.
Пробел — нолик, бэкспейс — нолик 2 раза.
Смены раскладки нет, потому что LCD дисплей достался без кириллицы.
Но для этого есть незадействованная кнопка на корпусе, например. Так что реализуемо.
Когда я увидел картинку, первая мысль была, как осуществлять набор?
И первое решение — вводить номер ASCII кода из трёх цифр.
А как у вас реализовано стрирание буквы?
Найн-найн-найн. Только тёплый ламповый скрипучий принтер с иголкой. И дисплей надо сегментный ставить! (И две радиолампы просто для красоты воткнуть куда-нибудь)
Почему только Apple? Этот символ широко известен и входит в рекомендательные стандарты раскладок и обозначений для клавиатур (другое дело что не все их придерживаются) и применяться по сути должен везде для обозначения «удаления слева». Есть и зеркальный ему символ для «удаления справа», Apple его как и положено использует для кнопки delete. В 90е их легко можно было встретить на многих PC клавиатурах, сейчас реже, но тоже можно найти.
У Apple нет никаких собственных символов, все из стандартов, включая ⌘ который многие ошибочно приписывают исключительно им.
Предлагаю аккуратненько вынуть дисплей, наждачкой зачистить кивой край на корпусе, облачить его в аккуратный чёрный кембрик, а дисплею сделать какое-нибудь крепление на базе старый пластиковых карточек (легко режутся, легко гнутся, легко клеятся)
Вы создали вполне шпионский девайс, вынуть экран, чтобы все выглядело по-честному, допилить соединение. И им можно пользоваться в местах, где за жителем квартиры следят, а ему нужно срочно передать сообщение, вот он делает вид, что набирает номер.
До них, конечно, дойдет, но не сразу. Как это обычно бывает:
— Ну, что объект разговаривал за последние сутки?
— Нет, постоянно пытается куда-то позвонить, но в последний момент передумывает.
— Хм, что-то здесь не так.
Когда не знаешь, что нужно искать, то не сразу догадаешься.
В московском политехническом музее в отделе телефонной связи стоит отечественный телефон (выпуск первой половины 90-х) для слабослышащих, с клавиатурой и экранчиком — я сначала подумал вы нечто подобное приспособили.
Вам нужно придать это огласке.
Первый девайс ооочень красивый. Садиться с ним работать наверное очень приятно.
А второе просто великолепно исполнено. И очень клёвое сочитание технологий разных времен! Что я тоже в своем проекте пытался передать.
Меня одного коробит, что автор забыл надфилем подпилить окно для LCD-дисплея? Нету своего — так у соседей спросить можно, я сам так делаю, тут ничего зазорного. Но ТАКОЕ и на ОБЩЕЕ обозрение… Мне бы стыдно было.
Ну просто его бы энергию (автора) да в полезное русло, к примеру картофель копать в коллективном хозяйстве, или раз уж у автора душа к радиодеталям лежит, так выпаивать ценные транзисторы из «бабушкинских» артефактов и передавать их в отечественные предприятия. Там сейчас кризис.
Доработать напильником и выкинуть в форточку нах!!!
А зачем дорабатывать, подумает любознательный читатель. Правомерный вопрос. Все за тем же, зачем автор страдал и корпел над бесполезным устройством.
А зачем в форточку, ведь люди могут проходить. Так ведь иначе удовлетворения не будет.
Не то чтобы я особо в бога верил, но мысль не покидает, хоть убей, изъявлю:
«Спасибо, Господи, что я не такой долбоёб. Что мне ещё есть, куда потратить ценнейшее, что у нас есть — время. Спасибо. Спасибо, что я не докатился до такого...»
комментарии (152)