Vol.757 26.Oct.2018

キャンピングカー(2)〜車中泊必需品 グリップ式雲台 ラズベリーパイ(21)〜WebIOPiによるGPIO制御(1)〜

C キャンピングカー(2)〜車中泊必需品

by fjk

車中泊に必要なものとして、以下のものをほぼ準備した。
@ 寝具(シュラフ・空気枕)、膝掛け、アイマスク・耳栓
A マルチシェード(遮光、断熱)、(USB)小型扇風機(換気扇の他にもう一つあると便利)
B 電気湯沸かし、紙コップ・紙皿・ラップ・箸・スプーン・調味料・飲料水・非常食・・
C 懐中電灯、LEDランタン(非常時、キャンプ時)[防災セットが便利]、USB電源
D 救急セット・薬(箱)、工具(箱)、その他の小物(布テープ、ゴミ袋、文具など)
E 携帯トイレ(小用だけでも・・)、スリッパ、サンダル、チャック付ビニール袋
F 下駄箱、ステップ(乗降用)、車止め、レベラー・水平器(車を水平に)

ミニバンぴったり寝袋2(LOGOS)
(クッションになる寝袋)・枕
専用マルチシェード(Aizu)  
(断熱、遮光は車専用品がベスト)
湯沸かし(CK-CH08、0.8L、600W)
・ 給水ポット(ビルダー付属品)
携帯トイレ・工具セット    
・文具(自立するペンケース) 
防災セット・救急セット 
(中身を個々に準備してもOK)
下駄箱(トレー)・踏み台  
(ステップにはマットを追加)


P グリップ式雲台(Camera Platform)

by fjk

MyArmorのどこにでも挟める360度回転雲台(\800)を入手した。この雲台は幅70mmまでのポールや板にグリップすることで固定され、雲台に取り付けたカメラを自由な位置に固定することが出来る。また、テーブルの上にそのまま置くことでマクロ撮影用のスタンドにもなる優れものである。
 高齢者には苦手な電子部品の印字を読むために、リングガイドライト(LG-1)を付けたTG-5をこの雲台に取り付け、マクロ撮影モードを使って拡大し、はっきりと読むことが出来た。しかし、ICの印字文字はライトを付けるとコントラストが無くなるので、ライトは使わない方よさそうである。

クリップ式雲台 雲台を使用し
IC回路の拡大画像を見る
マクロ撮影例


R ラズベリーパイ(21) 〜WebIOPiによるGPIO制御(1)〜

by fjk

WebIOPiとはブラウザからRaspberryPi用のGPIOを操作できるようにするIOTフレームワークで、既に開発が終わっておりPi3Bで使うにはパッチを当てる必要があります。

1.インストール
@WebIOPiをダウンロード(参考サイト
  $ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
Aファイルを解凍
  $ tar xvzf WebIOPi-0.7.1.tar.gz
BWebIOPiのディレクトリ(WebIOPi-0.7.1)に移動
  $ cd WebIOPi-0.7.1
C修正プログラム(WebIOPi-0.7.1 Patch for Raspberry B+ and Pi 2)をダウンロード
  $ wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch
Dパッチを実行
  $ patch -p1 -i webiopi-pi2bplus.patch
Eセットアップを実行
  $ sudo ./setup.sh
途中で「Do you want to access WebIOPi over Internet?」[Y/N]と聞かれるが、後からも変更可能なので、ここでは「N」と入力してEnter
2.ホームディレクトリの作成
 /home/piでWebIOPi用にドキュメントルートを作成
  $ mkdir webiopi
3./usr/share/webiopi/htdocs 内のサンプルプログラムの全ファイルをwebiopiフォルダ以下にコピー
  $ cp -r /usr/share/webiopi/htdocs/* webiopi/
4./etc/webiopi/configファイルでドキュメントルートの位置をwebiopiフォルダに設定
  $ sudo leafpad /etc/webiopi/config
 42行目のdoc-root行の次に、以下の行を挿入(元のdoc-root行は残しておく)
   doc-root = /home/pi/webiopi
5.再起動後webiopiの起動
  $ sudo reboo
  $ sudo systemctl start webiopi
6.webブラウザからの動作を確認
  http://192.168.1.39:8000
      (アドレスが192.168.1.39の場合)
   ユーザー名:webiopi
   パスワード:raspberry
  を入力(パスワードはwebiopi用のもの)
7.webiopiの動作停止
  $ sudo systemctl stop webiopi
8,webiopiの動作確認
  $ sudo systemctl status webiopi
9.webiopiの停止と再起動を行うには
  $ sudo systemctl restart webiopi
10.GPIOピンの制御(動作テストも兼ねて)
 起動画面のGPIOHeaderまたはGPIOListをクリックすると、ヘッダー画面が表示され、ピンの色(橙、黒)は現在の値(high、low)を示している。
 INボタンをクリックするとOUT(出力モード)に変更できる。さらに、ピンボタンを押すと出力を変えることが出来る。
11.スマホからwifi接続し同じように制御
  http://192.168.123.1:8000 (ipが192.168.123.1の場合)

WebIOPiの起動画面 GPIO Header画面
スマホのweb画面からLED制御 LEDが点灯(消灯)


12.WebIOPiの使い方(1)・・・(webiopiのチュートリアル等を参考に)
  WebIOPiを使う方法には以下の2つの方法がある。
  @WebIOPiで直接実行。・・・・・HTML上でJavascriptのみで実行
  APythonのマクロ経由で実行。・・HTML上でJavascriptとラズパイ上のPythonのマクロで実行
 まず、@の直接実行でWebIOPiを使ってみる。この方法ではラズベリーパイでサーバーとしてWebIOPiを起動し、クライアントのwebページ上でGPIOを制御する。ただし、事前にラズパイの動作環境をconfigファイルで指定しておく。
(1) configファイルの編集(赤字部追加)
  $ sudo leafpad /etc/webiopi/config
@ポート番号を8030に変える(任意)
AHTMLファイルの場所を指定
BHTMLファイル名を指定
[HTTP]
# HTTP Server configuration
enabled = true
port = 8030
・・・
#doc-root = /home/pi/webiopi/・・・
doc-root = /home/pi/webiopi
・・・
#welcom-file = index.html
welcom-file = webiopi.html
・・・

(2) WebIOPiの起動
  $ sudo /etc/init.d/webiopi start
(3) webページからアクセス
  http://<IPアドレス>:8030

webiopi.html>・・/home/pi/webiopi/に格納
<html>
<head>
  <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
  <title>WebIOPi Test</title>
  <!-- WebIOPiのJavascriptの使用宣言 -->
  <script type="text/javascript" src="/webiopi.js"></script>

  <!-- ボタンの生成、機能の設定と名称設定 -->
  <script type="text/javascript">
    IOPI = webiopi();
    IOPI.ready(function(){
      IOPI.setFunction(2, "OUT");
      var LedBtn = IOPI.createGPIOButton(2, "LED");
      $("#Ledbtn").append(LedBtn);
      <!-- jQuerryでボタンを関連づける -->
    });
  </script>

  <!-- スタイルシート定義 ボタンの形状指定 -->
  <style type="text/css">
    button{
      font-size:2em;
      width:150px;
      height:70px;
      margin-left:120px;
      float:left;
    }
  </style>
</head>

<!-- ページの生成 -->
<body> <br>
  <p style="text-align:left;  margin-left:100px;">
  <font size=6>[WebIOPi Test]</font><br></p>
  <p style="align:center">
  <div id="Ledbtn"></div>
  </p>
</body>
</html>

 
WebIOPiで制御中のWEB画面  

※Javascript関数の例

・webiopiのオブジェクトを返す
  IOPI = webiopi()
・初期化関数。function()関数内で環境を作成
  IOPI.ready(fumction(){・・})
・GPIOの機能を指定する
  IOPI.setfunction(gpio,func[,callback])
・GPIOに対応するボタンを生成する
  IOPI.createGPIOButton(gpio,label)
gpioはピン番号
funcはIN、OUT、PWMのいずれか
callback関数はGPIO処理後に実施する関数


キャンピングカー(2)〜車中泊必需品 グリップ式雲台 ラズベリーパイ(21)〜WebIOPiによるGPIO制御(1)〜