Калькуляторы Singer некогда были довольно популярными устройствами. Сейчас в рабочем состоянии их осталось не так и много. Один из таких калькуляторов, модель Singer/Friden EC1117, попал в руки инженера Эрика Кохена (Eric Cohen), который модернизировал устройство, добавив несколько современных функций.
Инженер разобрал систему, и установил внутри Raspberry Pi для управления газоразрядными лампами дисплея (Hitachi CD-90). Далее все было просто — умелец установил UDP сервер и написал приложение под Android для управления всей системой. Калькулятор остался в работоспособном состоянии, все прежние функции работают как и прежде.
На момент запуска продаж калькулятора его розничная цена составляла $445 ($2 900 на сегодня с учетом инфляции). Калькулятор, несмотря на некоторое подобие портативности, большой. Переносить его неудобно.
Есть даже ручка для переноски
И Эрик принял решение превратить его в часы, добавив и функцию цифрового дисплея. Управление работой часов, как и говорилось выше, производится при помощи приложения Android.
Характеристики Singer/Friden EC1117:
- Производитель: The Singer Company, Friden Division
- Модель: EC-1117
- Дата выпуска: 1971 год
- Производство: Япония (Hitachi)
- Цена на момент запуска продаж: $445
- Вес: 3,5 кг
- Size: ширина 26,6 см; длина 30 см, высота 10 см
- Питание: 13 Вт, 117V AC, 50/60 Гц
- Дисплей: газоразрядная индикация, Hitachi CD-90
- Чипсеты: Hitachi MOS LSI, 9 чипов
- HD3201, HD3202, HN3203, HD3203, HD3205, 2-HD3206, HD3207, HD3208
- Разрядность дисплея: 12
- Математические функции: арифметические действия — умножение, деление, вычитание, сложение
Основные шаги, выполненные разработчиком:
- Реверс-инжиниринг интерфейса дисплея. Эту операцию пришлось проводить без схем и спецификаций.
- Подключение Raspberry Pi к винтажной электронике с относительно высоким напряжением подведенного питания;
- Написание программы для эмуляции протокола шины дисплея калькулятора.
- Запуск UDP сервера для обработки удаленных запросов, полученных по беспроводной связи:
- Написание приложения под Android;
- Клиент UDP, простой ASCII-протокол;
- Поддержка переключения между несколькими форматами отображения даты и времени;
- Выставление любых значений для каждой из ламп дисплея.
Для того, чтобы осуществить задуманное, пришлось поработать с осциллографом — нужно было провести реверс-инжинирнг интерфейса дисплея EC1117. Как только инженер получил необходимые данные (интерфейс передачи данных и протокол), последовал следующий этап — подключение Raspberry Pi 2B.
К GPIO Raspberry калькулятор был подключен через преобразователи логических уровней 4504. После этого была написана небольшая программа на Си для программной эмуляции протокола шины. Она позволяет декодировать простой ASCII протокол, обеспечивающий возможность менять режим работы газоразрядного дисплея калькулятора по беспроводной сети. В частности, разработчик смог устанавливать форматы даты/времени и задавать значение любой из ламп дисплея устройства.
Разработка Android-приложения помогла автору больше узнать об Android ОС и принципах написания приложений под эту операционную систему. Для управления калькулятором используется схематичное изображение его дисплея. По умолчанию на дисплее калькулятора отображаются дата и время, включая секунды. При свайпе право добавляются еще и доли секунды. При свайпе влево значение восстанавливается по умолчанию. Значение на каждой из ламп дисплея можно изменять в приложении при помощи прокрутки. Управлять можно несколькими значениями индикатора одновременно. Есть режим таймера. Создана и утилита, позволяющая настраивать значение IP и порта.
В будущем Эрик планирует обеспечить работу системы с ОС реального времени (Xenomai, PremptRT и другие). Он также еще не прояснил для себя, как работает выставление десятичной точки, это в планах. Возможно, калькулятор сможет работать в качестве медиацентра (что здесь подразумевается под медиацентром, автор не пояснил).
Вся техническая информация по проведенной работе доступна в документе (.pdf). Исходный код программного эмулятора протокола шины — здесь. И здесь — программа под Android для управления дисплеем.
Автор: marks