Loading...
Loading...
Loading...
サンプルコード
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
環境
以下の環境で開発しています。
動作等の不都合がある場合は、下記の環境を参考にしてください。
ビルド(コンパイル)について
開発環境は以下のリンクを参照ください。
M5Stack Library - https://github.com/m5stack/M5Stack
最初に上記ライブラリに含まれるサンプルスケッチをビルド、書き込みを行ってください。
MWM5ライブラリは https://github.com/monowireless/mwm5 で配布しています。ソースファイル一式をダウンロードしてください。本ドキュメント記載時点に一致するバージョンは変更履歴に記載があります。
変更履歴にある zip ファイルをダウンロードして、開発環境の指定するlibraryディレクトリに展開するか、開発環境の「zip形式のライブラリのインストール」を行ってください。アンインストールはライブラリディレクトリを削除します。
PS2Keyboard - http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html esp32/PS2Keyboard.7z をライブラリディレクトリに展開してください。ビルド時に必要になります。 PS2Keyboard プロジェクトの成果物に対して 1) 日本語レイアウトのキーボード対応 2) カーソルキー等の取り扱いの微調整を実施しています。修正内容はソースコードを参照ください。
Windows10ではVisual Studio 2019でビルドを行っています。また MingW32 用のビルド定義も含めています。
以下が必要になります。
make
gcc9 (gcc-9, g++-9)
以下が必要になります。
make XCodeに付随します。OS バージョンにもよりますが、ターミナルで make と入力すればインストーラーが起動します。
gcc9 (gcc-9, g++-9) homebrew のパッケージをダウンロードして利用します。
macOS 10.15 (Catalina) では、clangを用いることも可能です。オプションOSX_COMPILERTYPE=clang
を追加してmakeしてください。
※ C++17 の filesystem ライブラリがバージョン依存になります。10.15以前ではビルドできず、またビルドしたバイナリを10.14以前で動作させることもできません。
以下が必要になります。
gcc9 (gcc-9, g++-9)
SDL2 開発者向けライブラリ (libsdl2-dev
)
SDL2 のライブラリやヘッダファイルは、ソースパッケージに添付していますが、依存ライブラリのリンクに必要です。
以下を参考にしてください
M5Stack Library - https://github.com/m5stack/M5Stack
TWELITE_Stage アプリは examples/TWELITE_Stage にあります。M5Stackライブラリ導入後、このフォルダに対してビルドしてください。
プロジェクト MWM5.sln を開きます。
Sketch>TWELITE_Stage をスタートアッププロジェクトにします。 必須ではありませんが、デバッガを起動する際などにこのプロジェクトが選択されます。
Debug/Release のいずれかを選択します。
32bit/64bit のいずれかを選択します。
Sketch>TWELITE_Stage を右クリックしてビルドを選択します。
実行形式は msc\Release msc\Debug などのディレクトリに格納されます。
コマンドプロンプト、シェルを開きます。
make, gcc-9, g++-9 が動作することを確認します。
{ソースコードを展開したディレクトリ}/examples/
{ビルドしたいプロジェクト:例 TWELITE_Stage}/build
に移動します。
make を実行します。
make のルール本体は {ソースコードを展開したディレクトリ}/mkfiles
以下に格納しています。
VSCode用のTWELITE STAGE 用のデバッガ起動定義(.vscode/launch.json
)を含めています。環境に合わせて利用ください。
stopAtEntry
は、main()
の先頭で停止する設定で false でも構わない。
externalConsole
は、false
でないと起動しない。
cwd
は、TWELITE STAGEの場合 MWSDKディレクトリを指定する。
標準アプリケーション
TWELITE DIPに工場出荷時に書き込まれている標準アプリ(App_Twelite)のシリアルメッセージを解釈してLCD画面上に表示します。
M5stickに接続する前に書き込んだTWELITE DIPが無線パケットを受信してデータを出力するかPCで確認しておいてください。
M5Stack側のTWELITE DIPは、以下のような接続をしておきます。以下の配線はTWELITE DIPを親機設定(M1=GND)とした配線をしています。AI1-4はアナログポートがオープンになり不定な入力を防ぐためです(App_TweliteではVCCレベルを入力した場合、そのポートを未使用とする意味を持たせています)
シリアルポートの初期化を行っています。
シリアルポートの入力チェックを行います。入力したデータを the_input_uart
キューにいったん投入します。
LCD画面上のターミナル画面領域を書き換えます。処理の内容はscreen.cにあります。
受信したパケットデータを読み取り、画面表示を更新します。
LCDスクリーンの初期化を行います。処理の内容はscreen.cにあり、画面の初期設定を行います。
シリアルポートから入力データを処理します。ここではに文字列を投入します。パーサーによりシリアル電文が解釈できた場合は、update_screen()
を呼び出しターミナル画面に文字を更新します。
この関数内ではを用いて画面の表示位置などを制御しています。
パケットデータはspLastPacket
に格納されています。これの内容を紐解くにはを呼び出します。xの値を読み出して、これに対応して画面を更新します。