Страница 2 из 10

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 10:15
Сергей Саныч
РЕКЛАМА писал(а):А энкодер от автомагитолы к такому можно привинтить?
Привинтил.
https://www.youtube.com/watch?v=o-sZhTHknhw
comkbdenc.PNG (4589 просмотров) <a class='original' href='./download/file.php?id=41051&mode=view' target=_blank>Загрузить оригинал (15.54 КБ)</a>
comkbdenc.tar.bz2
(1.13 КБ) 473 скачивания

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 10:25
solanto
А Штурвал китайский также можно подключить или там по другому делается?

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 10:31
Сергей Саныч
solanto писал(а):А Штурвал китайский также можно подключить или там по другому делается?
В штурвале выходы ТТЛ, а здесь просто контакты. Три на сам энкодер и два - кнопка, которая срабатывает при нажатии на ручку. В демке она сбрасывает стрелку в ноль.
А штурвал в планах :)
Собственно, там тоже ничего сложного нет.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 10:57
solanto
А может штурвал распотрошить и переделать схемку у него внутри, что бы была имитация контактов? Или можно в принципе всё оттуда выкинуть и засунуть простой энкодер на 100 положений :hehehe: :freak_in_action:
что то не могу сумасшедший смайлик найти :hehehe:
И ещё вопросик: при такой реализации как у Вас сколько кнопок совместно с энкодером можно использовать? Только 6 или можно матрицу как раньше было?

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 11:06
solanto
Так можно?

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 11:19
Сергей Саныч
solanto писал(а):сколько кнопок совместно с энкодером можно использовать? Только 6 или можно матрицу как раньше было?
я пробовал включить контакты энкодера вместо двух кнопок матрицы. Но при этом сильно снижается допустимая скорость поворота. Где-то до одного оборота за две секунды, дальше идет "срыв". Правда, у меня под рукой оказался энкодер с 24 импульсами на оборот. А бывают и на 12 и на 10. С ними, может и полегче будет.
solanto писал(а):А может штурвал распотрошить и переделать схемку у него внутри, что бы была имитация контактов? Или можно в принципе всё оттуда выкинуть и засунуть простой энкодер на 100 положений
не стоит.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 11:21
Сергей Саныч
solanto писал(а):Так можно?
Кнопки в двух левых колонках будут работать только в определенном положении энкодера - когда оба контакта разомкнуты. То есть с вероятностью 1/4 :)

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 11:23
solanto
Сергей Саныч писал(а):А бывают и на 12 и на 10
А я как раз подумал что именно такой Вы используете.
А при 6 кнопках как бысто можно энкодером крутить без срыва?
Сергей Саныч писал(а):Кнопки в двух левых колонках будут работать только в определенном положении энкодера - когда оба контакта разомкнуты. То есть с вероятностью 1/4 :)
Ясно тогда буду действовать как Вы. 6 кнопок и всё.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 12:15
Сергей Саныч
solanto писал(а):А я как раз подумал что именно такой Вы используете.
Компонент encoder в демке включен в режим подсчета импульсов, а не переходов (setp encoder.0.x4-mode 0). Поэтому на один оборот получается 24 отсчета. Никто не мешает поставить параметр в 1 и будет 96.
solanto писал(а):А при 6 кнопках как бысто можно энкодером крутить без срыва?
Теоретически, при base-period 30 мкс - до 100 и более об/сек.
По факту - оборотов 10 нормально переваривает. Потом начинается сильный дребезг контактов.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 12:41
solanto
Сергей Саныч писал(а):Теоретически, при base-period 30 мкс - до 100 и более об/сек.
Но это же для 24 импульсного энкодера? А если 100 импульсов, то наверняка где то около 4 выходит? Или я неправильно посчитал?

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 12:48
Сергей Саныч
Дребезг характерен именно для контактного энкодера. Какой принцип в китайских штурвалах не знаю, не разбирал. Скорее всего оптический. То есть будет ближе к теории.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 12:51
solanto
По ощущения штурвал тоже контактный, перемешается рывками.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 12:54
Nick
Там скорее всего шарик с зубчатым венцом для фиксации в каждом положении. Хотя кто их знает этих китайцев :)

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 12:57
Сергей Саныч
solanto писал(а):По ощущения штурвал тоже контактный, перемешается рывками.
"Рывки" (detants) в штурвалах и простых энкодерах не из-за контактного принципа, а введены специально, чтобы уменьшить возможность "уползания". Те же энкодеры выпускаются и с "трещоткой" и без нее.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 19 янв 2015, 17:10
solanto
Сергей Саныч писал(а):Те же энкодеры выпускаются и с "трещоткой" и без нее.
Ясно.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 21 янв 2015, 15:33
solanto
solanto писал(а):Так можно?
а что если поставить по диоду на исходящие из энкодера контакты? Может в таком случае удасться использовать много кнопок?

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 21 янв 2015, 16:28
Сергей Саныч
solanto писал(а): что если поставить по диоду на исходящие из энкодера контакты? Может в таком случае удасться использовать много кнопок?
Не получится.
(для просмотра содержимого нажмите на ссылку)
Вот такой вариант работает.
comkbde.PNG (4480 просмотров) <a class='original' href='./download/file.php?id=41260&mode=view' target=_blank>Загрузить оригинал (16.05 КБ)</a>
Но слишком медленно. Или для него придется завести отдельный быстрый поток с FP.

Код: Выделить всё

loadrt threads  name1=base-thread period1=30000 fp1=0 name2=kbd-thread period2=60000 name3=servo-thread period3=1000000

loadusr -Wn comkbdenc pyvcp -c comkbdenc comkbdenc.xml

loadrt serport io=0x3f8
addf serport.0.read base-thread
addf serport.0.write base-thread

loadrt matrix_kb config=3x4s 
addf matrix_kb.0 kbd-thread
setp matrix_kb.0.negative-logic 0

loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
setp encoder.0.counter-mode 0

net col0 serport.0.pin-9-in  => matrix_kb.0.col-00-in
net col1 serport.0.pin-8-in  => matrix_kb.0.col-01-in
net col2 serport.0.pin-6-in  => matrix_kb.0.col-02-in
net col3 serport.0.pin-1-in  => matrix_kb.0.col-03-in
net row0 matrix_kb.0.row-00-out => serport.0.pin-4-out
net row1 matrix_kb.0.row-01-out => serport.0.pin-3-out
net row2 matrix_kb.0.row-02-out => serport.0.pin-7-out

net led0  matrix_kb.0.key.r0c0 => comkbdenc.led0
net led1  matrix_kb.0.key.r0c1 => comkbdenc.led1
net led2  matrix_kb.0.key.r0c2 => comkbdenc.led2
net led3  matrix_kb.0.key.r0c3 => comkbdenc.led3
net led4  matrix_kb.0.key.r1c0 => comkbdenc.led4
net led5  matrix_kb.0.key.r1c1 => comkbdenc.led5
net led6  matrix_kb.0.key.r1c2 => comkbdenc.led6
net led7  matrix_kb.0.key.r1c3 => comkbdenc.led7
net led8  matrix_kb.0.key.r2c0 => comkbdenc.led8
net encsw matrix_kb.0.key.r2c1 => comkbdenc.led9  encoder.0.reset
net enca  matrix_kb.0.key.r2c2 => comkbdenc.led10 encoder.0.phase-A
net encb  matrix_kb.0.key.r2c3 => comkbdenc.led11 encoder.0.phase-B


net encdataf encoder.0.position => comkbdenc.encdataf


start

но я не стал "умножать сущности без необходимости"

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 21 янв 2015, 22:32
solanto
Сергей Саныч писал(а):Но слишком медленно.
На сколько медленно? 2 об/сек или медленнее?

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 22 янв 2015, 03:15
Сергей Саныч
solanto писал(а): 2 об/сек или медленнее?
Наоборот :) Один оборот за две секунды Это слишком медленно.

Re: COM-порт, клавиатура и другие "антикризисные" решения.

Добавлено: 22 янв 2015, 07:43
solanto
Сергей Саныч писал(а):Наоборот Один оборот за две секунды
Действительно медленно. Значит тут нечего не поделаешь, надо использовать эту схему