<div dir="ltr">On Wed, 17 Jun 2015 at 02:23 Michael Torrie <<a href="mailto:torriem@gmail.com">torriem@gmail.com</a>> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 06/16/2015 02:49 PM, Grant Edwards wrote:<br>
> On 2015-06-16, John McKenzie <<a href="mailto:davros@bellaliant.net" target="_blank">davros@bellaliant.net</a>> wrote:<br>
><br>
>> It never occurred to me something so simple as keystrokes would not<br>
>> be present in Python, a language rated as being terrific by everyone<br>
>> I know who knows it.<br>
><br>
> Ah, but in reality "keystrokes" is not simple at all.  Keyboards and<br>
> input handling is a very messy, complicated area.<br>
<br>
If you do choose to go with the GPIO route, unless your code for<br>
accessing the GPIO lines does debouncing, you will have to debounce the<br>
key.  There are lots of examples out there (most in C on the arduino,<br>
but still applicable). Most of them check for a button press, then do a<br>
timer count-down to let things settle out before recording a button<br>
press.  So it's still complicated even if you talk directly to the<br>
buttons!  No way around some complexity though.<br></blockquote><div><br></div><div>I use the following. I found in testing that when you push the button it prints 'Button pressed' 10 times a second (in actual use it calls poweroff so I guess bounce isn't an issue there). Is there some reason it needs to be cleverer in this case?<br></div><div><br> #!/usr/bin/env python<br><br>import RPi.GPIO as GPIO<br>import subprocess<br>import time<br><br>PIN_NUM = 21<br><br>GPIO.setmode(GPIO.BCM)<br><br>GPIO.setup(PIN_NUM, <a href="http://GPIO.IN">GPIO.IN</a>, pull_up_down=GPIO.PUD_UP)<br><br>while True:<br>    time.sleep(0.1)<br>    if not GPIO.input(PIN_NUM):<br>        print('Button pressed')<br><br>--<br></div><div>Oscar<br></div></div></div>