2015年10月12日月曜日

Raspberry Pi 2 やっぱりシェルスクリプトでやる

シェルスクリプトでもgtkdialogを使うことで、GUI操作が可能なので、
gtkdialogのスライダーを使って、サーボモータを動かしてみようと思った。
(サーボモータの制御にはServoBlasterを使用するので、そのインターフェースって感じ。)

Arch Linux ARMではリポジトリにgtkdialogがパッケージとしてあるので、
pacmanでインストールする。

例によって体裁は考えずに、兎に角動くものを作る。

#!/bin/bash

export test00='
echo $USER
'

export MAIN_DIALOG='
  <window>
    <vbox>
      <hbox>
        <button>
          <label>ボタン1</label>
          <action>echo $LANG</action>
        </button>
        <vbox>
          <button>
            <label>前進</label>
            <action>bash -c "$test00"</action>
          </button>
          <button>
            <label>後退</label>
          </button>
        </vbox>
        <button>
          <label>ボタン4</label>
        </button>
      </hbox>
      <frame サーボ0(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO0</variable>
          <action>bash -c "echo 0="$SERVO0"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
      <frame サーボ1(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO1</variable>
          <action>bash -c "echo 1="$SERVO1"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
      <frame サーボ2(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO2</variable>
          <action>bash -c "echo 2="$SERVO2"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
      <frame サーボ3(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO3</variable>
          <action>bash -c "echo 3="$SERVO3"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
      <frame サーボ4(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO4</variable>
          <action>bash -c "echo 4="$SERVO4"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
      <frame サーボ5(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO5</variable>
          <action>bash -c "echo 5="$SERVO5"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
      <frame サーボ6(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO6</variable>
          <action>bash -c "echo 6="$SERVO6"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
      <frame サーボ7(%)>
        <hscale range-min="10" range-max="90" range-step="1">
          <default>50</default>
          <variable>SERVO7</variable>
          <action>bash -c "echo 7="$SERVO7"% > /dev/servoblaster"</action>
        </hscale>
      </frame>
    </vbox>
 </window>
'

gtkdialog -p MAIN_DIALOG -c 


今のところボタンは飾りなので、気にしない。

一応、できたってだけで、使い道は無い

0 件のコメント :

コメントを投稿