2015年10月12日月曜日

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

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

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

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

  1. #!/bin/bash
  2.  
  3. export test00='
  4. echo $USER
  5. '
  6.  
  7. export MAIN_DIALOG='
  8. <window>
  9. <vbox>
  10. <hbox>
  11. <button>
  12. <label>ボタン1</label>
  13. <action>echo $LANG</action>
  14. </button>
  15. <vbox>
  16. <button>
  17. <label>前進</label>
  18. <action>bash -c "$test00"</action>
  19. </button>
  20. <button>
  21. <label>後退</label>
  22. </button>
  23. </vbox>
  24. <button>
  25. <label>ボタン4</label>
  26. </button>
  27. </hbox>
  28. <frame サーボ0(%)>
  29. <hscale range-min="10" range-max="90" range-step="1">
  30. <default>50</default>
  31. <variable>SERVO0</variable>
  32. <action>bash -c "echo 0="$SERVO0"% > /dev/servoblaster"</action>
  33. </hscale>
  34. </frame>
  35. <frame サーボ1(%)>
  36. <hscale range-min="10" range-max="90" range-step="1">
  37. <default>50</default>
  38. <variable>SERVO1</variable>
  39. <action>bash -c "echo 1="$SERVO1"% > /dev/servoblaster"</action>
  40. </hscale>
  41. </frame>
  42. <frame サーボ2(%)>
  43. <hscale range-min="10" range-max="90" range-step="1">
  44. <default>50</default>
  45. <variable>SERVO2</variable>
  46. <action>bash -c "echo 2="$SERVO2"% > /dev/servoblaster"</action>
  47. </hscale>
  48. </frame>
  49. <frame サーボ3(%)>
  50. <hscale range-min="10" range-max="90" range-step="1">
  51. <default>50</default>
  52. <variable>SERVO3</variable>
  53. <action>bash -c "echo 3="$SERVO3"% > /dev/servoblaster"</action>
  54. </hscale>
  55. </frame>
  56. <frame サーボ4(%)>
  57. <hscale range-min="10" range-max="90" range-step="1">
  58. <default>50</default>
  59. <variable>SERVO4</variable>
  60. <action>bash -c "echo 4="$SERVO4"% > /dev/servoblaster"</action>
  61. </hscale>
  62. </frame>
  63. <frame サーボ5(%)>
  64. <hscale range-min="10" range-max="90" range-step="1">
  65. <default>50</default>
  66. <variable>SERVO5</variable>
  67. <action>bash -c "echo 5="$SERVO5"% > /dev/servoblaster"</action>
  68. </hscale>
  69. </frame>
  70. <frame サーボ6(%)>
  71. <hscale range-min="10" range-max="90" range-step="1">
  72. <default>50</default>
  73. <variable>SERVO6</variable>
  74. <action>bash -c "echo 6="$SERVO6"% > /dev/servoblaster"</action>
  75. </hscale>
  76. </frame>
  77. <frame サーボ7(%)>
  78. <hscale range-min="10" range-max="90" range-step="1">
  79. <default>50</default>
  80. <variable>SERVO7</variable>
  81. <action>bash -c "echo 7="$SERVO7"% > /dev/servoblaster"</action>
  82. </hscale>
  83. </frame>
  84. </vbox>
  85. </window>
  86. '
  87.  
  88. gtkdialog -p MAIN_DIALOG -c


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

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

0 件のコメント :

コメントを投稿