Как вы делаете разводку матрицы клавиатуры? |
Здравствуйте, гость ( Вход | Регистрация )
Как вы делаете разводку матрицы клавиатуры? |
28.5.2014, 18:29
Сообщение
#1
|
|
Участник Группа: Пользователи Сообщений: 19 Регистрация: 11.5.2014 Пользователь №: 523 |
У половинки моей эргономической клавиатуры 42 кнопки. Для экономии портов использую матрицу 6out*7in.
Так как. кнопки не находятся на сетке, разводку надо делать вручную. Какие методы и инструменты вы используете? Как найти оптимальную разводку? |
|
|
28.5.2014, 20:05
Сообщение
#2
|
|
Активный участник Группа: Пользователи Сообщений: 61 Регистрация: 9.5.2014 Из: Россия, Ростовская, Шахты Пользователь №: 522 |
У половинки моей эргономической клавиатуры 42 кнопки. Для экономии портов использую матрицу 6out*7in. Так как. кнопки не находятся на сетке, разводку надо делать вручную. Какие методы и инструменты вы используете? Как найти оптимальную разводку? Что значит "не на сетке"? То, как кнопки расположены на доске и матрица — это, как говорят в Одессе, две большие разницы! Схема — матрица ("сетка", как ты назвал), физическое расположение — любое. А методы (в смысле — "разводка" платы?) — любые, от ручной на бумаге до автоматической в Proteus'е. Промежуточные варианты — DipTrace, SLayout, фотошоп, автокад, ворд и т. д. и т. п. |
|
|
28.5.2014, 21:06
Сообщение
#3
|
||
Участник Группа: Пользователи Сообщений: 19 Регистрация: 11.5.2014 Пользователь №: 523 |
физическое расположение — любое. На спроектированной клавиатуре положение известно и фиксированное. Как сделать оптимальную разводку? На пример, на следующем фото, очевидно можно сделать так: Ну, и как нибудь разместить еще два синних провода. Вопрос: как убедиться в том, что нет лучшего варианта размещения соединений? Сообщение отредактировал Vladimir35 - 28.5.2014, 21:09 |
|
|
||
28.5.2014, 21:24
Сообщение
#4
|
|
Активный участник Группа: Пользователи Сообщений: 18789 Регистрация: 13.1.2011 Пользователь №: 332 |
|
|
|
29.5.2014, 16:30
Сообщение
#5
|
|
Активный участник Группа: Пользователи Сообщений: 61 Регистрация: 9.5.2014 Из: Россия, Ростовская, Шахты Пользователь №: 522 |
Как сделать оптимальную разводку? Вопрос: как убедиться в том, что нет лучшего варианта размещения соединений? Да абсолютно пофиг, матрица с диодами позволяет считать хоть все одновременно нажатые кнопки, так что можно любым "зигзагом" объединить ряды и столбцы. Там дело будет в программной обработке, но она один раз делается. А насчет лучшего — ну, нарисовать пару-тройку вариантов да сравнить… |
|
|
1.6.2014, 19:49
Сообщение
#6
|
||
Участник Группа: Пользователи Сообщений: 19 Регистрация: 11.5.2014 Пользователь №: 523 |
Да абсолютно пофиг... можно любым "зигзагом" объединить ряды и столбцы. Если так делать, то получается примерно во так: Цитата(Secter) ...мдаа, ПЕЧАЛЬка.. А ведь кнопок там всего ничего - 44. А если бы было в два раза больше? А что Proteus умеет решать такую задачу? Меня терзают смутные сомнения, что не умеет. Ведь кнопки можно "менять местами". |
|
|
||
1.6.2014, 21:13
Сообщение
#7
|
|
Активный участник Группа: Пользователи Сообщений: 61 Регистрация: 9.5.2014 Из: Россия, Ростовская, Шахты Пользователь №: 522 |
А что Proteus умеет решать такую задачу? Меня терзают смутные сомнения, что не умеет. Ведь кнопки можно "менять местами". Ты каждую кнопку отдельной парой проводов, что-ли, развёл? Я имел в виду, что объединяй кнопки тупо простой матрицей "квадратной", т. е. сетка горизонталей и вертикалей, а в прошивке уже назначаешь так, как надо чтобы они коды выдавали. А протеус умеет как автоматически расставлять по схеме детали (придётся модель цоколёвки кнопки?), а также можно самому пото́м переставить кнопки так, как тебе надо, а он уже разведёт автоматом, либо сам разведёшь как хочешь, а он будет "деятельно помогать", "двигая" уже нарисованные дорожки за перемещаемой деталью. |
|
|
8.6.2014, 8:46
Сообщение
#8
|
|||
Активный участник Группа: Пользователи Сообщений: 61 Регистрация: 9.5.2014 Из: Россия, Ростовская, Шахты Пользователь №: 522 |
Вот, выкладываю картинки…
На первой видна разводка линий к моим клавишам от стандартного контроллера (ЕМНИП, 13х8 ножек), цифры означают номера ножек контроллера (всего 40 ног). На второй нарисована матрица контроллера-капли от другой клавы (на моём сайте она называется Das Ist Kvadratish, проект заглох по техническим и административным причинам), цифры сбоку и сверху от таблицы означают горизонтальные-вертикальные линии матрицы, на пересечениях расположены контакты кнопок. То есть, можно расположить кнопки на линиях просто по-горизонтали, а можно — как вот на второй картинке (она оптимизирована под слепую печать). Все кнопки же пото́м задаются в прошивке клавы, можно как угодно задать, хоть по-диагонали… Сообщение отредактировал Steve Key - 9.6.2014, 17:11 |
||
|
|||
12.6.2014, 11:03
Сообщение
#9
|
|
Участник Группа: Пользователи Сообщений: 19 Регистрация: 11.5.2014 Пользователь №: 523 |
Я насчитал 60 кнопок. Для такой клавиатуры достаточно матрицы 8х8. Матрица 13х8 - непозволительное расточительство. Например у тинзи всего 21 порт, выведено 20 портов. А ведь еще есть три лампочки.
|
|
|
16.6.2014, 14:11
Сообщение
#10
|
|
Активный участник Группа: Пользователи Сообщений: 61 Регистрация: 9.5.2014 Из: Россия, Ростовская, Шахты Пользователь №: 522 |
Я насчитал 60 кнопок. Для такой клавиатуры достаточно матрицы 8х8. Матрица 13х8 - непозволительное расточительство. В моём концепте? Совершенно верно, но контроллер-то используется от полноценной 101-клавишной клавиатуры (шла в комплекте к 286-му компьютеру)... Итого 13х8=104. А на новом контроллере 17х8=136, но не все "пересечения" используются. |
|
|
Гость_AlexKlm_* |
17.6.2014, 5:03
Сообщение
#11
|
Гости |
Не понимаю, в чём проблема? DipTrace позволяет крутить детали под любым углом, да ещё и разводить может сам.
|
|
|
17.6.2014, 7:45
Сообщение
#12
|
|
Активный участник Группа: Пользователи Сообщений: 7045 Регистрация: 22.11.2009 Из: Уфа Пользователь №: 18 |
Так изучать же надо инструмент... как сказал Барен
Цитата ...мдаа, ПЕЧАЛЬка... Любой современный и не очень трассировщик может задавать требования разводки для отдельных цепей- верхний, нижний слой, вертикаль/горизонталь и т.п. еще на уровне схемного редактора. |
|
|
26.6.2014, 21:46
Сообщение
#13
|
|
Активный участник Группа: Пользователи Сообщений: 32 Регистрация: 8.5.2014 Из: Москва Пользователь №: 521 |
Вопрос: как убедиться в том, что нет лучшего варианта размещения соединений? Надо подобрать матрицу, где Rows*Cols=>Buttons, и при этом Rows+Cols будет наименьшим (столько будет занято портов МК). Если у тебя 42*2=84 кнопки, то это будет 9+10 (9*10=90) или 8+11 (8*11=88) или 7+12 (7*12=84) = 19 портов. Как видно, лучше использовать матрицу 9x10, тогда можно будет подключить дополнительно ещё 6 кнопок. Если использовать 8x11, то получается, что 8 бит это как раз целый байт, можно занять один адрес порта для выдачи сканирующих сигналов, и смещать в нём сканирующий бит командой смещения PORTB = PORTB >> 1; // что не сделаешь ради красоты кода ;-) Правда схема будет сложнее из-за нечётного количества колонок (11). Количество занятых портов можно уменьшить, если добавить микросхему регистр сдвига, и тогда будет достаточно одно порта для переключения строк. |
|
|
27.6.2014, 9:34
Сообщение
#14
|
|
Активный участник Группа: Пользователи Сообщений: 61 Регистрация: 9.5.2014 Из: Россия, Ростовская, Шахты Пользователь №: 522 |
Если использовать 8x11, то получается, что 8 бит это как раз целый байт, можно занять один адрес порта для выдачи сканирующих сигналов, и смещать в нём сканирующий бит командой смещения PORTB = PORTB >> 1; // что не сделаешь ради красоты кода ;-) Правда схема будет сложнее из-за нечётного количества колонок (11). Скорее, я бы сделал, чтобы опрашивать через те 11 портов, а считывать - через 8, это как раз байт... Количество занятых портов можно уменьшить, если добавить микросхему регистр сдвига, и тогда будет достаточно одно порта для переключения строк. Не одного порта, а двух ножек... |
|
|
Текстовая версия | Сейчас: 29.3.2024, 13:23 |