RasPd1 プログラミング編

2017年04月30日 カテゴリー:Raspberry Pi



プログラミングはかなり昔にお遊び程度にしていたレベルで、全く自信がありません。参考になるかわかりませんが、とりあえずRasPd1に入っているファイルをアップロードしておきます。(2025年05月16日データ削除)
Pythonというプログラミング言語を使っています。記事にしてみると思ったよりたいしたことはしていませんでした。エフェクトは3種類入っていますが、取り急ぎ適当に作ったものになります。



<スイッチ・LED>
Raspberry PiではGPIOピンという端子によりデジタル信号の入出力を行うことができます。スイッチやLEDの制御は比較的簡単です。こちらで丁寧に解説されています。→RaspberryPi電子工作入門

<液晶ディスプレイ>
秋月電子の超小型LCDキャラクタディスプレイを使用しています。HD44780互換ということで、下記ページのプログラムをほぼそのままモジュールとしてインポートしています。
16×2 LCD Module Control Using Python
ただし、3番ピンはGNDではなく10kΩトリマーで5Vを抵抗分圧して接続しています。トリマーを回すことでコントラスト調整ができます。

<ロータリーエンコーダ>
こちらのページのプログラムを改変して利用しました。→RaspberryPi + Python でロータリエンコーダを制御してみた
主な変更は、ロータリーエンコーダを回し始めたときにGPIO監視を開始するようにした点、速く動かしたとき値が3倍増減するようにした点です。いまいちコントロールしにくいときがあるので、まだまだ改善が必要だと思います。

<Pure Data(Pd)連携>
pdsendというコマンドを使って、ロータリーエンコーダやスイッチからPythonを介してPdへデータ送信しています。例えば「$ echo '50;' | pdsend 3010」というコマンドで、開いているPdのパッチの[netreceive 3010]オブジェクトにセミコロンが除かれた50というデータが送られます。数字データの場合は、Pdが文字ではなく数値と認識してくれるようなので、そのまま計算等に使うことができます。pdreceiveというコマンドで逆にデータ受信もできると思いますが、現状では必要なかったため試していません。

<データ保存>
起動時・終了時やエフェクト切り替え時に、各エフェクトの状態をテキストファイルに保存しています。エフェクトのパラメータはfx_pというリストデータになっています。いちいち整数と文字を切り替えなければいけないのが少し面倒でした。



ハードウェア編へ  ソフトウェア編その1へ  ソフトウェア編その2