株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。

Raspberry Pi SkyWay

SkyWayの利用(その4)Raspberry Piでの利用

投稿日:2019年12月9日 更新日:

前回の続きです。NTTコミュニケーションズ株式会社提供のリアルタイムコミュニケーションのためのプラットフォームであるSkyWayを使ってみます。前回はJavaScriptでカメラとマイクのストリーミングと双方向でのテキストデータのやり取りのプログラムを作成しました。

今回はRaspberry PiでSkyWayの動作確認をしました。単純にWindowsと同様には動作しなかったですが、要点を押さえれば同じように使えると思います。その要点を中心に書きます。

主に以下のページを見ながら作業をしました。こちらも参照して下さい。
SkyWay JavaScript SDK チュートリアル

ここでの環境は以下です。
Raspberry Pi 4 Model B
USBカメラ(logicool c270)
SDカード(32G)
周辺機器(モニタ、キーボード、マウス、電源等のRaspberry Piをパソコンと同様に利用出来るようにするための周辺機器)
ブラウザはchromium(Raspberry Pi標準)です。

今現在で最新のRaspberry Pi 4です。このRaspberry Pi 4ではHDMIの仕様が変更になったので変換ケーブルも買いました。HDMIの変更(発展とか進化という表現の方がいいと思いますが。)を理解していないでRaspberry Pi だけ届いたのでモニタに接続出来ませんでした。

以下は、Amazonの【国内正規代理店版】へのリンクです。今現在ですが、販売店により価格がバラバラのようなので必要な場合は調べてみて下さい。手元にない場合はHDMIのケーブルも必要です。

Raspberry PiへのSSHの操作(TeraTerm)にはWindows10 ProのPCを利用しています。

以下の2点を対応すればRaspberry PiでもWindowsと同様にSkyWayが利用出来ました。
オーディオの優先順位
ブラウザで認識させるカメラの解像度の指定
順番に書きます。

オーディオの優先順位の変更
オーディオの優先順位の変更で何をするかというとUSBカメラのマイクを優先して認識してブラウザで使えるようにするということです。

まずターミナルから現在の状態を確認します。
$ cat /proc/asound/modules
以下のように表示されました。USBカメラのマイクは2番目です。

この順序を変更します。
/etc/modprobe.d/alsa-base.conf というファイルを作成します。もしあれば変更します。以下のように編集して作成します。

options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1


再起動します。再度確認してUSBカメラのマイクが最初になっていれば設定完了です。

カメラの解像度の指定
JavaScriptでgetUserMediaというAPIを利用してWebブラウザでカメラ映像、マイク音声を取得していますが、今までは解像度を指定しないで利用していました。もちろんこれで問題なく取得出来ていましたがRaspberry Piでは動作しませんでした。

カメラの機種にもよるかもしれないですが、以下のようにカメラとマイクを取得する際に解像度を指定しました。これで問題なくカメラ映像、マイク音声が取得出来ました。
getUserMedia({video:{ width: 800, height: 600 }, audio: true},

以下のチュートリアルの「カメラ映像、マイク音声の取得」の項目にも説明があります。必要な場合はこちらも参照して下さい。
JavaScript SDK チュートリアル

動作確認
WebサーバはローカルのWindows10上のXAMPPでとりあえずHTTPSでアクセス出来るようにしています。

プログラムは前回のプログラムに上記のようにカメラの解像度を指定しました。

Raspberry PiにカメラをUSB接続して、ブラウザから画面を表示します。

カメラのセキュリティ確認も表示されました。

ローカル側の映像が表示されました。

Windows側でリモート接続してみます。問題なく表示されました。テキストデータのやり取りも出来ました。

反対にWindows側にUSBカメラを接続してRaspberry Pi側からも見えました。これで無事に動作が確認出来ました。

Raspberry PiでのSkyWayの活用
特定アプリ専用のPC
Raspberry Piならコスト的にも専用アプリ用のPCとしてSkyWayのトップページの事例のような利用が可能かと思います。長時間起動したままでの遠隔監視、双方向コミュニケーション等が出来ると思います。

GPIOでの拡張
今回はブラウザ間のみの通信でしたが、MQTT over the WebSocketを利用すればブラウザからRaspberry PiのOS間との通信が出来ます。ということは、Raspberry PiのGPIOの操作が出来るということです。

以下の記事からで遠隔操作を取り上げましたが、同様のことをP2Pのイメージで操作出来ます。P2Pなので感覚的には直接Raspberry Piを操作するようになります。(またこれについては書きたいと思います。)
Raspberry PiでIoT(MQTTで遠隔操作編 その1)MQTTでの通信

(※2020/01/21追記 このSkyWayでの遠隔操作についての記事を以下で書きました。)
SkyWayでRaspberry Piの遠隔操作(その1)MQTT over WebSocket
SkyWayでRaspberry Piの遠隔操作(その2)SkyWayからの操作

(補足)SkyWay WebRTC Gateway
今回の一連の記事ではブラウザベースでSkyWayを利用しました。SkyWay WebRTC Gatewayを利用すればブラウザを経由しないでSkyWayを利用出来るようです。まだしっかりと試していないので補足ということにします。

今回はここまでです。また書きたいと思います。

AdSense

AdSense

-Raspberry Pi, SkyWay

執筆者:

関連記事

Raspberry Pi 4にOpenCVをインストールしてPythonで動作確認

Raspberry Pi 4にOpenCVをインストールして動作確認をしました。Pythonでのプログラミングを想定して動作確認はPythonで行いました。

Raspberry Piでタッチスクリーン付3.5インチTFTを使ってみた

Raspberry Piでタッチスクリーン付モニタを使ってみました。PiScreenという商品名で3.5インチTFT(480×320) でタッチスクリーン付です。以下の商品です。以下は完成品 …

Groveコネクタとi2cハブでセンサを接続する

Groveコネクタとi2cハブを使ってi2cセンサを接続してみました。こうすることによって接続を間違えたり、見た目が悪くなったりしないように出来ると思います。

Raspberry PiでIoT(温度・湿度・気圧データ編 その4)アラートメール送信

Raspberry PiでIoT 温度・湿度・気圧データ編の4回目です。前回までで、Raspberry Piから温度、湿度、気圧データをWebサーバへ送信してそのデータを蓄積、表示出来るようになりまし …

Raspberry Piをモニターとキーボードなしで導入する(その3)コンソールを使う

(※2021/05/02追記 現時点で最新版のRaspberry PI OSでモニターとキーボードなしで導入する手順を書きました。ぜひこちらを見て下さい。) Raspberry Piをモニターとキーボ …