IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как вы делаете разводку матрицы клавиатуры?
Vladimir35
сообщение 28.5.2014, 18:29
Сообщение #1


Участник
**

Группа: Пользователи
Сообщений: 19
Регистрация: 11.5.2014
Пользователь №: 523



У половинки моей эргономической клавиатуры 42 кнопки. Для экономии портов использую матрицу 6out*7in.
Так как. кнопки не находятся на сетке, разводку надо делать вручную.

Какие методы и инструменты вы используете? Как найти оптимальную разводку?
Перейти в начало страницы
 
+Цитировать сообщение
Steve Key
сообщение 28.5.2014, 20:05
Сообщение #2


Активный участник
***

Группа: Пользователи
Сообщений: 61
Регистрация: 9.5.2014
Из: Россия, Ростовская, Шахты
Пользователь №: 522



Цитата(Vladimir35 @ 28.5.2014, 20:29) *
У половинки моей эргономической клавиатуры 42 кнопки. Для экономии портов использую матрицу 6out*7in.
Так как. кнопки не находятся на сетке, разводку надо делать вручную.

Какие методы и инструменты вы используете? Как найти оптимальную разводку?

Что значит "не на сетке"? То, как кнопки расположены на доске и матрица — это, как говорят в Одессе, две большие разницы!
Схема — матрица ("сетка", как ты назвал), физическое расположение — любое.

А методы (в смысле — "разводка" платы?) — любые, от ручной на бумаге до автоматической в Proteus'е.
Промежуточные варианты — DipTrace, SLayout, фотошоп, автокад, ворд и т. д. и т. п.
Перейти в начало страницы
 
+Цитировать сообщение
Vladimir35
сообщение 28.5.2014, 21:06
Сообщение #3


Участник
**

Группа: Пользователи
Сообщений: 19
Регистрация: 11.5.2014
Пользователь №: 523



Цитата(Steve Key @ 28.5.2014, 20:05) *
физическое расположение — любое.


На спроектированной клавиатуре положение известно и фиксированное. Как сделать оптимальную разводку? На пример, на следующем фото, очевидно можно сделать так:
Прикрепленное изображение

Ну, и как нибудь разместить еще два синних провода.

Вопрос: как убедиться в том, что нет лучшего варианта размещения соединений?

Сообщение отредактировал Vladimir35 - 28.5.2014, 21:09
Перейти в начало страницы
 
+Цитировать сообщение
Secter
сообщение 28.5.2014, 21:24
Сообщение #4


Активный участник
***

Группа: Пользователи
Сообщений: 18789
Регистрация: 13.1.2011
Пользователь №: 332



Цитата(Vladimir35 @ 28.5.2014, 22:06) *
Ну, и как нибудь разместить еще два синних провода.

girl_crazy.gif ...мдаа, ПЕЧАЛЬка... laughter2.gif laughter2.gif laughter2.gif
Перейти в начало страницы
 
+Цитировать сообщение
Steve Key
сообщение 29.5.2014, 16:30
Сообщение #5


Активный участник
***

Группа: Пользователи
Сообщений: 61
Регистрация: 9.5.2014
Из: Россия, Ростовская, Шахты
Пользователь №: 522



Цитата(Vladimir35 @ 28.5.2014, 23:06) *
Как сделать оптимальную разводку?

Вопрос: как убедиться в том, что нет лучшего варианта размещения соединений?

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

А насчет лучшего — ну, нарисовать пару-тройку вариантов да сравнить…
Перейти в начало страницы
 
+Цитировать сообщение
Vladimir35
сообщение 1.6.2014, 19:49
Сообщение #6


Участник
**

Группа: Пользователи
Сообщений: 19
Регистрация: 11.5.2014
Пользователь №: 523



Цитата(Steve Key @ 29.5.2014, 16:30) *
Да абсолютно пофиг... можно любым "зигзагом" объединить ряды и столбцы.

Если так делать, то получается примерно во так:
Прикрепленное изображение

Цитата(Secter)
...мдаа, ПЕЧАЛЬка..

А ведь кнопок там всего ничего - 44. А если бы было в два раза больше?

А что Proteus умеет решать такую задачу? Меня терзают смутные сомнения, что не умеет. Ведь кнопки можно "менять местами".
Перейти в начало страницы
 
+Цитировать сообщение
Steve Key
сообщение 1.6.2014, 21:13
Сообщение #7


Активный участник
***

Группа: Пользователи
Сообщений: 61
Регистрация: 9.5.2014
Из: Россия, Ростовская, Шахты
Пользователь №: 522



Цитата(Vladimir35 @ 1.6.2014, 21:49) *
А что Proteus умеет решать такую задачу? Меня терзают смутные сомнения, что не умеет. Ведь кнопки можно "менять местами".

Ты каждую кнопку отдельной парой проводов, что-ли, развёл?

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

А протеус умеет как автоматически расставлять по схеме детали (придётся модель цоколёвки кнопки?), а также можно самому пото́м переставить кнопки так, как тебе надо, а он уже разведёт автоматом, либо сам разведёшь как хочешь, а он будет "деятельно помогать", "двигая" уже нарисованные дорожки за перемещаемой деталью.
Перейти в начало страницы
 
+Цитировать сообщение
Steve Key
сообщение 8.6.2014, 8:46
Сообщение #8


Активный участник
***

Группа: Пользователи
Сообщений: 61
Регистрация: 9.5.2014
Из: Россия, Ростовская, Шахты
Пользователь №: 522



Вот, выкладываю картинки…

Прикрепленное изображение


Прикрепленное изображение


На первой видна разводка линий к моим клавишам от стандартного контроллера (ЕМНИП, 13х8 ножек), цифры означают номера ножек контроллера (всего 40 ног).

На второй нарисована матрица контроллера-капли от другой клавы (на моём сайте она называется Das Ist Kvadratish, проект заглох по техническим и административным причинам), цифры сбоку и сверху от таблицы означают горизонтальные-вертикальные линии матрицы, на пересечениях расположены контакты кнопок.

То есть, можно расположить кнопки на линиях просто по-горизонтали, а можно — как вот на второй картинке (она оптимизирована под слепую печать).
Все кнопки же пото́м задаются в прошивке клавы, можно как угодно задать, хоть по-диагонали…

Сообщение отредактировал Steve Key - 9.6.2014, 17:11
Перейти в начало страницы
 
+Цитировать сообщение
Vladimir35
сообщение 12.6.2014, 11:03
Сообщение #9


Участник
**

Группа: Пользователи
Сообщений: 19
Регистрация: 11.5.2014
Пользователь №: 523



Я насчитал 60 кнопок. Для такой клавиатуры достаточно матрицы 8х8. Матрица 13х8 - непозволительное расточительство. Например у тинзи всего 21 порт, выведено 20 портов. А ведь еще есть три лампочки.
Перейти в начало страницы
 
+Цитировать сообщение
Steve Key
сообщение 16.6.2014, 14:11
Сообщение #10


Активный участник
***

Группа: Пользователи
Сообщений: 61
Регистрация: 9.5.2014
Из: Россия, Ростовская, Шахты
Пользователь №: 522



Цитата(Vladimir35 @ 12.6.2014, 13:03) *
Я насчитал 60 кнопок. Для такой клавиатуры достаточно матрицы 8х8. Матрица 13х8 - непозволительное расточительство.

В моём концепте? Совершенно верно, но контроллер-то используется от полноценной 101-клавишной клавиатуры (шла в комплекте к 286-му компьютеру)...
Итого 13х8=104.

А на новом контроллере 17х8=136, но не все "пересечения" используются.
Перейти в начало страницы
 
+Цитировать сообщение
Гость_AlexKlm_*
сообщение 17.6.2014, 5:03
Сообщение #11





Гости






Не понимаю, в чём проблема? DipTrace позволяет крутить детали под любым углом, да ещё и разводить может сам.
Перейти в начало страницы
 
+Цитировать сообщение
Designer56
сообщение 17.6.2014, 7:45
Сообщение #12


Активный участник
***

Группа: Пользователи
Сообщений: 7045
Регистрация: 22.11.2009
Из: Уфа
Пользователь №: 18



Так изучать же надо инструмент... как сказал Барен
Цитата
...мдаа, ПЕЧАЛЬка...

Любой современный и не очень трассировщик может задавать требования разводки для отдельных цепей- верхний, нижний слой, вертикаль/горизонталь и т.п. еще на уровне схемного редактора.
Перейти в начало страницы
 
+Цитировать сообщение
ibnteo
сообщение 26.6.2014, 21:46
Сообщение #13


Активный участник
***

Группа: Пользователи
Сообщений: 32
Регистрация: 8.5.2014
Из: Москва
Пользователь №: 521



Цитата(Vladimir35 @ 28.5.2014, 23:06) *
Вопрос: как убедиться в том, что нет лучшего варианта размещения соединений?


Надо подобрать матрицу, где 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).

Количество занятых портов можно уменьшить, если добавить микросхему регистр сдвига, и тогда будет достаточно одно порта для переключения строк.
Перейти в начало страницы
 
+Цитировать сообщение
Steve Key
сообщение 27.6.2014, 9:34
Сообщение #14


Активный участник
***

Группа: Пользователи
Сообщений: 61
Регистрация: 9.5.2014
Из: Россия, Ростовская, Шахты
Пользователь №: 522



Цитата(ibnteo @ 26.6.2014, 23:46) *
Если использовать 8x11, то получается, что 8 бит это как раз целый байт, можно занять один адрес порта для выдачи сканирующих сигналов, и смещать в нём сканирующий бит командой смещения PORTB = PORTB >> 1; // что не сделаешь ради красоты кода ;-) Правда схема будет сложнее из-за нечётного количества колонок (11).

Скорее, я бы сделал, чтобы опрашивать через те 11 портов, а считывать - через 8, это как раз байт...

Цитата(ibnteo @ 26.6.2014, 23:46) *
Количество занятых портов можно уменьшить, если добавить микросхему регистр сдвига, и тогда будет достаточно одно порта для переключения строк.

Не одного порта, а двух ножек...
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 12:24