たんなるメモです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
音声の出力
#自動判別
$ sudo amixer cset numid=3 0
#本体のステレオジャックへ出力
$ sudo amixer cset numid=3 1
#HDMI端子へ出力
$ sudo amixer cset numid=3 2
参考資料:https://fabcross.jp/category/make/sorepi/20170711_speak_japanese.html?fm=side_chkit
PR
友人から指摘があった分を修正しました。
スペースの開け方とかめんどくさいなw
スペースの開け方とかめんどくさいなw
#!/bin/sh NUM=0 PRG="sudo PROGRAM -OPTION " # GPIOのポート2,3,4,17を入力でオープン # echo 2 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio2/direction echo low > /sys/class/gpio/gpio2/direction echo 3 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio3/direction echo low > /sys/class/gpio/gpio3/direction echo 4 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio4/direction echo low > /sys/class/gpio/gpio4/direction echo 17 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio17/direction echo low > /sys/class/gpio/gpio17/direction # GPIOポートの入力状態を調べ数値に変更 # if [`cat /sys/class/gpio/gpio2/value` -eq 1] ; then NUM=`expr $NUM + 1` fi if [`cat /sys/class/gpio/gpio3/value` -eq 1] ; then NUM=`expr $NUM + 2` fi if [`cat /sys/class/gpio/gpio4/value` -eq 1] ; then NUM=`expr $NUM + 4` fi if [`cat /sys/class/gpio/gpio17/value` -eq 1] ; then NUM=`expr $NUM + 8` fi # GPIOのポートを閉じる # echo 2 > /sys/class/gpio/unexport echo 3 > /sys/class/gpio/unexport echo 4 > /sys/class/gpio/unexport echo 17 > /sys/class/gpio/unexport # 条件に応じて実行データを設定 # case $NUM in 0 ) EXE="OBJECT01" ;; 1 ) EXE="OBJECT02" ;; 2 ) EXE="OBJECT03" ;; 3 ) EXE="OBJECT04" ;; 4 ) EXE="OBJECT05" ;; 5 ) EXE="OBJECT06" ;; 6 ) EXE="OBJECT07" ;; 7 ) EXE="OBJECT08" ;; 8 ) EXE="OBJECT09" ;; 9 ) EXE="OBJECT10" ;; 10 ) EXE="OBJECT11" ;; 11 ) EXE="OBJECT12" ;; 12 ) EXE="OBJECT13" ;; 13 ) EXE="OBJECT14" ;; 14 ) EXE="OBJECT15" ;; 15 ) EXE="OBJECT16" ;; esac # プログラム オプションと結合 # EXE=$PRG$EXE` # 表示と実行 # echo ${EXE} ${EXE} # v0.0.1 Oct. 28 2015
先日友人から「シェルスクリプトでよくねー?」って言われたので、上記プログラムをシェルスクリプト移植してみた。
※動作実験してません
※このままコピペしても動かないと思います。
※エラい人添削お願いします。
※動作実験してません
※このままコピペしても動かないと思います。
※エラい人添削お願いします。
#!/bin/sh
NUM = 0
PRG = "sudo PROGRAM -OPTION "
# GPIOのポート2,3,4,17を入力でオープン
#
echo 2 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio2/direction
echo low > /sys/class/gpio/gpio2/direction
echo 3 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio3/direction
echo low > /sys/class/gpio/gpio3/direction
echo 4 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio4/direction
echo low > /sys/class/gpio/gpio4/direction
echo 17 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio17/direction
echo low > /sys/class/gpio/gpio17/direction
# GPIOポートの入力状態を調べ数値に変更
#
if cat /sys/class/gpio/gpio2/value -eq 1
then
NUM = `expr $NUM + 1`
fi
if cat /sys/class/gpio/gpio3/value -eq 1
then
NUM = `expr $NUM + 2`
fi
if cat /sys/class/gpio/gpio4/value -eq 1
then
NUM = `expr $NUM + 4`
fi
if cat /sys/class/gpio/gpio17/value -eq 1
then
NUM = `expr $NUM + 8`
fi
# GPIOのポートを閉じる
#
echo 2 > /sys/class/gpio/unexport
echo 3 > /sys/class/gpio/unexport
echo 4 > /sys/class/gpio/unexport
echo 17 > /sys/class/gpio/unexport
# 条件に応じて実行データを設定
#
case $NUM in
0 ) EXE = "OBJECT01";;
1 ) EXE = "OBJECT02";;
2 ) EXE = "OBJECT03";;
3 ) EXE = "OBJECT04";;
4 ) EXE = "OBJECT05";;
5 ) EXE = "OBJECT06";;
6 ) EXE = "OBJECT07";;
7 ) EXE = "OBJECT08";;
8 ) EXE = "OBJECT09";;
9 ) EXE = "OBJECT10";;
10 ) EXE = "OBJECT11";;
11 ) EXE = "OBJECT12";;
12 ) EXE = "OBJECT13";;
13 ) EXE = "OBJECT14";;
14 ) EXE = "OBJECT15";;
15 ) EXE = "OBJECT16";;
esac
# プログラム オプションと結合
#
EXE = `expr $PRG + $EXE`
# 表示と実行
#
echo ${EXE}
${EXE}
# v0.0.0 Oct. 26 2015
実行部分を入れてみました。
添削お願いします。
添削お願いします。
# -*- coding: shift-jis -*-
# 初期設定
#
import subprocess
import RPi.GPIO as GPIO
# BCMをBOARDにするちピンの配置番号
#
GPIO.setmode(GPIO.BCM)
# GPIOのポートを入力でオープン
#
GPIO.setup( 2 , GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup( 3 , GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup( 4 , GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup( 17 , GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
# 実行データのテーブルを定義
#
gname_dict_1 = { 0 : 'OBJECT01',
1 : 'OBJECT02',
2 : 'OBJECT03',
3 : 'OBJECT04',
4 : 'OBJECT05',
5 : 'OBJECT06',
6 : 'OBJECT07',
7 : 'OBJECT08',
8 : 'OBJECT09',
9 : 'OBJECT10',
10 : 'OBJECT11',
11 : 'OBJECT12',
12 : 'OBJECT13',
13 : 'OBJECT14',
14 : 'OBJECT15',
15 : 'OBJECT16' }
# 変数の設定
#
exec_str = 'sudo PROGRAM -OPTION '
number_integer = 0
# GPIOポートの入力状態を調べ数値に変更
#
if GPIO.input(2) == 0:
else:
number_integer = number_integer + 1
if GPIO.input(3) == 0:
else:
number_integer = number_integer + 2
if GPIO.input(4) == 0:
else:
number_integer = number_integer + 4
if GPIO.input(17) == 0:
else:
number_integer = number_integer + 8
# GPIOのポートを閉じる
#
GPIO.cleanup()
# 変数(実行コマンドライン)の設定
#
command_str = exec_str + gname_dict_1[number_integer]
# 実行コマンドラインを表示
#
print command_str
# コマンドラインを実行
#
return_integer = subprocess.check_output( command_str.split(" ") )
# v0.0.3 Oct. 22 2015
プロフィール
HN:
ぽんかん
性別:
非公開
P R
忍者カウンター