Как стать автором
Обновить

USB пишущая машинка

Время на прочтение 4 мин
Количество просмотров 16K


Портативная пишущая машинка Unis tbm de Luxe, произведена в Югославии, г. Сараево. Самый распространенный экземпляр на постсоветском пространстве, клавиши на кириллице.

Сочетание красного и белого цветов корпуса привлекает внимание, и всегда присутствует желание использовать машинку в качестве элемента декора. Но, зачем загромождать комнату неиспользуемыми вещами. Поэтому, поставлена цель: приспособить машинку к современным условиям так, чтобы при печати вывод символов производился на ПК.

Электроника


В качестве контактов для клавиш, предусмотрены герконы. Для контроллера управления матрицей контактов выбрано устройство Pro Micro, на базе микроконтроллера ATmega32U4.

Исходник написан на языке Си, как основа использовался библиотечный код LUFA для клавиатуры. Библиотека LUFA написана специально для бесплатного компилятора AVR-GCC. Прошивка производилась по SPI. Есть второй вариант прошивки, через загрузчик и по USB, но тогда нужно выводить кнопку сброса на выводы МК (Reset и GND).

Алгоритм программы, следующий:

  1. Четыре ввода-вывода настраиваются на вывод (сканирующий), двенадцать на ввод (опроса). К вводам (программно) подтягиваются резисторы (PullUp). В прерывании, на каждый вывод, последовательно устанавливаем «0», по циклу 1110-1101-1011-0111 и так далее.
  2. В цикле с бегающим «0», осуществляются проверки условий, если при каком-то условии присутствует «0» (клавиша нажата), то это условие маркируется соответственно нажатой клавише column=х, line=у.
  3. В функции обратного вызова CALLBACK_HID_Device_CreateHIDReport(), осуществляется проверка условий для каждого значения column=х и line=у, а при его выполнении отправляется соответствующий сканкод символа на компьютер.
  4. При одном нажатии должен выводится только один символ, не как на обычной клавиатуре.

Это не совсем изящный вариант алгоритма, но он рабочий!

Обязательно, к выводам сканирования (column) микроконтроллера, должны быть подключены катоды диодов, а аноды на каждую из четырех колонок матрицы контактов. Это необходимо выполнить, для исключения замыкания при одновременном нажатии нескольких клавиш на разных колонках (column).

Клавиши «Верхний регистр» и «Надстрочный» необходимо вывести отдельными линиями, для упрощения кода. Клавиши «Ввод-перенос на другую строку» и «Пробел» выводятся отдельными линиями, из-за конструктивных особенностей машинки, но их возможно внедрить в матрицу.

К сожалению, выводов Pro Micro не хватило, буквально для одной клавиши. Я сделал ошибку: поместил геркон клавиши «надстрочный», в матрице с остальными. Можно было сделать наоборот, контакт кнопки пробела внедрить в матрицу, а надстрочный вывести отдельной линией! Но плата была уже собрана и покрашена, пришлось усложнять код. Есть еще одна недоработка, но она продиктована конструктивными особенностями пишущей машинки: число выводов 4 и вводов опроса 12, дает нам 4х12=48 клавиш, при используемых 4+12=16 вводов-выводов. Я мог бы, при количестве 48 клавиш, использовать 8 выводов и 6 вводов опроса, тем самым освободив 2 недостающих ввода.

Принципиальную электрическую схему рисовать нет смысла, все соединения можно выполнить по таблице, ниже.

Таблица сканирования матрицы контактов, для пишущей машинки



Примечание:
Красным цветом указаны символы для скан кодов.
В ( ) указаны вводы-выводы Atmega32U4. В [ ] указаны вводы-выводы PRO MICRO

На ПК включена русская раскладка!

При column 1 включаются комбинации скан кодов. При column 2-4, верхний регистр включается при удерживании или фиксации клавиши «регистр»

Механика


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

Для этого машинка была доработана фиксатором. При закрученном винте каретка фиксируется, при открученном получаем обычную пишущую машинку + USB клавиатуру на кириллице, в одном устройстве.



Это плата из одностороннего фольгированного гетинакса, на которой монтированы герметичные контакты. Печатная плата, с лицевой стороны, окрашена серебристым цветом, чтобы вписать ее в дизайн устройства. Ранее, на месте платы, была установлена наклейка такого же цвета.



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

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

Герконы расположены с обратной стороны платы, в противоположной стороне от рычагов. Это сделано специально, чтобы исключить повреждения герконов, при возможном касании рычагами печатной платы. Хотя рычаги не касаются платы, но на всякий «пожарный», принято такое тех. решение.



Датчики для пробела и регистра в сборе. Хоть материал и является парамагнетиком, герконы в такой оболочке срабатывают стабильно.



Устройство в сборе, но без контроллера! Контроллер будет расположен в левом боку (по фотографии), где свободные разъемы.



Датчик клавиши «Ввод-перенос на другую строку» устанавливается на каретке и соединяется с неподвижной частью машинки гибким многожильным кабелем. Внутри каретки, петля кабеля сворачивается и разворачивается, в зависимости от ее положения.



Устройство не несет какую-то прикладную пользу, разве что появилось больше навыков, опыта и знаний, при сопутствующих работах. А если появились новые знания, значит время потрачено не зря!
Теги:
Хабы:
+61
Комментарии 15
Комментарии Комментарии 15

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн