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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

Иногда появляется необходимость в небольшой клавиатуре или просто в наборе кнопок для управления станком в среде LinuxCNC.
Предлагаю простой вариант реализации такого устройства, подключающегося к COM-порту компьютера, практически не требующий материальных затрат.
Клавиатура имеет до 12 кнопок, которые могут быть подключены при помощи hal-файлов конфигурации к любым сигналам в LCNC.
comclav.PNG (10068 просмотров) <a class='original' href='./download/file.php?id=40063&sid=0918f33eb9dd6a2a768cef835a20e2e1&mode=view' target=_blank>Загрузить оригинал (11.89 КБ)</a>
Схема клавиатуры содержит 12 нормально разомкнутых кнопок, включенных в матрицу 3х4, 5-6 маломощных диодов (например КД521 или 1N4148) и 4 резистора на 3-6 кОм. Подключается семипроводным кабелем или шлейфом.
Для пробы спаял макет.
макет клавиатурки.jpg (10068 просмотров) <a class='original' href='./download/file.php?id=40062&sid=0918f33eb9dd6a2a768cef835a20e2e1&mode=view' target=_blank>Загрузить оригинал (275.43 КБ)</a>
Вот тестовый hal-файл.

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

loadrt threads  name1=base-thread period1=30000 fp1=0 name2=servo-thread period2=1000000

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

start
Используются компоненты serport и matrix_kb
К сожалению, драйвер serport содержит ошибки, пришлось его слегка подправить.
serport.tar.bz2
(46.32 КБ) 559 скачиваний
Здесь исправленный исходник и скомпилированный драйвер. Его можно просто скопировать вместо имеющегося в папку rtlib.
С драйвером, который идет в системе, работа тоже возможна, но потребуются некоторые "костыли" в hal-файле .

Компонент matrix_kb выполняет сканирование клавиатуры и выдает состояние кнопок на 12 (в данном случае) выходов matrix_kb.0.key.r0c0 - matrix_kb.0.key.r2c3 (битовые), а также номер нажатой клавиши в matrix_kb.0.keycode (целое число).
Плюсы такой клавиатуры не только в простоте устройства, но и в достаточно хорошей помехоустойчивости из-за высоких уровней сигналов, используемых в COM-порте (размах от -10 до +10 вольт)

PS: Поскольку тема вызвала некоторый интерес, буду здесь выкладывать и разные другие "бюджетные" устройства с нестандартным использованием COM-порта.
В планах:
- подключение простого свитч-энкодера (сделал)
- работа с твердотельными (есть) и обычными реле.
- ручной энкодер с выходом TTL (штурвал, маховичок) (готово).
- реализация аналоговых входов (есть).
- увеличенная клавиатура (есть).
Последний раз редактировалось Сергей Саныч 08 июн 2016, 14:55, всего редактировалось 9 раз.
Чудес не бывает. Бывают фокусы.
nkp
Мастер
Сообщения: 8264
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1546
Контактная информация:

Re: Простенькая клавиатура для пульта

Сообщение nkp »

Сергей Саныч писал(а):драйвер serport содержит ошибки, пришлось его слегка подправить.
может стоит сюда подправленый выложить , чтоб т.с. всё в одном месте было...
(а то потом будет трудно найти)
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32547
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5826
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Простенькая клавиатура для пульта

Сообщение aftaev »

и тему переименовать в Простенькая клавиатура для пульта по СОМ, LPT
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
nERV
Мастер
Сообщения: 1466
Зарегистрирован: 27 сен 2013, 19:00
Репутация: 596
Настоящее имя: Александр
Откуда: Ульяновск
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение nERV »

А может и медальку за это дело надо?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Сергей Саныч »

nkp писал(а):может стоит сюда подправленый выложить
выложил (в первое сообщение темы).
Чудес не бывает. Бывают фокусы.
jo_key
Почётный участник
Почётный участник
Сообщения: 262
Зарегистрирован: 19 сен 2011, 14:49
Репутация: 30
Настоящее имя: Евгений
Откуда: Украина, Харьков
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение jo_key »

И на ВИКИ закинуть
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Сергей Саныч »

jo_key писал(а):И на ВИКИ закинуть
Это можно :)
Продолжу. Итак, без особых затрат, с использованием реликтового COM-порта (а надо сказать, что подойдет только стандартный порт, с переходниками USB-COM работать, к сожалению, не будет) получена вполне рабочая клавиатура (или же набор разрозненных кнопок - кому как надо).
http://youtu.be/nwmI-BsS4pA
Надо, однако, сказать, что простая матричная организация не позволяет однозначно определять более двух одновременно нажатых произвольно выбранных кнопок. Чтобы не ограничивать себя в этом, можно последовательно с каждой кнопкой поставить по диоду.
COMKBD1.PNG (9957 просмотров) <a class='original' href='./download/file.php?id=40190&sid=0918f33eb9dd6a2a768cef835a20e2e1&mode=view' target=_blank>Загрузить оригинал (15.23 КБ)</a>
Это дает еще одну приятную возможность. "Пожертвовав" частью кнопок, можно поставить какие-нибудь переключатели, состояние которых будет считываться и передаваться в LCNC. Либо контактные датчики. Или же выходные транзисторы оптопар, а уже к ним прицепить любые датчики.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
РЕКЛАМА
Почётный участник
Почётный участник
Сообщения: 723
Зарегистрирован: 11 дек 2012, 21:46
Репутация: 80
Откуда: Брянск
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение РЕКЛАМА »

А энкодер от автомагитолы к такому можно привинтить?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1805
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 174
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Ворон226 »

Однозначно в Вики и медальку! Спасибо! Нужная штука.
Хочешь быть счастливым? Будь им!
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Сергей Саныч »

РЕКЛАМА писал(а):А энкодер от автомагитолы к такому можно привинтить?
В смысле, чтобы что-нибудь регулировать? Вроде такого?
энкодер.jpeg
энкодер.jpeg (6.06 КБ) 9932 просмотра
Так думаю, да. Надо только сориентироваться с необходимой частотой опроса. Обычно они имеют 10 - 30 импульсов на оборот, то есть 40 - 120 состояний. Частота опроса при сервоцикле 1 мс для этой схемы будет 333 Гц. В общем, если не сильно резко крутить, наверно пойдет. Будет время, завтра попробую. Идея хорошая :)
Чудес не бывает. Бывают фокусы.
nkp
Мастер
Сообщения: 8264
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1546
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение nkp »

Сергей Саныч писал(а):В общем, если не сильно резко крутить, наверно пойдет.
имхо пропуски то тут не страшны - мы же просто задаем некоторую величину ,которую визуально и контролируем..
ставил такие (не к ком порту конечно))
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Сергей Саныч »

Непосредственно подключить к COM-порту проблем никаких нет, его можно прямо от base-thread синхронизировать. Тут вообще быстродействие будет не хуже, чем у LPT.
Электрически только надо правильную подтяжку организовать.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
nERV
Мастер
Сообщения: 1466
Зарегистрирован: 27 сен 2013, 19:00
Репутация: 596
Настоящее имя: Александр
Откуда: Ульяновск
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение nERV »

Сергей Саныч писал(а): а уже к ним прицепить любые датчики.
Тогда получается, что этим же методом можно расширить количество подключаемых датчиков к компьютеру без использования дорогих контроллеров?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Сергей Саныч »

nERV писал(а):Тогда получается, что этим же методом можно расширить количество подключаемых датчиков к компьютеру без использования дорогих контроллеров?
Да.
Конечно, если для управления станком используются аппаратные контроллеры (Mesa и т.п.), где есть куча дополнительных входов/выходов, то смысла особого "колхозить" что-то с COM-портом нет. Но если нас в принципе устраивает управление по LPT, но хочется немного расширить возможности по управлению станком, то вариант с COM-портами может оказаться оптимальным.
Чудес не бывает. Бывают фокусы.
S500
Мастер
Сообщения: 301
Зарегистрирован: 22 сен 2014, 18:25
Репутация: 57
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение S500 »

есть у меня очень важный вопрос...
у меня на компьютере стоит 2 COM-порта.
K одному хочу подключить modbus RTU (типа PLC + частотник +++).
K другому порту если подключить эту плату.
Сергей Саныч писал(а):К сожалению, драйвер serport содержит ошибки, пришлось его слегка подправить.
если изменить этот драйвер,
тогда будет ли работать 1 порт там где находится modbus RTU (типа PLC + частотник) :thinking: .
не отразится ли на этом :thinking: .
спасибо :good: .
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Сергей Саныч »

S500 писал(а):будет ли работать 1 порт там где находится modbus RTU (типа PLC + частотник)
Будет. К стандартному драйверу последовательного порта Linux (/dev/ttySx) претензий нет.
Изменения внесены в драйвер serport LinuxCNC. На том порте, где он будет использоваться, стандартный драйвер нужно отключить.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22735
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1693
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Nick »

+медалька :good:!
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 958
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 92
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение solanto »

А можно релюшки прикашачить и ими рулить или нельзя? И что на счёт энкодера? Можно подключить или нет?
Последний раз редактировалось solanto 16 янв 2015, 15:34, всего редактировалось 1 раз.
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8889
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2785
Откуда: Тюмень
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение Сергей Саныч »

Можно. И очень просто. Но об этом - чуть позже.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 958
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 92
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: COM-порт и простенькая клавиатура для пульта

Сообщение solanto »

Тогда сажусь на скамейку ждать. :eat: :beer_blow:
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Ответить

Вернуться в «LinuxCNC»