FlashForgeのAdventurer3を制御するプログラム。
最終的には、ローカルエリアにあるAdventurer3を、外部にあるスマフォで制御したい。
初めてのPythonプログラムなので、段階的に作成していく予定。
ローカルエリア内にあるマシンのコンソール画面からの制御。
制御できるコマンドは、機器のステータス確認、緊急停止、印刷停止。
ここでの目的は、以前C#で作成したAdventurer3の制御プログラムの一部をPythonに移植し、始めたばかりのPythonのプログラミングになれること。
- 機能概要
Console.pyをAdventurer3のIPアドレスを引数に起動すると、'> 'でコマンド入力待ちになる。
ここでは、p、s、jobstop、qが入力でき、それぞれ、機器の状態確認、緊急停止、印刷停止、プログラム終了が実行される。 - プログラムの構成
Console.pyがアプリケーションの起点となるモジュール。
Adventurer3/Controller.pyが、Adventurer3との通信を行う通信モジュール。
ローカルエリア内にあるマシンをwebベースでの監視
監視対象は、マシンのステータスと内蔵カメラ。
ここでの目的は、Raspberry Pi+Pythonを使い、WebベースでのAdventurer3監視機能を作成すること。
- 機能概要
Raspberry Piで起動後、http://Raspberry PiのIP:8088 にアクセスすることで、サーバーに接続。
IPアドレス指定画面と機器状態表示画面の2つの画面で構成される。- IPアドレス指定画面
Adventurer3のIPアドレスを指定する。 - 機器状態表示画面
接続しているAdventurer3の状態と内蔵カメラで撮影した状態を表示する。
- IPアドレス指定画面
- プログラムの構成
Adventurer3/views.pyがIPアドレス指定画面・機器状態表示画面を制御するためのコード。
static以下のフォルダに入っているのは、htmlとそれに関連するファイル群。
static以下は、基本的に、Visual StudioでPythonのWebプロジェクトを新規に作成した際に取り込まれたファイルになる。
static/scripts/update.jsは機器状態表示画面で、Adventurer3の状態をサーバー側に問い合わせするためのスクリプトが入っている。
InServer.pyはWebサーバーを起動するための起点となるモジュール。
Raspberry Piにファイル類を持っていって、Python3 InServer.py
で起動。
ホスト名、ポートは、環境変数のSERVER_HOST、SERVER_PORTで指定できる。
ホスト名の設定含め、次のように起動したほうがいいかもしれない。
export SERVER_HOST=`hostname -I`
Python3 InServer.py
This software is released under the MIT License, see LICENSE.txt.