それで、RPI 3 MLBスコアボードを作成しました。これで、ディスプレイに私のお気に入りのチームのゲームが表示されたり、ゲームが進むにつれてすべてのチームとループが表示されることがあります。スコアボードの背面にトグルスイッチを追加して、当時誰がプレイしているかに応じて、「すべてのチーム」または「私のチーム」を選択できるようにしたいと思います。 「All-Teams」または「My-Teams」を含む2つのほぼ同じスコアボードディレクトリがあります。
「cd /home/pi/mlb-led-scoreboard」に入力した項目に応じて、すべてのチームまたはマイチームを表示するスコアボードを起動する「start-scoreboard.sh」というクローンファイルがあります。またはここに私のチーム)"をcronファイルに保存してください。
RPIにGPIOピンの状態を読み込み、All-TeamsまたはMy-Teamsディレクトリを実行させる方法はありますか?以下は、すべてのチームディレクトリを一覧表示する「start-scoreboard.sh」cronファイルの例です。
!/bin/bash
u/reboot sleep 60 $$ start-scoreboard.sh
cd /home/pi/mlb-led-scoreboard-All-Teams
n=0
until [ $n -ge 10 ]
do
python main.py --led-gpio-mapping=adafruit-hat --led-brightness=50 --led-slowdown-gpio=3 --led-rows=32 --led-cols=64 && break
n=$[$n+1]
sleep 10
done
答え1
まず、PythonスクリプトでGPIOタスクを実行しています。正直なところ、GPIOステータスを読み、それに応じて動作するために使用されているのと同じライブラリ(わかりません)を使用する必要があります!ループにも同じですdo python… ; sleep 10; done
。これは実際にPythonスクリプトに統合する必要があります。
第二に、もちろんカーネルの設定に応じてGPIO擬似ファイルの値を確認してください(以下を使用して/sys/class/gpio/gpio{number}/value
そのピンの方向を設定する必要があるかもしれません)。echo in > /sys/class/gpio/gpio{number}/direction
出口最初のものはecho {number} > /sys/class/gpio/export
)です。廃止予定の sysfs インターフェイスしかし、RPiのデフォルトカーネルはまだアクティブになっているはずです。または、gpio
Linuxディストリビューション用にインストールできるツールを使用しますgpio read {id}
。
答え2
まあ、私は最終的に次の方法を使用し、効果があったようです。誰もがこの問題に直面して答えを探している場合に備えて、この記事を投稿したかったのです。 GPIOピン配線で結局、ピン39(グランド)とピン40の間にスイッチを接続するようになりました。
#!/bin/bash
# Set GPIO pin number
GPIO_PIN=40 # Enter what GPIO pin is to be switched to ground
# Set up GPIO pin as input
echo "$GPIO_PIN" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$GPIO_PIN/direction
# Read the state of the GPIO pin
GPIO_STATE=$(cat /sys/class/gpio/gpio$GPIO_PIN/value)
# Depending on the GPIO state, choose the appropriate directory
if [ $GPIO_STATE -eq 0 ]; then
SCOREBOARD_DIR="/home/pi/mlb-led-scoreboard-All-Teams"
else
SCOREBOARD_DIR="/home/pi/mlb-led-scoreboard-My-Teams"
fi
# Change to the selected directory
cd "$SCOREBOARD_DIR"
# Start the scoreboard
n=0
until [ $n -ge 10 ]
do
python main.py --led-gpio-mapping=adafruit-hat --led-brightness=50 --led-slowdown-gpio=3 --led-rows=32 --led-cols=64 && break
n=$[$n+1]
sleep 10
done
# Clean up GPIO pin
echo "$GPIO_PIN" > /sys/class/gpio/unexport