Keyboard simulation within a userspace component

  • DaOne
  • DaOne's Avatar Topic Author
  • Offline
  • Premium Member
  • Premium Member
More
15 Jul 2018 20:28 #114237 by DaOne
I am trying to create a custom keypad using an arduino to matrix the 130 key membrane keypad. I got the arduino side done sending each key as a code via serial. I plan to use the component that ArcEye created a while back as a base. I think I have all the pins figured as hal pins but I want the standard keyboard part to work as an actual keyboard for input. Is the a way in the .comp file to send a keystroke like if it was a real keyboard? Also if there is how would I handle "shift" commands? I can manage the shift key on the arduino side and just give every uppercase key a different key code.

Please Log in or Create an account to join the conversation.

  • AnnoyingMutt
  • AnnoyingMutt's Avatar
  • Visitor
  • Visitor
15 Jul 2018 21:18 #114241 by AnnoyingMutt
Replied by AnnoyingMutt on topic Keyboard simulation within a userspace component
Why not go with USB ?

Free USB Stack, one I've used myself, www.fourwalledcubicle.com/LUFA.php

Please Log in or Create an account to join the conversation.

  • DaOne
  • DaOne's Avatar Topic Author
  • Offline
  • Premium Member
  • Premium Member
More
15 Jul 2018 21:34 - 15 Jul 2018 21:36 #114243 by DaOne
Did you happen to have any more information on your previous use? Not against using another method. I really want hal pins from all the keys other than the actual keyboard and number pad. Maybe this can be done in python?

Here is what I am working with...


Attachments:
Last edit: 15 Jul 2018 21:36 by DaOne.

Please Log in or Create an account to join the conversation.

  • AnnoyingMutt
  • AnnoyingMutt's Avatar
  • Visitor
  • Visitor
15 Jul 2018 22:59 #114247 by AnnoyingMutt
Replied by AnnoyingMutt on topic Keyboard simulation within a userspace component
Best idea would be to look at the LUFA frame work, you maybe able to create a composite device eg Keyboard & joystick, Keyboard would be handled as per normal, and use hal_input for joysyick side.
linuxcnc.org/docs/2.7/html/man/man1/hal_input.1.html

There is also this:
generichid.sourceforge.net/
Makefile needs a bit of faffing around with, nothing too serious.

The code I wrote is for a joystick device,pretty much just extending the lufa example, it appears as a standard joystick, I used the hidcomp component from franksworkshop. I used a Arduino micro, but I have a Teensy floating around as I want a more complete panel.
I'd have to fire up the old Thinkpad & Beaglebone to look at the code but it's pretty boiler plate.

Please Log in or Create an account to join the conversation.

  • AnnoyingMutt
  • AnnoyingMutt's Avatar
  • Visitor
  • Visitor
16 Jul 2018 01:52 #114255 by AnnoyingMutt
Replied by AnnoyingMutt on topic Keyboard simulation within a userspace component
I just had a thought, maybe there is a python library or code example you could use to send key events.

I found this, haven't given it a try, not too sure if it can be used at all.
github.com/boppreh/keyboard

Please Log in or Create an account to join the conversation.

  • andypugh
  • andypugh's Avatar
  • Away
  • Moderator
  • Moderator
More
17 Jul 2018 12:47 #114374 by andypugh
I did do this once. At one point the matrix_kb HAL component could be configured to send keystrokes. (so it would generate scan codes and also send key strokes via a system call).
linuxcnc.org/docs/2.7/html/man/man9/matrix_kb.9.html
However I removed this feature as it was concluded that the system call to generate key strokes wasn't thread-safe.

However, it ought to be possible to pass the scan-code to a user-space module written in Python.
stackoverflow.com/questions/13564851/how...ard-events-in-python
The second answer seems to suggest some very simple ways to do what you want.

Please Log in or Create an account to join the conversation.

  • andypugh
  • andypugh's Avatar
  • Away
  • Moderator
  • Moderator
More
17 Jul 2018 12:48 #114375 by andypugh
(It is a pity you have more than 64 keys, otherwise the 7i73 would be an off-the-shelf solution)

Please Log in or Create an account to join the conversation.

  • rodw
  • rodw's Avatar
  • Away
  • Platinum Member
  • Platinum Member
More
17 Jul 2018 13:09 #114381 by rodw
Maybe this python code would work?
pythonfiddle.com/usb-keyboard-emulator/

Please Log in or Create an account to join the conversation.

  • andypugh
  • andypugh's Avatar
  • Away
  • Moderator
  • Moderator
More
17 Jul 2018 13:15 #114383 by andypugh
I wonder if it makes sense to split the keyboard into two sections?
One part (numbers and letters) as a USB keyboard, either real or emulated, and the other as a matrix keyboard creating HAL pins in realtime.

Please Log in or Create an account to join the conversation.

  • AnnoyingMutt
  • AnnoyingMutt's Avatar
  • Visitor
  • Visitor
22 Jul 2018 02:11 #114651 by AnnoyingMutt
Replied by AnnoyingMutt on topic Keyboard simulation within a userspace component
Ok what you maybe able to do is use uinput.

robocup.wtb.tue.nl/svn/techunited/trunk/...nput%20subsystem.pdf

Please Log in or Create an account to join the conversation.

Time to create page: 0.115 seconds
Powered by Kunena Forum