Перейти к публикации

Рекомендованные сообщения

Опубликовано:

Всем привет!

 

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

 

Я проверил, можно ли применить чарлиплексинг кнопок в джойстике:

 

 


 

  • Нравится 5
  • Спасибо! 1
  • В замешательстве 1
Опубликовано:

Продолжаем разговор (всё ещё монолог).

 

С помощью N контактов (проводов) к Ардуино можно подключить:

  • до N-1 кнопок (-1 - это провод GND) - для прямого (линейного) подключения кнопок.
  • до N*N/4 кнопок - для прямоугольной матрицы.
  • до N*(N-1) кнопок - для кольцевой матрицы.

Насколько велика разница, показывает следующая таблица.

image.png.c9d51821960a6ec59fad0292c78b5c2d.png

 

Впечатляющий результат!

 

Для проверки возможностей использования кольцевой матрицы кнопок в джойстиках разработан скетч RingButtonBox.
Cкетч RingButtonBox позволяет создать джойстик на Arduino Pro Micro без дополнительных микросхем, поддерживающий:

  • 0 ... 128 логических кнопок.
  • 0 ... 4 хатки 8ми, 4х или 2х позиционных.
  • 0 ... 8 осей на механических энкодерах с кнопками сброса и / или на потенциометрах или датчиках Холла (SS495).

Подробнее о Кольцевой матрице и о скетче RingButtonBox:

https://sites.google.com/site/diyheadtracking/home/ringmatrix

 

Удачи!

Страница переехала: https://sites.google.com/site/diyheadtracking/home/joystick/ringmatrix

 

  • Нравится 3
  • Поддерживаю! 1
Опубликовано:

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

Опубликовано:

Это всё просто замечательно, но тут уже и выше 64й кнопки игра не видит, ей до 128 хотя б дорасти...

Опубликовано:

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

 

Цитата

Это всё просто замечательно, но тут уже и выше 64й кнопки игра не видит, ей до 128 хотя б дорасти...

 

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

Опубликовано:
19 часов назад, GO63 сказал:

для облегчения разводки кнопок.

Нужны сдвиговые регистры ?

Опубликовано:
24.07.2023 в 15:30, Johnet сказал:

Нужны сдвиговые регистры ?

Да это известный и хороший способ.

А я предложил ещё один малоизвестный и отличный способ.

"Больше товаров - хороших и разных!"

 

  • Поддерживаю! 1
  • 1 год спустя...
Опубликовано:

Можно ли как-то совместить этот скетч со скетчем тензоджойстика?  Я в программировании совсем новичок....

  • Поддерживаю! 1
Опубликовано:

Можно.

 

Cкетч RingTenzoJoy - джойстик с РУС на четырёх или трёх весовых датчиках.
Четыре или три весовых датчика могут быть установлены на основании "звездой", "квадратом" или "треугольником", с любым углом поворота вокруг вертикальной оси.
Используются два или три модуля HX711.
В скетче можно задать от 2 до 8 осей, от 0 до 128 кнопок и от 0 до 4 хаток.
Две оси на тензодатчиках, остальные оси аналоговые или на энкодерах.
Дополнительно можно задать управление загрузкой от аналогового потенциометра "softstick-hardstick" и две полезные кнопки "Center" и "Trimmer".

Предусмотрено подключение кнопок как напрямую к контактам Ардуино, так и через кольцевую матрицу кнопок.

Можно использовать вместо кольцевой обычную прямоугольную матрицу с кремниевыми диодами 1N4148 (КД522), с pull-up резисторами 2кОм на всех контактах разъёма матрицы.

 

Сейчас скетч настроен на создание такого джойстика:

  •   Оси X и Y на трёх тензобалках (три модуля HX711)
  •   Ось Z аналоговая, потенциометр подключен к A2
  •   Оси RX и RY цифровые на энкодерах, диапазон -10 ... +10, подключены к кольцевой матрице
  •   Одна 8-позиционная хатка подключена к кольцевой матрице
  •   Ещё 6 кнопок также подключены к кольцевой матрице
  •   Сама кольцевая матрица подключена к контактам ProMicro 8, 9, 14, 15, 16
  •   Потенциометр "softstick-hardstick" подключен к A3
  •   Кнопки "Center" и "Trimmer" подключены напямую к ProMicro, к контактам 6 и 7
  •   Между контактами A1 и GND подключен светодиод через резистор 510 Ом, для индикации режимов калибровки нуля при включении, а также режимов "Center" и "Trimmer"

Сейчас в джойстике 5 осей, 6 кнопок и 1 хатка и ещё служебные ось "softstick-hardstick" и кнопки "Center" и "Trimmer"

 

image.png.32a5fe0db9e7978c307b0e9b80577087.png

 

image.png.b0a7e489bad83e1026d743d2d318a3c5.png

 

Скачать: 

 

RingTenzoJoy.rar

  • Нравится 1
  • Поддерживаю! 1

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...