Jump to content
Misereli

Выбор схемы клавиатуры

Recommended Posts

Posted (edited)

Здравствуйте.
Хочу сделать свою клавиатуру на микроконтроллере Atmel (например, ATmega8).
Знаю несколько видов схем: матричная клавиатура и резистивная.
Реализация матричной клавиатуры требует использования большого количества ног на микроконтроллере .
Реализация резистивной (в зависимости от напряжения, АЦП определяет какая нажата кнопка) не позволит зажимать сразу несколько клавиш. 

На форумах "клаводелов" нашел интересную плату (satan gh60), на основе которой собирают клавиатуру. Она работает на atmega32u4, на плате распаяно множество резисторов. Несколько нажатий поддерживает.

vybiraem-i-sobiraem-60-klaviaturu-14.jpg.7001b8bee3f58cca473d24408b6526e3.jpg

gh60-60-satan-Custom-Mechanical-Keyboard-Kit-up-tp-64-keys-Supports-TKG-TOOLS-PCB-GH60.jpg.40bee8c0e810db37b524458e7a28d421.jpg

Если кто-то поделится мыслями как она работает, буду очень благодарен, т.к. самому мозгов не хватает :(
Об использовании специализированных МК прошу не упоминать, интересно сделать на ATmega.

 

Edited by Misereli
Исправил картинку

Share this post


Link to post
Share on other sites
Posted (edited)

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

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

rkfyf.jpg

Edited by DoG70

Share this post


Link to post
Share on other sites
Guest Игроман

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

Share this post


Link to post
Share on other sites

Конденсаторы Panasonic. Часть 4. Полимеры – номенклатура

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

Читать статью

Игры - это отдельная тема, там наверное только ж@пой еще не нажимают :blink: Ну тогда вообще без вариантов -только матричная клавиатура.

Share this post


Link to post
Share on other sites

В том то и дело, что на матричную не похоже. Резисторы разного номинала (да и зачем они на каждую кнопку припаяны) и характерные глюки не свойственны (если зажать по очереди кнопки F, D и C, то на стандартной матричной клавиатуре кнопка С уже не сработает, а на этой будет всё хорошо). Проверял у друга на механике на сайте key-test.ru

Мне пришла идея, что можно такое реализовать, если на микроконтроллер подавать сигнал только при нажатии и отпускании кнопки. А сам микроконтроллер будет эмулировать зажатие. С сигналом только при нажатии проблем нет, схемку такую уже реализовывал, а вот чтобы сигнал шёл и при отжатии кнопки, это я уже придумать пока что не в силах.

 

P.S. Извиняюсь, что долго не появлялся в теме, отдыхаю на море.

Share this post


Link to post
Share on other sites
                     

STM32G0 - средства противодействия угрозам безопасности

Результатом выполнения требований безопасности всегда является усложнение разрабатываемой системы. Особенно чувствительными эти расходы стали теперь, в процессе массового внедрения IoT. Обладая мощным набором инструментов информационной безопасности, микроконтроллеры STM32G0 производства STMicroelectronics, объединив в себе невысокую цену, энергоэффективность и расширенный арсенал встроенных аппаратных инструментов, способны обеспечить полную безопасность разрабатываемого устройства.

Подробнее...

2 часа назад, Misereli сказал:

Мне пришла идея, что можно такое реализовать, если на микроконтроллер подавать сигнал только при нажатии и отпускании кнопки.

Вы не поверите, но в стандартной РС-шной клавиатуре именно так и сделано: она выдаёт скан-коды именно на нажатие и отпускание клавиш.

Share this post


Link to post
Share on other sites
26.08.2019 в 11:32, Гость Игроман сказал:

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

Для игр поделка на AtMega вряд ли подойдет.

 

23.08.2019 в 22:39, Misereli сказал:

в зависимости от напряжения, АЦП определяет какая нажата кнопка

На AtMega это будет довольно таки медленно обрабатываться. Да и дельта напряжений между двумя кнопками получится очень малой, отличить нажатия за шумом будет трудно. Что мешает сделать матричную клаву? У контроллеров, которые стоят в клавах, выводов как раз таки немного.

 

23.08.2019 в 22:39, Misereli сказал:

Хочу сделать свою клавиатуру на микроконтроллере Atmel (например, ATmega8).

Нахрена делать клаву на древнем МК, да еще и без аппаратной поддержки USB? Если уж так припекло долбаться именно с этой серией МК, то брать точно не Mega8, а хотя бы тот, где есть поддержка USB.

 

2 часа назад, Misereli сказал:

Мне пришла идея, что можно такое реализовать, если на микроконтроллер подавать сигнал только при нажатии и отпускании кнопки. А сам микроконтроллер будет эмулировать зажатие.

Вы вообще в курсе, как работает клавиатура?

Share this post


Link to post
Share on other sites
2 часа назад, BARS_ сказал:

Для игр поделка на AtMega вряд ли подойдет

Я ничего и не говорил про игры. Но могу поспорить, что на AtMega (не говорю про atmega8 конкретно, но возможно) можно сделать качественную клавиатуру. 

2 часа назад, BARS_ сказал:

Что мешает сделать матричную клаву?

То, что китайцы сделали (или скопировали) плату (которую я упомянул в 1 сообщении), которая не имеет минусов матричной. Можно зажимать сразу много кнопок. И работает она быстро. Но мне не понятно как она работает. 

2 часа назад, BARS_ сказал:

Нахрена делать клаву на древнем МК, да еще и без аппаратной поддержки USB

Просто потому что у меня много atmega8 валяется, а отсутствие аппаратной поддержки usb меня не пугает, есть проект v-usb. К тому же легко перейти на AtMega32u4 (как на той китайской плате). В итоге я вижу только один возможный минус - скорость работы, но и он пока не подтверждён.

2 часа назад, BARS_ сказал:

Вы вообще в курсе, как работает клавиатура?

Примерно. После сообщения Lexter уже больше. Надеюсь, к концу жизни темы буду знать всё )))) 

Вообще, матричную клавиатуру на макетке собирал (8 кнопок), работает плаг'н'плей, затем начал в proteus делать резистивную (т.к. в satan gh60 увидел много резисторов на плате), но остановился из-за невозможности обработки 2 или более клавиш на ряду. Затем, собсна, была создана эта тема. 

Share this post


Link to post
Share on other sites
35 минут назад, Misereli сказал:

Но могу поспорить

Не боитесь проспорить?

 

35 минут назад, Misereli сказал:

То, что китайцы сделали (или скопировали) плату (которую я упомянул в 1 сообщении), которая не имеет минусов матричной.

Кто это сказал? Там спокойно могли сменить схему матрицы и проблемной могла стать совсем другая кнопка.

 

39 минут назад, Misereli сказал:

И работает она быстро.

Опять же. Быстро - это как? Те же геймеры микросекунды в срабатывании ловят.

 

40 минут назад, Misereli сказал:

Просто потому что у меня много atmega8 валяется,

Ну и что?

 

40 минут назад, Misereli сказал:

есть проект v-usb

Серьезно? И пофиг, что работает от медленнее, чем USB1.0?

 

41 минуту назад, Misereli сказал:

делать резистивную (т.к. в satan gh60 увидел много резисторов на плате)

Для опроса резистивной нужен шустрый проц с быстрым АЦП. К AtMega это не относится. и сбоить она будет часто из-за помех.

 

42 минуты назад, Misereli сказал:

т.к. в satan gh60 увидел много резисторов на плате

Кто сказал, что они имеет хоть какое-то отношение к кнопкам? А вот наличие диодов как раз намекает на то, что клава таки матричная.

Share this post


Link to post
Share on other sites
1 час назад, Misereli сказал:

То, что китайцы сделали (или скопировали) плату (которую я упомянул в 1 сообщении), которая не имеет минусов матричной. Можно зажимать сразу много кнопок. И работает она быстро.

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

 

Share this post


Link to post
Share on other sites
5 часов назад, IMXO сказал:

кодовое слово диоды...

Не обязательно. Открытый коллектор (открытый сток) работает так же, но не требует дополнительных элементов на каждую кнопку.

Share this post


Link to post
Share on other sites

Догадки, предположения.... @Misereli , возьми эту клавиатуру, да нарисуй по ней схему, если нормальной документации нет. Нарисуй хотя бы для десяти кнопок, тогда и выводы сделать можно и поговорить. А сейчас - гадание на кофейной гуще.

Share this post


Link to post
Share on other sites
30.08.2019 в 10:47, DoG70 сказал:

возьми эту клавиатуру, да нарисуй по ней схему

У меня, к сожалению, ее нет, а покупать дороговато, т.к. я не планирую ее использовать. ) У друга просить стесняюсь. 

29.08.2019 в 19:28, IMXO сказал:

кодовое слово диоды

Диоды исключат короткое замыкание, но не решат проблем матричной клавиатуры...

Извиняюсь, что набросал в paint, просто другой возможности сейчас нет. Надеюсь, более-менее понятно. 
Какая разница для микроконтроллера, нажал я 3 кнопки или 4? Если все порты получают логическую 1? 

1.png.78c26e3ae43dc3b997152c8376be978c.png2.png.5493d4ad93c5217249f524c298256bfa.png

Кстати, если в сканирующих портах использовать АЦП, то это решит проблему. Может это и будет решением проблемы. И резисторы понятно зачем нужны.

29.08.2019 в 18:52, BARS_ сказал:

Не боитесь проспорить?

Не боюсь признавать себя не правым. 

29.08.2019 в 18:52, BARS_ сказал:

Там спокойно могли сменить схему матрицы и проблемной могла стать совсем другая кнопка

Не думаю, что все так просто.

29.08.2019 в 18:52, BARS_ сказал:

Быстро - это как? Те же геймеры микросекунды в срабатывании ловят

Большинство сидит на 60 герцовых мониторах. Есть, конечно же, мега тру мониторы, но это 240 Гц (обновление раз в 4000 микросекунд). Я вообще к такой скорости и не стремлюсь. Мне для начала комфортная печать важна. 

29.08.2019 в 18:52, BARS_ сказал:

И пофиг, что работает от медленнее, чем USB1.0?

1. Usb 1.1 в v-usb.
2. Мне не ssd диск подрубать, а клавиатуру, скорость передачи не имеет значения. Возможно, что есть какая-то таблица времени отклика разных версий USB, но я ее не видел. Думаю, программная реализация больше будет влиять на скорость, чем версия usb.

29.08.2019 в 18:52, BARS_ сказал:

А вот наличие диодов как раз намекает на то, что клава таки матричная.

Да, все идет к тому, что это матричная клава. Но не обычная, а несколько доработанная. Вот и интересно как ее доработали. 

Share this post


Link to post
Share on other sites
4 минуты назад, Misereli сказал:

Какая разница для микроконтроллера, нажал я 3 кнопки или 4? Если все порты получают логическую 1? 

разница в том, что опрос ведется по строчно,  и для первой сторки ты получишь код 11, а для второй 10.

для 4х ты получишь код 11 и 11.

Share this post


Link to post
Share on other sites
5 часов назад, IMXO сказал:

опрос ведется по строчно

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

29.08.2019 в 19:28, IMXO сказал:

главное что-бы у приемной стороны хватило мозгов обработать все варианты комбинаций

Можно поподробнее? 

Share this post


Link to post
Share on other sites
7 минут назад, Misereli сказал:

Можно поподробнее? 

рекомендую самому посчитать сколько комбинаций можно получить на 64 или 256 кнопках....

Share this post


Link to post
Share on other sites
12 часов назад, Misereli сказал:

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

Интересно, как вы тогда вообще представляли работу матричной клавиатуры? :unknw: 

13 часов назад, Misereli сказал:

 

Большинство сидит на 60 герцовых мониторах. Есть, конечно же, мега тру мониторы, но это 240 Гц (обновление раз в 4000 микросекунд). Я вообще к такой скорости и не стремлюсь. Мне для начала комфортная печать важна. 

Это вы сейчас про что? Если про ЖК монитор, то какое отношение он имеет к работе клавиатуры?

Share this post


Link to post
Share on other sites
7 часов назад, DoG70 сказал:

Интересно, как вы тогда вообще представляли работу матричной клавиатуры?

Затупил. Почему-то думал, что + на кнопки постоянный в любой матричной клавиатуре.

123.png.8c2c09c5669f7b9be33108b1485ded59.png

7 часов назад, DoG70 сказал:

Это вы сейчас про что? Если про ЖК монитор, то какое отношение он имеет к работе клавиатуры?

Это я к тому, что мне сказали, что для геймеров важны микросекунды в работе клавиатуры. На примере игрового монитора (его частоты обновления) немного попытался развеять такие предположения. :unknw:

Share this post


Link to post
Share on other sites
2 минуты назад, Misereli сказал:

Затупил.

херню ты запустил...

Share this post


Link to post
Share on other sites
5 часов назад, IMXO сказал:

херню ты запустил

Лол) Возможно. Все равно никто не ответил как работает satan gh60

Share this post


Link to post
Share on other sites



Все равно никто не ответил как работает satan gh60


В смысле? Обычная матричная клава. Что ещё надо?

Отправлено с моего Nexus 5 через Tapatalk

Share this post


Link to post
Share on other sites
01.09.2019 в 17:10, BARS_ сказал:

Что ещё надо?

Зачем на каждую кнопку кидать резистор. Причем они разного номинала. 

Share this post


Link to post
Share on other sites
18 минут назад, Misereli сказал:

Зачем на каждую кнопку кидать резистор.

Где сказано, что они на кнопках? На фото видны посадочные места под светодиоды подсветки. И, как ни странно, резисторы как раз рядом с каждым посадочным местом стоят. Не наталкивает на мысли? Возьми ты уже клаву у друга и прозвони ее. В чем проблема?

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By 42mg mdma
      Взялся за ремонт механической клавиатуры Corsair K63. После замены пары переключателей сделал пробное включение. Работает подсветка, но на нажатия не реагирует, так-же заметил что нагревается регулятор ax1117 a-33 17471. Пришёл сюда за советом и помощью!
    • By shuks
      Добрый день!
      От товарища поступила просьба собрать на ардуино (либо изготовить плату на avr) детектор короткого замыкания.
      Есть у него на производстве ряд БП 12в 2квт и десяток потребителей на каждом, таких блоков порядка сотни, и поступила "хотелка" навесить на каждый БП ардуину (питание будет отдельное независимое) которая будет посылать по wifi уведомление когда будет возникать КЗ в блоке/потребителе (важна возможность определения именно КЗ).
      Опыта нет, первое что пришло в голову это:
      1) мониторить потерю напряжения 12в на БП (при КЗ блок уходит в защиту)
      2) при потере напряжения 12в подавать напряжение 3.3в от питания МК с управлением через ключ от ножки МК на "+" питания БП и переход на пп.3
      3) ноль от БП подключить к АЦП МК и замерять: если 0в то все норм и КЗ нет (поломка блока без КЗ либо отключение от сети 220в), если на АЦП будет 3.3в то имеем КЗ и отправляем уведомление.
      Т.к. опыта схемотехники почти нет, прошу помощи по схеме в даже в мелочах
       
    • By IgnatiusF
      Взял с места практики отладочную плату с атмегой 32-й, дома понял (возможно), что микроконтроллер заблокирован.
      Пытался шить через USBASP при помощи AVRDUDE, однако ошибка:
      avrdude.exe: error: programm enable: target doesn't answer. 1 avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. В правильности и надежности подключения полностью уверен, проверил каждый контакт и каждый элемент на всей плате тестером. Кстати, вот она:
      У меня точно такая же, только с Atmega32A.
      Попробовал поставить на нее дрова, но теперь она определяется вот так: Неизвестное USB-устройство (сбой дескриптора устройства).
      Из этой статьи по решению данной проблемы выполнил все указания, однако ничего не сработало.
      Тут я подумал на отключенный rst выход, так как был опыт из-за путаницы с обратными и прямыми фьюзами на Attiny13A. Тогда быстренько все исправил высоковольнтным программатором из этой статьи, вот и подумал сделать здесь подобное. Немного (чуть больше) полазив в интернете нашел вот такую схему на arduino. Все есть, чтобы ее сделать, только сперва понять бы, можно или нет без выпаивания это делать. И еще понять бы, в этом ли настоящая проблема? Или может я что-то не то надумал?
      Надеюсь на вашу помощь
    • By Trute
      Цена 650р.
       Продаётся Плата в Сборе с Прошитым Микроконтроллером.
      ОПИСАНИЕ.
      Это устройство запитывается от любого источника питания 5 вольт, например, USB порт ПК или ноутбука, зарядка для телефона и т. п..., и не нуждается в подключении к источнику 12 вольт, в отличии от других прототипов.
      Предназначено для восстановления "убитых" микроконтроллеров AVR ATmega и ATtiny путем записи в них корректных значений бит фьюзов.
      Atmega Fusebit Doctor исправит Ваши брикнутые микроконтроллеры за доли секунды.
      Поддерживаемые контроллеры:
       



    • By voltex
      Всем привет! Подскажите, пожалуйста, как правильно считать данные с внешней eeprom по шине spi, в данном случае 25LC256.
      Написал код ссылаясь на даташит. Собрал схему в протеусе, подключил spi отладчик и вот что получил в итоге. Так же не могу проверить получается записать данные в память или нет. Весь код прикрепил.
       

      main.c
  • Сообщения

    • Вот рабочая ссылка на книгу Современные цифровые мультиметры Садченков Д.А. http://padabum.com/d.php?id=15203 Аналогичная ситуация. Только у меня вдобавок к заниженным показаниям напряжения  и тока ещё и сопротивление завышает. Пока причину не нашёл - будем искать.
    • Сгорел мой незаменимый помощник M830BZ - лет 15 наверное служил верой и правдой! На плате стоят полосатые резисторы и ещё дисплей на защёлках. Хотел скачать схему по Вашей ссылки, но не тут то было. Прошу помощи, сделайте доброе дело! Если есть у кого схемка на моего зверька, просьба выложить тут на форуме. Может ещё кому сгодиться.  За ранее благодарю отзывчивых и добрых людей! Возле предохранителя это контакты для перемычки J5. Но к сожалению у меня почти вся плата пустая и номиналы R32 и Q3 подсказать не могу. Может у Borodach есть мультиметр такой ревизии? Эта ссылка тоже не открывается. Хелпыы!!!
    • И я о том-же. А в конструкции по ссылке в первом посте, полюса получились одноименные.
    • путем чтения и анализа исходного кода. Ваш кэп
    • от номинала резистора зависит ток зарядки затвора и скорость открывания транзистора. И далеко не всегда оптимальный режим самый скоростной. От этого времени зависит уровень шумов на выходе ИБП и время стабилизации переходных процессов на паразитных емкостях/индуктивностях. Так что тут надо не просто - какой ставить, а отнестись посерьезнее
    • А что ты умеешь, каковы знания, опыт? Что-то раньше собирал и с каким результатом? Кто дал задание и какая тематика предмета (кружка)?
    • А проиграть этот файл (мелодии) в выборе мелодии звонка пробовали? Файл есть, играет?
  • Покупай!

×
×
  • Create New...