ハンズオン のChapter0
前置き
まず簡単なLチカアプリケーションを作成します。
UDPでメッセージを送ってON/OFFします。
慣れているという方がいらっしゃったら、UDPで操作できるものであれば、LEDに限らず凝ったものを作っていただいても構いません。
また例はrubyで実装していますが、ruby以外の言語でも構いません。
(但し、講師が知らない言語で実装した場合サポートが受けられない可能性がありますのでご了承ください)
想定環境
RaspberryPi
- RASPBIAN 4.14
- Raspberry Pi HDカメラボードV2
Web
- Chrome M69が動作する環境
回路
- ブレッドボード
- LED, 抵抗
- ジャンパ線(メス-オス2本、オス-オス2本)
LEDと抵抗は、ハンズオン貸出機材としてはこちらのものを利用します。
持ち込み参加の方は他のものでも構いませんが、Raspberry PiのGPIO(3.3V)で動作するものをお持ち下さい。
お貸し出ししたRaspberry Piは基本的な設定は完了しています。
またカメラについては別のものでも可能ですが、後述するgStreamerでのカメラからの映像取得において、オプションが変わる可能性があります。
必要なアプリケーションのインストール
# ライブラリのビルド環境のインストール
$ sudo apt install autoconf automake libtool
# 映像伝送用アプリケーションのインストール
$ sudo apt install gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
# サンプルプログラムはRubyで書くのでRubyの開発環境をインストール
$ sudo apt install ruby-dev libssl-dev
# Raspberry PiのピンをRubyで使うためのgemをインストール
$ sudo gem install pi_piper
物理構成
この演習ではGPIOの21番を利用します。
https://www.raspberrypi.org/documentation/usage/gpio/
を参照すると、右上のピンです。あとは適当なGNDのピンを選んで配線しましょう。
この2つの線の間にLEDと抵抗を挟んでください。
3.3Vの電圧をかけますので、LEDのspecに合わせて適切な抵抗をはさんでください。
カメラのセットアップ
まずカメラモジュールをraspberry piのカメラ端子に装着して下さい。
電源OFFの状態で、プリントケーブルを奥まで差し込み、ストッパーをガッチリ下まで押し込んで下さい。
その後、raspberry piを起動し、設定を行います。
$ sudo raspi-config
メニューが表示されるので、5. Interfacing Options > P1 Camera からenableにしてください。
Raspberry Piが再起動されます。
あとで使うのでカメラにアクセスするためのモジュールもインストールしておきます。
https://github.com/thaytan/gst-rpicamsrc.git
のClone or Downloadからzipをダウンロードして展開して下さい。
gitで入れてもらってもいいです。
$ cd gst-rpicamsrc-master
$ ./autogen.sh --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf/
$ make
$ sudo make install
Lチカアプリケーション
#!/usr/bin/ruby
require "socket"
require "pi_piper"
def pin(pin, message)
case message
when "on"
pin.on
when "off"
pin.off
end
end
if __FILE__ == $0
gpio_21 = PiPiper::Pin.new(:pin => 21, :direction => :out)
udps = UDPSocket.open()
udps.bind("0.0.0.0", 10000)
loop do
data = udps.recv(65535).chomp
pin(gpio_21, data)
end
udps.close
end
UDPで受信したテキストメッセージが"on"であれば電圧をかけ、"off"であれば止めます。
実行
これを遠隔制御しましょう。
Lチカプログラムを起動します。Raspberry PIのハードウェアを触るので今回はroot権限で実行します。実用するときは適宜権限設定を変更してください。
$ sudo ruby rasbpi.rb
↓RASPBERRY_PI_IP_ADDRESSの部分にはラズベリーパイのIPアドレスを入れて下さい
光らせる場合
$ echo "on" | nc -u RASPBERRY_PI_IP_ADDRESS 10000
止める場合
$ echo "off" | nc -u RASPBERRY_PI_IP_ADDRESS 10000
以上で完了です。
これをインターネット越しに操作してみましょう。
次章ではWebRTC Gatewayの起動処理を行います。