Страница 6 из 10
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 11 фев 2016, 12:02
solo
хочу уточнить
в начале использовался в ком пульте механический энкодер
Re: COM-порт, клавиатура и другие антикризисные решения. #21 после немного усложнив схему был использован "Штурвал (он же MPG, РГИ) - энкодер на 100 импульсов/оборот, питание 5В, выход ТТЛ"
можно ли добиться приличных (аналогичных) результатов при использовании механического энкодера ( на 20 имп) или дребезг контактов будет вносить много помехи в управление
и еще в насколько я понял то данная клавиатура поддерживает нажатие нескольких клавиш , можно ли тогда организовать дополнительные клавиши как я нарисовал , а в хел файле соответственно декодировать по аналогии
Код: Выделить всё
net ledx matrix_kb.0.key.r2c1 => comkbdenc.ledx and2.0.in0
net ledz matrix_kb.0.key.r1c1 => comkbdenc.ledz and2.0.in1
net nn1 and2.0.out => comkbdenc.ledy
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 11 фев 2016, 12:14
Сергей Саныч
solo писал(а):можно ли добиться приличных (аналогичных) результатов при использовании механического энкодера ( на 20 имп) или дребезг контактов будет вносить много помехи в управление
Можно, я пробовал. Сбои наблюдались только при очень резком повороте вала. я смотрел осциллографом, дребезг был знатный
solo писал(а):можно ли тогда организовать дополнительные клавиши как я нарисовал , а в хел файле соответственно декодировать по аналогии
Можно.
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 12 фев 2016, 00:57
ALS
как вариант - неплохие энкодеры получаются из шаговых движков
http://ra3ggi.qrz.ru/UZLY/encod.htm
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 25 мар 2016, 19:06
dinkata
Сергей Саныч писал(а): Его можно просто скопировать вместо имеющегося в папку rtlib.
Хорошая идея ,хочу попробоват но никак не соображаю где находится папка rtlib
подскажите пожалуйста ! Debian Wheezy Linuxcnc 2.7
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 25 мар 2016, 19:55
nkp
locate rtlib
в терминале конечно...
==========
вообще взять на вооружение команду
locate то_что_ищешь
часто выручает
(в свое время один хороший человек тут подсказал))
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 25 мар 2016, 20:31
Сергей Саныч
В Debian файл serport.ko лежит не в rtlib. а в папке примерно такой
/usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc
я еще не пробовал работу моего serport под Debian.
Возможно, драйвер придется перекомпилировать.
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 26 мар 2016, 08:29
dinkata
Сергей Саныч писал(а):Возможно, драйвер придется перекомпилировать.
Да ,наверно .От сюда /usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc оригинальной serport.ko сохранил в другое
место и наместо его туда скопировал ваш файл serport.ko .Но не хочет
Код: Выделить всё
test12led.hal:1: Realtime module 'threads' loaded
test12led.hal:3: Component 'test12led' ready
test12led.hal:3: Program 'pyvcp' started
Error: could not insert module /usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc/serport.ko: Invalid module format
test12led.hal:5: exit value: 1
test12led.hal:5: insmod for serport failed, returned -1
See the output of 'dmesg' for more information.
halcmd:
Сделал 12 кнопок по схема в пост #1
подправил ...hal ....xml ,посмотрите правильно ли сделал ?
Код: Выделить всё
loadrt threads name1=base-thread period1=30000 fp1=0 name2=servo-thread period2=1000000
loadusr -Wn test12led pyvcp -c test12led test12led.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 servo-thread
setp matrix_kb.0.negative-logic 0
loadrt logic count=3 personality=0x204,0x204,0x204
addf logic.0 base-thread
addf logic.1 base-thread
addf logic.2 base-thread
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
net row1 matrix_kb.0.row-01-out => logic.0.in-00
net row2 matrix_kb.0.row-02-out => logic.1.in-00
net row3 matrix_kb.0.row-03-out => logic.0.in-01 logic.1.in-01
net row4 matrix_kb.0.row-04-out => logic.2.in-00
net row5 matrix_kb.0.row-05-out => logic.0.in-02 logic.2.in-01
net row6 matrix_kb.0.row-06-out => logic.1.in-02 logic.2.in-02
net row7 matrix_kb.0.row-07-out => logic.0.in-03 logic.1.in-03 logic.2.in-03
net code-row1 logic.0.or => serport.0.pin-4-out
net code-row2 logic.1.or => serport.0.pin-3-out
net code-row4 logic.2.or => serport.0.pin-7-out
net led0 matrix_kb.0.key.r0c0 => comkbd32.led0
net led1 matrix_kb.0.key.r1c0 => comkbd32.led1
net led2 matrix_kb.0.key.r2c0 => comkbd32.led2
net led3 matrix_kb.0.key.r3c0 => comkbd32.led3
net led4 matrix_kb.0.key.r4c0 => comkbd32.led4
net led5 matrix_kb.0.key.r5c0 => comkbd32.led5
net led6 matrix_kb.0.key.r6c0 => comkbd32.led6
net led7 matrix_kb.0.key.r7c0 => comkbd32.led7
net led8 matrix_kb.0.key.r0c1 => comkbd32.led8
net led9 matrix_kb.0.key.r1c1 => comkbd32.led9
net led10 matrix_kb.0.key.r2c1 => comkbd32.led10
net led11 matrix_kb.0.key.r3c1 => comkbd32.led11
start
Код: Выделить всё
<!-- Test panel for the serial port simple keyboard -->
<pyvcp>
<hbox>
<relief>RIDGE</relief>
<bd>2</bd>
<label>
<text>" 0"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led0"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 1"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led1"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 2"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led2"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 3"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led3"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 4"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led4"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 5"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led5"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
</hbox>
<hbox>
<relief>RIDGE</relief>
<bd>2</bd>
<label>
<text>" 6"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led6"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 7"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led7"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 8"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led8"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>" 9"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led9"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>"10"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led10"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
<label>
<text>"11"</text>
<font>("Courier",20)</font>
</label>
<led>
<halpin>"led11"</halpin>
<size>25</size>
<on_color>"red"</on_color>
<off_color>"black"</off_color>
</led>
</hbox>
</pyvcp>

- test12led.JPG (10.56 КБ) 6441 просмотр
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 26 мар 2016, 19:29
Сергей Саныч
Диньо, у тебя за основу hal из поста #62, а там и схема другая нужна, с программным шифратором и микросхемой-дешифратором.
А для 12 кнопок из первого поста всё проще. Попробуй так:
Код: Выделить всё
loadrt threads name1=base-thread period1=30000 fp1=0 name2=servo-thread period2=1000000
loadusr -Wn test12led pyvcp -c test12led test12led.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 servo-thread
setp matrix_kb.0.negative-logic 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 => test12led.led0
net led1 matrix_kb.0.key.r1c0 => test12led.led1
net led2 matrix_kb.0.key.r2c0 => test12led.led2
net led3 matrix_kb.0.key.r0c1 => test12led.led3
net led4 matrix_kb.0.key.r1c1 => test12led.led4
net led5 matrix_kb.0.key.r2c1 => test12led.led5
net led6 matrix_kb.0.key.r0c2 => test12led.led6
net led7 matrix_kb.0.key.r1c2 => test12led.led7
net led8 matrix_kb.0.key.r2c2 => test12led.led8
net led9 matrix_kb.0.key.r0c3 => test12led.led9
net led10 matrix_kb.0.key.r1c3 => test12led.led10
net led11 matrix_kb.0.key.r2c3 => test12led.led11
start
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 28 мар 2016, 16:21
dinkata
Сергей Саныч писал(а):Диньо, у тебя за основу hal из поста #62
да ,поправил но опят не хочет под Debian .
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 15 апр 2016, 16:35
dinkata
Благодаря Сергей !
работает

СОМ порт настроил .
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 27 апр 2016, 14:18
enigma_man
Приветствую уважаемые!!! возник такой вопрос. на Debian wheezy Lcnc возможно ли к com порту подключить линейный энкодер. Причем сам энкодер я планирую использовать оптический датчик как на мышке к примеру. Ну или что то подобное. В наличии имеются куча оптических датчиков с принтера. Не сочтите за глупость, просто возможен ли такой вариант? Причем на материнской плате asus p5ql pro имеются 4 com порта.

забыл добавить что придется спаять схемку с чипом. в итоге от самопального энкодера можно будет получать 1 и 0...[youtube]
https://youtu.be/OTkDhy8YGpw[/youtube] - что то типо этого
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 08 июн 2016, 14:43
Сергей Саныч
Армейская мудрость гласит:"Пусть безобразно, зато единообразно!".
Это я к тому, что заменять драйвер, содержащий ошибки, но тем не менее как-то работающий, на исправленный, но из-за этого имеющий несколько иную логику работы, было не лучшим решением из-за потери совместимости. Что и проявилось у нескольких форумчан при попытке повторить мои поделки.
Суть ошибок штатного драйвера:
контакты (пины) serport.0.pin-Х-in и serport.0.pin-X-in-not перепутаны между собой.
причем контакт serport.0.pin-1-in-not не работает вообще (всегда 0)
При помощи нехитрых костылей эти проблемы обходятся. Как показала практика, это лучше, чем править драйвер.
Поэтому публикую варианты hal-файлов демок для штатного драйвера.
12-кнопочная клавиатура
COM-порт: клавиатура и другие антикризисные решения. #1
Код: Выделить всё
loadrt threads name1=base-thread period1=30000 fp1=0 name2=servo-thread period2=1000000
loadusr -Wn comkbd pyvcp -c comkbd comkbd.xml
loadrt serport io=0x3f8
addf serport.0.read base-thread
addf serport.0.write base-thread
loadrt not
addf not.0 base-thread
loadrt matrix_kb config=3x4s
addf matrix_kb.0 servo-thread
setp matrix_kb.0.negative-logic 0
net col0 serport.0.pin-9-in-not => matrix_kb.0.col-00-in
net col1 serport.0.pin-8-in-not => matrix_kb.0.col-01-in
net col2 serport.0.pin-6-in-not => matrix_kb.0.col-02-in
net col3n serport.0.pin-1-in => not.0.in
net col3 not.0.out => 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 => comkbd.led0
net led1 matrix_kb.0.key.r0c1 => comkbd.led1
net led2 matrix_kb.0.key.r0c2 => comkbd.led2
net led3 matrix_kb.0.key.r0c3 => comkbd.led3
net led4 matrix_kb.0.key.r1c0 => comkbd.led4
net led5 matrix_kb.0.key.r1c1 => comkbd.led5
net led6 matrix_kb.0.key.r1c2 => comkbd.led6
net led7 matrix_kb.0.key.r1c3 => comkbd.led7
net led8 matrix_kb.0.key.r2c0 => comkbd.led8
net led9 matrix_kb.0.key.r2c1 => comkbd.led9
net led10 matrix_kb.0.key.r2c2 => comkbd.led10
net led11 matrix_kb.0.key.r2c3 => comkbd.led11
start
32-кнопочная клавиатура
Re: COM-порт: клавиатура и другие антикризисные решения. #62
Код: Выделить всё
loadrt threads name1=base-thread period1=30000 fp1=0 name2=servo-thread period2=1000000
loadusr -Wn comkbd32 pyvcp -c comkbd32 comkbd32.xml
loadrt serport io=0x3f8
addf serport.0.read base-thread
addf serport.0.write base-thread
loadrt not
addf not.0 base-thread
loadrt matrix_kb config=8x4s
addf matrix_kb.0 servo-thread
setp matrix_kb.0.negative-logic 0
loadrt logic count=3 personality=0x204,0x204,0x204
addf logic.0 base-thread
addf logic.1 base-thread
addf logic.2 base-thread
net col0 serport.0.pin-9-in-not => matrix_kb.0.col-00-in
net col1 serport.0.pin-8-in-not => matrix_kb.0.col-01-in
net col2 serport.0.pin-6-in-not => matrix_kb.0.col-02-in
net col3n serport.0.pin-1-in => not.0.in
net col3 not.0.out => matrix_kb.0.col-03-in
net row0 matrix_kb.0.row-00-out
net row1 matrix_kb.0.row-01-out => logic.0.in-00
net row2 matrix_kb.0.row-02-out => logic.1.in-00
net row3 matrix_kb.0.row-03-out => logic.0.in-01 logic.1.in-01
net row4 matrix_kb.0.row-04-out => logic.2.in-00
net row5 matrix_kb.0.row-05-out => logic.0.in-02 logic.2.in-01
net row6 matrix_kb.0.row-06-out => logic.1.in-02 logic.2.in-02
net row7 matrix_kb.0.row-07-out => logic.0.in-03 logic.1.in-03 logic.2.in-03
net code-row1 logic.0.or => serport.0.pin-4-out
net code-row2 logic.1.or => serport.0.pin-3-out
net code-row4 logic.2.or => serport.0.pin-7-out
net led0 matrix_kb.0.key.r0c0 => comkbd32.led0
net led1 matrix_kb.0.key.r1c0 => comkbd32.led1
net led2 matrix_kb.0.key.r2c0 => comkbd32.led2
net led3 matrix_kb.0.key.r3c0 => comkbd32.led3
net led4 matrix_kb.0.key.r4c0 => comkbd32.led4
net led5 matrix_kb.0.key.r5c0 => comkbd32.led5
net led6 matrix_kb.0.key.r6c0 => comkbd32.led6
net led7 matrix_kb.0.key.r7c0 => comkbd32.led7
net led8 matrix_kb.0.key.r0c1 => comkbd32.led8
net led9 matrix_kb.0.key.r1c1 => comkbd32.led9
net led10 matrix_kb.0.key.r2c1 => comkbd32.led10
net led11 matrix_kb.0.key.r3c1 => comkbd32.led11
net led12 matrix_kb.0.key.r4c1 => comkbd32.led12
net led13 matrix_kb.0.key.r5c1 => comkbd32.led13
net led14 matrix_kb.0.key.r6c1 => comkbd32.led14
net led15 matrix_kb.0.key.r7c1 => comkbd32.led15
net led16 matrix_kb.0.key.r0c2 => comkbd32.led16
net led17 matrix_kb.0.key.r1c2 => comkbd32.led17
net led18 matrix_kb.0.key.r2c2 => comkbd32.led18
net led19 matrix_kb.0.key.r3c2 => comkbd32.led19
net led20 matrix_kb.0.key.r4c2 => comkbd32.led20
net led21 matrix_kb.0.key.r5c2 => comkbd32.led21
net led22 matrix_kb.0.key.r6c2 => comkbd32.led22
net led23 matrix_kb.0.key.r7c2 => comkbd32.led23
net led24 matrix_kb.0.key.r0c3 => comkbd32.led24
net led25 matrix_kb.0.key.r1c3 => comkbd32.led25
net led26 matrix_kb.0.key.r2c3 => comkbd32.led26
net led27 matrix_kb.0.key.r3c3 => comkbd32.led27
net led28 matrix_kb.0.key.r4c3 => comkbd32.led28
net led29 matrix_kb.0.key.r5c3 => comkbd32.led29
net led30 matrix_kb.0.key.r6c3 => comkbd32.led30
net led31 matrix_kb.0.key.r7c3 => comkbd32.led31
start
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 30 сен 2016, 20:37
Валерий
Кто подскажет
Как найти COM-порт?
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 30 сен 2016, 20:45
johny
Валерий писал(а):Кто подскажет
Как найти COM-порт?
а какой системы ваш ком-порт?
если встроенные на материнку то обычно это /dev/ttyS0 , /dev/ttyS1
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 30 сен 2016, 20:51
Сергей Саныч
Валерий писал(а):Как найти COM-порт?
Где? На системном блоке, на материнке, или в ОС?
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 30 сен 2016, 21:07
Валерий
На материнке.
И плата есть PCI
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 30 сен 2016, 21:26
Валерий
loadrt serport io=0x3f8
addf serport.0.read base-thread
addf serport.0.write base-thread
На это дает ошибку
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 30 сен 2016, 21:35
Сергей Саныч
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 30 сен 2016, 21:40
Валерий
valera@valera:~$ sudo setserial /dev/ttyS0 uart none
[sudo] password for valera:
sudo: setserial: command not found
valera@valera:~$
Вот что написал
Re: COM-порт: клавиатура и другие "антикризисные" решения.
Добавлено: 01 окт 2016, 11:01
Валерий
Запускаю в терменале halrun -f comkbdenc.hal
Выдает .
Error: could not insert module /usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc/serport.ko: Device or resource busy
comkbdenc.hal:5: exit value: 1
comkbdenc.hal:5: insmod for serport failed, returned -1
See the output of 'dmesg' for more information.
valera@valera:~$
Пятая строчка в comkbdenc.hal loadrt serport io=0x3f8