How it works...

First, we import uinput and define the wiring of the keypad buttons. For each of the buttons in BTN, we enable them as inputs, with internal pull-ups enabled.

Next, we set up uinput, defining the keys we want to emulate and adding them to the uinput.Device() function. We wait a few seconds to allow uinput to initialize, set the initial button and key states, and start our main loop.

The main loop is split into two sections: the first section checks through the buttons and records the states in btn_state, and the second section compares the btn_state with the current key_state array. This way, we can detect a change in btn_state and call device.emit() to toggle the state of the key.

To allow us to run this script in the background, we can run it with &, as shown in the
following command:

sudo python3 gpiokeys.py &  
The & character allows the command to run in the background, so we can continue with the command line to run other programs. You can use fg to bring it back to the foreground, or %1, %2, and so on if you have several commands running. Use jobs to get a list.

You can even put a process/program on hold to get to Command Prompt by pressing Ctrl + Z and then resume it with bg (which will let it run in the background).

You can test the keys using the game created in the Creating an overhead scrolling game recipe in Chapter 5, Creating Games and Graphics, which you can now control using your GPIO directional pad. Don't forget that if you are connecting to the Raspberry Pi remotely, any key presses will only be active on the locally connected screen.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.103.154