GPIOの制御
自動起動の流れ
今回は、ラズパイのautostart からシェルスクリプトを経てPythonプログラムを起動させる方法の話をするにゃ。
今回のシェルスクリプト部分はとくに、番長全く初挑戦での試行錯誤だったので間違ってるかもしれません。でも動いてるのでとりあえず情報を共有しますよー!
よろしくにゃ!
GPIOピン配置の確認。
LEDとスイッチが装着されていること前提にゃよ。
GPIO23番にLED、GPIO26番にスイッチが装着されている状態を前提としたおはなしになります!
GPIOのピン配置確認
ラズパイの自動起動の確認。
ラズパイのプログラムの自動起動はどうやるの?(確認してみる) に記事を書いたにゃよ。チェック!
必要ファイルはこっち Barrierを自動起動させる かにゃ。
Barrierの記事の状態
キーボード・マウスの共有ソフト Barrierでは上の記述だったけど、
今回はこうするにゃ。
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
# ↑この3つの自動起動はずすとラズパイが起動しなくなります。
------------------------------------------
#起動タイプB起動用(Switch_ON.py/RasNet)
/home/pi/share/Switch_TypeB.sh
------------------------------------------
#barrier自動起動
#@/usr/bin/barrier
#キーボード配列変更自動起動
#@xmodmap /home/pi/.xmodmap-mymap
Barrierの自動起動とキーボード配列変更の自動起動が必要な場合は
頭の#取ってね。
/home/pi/share/Switch_TypeB.sh
環境はみなさまの自由でいいと思うにゃ。この場合は
homeフォルダ内のpiフォルダ内に作ったshareフォルダの中に
Switch_TypeB.sh というファイルを起動する、という感じにゃ。
piフォルダの中につくったshareフォルダにSwitch_TypeB.shを作る場合は、ファイラー右クリックからNewFileで以下のようにするにゃよ。
以下のファイル構成はねこっぴの環境にゃよ。
この作ったSwitch_TypeB.shを右クリック。
プロパティからファイルのパーミッションを変更するにゃ。
ダブルクリックで実行できるようになったわ!
ダブルクリックで試せるし、自動実行にはこの設定必要ぽいからにゃ。
じゃ中身を書いていこーにゃ!
シェルスクリプトを書く。
今回の中身、やりたいことは以下にゃ!
- スイッチがONの場合は オリジナルのPythonプログラムを起動させる。LEDを2回点灯。
- スイッチがOFFの場合は X68k RasNet (wikipwdia / 2chSC閲覧) を起動させる
#! /bin/bash
#----------------------------
switch=26
led=23
#----------------------------
sudo echo $led > /sys/class/gpio/unexport
sudo echo $switch > /sys/class/gpio/unexport
sudo echo $led > /sys/class/gpio/export
sudo echo $switch > /sys/class/gpio/export
sleep 1
sudo echo "out" > /sys/class/gpio/gpio$led/direction
sudo echo "in" > /sys/class/gpio/gpio$switch/direction
sudo echo "high" > /sys/class/gpio/gpio$switch/direction
data=`cat /sys/class/gpio/gpio$switch/value`
cat /sys/class/gpio/gpio$switch/value
if [ $data = "1" ]; then
echo 'OFF時RasNet'
/home/pi/RasNet/RasNet-19200
else
echo 'ON時のプログラム開始'
python3 /home/pi/share/@Switch_ON/Switch_ON.py
#LEDを2回光らせる
sudo echo 1 > /sys/class/gpio/gpio$led/value
sleep 0.2
sudo echo 0 > /sys/class/gpio/gpio$led/value
sleep 0.2
sudo echo 1 > /sys/class/gpio/gpio$led/value
sleep 0.2
sudo echo 0 > /sys/class/gpio/gpio$led/value
fi
sudo echo $led > /sys/class/gpio/unexport
sudo echo $switch > /sys/class/gpio/unexport
スイッチのプルアップってなにかしら?
プルアップ/プルダウンってスイッチの回路には必要でラズパイ内部のプルアップ抵抗/プルダウン抵抗を使う設定とのこと。
今回のHighの設定は、スイッチOFFの場合に安定して3.3V、ONで0Vで、
こっちの方が安定安心らしいにゃ。
なるほど。あとはIFの分岐の RasNetのファイルと、オリジナルのPythonプログラムを用意しなきゃだね。
RasNetに関しては、UARTであそぼう!シリーズの最終回で公開するにゃよ。このまま記載しててもファイルがなければスキップされるだけだから大丈夫にゃ。
じゃ、オリジナルプログラム部分 Switch_ON.py を作らなきゃだねー!
シェルスクリプトからもLEDを光らせてるけど、
せっかく付けたモニターとLEDを、プログラムからカンタンに動かせるテンプレを用意したにゃよ!Switch_ON.py。それでは次回にゃ!
・
・
・
- X68000Z UARTでなにができるの?
- X68000Zを動かしてみよう! X-Basic準備
- どのラズパイを選べばいいかな?
- ラズパイUART設定とケーブル接続
- ラズパイとのUART接続確認テスト
- MIDI再生専用FDを作成(mt32pi)
- MIDI再生専用FDを作成(ttymidi)
- mt32-piでラズパイをMIDI音源にする
- MIDIハード音源を試す
- DACとちびモニターを用意する
- X68uartRasModuleの製作 準備編
- X68uartRasModuleの製作 組立編
- アップデートとHDDの設定
- SX-Window HDDにインスト
- SX-Window MIDI演奏設定
- SX-Window MIDIハード音源設定
- プログラミング編 X-Basicになれてみる
- プログラミング編 Pythonに少し慣れてみる
- プログラミング編 UARTでX68kZからラズパイを操作!
- シェルスクリプトSW分岐とLチカ
- ちびモニタとLEDを制御する!
- ttymidiのUSBの関連付け自動
- Python実行形式にするPyInstaller
- Winkipedia/2chSC閲覧 X68k RasNet
- X68000Zの基本操作などのまとめ
- 番外編はTOPから!