- ビデオフィードを取得するための「モーション」のインストールと構成:
- Webページを介してロボットを制御するためのRaspberryPiのフラスコ設定:
- WebページのHTMLコード:
- 監視ロボット
- 回路図とセットアップ:
- 操作方法:
このDIYセッションでは、ラズベリーパイとウェブカメラを使用してウェブ制御の監視ロボットカーを構築しています。これは、多くの構成可能なオプションがあり、数時間で構築できる、便利で安価なセキュリティおよびスパイツールになる可能性があります。このIoTプロジェクトでは、主に Raspberry Pi、USB Webカメラ、およびロボットシャーシを備えた2つのDCモーターを使用して、このロボットカーを構築しています。
Webカメラが搭載されており、ライブビデオフィードを取得できます。ここで興味深いのは、インターネットを介してWebブラウザからこのロボットを制御および移動できることです。ウェブページを使用して制御できるため、モバイルのウェブページを使用して制御することもできます。左、右、前、後ろのリンクがあり、クリックするとロボットを任意の方向に移動できるHTMLでWebページを作成しました。ここでは、USBカメラからライブビデオフィードを取得するために「Motion」を使用し、Pythonを使用してWebページからRaspberryPiにコマンドを送信するために「Flask」を 使用しましたロボットを移動します。これについては、このチュートリアルの後続の部分で詳しく説明します。RaspberryPiボードにRaspbianJessieOSがインストールされています。この記事をチェックして、Raspbian OSをインストールし、RaspberryPiの使用を開始できます。
ビデオフィードを取得するための「モーション」のインストールと構成:
Motion(Surveillance Software)は、Linux用に開発された無料のオープンソースモーションディテクターCCTVソフトウェアです。動きを検知し、動画の録画を開始します。Raspberry Piに「Motion」をインストールすると、RaspberryPiを魔法のようにセキュリティカメラに変えることができ ます。ライブビデオフィードの取得、タイムラプスビデオの作成、および定期的なスナップショットの作成に使用されます。モーションや表示領域の障害を検出すると、ビデオを記録して保存します。ライブビデオフィードは、ポートとともにPiのIPアドレスを入力することにより、Webブラウザーで視聴できます。
Raspberry PiとUSBカメラでのモーションの使用に関する詳細なチュートリアルを作成しました。ここでは、ロボットがライブビデオストリーミングをWebページに送信するためのRaspberrypiへのインストールについて簡単に説明します。
ここでは、ネットワーク経由で最初のビデオフィードの取得を開始するために、いくつかのコマンドを実行する必要があります。その前に、LANまたはWi-Fiを使用して、Raspberry Piがインターネットに接続されていることを適切に確認してから、以下の手順に従ってください。
ステップ1:最初に以下のコマンドを実行して、RaspberryPi上のRaspbianOSを更新します。
sudo apt-get update
ステップ2:次に、以下のコマンドを使用して「モーション」ライブラリをインストールします。
sudo apt-get install motion
ステップ3:今すぐyesにモーションデーモンを設定:ファイル編集して は、/ etc / default /モーションを 、それが常に実行されるように。以下に示すように、「nano」エディタと「sudo」を使用してこのファイルを編集します。
sudo nano / etc / default / motion
次に、「CTRL + X」、「Y」の順に押してファイルを保存し、Enterキーを押します。
ステップ4:次に、ターゲットディレクトリ (/ var / lib / motion /) の権限を設定する必要があります。このディレクトリ で は、Motionがすべてのビデオ録画と画像ファイルを保存します。以下のコマンドを発行して、このディレクトリの所有者として「Motion」を設定する必要があります。
sudo chown motion:motion / var / lib / motion /
この権限は必要です。そうしないと、モーションサービスのステータスを確認するときにエラーが発生します。
次のコマンドを使用して、サービスステータスを確認できます 。sudoservicemotion status
ステップ5:これでほぼ完了です 。stream_localhostがオフに なっているモーション構成ファイル (/etc/motion/motion.conf )の1つの構成オプションを変更するだけで 済みます。 私たちはしなければならないのストリーミングこのローカルホストの電源を切りそう私たちは私たちのネットワーク上でのビデオフィードにアクセスすることはできません、それはラズベリーパイ自体からだけアクセスできるようになります。これを行うには、以下に示すように、「nano」エディターを使用してモーション構成ファイルを編集し、オフにします。
sudo nano /etc/motion/motion.conf
これで、Piに接続されたUSBWebカメラからライブフィードを取得する準備が整いました。以下のコマンドを使用してMotionサービスを開始(または再起動)し、ブラウザーでRaspberry PiのIPをポート8081で開きます(192.168.43.199:8081など)。このプロジェクトでは、このIPを imgsrc タグのHTMLコードに埋め込みました。
sudo /etc/init.d/motion restart
そして、あなたはあなたのウェブカメラからのライブフィードを見るでしょう。ここでは、RaspberryPiとスムーズに連携する低コストのUSBWebカメラを使用しましたが、高品質のカメラを使用して解像度を向上させることもできます。ブラウザに表示されるように、モバイルやタブレットなどのWebブラウザをサポートするフィードを視聴するために任意のデバイスを使用できます。
必要に応じて、トラブルシューティング手順としてRaspberryPiを再起動してみてください。
sudoリブート
これは、監視ロボットにMotionを使用することに関するものですが、それとは別に、前のチュートリアルですでに説明したいくつかの構成オプションがあります。
注:バージョン3より前のRaspberry Piモデルの場合、RaspberryPiをルーターにワイヤレスで接続するためにWi-Fiドングルが必要になる場合があります。
Webページを介してロボットを制御するためのRaspberryPiのフラスコ設定:
ここでは、Flaskを使用してWebサーバーを作成しました。これは、WebページからRaspberry Piにコマンドを送信して、ネットワーク経由でロボットを制御する方法を提供します。Flaskを使用すると、WebページからPythonスクリプトを実行でき、Raspberry PiからWebブラウザーに、またはその逆にデータを送受信できます。FlaskはPython用のマイクロフレームワークです。このツールはUnicodeベースであり、開発サーバーとデバッガーが組み込まれ、ユニットテストのサポートが統合されており、安全なCookieがサポートされており、使いやすいため、愛好家にとって便利です。
次のコマンドを使用して、フラスコサポートパッケージをRaspberryPiにインストールします。
$ pip install Flask
次に、このプロジェクト用に次のフラスコのパッケージをインポートしたように、プログラムにインポートするだけでフラスコを使用できます。
フラスコインポートからフラスコインポートフラスコからフラスコ、render_template、リクエスト
Flaskを使用したプログラミングについて詳しくは、こちらをご覧ください。また、Flaskを使用してWebページからRaspberry Piにメッセージを送信し、SmartContainerのRaspberryPiに重み値を送信した以前のプロジェクトも確認してください。
WebページのHTMLコード:
ロボットをWebブラウザから移動するための制御リンク(左、右、前方、後方)を表示するためのHTML言語を使用してWebページを作成しました。jQueryスクリプトを使用して、Pythonプログラムの関数を呼び出しました。Pythonコードには、ロボットを左、右、前、後ろに移動して停止する5つの関数があります。最後に完全なPythonコードが提供されています。これらの機能は、ウェブページのコントロールリンクをクリックすることで実行され、クリックされたリンクに応じてモーターが移動します。ここでは、リンクをクリックしたままロボットが特定の方向に移動し、マウスボタンを離すとすぐにロボットが停止するようにコードを記述しました。以下は、jQueryを含むWebページのHTMLコードです。
ここでは、 img src タグを使用して、ビデオがストリーミングされているIPアドレスをWebページに埋め込んだことがわかります。Raspberry Piに応じてIPアドレスを変更しますが、ポートは同じままにします。
ユーザーは、上記のHTMLコードをコピーしてテキストエディター(メモ帳)に貼り付け、ファイルを.HTML拡張子(robot.html)で保存する必要があります。次に、このHTMLファイルをPythonスクリプトの場所を基準にして/ templatesフォルダーに配置します。つまり、このRaspberry Surveillance RobotのPythonコードファイルを配置したtemplatesという名前のフォルダーを作成してから 、robot.htmlファイルをこのtemplatesフォルダーに配置する必要があります。このステップは重要です。そうしないと、プロジェクトが機能しません。 robot.htmlファイルをダブルクリックして直接開くと、コントロールリンクがどのように表示されるかを確認できます。デモンストレーションビデオでプロセス全体をさらに確認してください 最後に。プログラミングとすべてを終えたら、Raspberry PiでPythonコードを実行し、Webブラウザー(http://192.168.43.199:5010など)でIP_address_of_your_Pi:5010を開くことができます。
ifconfig コマンドを使用して、RaspberryPiのIPアドレスを確認できます。
ifconfig
回路図とセットアップ:
ライブビデオフィードとHTMLコードをテストした後、手作りまたは既製のロボットシャーシ、ホイール、ナットボルトを使用してロボットを構築する必要があります。次に、パワーバンクをその上に置いてラズベリーパイに電力を供給し、次にラズベリーパイとウェブカメラをパワーバンクの上に置き、セロテープまたはゴムストリップを使用してセットアップを修正し、USBカメラをラズベリーパイに接続します。
このIoTプロジェクトでは、多くの接続を行う必要はありません。モータードライバーICL293DとDCモーターの一部のワイヤーを接続するだけで済みます。以下の回路図に接続を示します。ここでは、スペースを削減するためにL293D ICの取り付けに汎用PCBを使用しましたが、DCモーターをL293Dに接続するために小さなブレッドボードを使用することもできます。
操作方法:
この監視ロボットの操作と操作は非常に簡単です。Pythonファイル(.py拡張子)を作成し、以下のコードをコピーして、RaspberryPiに保存します。次に、上記の説明に従って、HTMLファイルを テンプレート フォルダーに配置します。HTMLファイルのIPアドレスを変更することを忘れないでください。
次に、以下のコマンドを入力してPythonコードを実行します。
python name_of_file.py
次に、http://192.168.43.199:5010のようにポート5010でRaspberry Pi IPアドレスを開きます(ここでもIPアドレスを自分のアドレスに置き換えます)。これで、4つのロボット制御リンクとライブストリーミングビデオを含むWebページが表示されます。ユーザーは、リンクをクリックしたままにしてロボットを制御できます。ユーザーがリンクをクリックして押したままにすると、ロボットはクリックされたリンクに従って移動し、ユーザーがリンクを解放すると、ロボットは自動的に停止します。
完全なPythonコードを以下に示します。ここでは、Webページ上のリンクをクリックしたときにロボットを制御するためのさまざまな関数を記述しています。それらは簡単に理解できます。初心者の場合は、以前のRaspberryPiチュートリアルを確認してください。また、ロボット工学セクションにアクセスして、より面白くて簡単にロボットを構築できるようにしてください。