RaspberryPi ボタン付き3.2インチ液晶

ボタンの設定プログラム
cd /home/pi
sudo nano TFT_button.py
で以下の内容を転記し保存する。

#!/usr/bin/python

import time, sys, os, commands
import RPi.GPIO as GPIO

Button1 = 18
Button2 = 23
Button3 = 24

try:
GPIO.setmode(GPIO.BCM)
GPIO.setup(Button1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Button2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Button3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while 1:
data1 = GPIO.input(Button1)
data2 = GPIO.input(Button2)
data3 = GPIO.input(Button3)

# If the button is pressed, take action.
if data1 == 0:
os.system(“FRAMEBUFFER=/dev/fb1 su -l pi -c startx &”)
time.sleep(10)

if data2 == 0:
os.system(“sudo shutdown -h now”)
time.sleep(99)

if data3 == 0:
os.system(“sudo shutdown -r now”)
time.sleep(99)

time.sleep(0.1)

except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()

保存したら実行権を与え実行する。
sudo chmod +x TFT_button.py
続いて下記コマンドから起動時常駐させるよう変更する。
cd /etc/init.d
sudo nano TFT_button.sh
以下をファイルにコピペし保存する。

#! /bin/sh
### BEGIN INIT INFO
# Provides: TFT_button
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Buttons on the TFT monitor board
# Description: wait button press on the TFT monitor board
### END INIT INFO

# /home/pi/TFT_button.py

PIDFILE=/var/run/TFT_button.pid
case “$1” in
start)
if [ -f $PIDFILE ]; then
echo $PIDFILE exists.
exit 1
fi
start-stop-daemon -S -x /home/pi/TFT_button.py -b -m -p $PIDFILE
;;
stop)
if [ ! -f $PIDFILE ]; then
echo $PIDFILE not found.
exit 1
fi
start-stop-daemon -K -p $PIDFILE
rm $PIDFILE
;;
*)
echo “Usage: /etc/init.d/TFT_button.sh {start|stop}”
exit 1
;;
esac

exit 0
実行可能にする。
sudo chmod +x TFT_button.sh
起動時の実行設定
sudo update-rc.d TFT_button.sh defaults
起動時の実行の取りやめ
sudo update-rc.d TFT_button.sh remove
以上