User Tag List

Показано с 11 по 20 из 40

Тема: ZX UniKeyboard или как подключить к Спеку клавиатуру произвольной конфигурации

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ZX UniKeyboard или как подключить к Спеку клавиатуру произвольной конфигурации

    Наверное у каждого спектрумиста есть в запасах какая-нибудь компактная и удобная клавиатура от ноута или еще чего мобильного, которую бы он хотел видеть на своем спеке, но обычно такие идеи отпадают, если клавиатура пленочная и не может работать в формате PS/2...

    А начиналось все здесь. Бравый форумчанин CLR опубликовал решение для переделки любой клавиатуры в формат PS/2, и это отличное решение, но были сложности: большинству Спеков нужно не PS/2, а простую матрицу 5х8 - это раз; надо было как-то выяснять конфигурацию клавиатурной матрицы - это два. Да и сама реализация PS/2 в простых контроллерах, которые работают с PCшной клавой, далека от стандарта - и в этом случае это приводило к "несовместимым диалектам формата PS/2" )

    Когда случились новогодние каникулы, я начал призадумываться над тем, как это реализовать иначе.
    Учтя все идеи и обсуждения вышеупомянутой ветки, где я немало намусорил (сорри), было получено вот такое решение:
    https://github.com/valerium-labs/zx-unikeyboard

    За основу взята разработка andykarpov для клавиатурного контроллера на AVR+CPLD, только AVR получает данные не с PS/2, а с нашей ноутбучной матрицы, а в CPLD реализован регистр состояния клавиш и спецкнопок Спека, который Спек может опрашивать как свою штатную клавиатуру (и если кратко - то да, без /WAIT).
    Ног надо было побольше, поэтому экспериментировал на ATMega32 для чтения матрицы, а CPLD-часть хоть и удалось упростить, но ПЛИС осталась та же (7128 или 3128). Сейчас поддерживаются клавиатуры до 26 пин.

    Как предлагал Eltaron, реализована идея обучаемости схемы. То есть изначально в атмегу заливается обучающая прошивка (она же известна как "тестовая"), которая через компорт при помощи "специальной программы" (скриптик на autoit3) транслирует номера линий нажатых клавиш. Когда опрошена вся клавиатура и получены для каждого клавишного имени ее матричные координаты, строится описание массива клавиш, которое затем компилируется вместе с исходником "рабочей" прошивки. С ней контроллер уже используется на Спеке.

    Как это использовать - более подробно изложено в доках проекта, например в этом

    Сейчас реализовано на макетке на atmega32-16au и epm7128slc84, но плату развел и заказал под epm3128atc100, жду доставку, поэтому боевой вариант еще не обкатан.

    Отлаживал на клавиатуре Asus X200, сейчас добыл еще клавиатуру от Asus X551 на 24 пина, 102-клавишная. На адаптацию такой клавиатуры с нуля уходит минут 10-15, причем бОльшую часть времени занимает составление клавиатурного шаблона с именами клавиш (разумеется, я делал это только единожды). Шаблон можно теперь и не писать в нуля, а взять за основу имеющийся - чтоб попасть в имена клавиш и почти не править исходник рабочей прошивки.

    Ну и вот как это сейчас выглядит:

    Программа "обучения"
    Нажмите на изображение для увеличения. 

Название:	ZXUK_reading.PNG 
Просмотров:	337 
Размер:	19.5 Кб 
ID:	74483
    Нажмите на изображение для увеличения. 

Название:	ZXUK_AnalyzeRq.PNG 
Просмотров:	266 
Размер:	17.3 Кб 
ID:	74484

    Макет на Спеке.
    Нажмите на изображение для увеличения. 

Название:	devboard.jpg 
Просмотров:	413 
Размер:	76.9 Кб 
ID:	74482
    Нажмите на изображение для увеличения. 

Название:	on_speccy.jpg 
Просмотров:	326 
Размер:	64.0 Кб 
ID:	74485

    Эти 9 пользователя(ей) поблагодарили valerium за это полезное сообщение:

    andykarpov(08.02.2021), Anubis_OD(16.03.2021), CLR(15.02.2021), dim(19.03.2021), Eltaron(23.01.2021), oistalker(24.01.2021), Rio444(16.03.2021), Romych(11.02.2021), solegstar(23.01.2021)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Как подключить дискетник на 5.25 или 1.5 к Спектрум 48?
    от Вадим Димтревич в разделе Внешние накопители
    Ответов: 13
    Последнее: 15.04.2020, 13:12
  2. Ответов: 30
    Последнее: 07.04.2020, 15:49
  3. Как подключить к спеку два 5.25" флопа?
    от idc в разделе Внешние накопители
    Ответов: 6
    Последнее: 26.12.2009, 20:49
  4. Помогите подключить PS/2 клаву к Спеку...
    от Roger Wilco в разделе Устройства ввода
    Ответов: 9
    Последнее: 24.02.2008, 19:16
  5. Ландшафт произвольной формы (как в worms)
    от newart в разделе Программирование
    Ответов: 3
    Последнее: 17.04.2007, 14:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •