Страница 2 из 10
Re: COM-порт, клавиатура и другие "антикризисные" решения.
Добавлено: 19 янв 2015, 10:15
Сергей Саныч
РЕКЛАМА писал(а):А энкодер от автомагитолы к такому можно привинтить?
Привинтил.
https://www.youtube.com/watch?v=o-sZhTHknhw
Re: COM-порт, клавиатура и другие "антикризисные" решения.
Добавлено: 19 янв 2015, 10:25
solanto
А Штурвал китайский также можно подключить или там по другому делается?
Re: COM-порт, клавиатура и другие "антикризисные" решения.
Добавлено: 19 янв 2015, 10:31
Сергей Саныч
solanto писал(а):А Штурвал китайский также можно подключить или там по другому делается?
В штурвале выходы ТТЛ, а здесь просто контакты. Три на сам энкодер и два - кнопка, которая срабатывает при нажатии на ручку. В демке она сбрасывает стрелку в ноль.
А штурвал в планах
Собственно, там тоже ничего сложного нет.
Re: COM-порт, клавиатура и другие "антикризисные" решения.
Добавлено: 19 янв 2015, 10:57
solanto
А может штурвал распотрошить и переделать схемку у него внутри, что бы была имитация контактов? Или можно в принципе всё оттуда выкинуть и засунуть простой энкодер на 100 положений
что то не могу сумасшедший смайлик найти

И ещё вопросик: при такой реализации как у Вас сколько кнопок совместно с энкодером можно использовать? Только 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 писал(а): что если поставить по диоду на исходящие из энкодера контакты? Может в таком случае удасться использовать много кнопок?
Не получится.
(для просмотра содержимого нажмите на ссылку)Вот такой вариант работает.
Но слишком медленно. Или для него придется завести отдельный быстрый поток с 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
Сергей Саныч писал(а):Наоборот Один оборот за две секунды
Действительно медленно. Значит тут нечего не поделаешь, надо использовать
эту схему