diff --git a/conf.py b/conf.py index 975c753..376280e 100755 --- a/conf.py +++ b/conf.py @@ -18,7 +18,7 @@ # -- Project information ----------------------------------------------------- project = 'IoT Programming' -copyright = '2021-2022, Motoki Miura' +copyright = '2021-2023, Motoki Miura' author = 'Motoki Miura' diff --git a/index.rst b/index.rst index 792f6a1..e0f889d 100755 --- a/index.rst +++ b/index.rst @@ -15,8 +15,9 @@ :caption: Contents: intro - pre - pre2 + pre2023 + pre2022 + pre2021 week1 week2 git diff --git a/intro.rst b/intro.rst index d317b7c..822f58b 100755 --- a/intro.rst +++ b/intro.rst @@ -53,8 +53,9 @@ 参考URL ========================================== -- arduino-cli https://arduino.github.io/arduino-cli/0.21/ - - arduino-cli コマンドリファレンス https://arduino.github.io/arduino-cli/0.21/commands/arduino-cli/ +- arduino-cli https://arduino.github.io/arduino-cli/0.31/ +- arduino-cli コマンドリファレンス https://arduino.github.io/arduino-cli/0.31/commands/arduino-cli/ - M5StickC非公式日本語リファレンス https://lang-ship.com/reference/unofficial/M5StickC - スイッチサイエンス M5StickC Plus https://www.switch-science.com/catalog/6470 - M5StickCガイド https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/M5StickC_Guide_Japanese.pdf + diff --git a/pre.rst b/pre.rst deleted file mode 100755 index 81a3701..0000000 --- a/pre.rst +++ /dev/null @@ -1,147 +0,0 @@ -.. _00_pre: - -事前準備 (2022年度:arduino-cli + VSCode) -============================================== - -`M5StickC Plus `_ に、プログラムを書き込むには、 -おもに以下の方法があります。 - -1. Arduino IDE -#. arduino-cli (Command-Line Interface) -#. PlatformIO - -2021年度は1. の方法を用いましたが、初期設定が若干面倒なのと、エディタの編集機能が弱いので、今年は arduino-cli を用いる方法を推奨します。 -ただし、arduino-cli はビルドと書き込みのみで、ファイル編集ができませんので、別途エディタとして Visual Studio Code を導入します。 -余力がある人は、Visual Studio Code に Arduino拡張機能を追加して設定すると、ボタン一つで書き込みできる(Arduino IDEに近い)操作感を得ることができます。 - -.. note:: M5StickC Plusは、2017年に発売されたM5StickC の後継版です。ディスプレイサイズと解像度、バッテリ容量が向上しています。また、ブザーも追加されているため、簡単な音を本体のみで鳴らすことができます。 - -.. note:: UIFlowという、Webベースのブロックプログラミング環境もありますが、本実験では柔軟性と拡張性を重視し、Arduino/arduino-cli を使用します。Arduino/arduino-cli ではC言語でプログラムを記述します。 - -以下、こまかいですが、 - -1. arduino-cli のインストール -#. arduino-cli でボード情報とライブラリのインストール -#. サンプルファイルのコンパイルと転送 -#. Visual Studio Code のインストール -#. Arduino拡張機能の追加と設定 - -の順に、説明します。 - -(1) arduino-cli のインストール ----------------------------------------------------------------------------- - -`arduino-cli `_ をインストールします。 - -Windows の場合 -~~~~~~~~~~~~~~~~~ - -1. `Git for Windows `_ をインストールしてください。Setup時にいろいろ訊かれますが、すべてそのまま「Next」を押して進めて大丈夫です。 -#. Git Bash を起動して、ターミナルに以下のコマンドを入力してください(:numref:`fig_cli_inst` )。(この下の灰色のテキストエリアの右端の四角アイコンを押すと、コマンドをコピーできます。) :: - - curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh - - -.. _fig_cli_inst: - -.. figure:: img/22_0323_144455.png - :scale: 90% - :alt: arduino-cli のインストールコマンド実行後の画面(例) - :name: f_cli_inst - - arduino-cli のインストールコマンド実行後の画面(例) - - -Mac の場合 -~~~~~~~~~~~~~~~~~~ - -1. `Homebrew パッケージマネージャ `_ をまだ入れていない場合は、インストールしてください。ターミナルを開き、以下のコマンドを実行します。 :: - - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - - -#. 続けて、ターミナルで、以下のコマンドを実行してください。 ::  - - brew update - brew install git arduino-cli - - - - -(2) arduino-cli でボード情報とライブラリのインストール ----------------------------------------------------------------------------------------------------- - -.. _writetom5: - -(3) サンプルファイルのコンパイルと書き込み ----------------------------------------------------------------------------------------------------- - -1. ここで (2) と (3) を行う準備として、サンプルファイルと設定ファイルを `三浦の Git リポジトリ `_ からダウンロードします。ターミナル (or Git Bash) で以下のコマンドを実行してください。 ::  - - git clone https://git.istlab.info/git/miura250/M5StickCPlus_FactoryTest2022.git - cd M5StickCPlus_FactoryTest2022 - ls -al - -(cd のあとのフォルダ名が長いので、途中でTabキーを押して補完することをおすすめします。) -``ls -al`` の結果は、:numref:`fig_factory2022` のようになります。 - - -.. _fig_factory2022: - -.. figure:: img/22_0323_151537.png - :scale: 90% - :alt: サンプルファイルの中身を確認 - :name: f_factory2022 - - サンプルファイルの中身を確認 - - -2. 以下のコマンドを入力すると、(2) arduino-cli でM5StickCPlusの開発をするための準備として、「ボード情報とライブラリのインストール」 を行います。 :: - - ./setup.sh - -.. note:: setup.sh は事前準備のときの 1回だけ実行すればOKです。その後、ライブラリが必要となり、追加でダウンロードするときは、arduino-cli lib install XXXX コマンドを実行してください。 - - -3. 以下のコマンドを入力すると、(3) のサンプルファイル(FactoryTest2022)の「コンパイル」 を行います(:numref:`fig_compileupload`)。 :: - - ./compile.sh - -.. warning:: **M5StickCPlus本体がない事前準備の段階で、できるのは、ここまでです。** 以下の「書き込み」は、本体をUSB接続したあとで、行う作業になります。**次のステップとして、(4)のVisual Studio Code のインストール に進んでください。** - - -4. 以下のコマンドを入力すると、(3) の「書き込み」 を行います(:numref:`fig_compileupload`)。 **ただし「書き込み」は、M5StickCPlus本体をUSB接続していないと失敗します。** :: - - ./upload.sh - -.. note:: 今後、ソースコード(ここでは、FactoryTest2022.ino)を編集していくと、「コンパイル」と「書き込み」 を頻繁に実行することになります。その場合、以下のように && でつなげて1回のコマンド入力でも実行できます。 :: - - ./compile.sh && ./upload.sh - - - -.. _fig_compileupload: - -.. figure:: img/22_0323_154834.png - :scale: 80% - :alt: コンパイルと書き込み(upload)を行っている様子 - :name: f_compileupload - - コンパイルと書き込み(upload)を行っている様子 - - - -(4) Visual Studio Code のインストール --------------------------------------------------------------------------------------------- - -Windows の場合は、Microsoft Store で、Visual Studio Code のインストールができます。Mac の場合は、`インストーラー `_ でダウンロードしてください。 - -(5) Arduino拡張機能の追加と設定 --------------------------------------------------------------------------------------------- - -必須ではないですが、できれば次のページを参考に、 `Arduino拡張機能の追加と設定 `_ をしておくとよいでしょう。 - -この設定をしておくと、ソースコード編集→保存→右上のボタン で、書き込みができます。 - -.. note:: この設定をしない場合でも、(3) のコマンドライン(またはシェルスクリプト)を修正・実行すれば、書き込みができます。 - diff --git a/pre2.rst b/pre2.rst deleted file mode 100755 index 53fc272..0000000 --- a/pre2.rst +++ /dev/null @@ -1,165 +0,0 @@ -.. _00_pre2: - -事前準備 (2021年度:Arduino IDE) -====================================== - -.. warning:: **2022年度は、ここにかいてある準備は不要です。** ただし、サンプルファイルを見たい場合には入れておくと便利かもしれません。なお、FTDI Virtual COM Port (VCP) Driver はWindowsに入っているので、わざわざ入れなくてよいようです。 - - -M5StickC Plus に、プログラムを書き込むためには、 -開発環境(Arduino IDE)のインストールと、設定が必要になります。 - -.. note:: M5StickC Plusは、2017年に発売されたM5StickC の後継版です。ディスプレイサイズと解像度、バッテリ容量が向上しています。また、ブザーも追加されているため、簡単な音を本体のみで鳴らすことができます。 - -.. note:: UIFlowという、Webベースのブロックプログラミング環境もありますが、本実験では柔軟性と拡張性を重視し、Arduinoを使用します。ArduinoではC言語でプログラムを記述します。 - -開発環境(Arduino IDE)のインストール -------------------------------------------- - -Arduino IDEは、Arduinoというマイコンボード用に開発され、長年使われている開発環境です。IDEとは、Integrated Development Environment の略で、日本語では統合開発環境と呼びます。有名なIDEには、Microsoft Visual Studio [#vs]_ や Eclipse [#eclipse]_ があります。 - -.. [#vs] おもにWindows向けの開発環境です。ちなみに、Visual Studio Code は、最近利用者が増加しているコードエディタです。 -.. [#eclipse] おもにJava向けの開発環境です。「イクリプス」と発音します。 - -.. note:: `初心者向けM5Stackの始め方(ArduinoIDE編) `_ も参考になります。**ただし、M5Stackではなく、M5StickC/CPlus特有の注意点があります。** - -.. _ideinstwin: - -Windowsの場合 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -1. Microsoft Store で、`Arduino IDE `_ を検索してインストールする。 -#. M5StickCPlusをUSB接続するために、`FTDI Virtual COM Port (VCP) Driver Setup File `_ をダウンロードしてインストールする。ちなみに、他のOS用のドライバやバージョンはこちら: - -MacOS、Linuxの場合 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -1. Arduino IDEのダウンロードサイト から、自分のOSに適合したファイルをダウンロードする。 -#. インストールする。 - -Arduino IDEと、USB接続用のドライバ(Windowsのみ)をインストールしたら、次のステップ(Arduino IDEの設定)にすすみます。次のステップでは、Arduino IDEで、ESP32用のプログラムをコンパイルしたり、M5StickCPlusのサンプルプログラムを利用したりするために、ボードとライブラリをインストールします。 - - - -Arduino IDEの設定 ---------------------------------------- - -追加のボードマネージャーのURLを設定する -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -1. Arduino IDEを起動する。 -#. 「ファイル」→「環境設定」→「追加のボードマネージャーのURL」に、 ``https://dl.espressif.com/dl/package_esp32_index.json`` を設定する。以下のテキストエリアの右上の四角アイコンを押すと、URLをコピーできます。:: - - https://dl.espressif.com/dl/package_esp32_index.json - -esp32のボードを追加する -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -「ツール」→「ボード…」→「ボードマネージャ…」をひらき、右上のテキスト入力フィールドに、``esp32`` と入力して絞り込み、「インストール」を押す(:numref:`fig_board_manager_esp32` )。 - -.. _fig_board_manager_esp32: - -.. figure:: images/board_manager_esp32.png - :scale: 60% - :alt: ボードマネージャにて``esp32``で絞り込んでいる画面 - :name: f_board_manager_esp32 - - ボードマネージャにて``esp32``で絞り込んでいる画面 - - -M5StickCPlusライブラリをインストールする -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理…」で、ライブラリマネージャをひらく。 - -右上のテキスト入力フィールドに、``m5stickcplus`` と入力して絞り込み、M5StickCPlus の 「インストール」を押す(:numref:`fig_library_manager_m5stickcplus`)。 - -.. _fig_library_manager_m5stickcplus: - -.. figure:: images/library_manager_m5stickcplus.png - :scale: 60% - :alt: ライブラリマネージャにて``m5stickcplus``で絞り込んでいる画面 - :name: f_library_manager_m5stickcplus - - ライブラリマネージャにて``m5stickcplus``で絞り込んでいる画面 - -M5StickCPlusライブラリの確認と、サンプルソースコードの表示 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:numref:`fig_menu_file_sketchexample_m5stick_factory` に示すように、「ファイル」→「スケッチ例」→「互換性なし」→「M5StickCPlus」→「FactoryTest」をえらぶ。 - -.. _fig_menu_file_sketchexample_m5stick_factory: - -.. figure:: images/menu_file_sketchexample_m5stick_factory.png - :scale: 80% - :alt: 「ファイル」→「スケッチ例」→「互換性なし」→「M5StickCPlus」→「FactoryTest」 - :name: f_menu_file_sketchexample_m5stick_factory - - 「ファイル」→「スケッチ例」→「互換性なし」→「M5StickCPlus」→「FactoryTest」 - - -ボードの選択 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:numref:`fig_menu_tool_board_esp32_m5stickc` に示すように、「ツール」→「ボード: Arduino Uno」→「ESP32 Arduino」→「M5Stick-C」をえらぶ。 - -.. _fig_menu_tool_board_esp32_m5stickc: - -.. figure:: images/menu_tool_board_esp32_m5stickc.png - :scale: 80% - :alt: 「ツール」→「ボード: Arduino Uno」→「ESP32 Arduino」→「M5Stick-C」 - :name: f_menu_tool_board_esp32_m5stickc - - 「ツール」→「ボード: Arduino Uno」→「ESP32 Arduino」→「M5Stick-C」 - - -ビルド -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:numref:`fig_build_factorytest` に示すように、✔️表記された丸ボタン(一番左)をおして、ビルド(ソースコードのコンパイルとリンク)をする。 - -.. _fig_build_factorytest: - -.. figure:: images/build_factorytest.png - :scale: 80% - :alt: ビルド - :name: f_build_factorytest - - ビルド - -.. note:: デフォルト(インストールしただけの初期状態)では、コンパイルに非常に時間がかかります。すこし手間はかかりますが、 `Arduino IDEのビルドを速くする|オブジェクトファイルの出力先を固定する `_ をやっておくと、ビルド時間が短縮できます。 - -.. warning:: **M5StickCPlus本体がない事前準備の段階で、できるのは、ここまでです。** 以降は、本体をUSB接続したあとで、行う作業になります。Windows環境でビルドできない場合は、いちどArduino IDEをすべて終了し、Arduino IDEを管理者権限で起動しなおしてください。管理者権限で起動するには、アイコンを右クリックして、メニューから選択します。 - - -シリアルポートの選択 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -**本体をUSB接続したあと** で、 :numref:`fig_select_serialport` に示すように、「ツール」→「シリアルポート」で、書き込むデバイスが接続されているシリアルポートを選択する。Windowsの場合は、COM3のように、``COM + 数字`` で表記される。Macの場合は、``/dev/cu.usbserial-XXXXXXXXXX`` のように表記される。 - -.. _fig_select_serialport: - -.. figure:: images/select_serialport.png - :scale: 80% - :alt: シリアルポートの選択 - :name: f_select_serialport - - シリアルポートの選択 - -.. note:: Windowsを使っていて、シリアルポートが表示されないときは、:ref:`ideinstwin` で指示した、FTDI Virtual COM Port Driver がインストールされているか、確認してみてください。本体を挿したときに、PCの「デバイスマネージャ」 (スタートメニューのdevice managerで検索)で、「ポート(COMとLPT)」に表示されていれば、ドライバはインストールされていますので、Arduino IDEを再起動してください。 - - -プログラムの書き込み -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -「→」のアイコンボタンをおすと、プログラムの書き込みを開始します。 - -.. warning:: 書き込みに失敗するときは、環境設定で、「より詳細な情報を表示する」にチェックをいれてみてください。原因がすこしわかりやすくなります。 - -バージョン情報 --------------------------------------------------- - -- Arduino IDEのバージョン: 1.8.13 (Windows Store 1.8.42.0) -- ESP32 for Arduino のバージョン:1.0.5 -- M5StickCPlus ライブラリのバージョン: 0.0.1 - - diff --git a/pre2021.rst b/pre2021.rst new file mode 100755 index 0000000..01232b4 --- /dev/null +++ b/pre2021.rst @@ -0,0 +1,165 @@ +.. _03_pre2021: + +事前準備 (2021年度:Arduino IDE) +====================================== + +.. warning:: **2022年度は、ここにかいてある準備は不要です。** ただし、サンプルファイルを見たい場合には入れておくと便利かもしれません。なお、FTDI Virtual COM Port (VCP) Driver はWindowsに入っているので、わざわざ入れなくてよいようです。 + + +M5StickC Plus に、プログラムを書き込むためには、 +開発環境(Arduino IDE)のインストールと、設定が必要になります。 + +.. note:: M5StickC Plusは、2017年に発売されたM5StickC の後継版です。ディスプレイサイズと解像度、バッテリ容量が向上しています。また、ブザーも追加されているため、簡単な音を本体のみで鳴らすことができます。 + +.. note:: UIFlowという、Webベースのブロックプログラミング環境もありますが、本実験では柔軟性と拡張性を重視し、Arduinoを使用します。ArduinoではC言語でプログラムを記述します。 + +開発環境(Arduino IDE)のインストール +------------------------------------------- + +Arduino IDEは、Arduinoというマイコンボード用に開発され、長年使われている開発環境です。IDEとは、Integrated Development Environment の略で、日本語では統合開発環境と呼びます。有名なIDEには、Microsoft Visual Studio [#vs]_ や Eclipse [#eclipse]_ があります。 + +.. [#vs] おもにWindows向けの開発環境です。ちなみに、Visual Studio Code は、最近利用者が増加しているコードエディタです。 +.. [#eclipse] おもにJava向けの開発環境です。「イクリプス」と発音します。 + +.. note:: `初心者向けM5Stackの始め方(ArduinoIDE編) `_ も参考になります。**ただし、M5Stackではなく、M5StickC/CPlus特有の注意点があります。** + +.. _ideinstwin: + +Windowsの場合 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. Microsoft Store で、`Arduino IDE `_ を検索してインストールする。 +#. M5StickCPlusをUSB接続するために、`FTDI Virtual COM Port (VCP) Driver Setup File `_ をダウンロードしてインストールする。ちなみに、他のOS用のドライバやバージョンはこちら: + +MacOS、Linuxの場合 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. Arduino IDEのダウンロードサイト から、自分のOSに適合したファイルをダウンロードする。 +#. インストールする。 + +Arduino IDEと、USB接続用のドライバ(Windowsのみ)をインストールしたら、次のステップ(Arduino IDEの設定)にすすみます。次のステップでは、Arduino IDEで、ESP32用のプログラムをコンパイルしたり、M5StickCPlusのサンプルプログラムを利用したりするために、ボードとライブラリをインストールします。 + + + +Arduino IDEの設定 +--------------------------------------- + +追加のボードマネージャーのURLを設定する +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +1. Arduino IDEを起動する。 +#. 「ファイル」→「環境設定」→「追加のボードマネージャーのURL」に、 ``https://dl.espressif.com/dl/package_esp32_index.json`` を設定する。以下のテキストエリアの右上の四角アイコンを押すと、URLをコピーできます。:: + + https://dl.espressif.com/dl/package_esp32_index.json + +esp32のボードを追加する +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +「ツール」→「ボード…」→「ボードマネージャ…」をひらき、右上のテキスト入力フィールドに、``esp32`` と入力して絞り込み、「インストール」を押す(:numref:`fig_board_manager_esp32` )。 + +.. _fig_board_manager_esp32: + +.. figure:: images/board_manager_esp32.png + :scale: 60% + :alt: ボードマネージャにて``esp32``で絞り込んでいる画面 + :name: f_board_manager_esp32 + + ボードマネージャにて``esp32``で絞り込んでいる画面 + + +M5StickCPlusライブラリをインストールする +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理…」で、ライブラリマネージャをひらく。 + +右上のテキスト入力フィールドに、``m5stickcplus`` と入力して絞り込み、M5StickCPlus の 「インストール」を押す(:numref:`fig_library_manager_m5stickcplus`)。 + +.. _fig_library_manager_m5stickcplus: + +.. figure:: images/library_manager_m5stickcplus.png + :scale: 60% + :alt: ライブラリマネージャにて``m5stickcplus``で絞り込んでいる画面 + :name: f_library_manager_m5stickcplus + + ライブラリマネージャにて``m5stickcplus``で絞り込んでいる画面 + +M5StickCPlusライブラリの確認と、サンプルソースコードの表示 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:numref:`fig_menu_file_sketchexample_m5stick_factory` に示すように、「ファイル」→「スケッチ例」→「互換性なし」→「M5StickCPlus」→「FactoryTest」をえらぶ。 + +.. _fig_menu_file_sketchexample_m5stick_factory: + +.. figure:: images/menu_file_sketchexample_m5stick_factory.png + :scale: 80% + :alt: 「ファイル」→「スケッチ例」→「互換性なし」→「M5StickCPlus」→「FactoryTest」 + :name: f_menu_file_sketchexample_m5stick_factory + + 「ファイル」→「スケッチ例」→「互換性なし」→「M5StickCPlus」→「FactoryTest」 + + +ボードの選択 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:numref:`fig_menu_tool_board_esp32_m5stickc` に示すように、「ツール」→「ボード: Arduino Uno」→「ESP32 Arduino」→「M5Stick-C」をえらぶ。 + +.. _fig_menu_tool_board_esp32_m5stickc: + +.. figure:: images/menu_tool_board_esp32_m5stickc.png + :scale: 80% + :alt: 「ツール」→「ボード: Arduino Uno」→「ESP32 Arduino」→「M5Stick-C」 + :name: f_menu_tool_board_esp32_m5stickc + + 「ツール」→「ボード: Arduino Uno」→「ESP32 Arduino」→「M5Stick-C」 + + +ビルド +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:numref:`fig_build_factorytest` に示すように、✔️表記された丸ボタン(一番左)をおして、ビルド(ソースコードのコンパイルとリンク)をする。 + +.. _fig_build_factorytest: + +.. figure:: images/build_factorytest.png + :scale: 80% + :alt: ビルド + :name: f_build_factorytest + + ビルド + +.. note:: デフォルト(インストールしただけの初期状態)では、コンパイルに非常に時間がかかります。すこし手間はかかりますが、 `Arduino IDEのビルドを速くする|オブジェクトファイルの出力先を固定する `_ をやっておくと、ビルド時間が短縮できます。 + +.. warning:: **M5StickCPlus本体がない事前準備の段階で、できるのは、ここまでです。** 以降は、本体をUSB接続したあとで、行う作業になります。Windows環境でビルドできない場合は、いちどArduino IDEをすべて終了し、Arduino IDEを管理者権限で起動しなおしてください。管理者権限で起動するには、アイコンを右クリックして、メニューから選択します。 + + +シリアルポートの選択 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +**本体をUSB接続したあと** で、 :numref:`fig_select_serialport` に示すように、「ツール」→「シリアルポート」で、書き込むデバイスが接続されているシリアルポートを選択する。Windowsの場合は、COM3のように、``COM + 数字`` で表記される。Macの場合は、``/dev/cu.usbserial-XXXXXXXXXX`` のように表記される。 + +.. _fig_select_serialport: + +.. figure:: images/select_serialport.png + :scale: 80% + :alt: シリアルポートの選択 + :name: f_select_serialport + + シリアルポートの選択 + +.. note:: Windowsを使っていて、シリアルポートが表示されないときは、:ref:`ideinstwin` で指示した、FTDI Virtual COM Port Driver がインストールされているか、確認してみてください。本体を挿したときに、PCの「デバイスマネージャ」 (スタートメニューのdevice managerで検索)で、「ポート(COMとLPT)」に表示されていれば、ドライバはインストールされていますので、Arduino IDEを再起動してください。 + + +プログラムの書き込み +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +「→」のアイコンボタンをおすと、プログラムの書き込みを開始します。 + +.. warning:: 書き込みに失敗するときは、環境設定で、「より詳細な情報を表示する」にチェックをいれてみてください。原因がすこしわかりやすくなります。 + +バージョン情報 +-------------------------------------------------- + +- Arduino IDEのバージョン: 1.8.13 (Windows Store 1.8.42.0) +- ESP32 for Arduino のバージョン:1.0.5 +- M5StickCPlus ライブラリのバージョン: 0.0.1 + + diff --git a/pre2022.rst b/pre2022.rst new file mode 100755 index 0000000..aeeb248 --- /dev/null +++ b/pre2022.rst @@ -0,0 +1,147 @@ +.. _01_pre2022: + +事前準備 (2022年度:arduino-cli + VSCode) +============================================== + +`M5StickC Plus `_ に、プログラムを書き込むには、 +おもに以下の方法があります。 + +1. Arduino IDE +#. arduino-cli (Command-Line Interface) +#. PlatformIO + +2021年度は1. の方法を用いましたが、初期設定が若干面倒なのと、エディタの編集機能が弱いので、今年は arduino-cli を用いる方法を推奨します。 +ただし、arduino-cli はビルドと書き込みのみで、ファイル編集ができませんので、別途エディタとして Visual Studio Code を導入します。 +余力がある人は、Visual Studio Code に Arduino拡張機能を追加して設定すると、ボタン一つで書き込みできる(Arduino IDEに近い)操作感を得ることができます。 + +.. note:: M5StickC Plusは、2017年に発売されたM5StickC の後継版です。ディスプレイサイズと解像度、バッテリ容量が向上しています。また、ブザーも追加されているため、簡単な音を本体のみで鳴らすことができます。 + +.. note:: UIFlowという、Webベースのブロックプログラミング環境もありますが、本実験では柔軟性と拡張性を重視し、Arduino/arduino-cli を使用します。Arduino/arduino-cli ではC言語でプログラムを記述します。 + +以下、こまかいですが、 + +1. arduino-cli のインストール +#. arduino-cli でボード情報とライブラリのインストール +#. サンプルファイルのコンパイルと転送 +#. Visual Studio Code のインストール +#. Arduino拡張機能の追加と設定 + +の順に、説明します。 + +(1) arduino-cli のインストール +---------------------------------------------------------------------------- + +`arduino-cli `_ をインストールします。 + +Windows の場合 +~~~~~~~~~~~~~~~~~ + +1. `Git for Windows `_ をインストールしてください。Setup時にいろいろ訊かれますが、すべてそのまま「Next」を押して進めて大丈夫です。 +#. Git Bash を起動して、ターミナルに以下のコマンドを入力してください(:numref:`fig_cli_inst` )。(この下の灰色のテキストエリアの右端の四角アイコンを押すと、コマンドをコピーできます。) :: + + curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh + +.. _fig_cli_inst: + +.. figure:: img/22_0323_144455.png + :scale: 90% + :alt: arduino-cli インストールコマンド実行後の画面(例) + :name: f_cli_inst + + arduino-cli インストールコマンド実行後の画面(例) + + + +Mac の場合 +~~~~~~~~~~~~~~~~~~ + +1. `Homebrew パッケージマネージャ `_ をまだ入れていない場合は、インストールしてください。ターミナルを開き、以下のコマンドを実行します。 :: + + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + + +#. 続けて、ターミナルで、以下のコマンドを実行してください。 ::  + + brew update + brew install git arduino-cli + + + + +(2) arduino-cli でボード情報とライブラリのインストール +---------------------------------------------------------------------------------------------------- + +.. _writetom5: + +(3) サンプルファイルのコンパイルと書き込み +---------------------------------------------------------------------------------------------------- + +1. ここで (2) と (3) を行う準備として、サンプルファイルと設定ファイルを `三浦の Git リポジトリ `_ からダウンロードします。ターミナル (or Git Bash) で以下のコマンドを実行してください。 ::  + + git clone https://git.istlab.info/git/miura250/M5StickCPlus_FactoryTest2022.git + cd M5StickCPlus_FactoryTest2022 + ls -al + +(cd のあとのフォルダ名が長いので、途中でTabキーを押して補完することをおすすめします。) +``ls -al`` の結果は、:numref:`fig_factory2022` のようになります。 + + +.. _fig_factory2022: + +.. figure:: img/22_0323_151537.png + :scale: 90% + :alt: サンプルファイルの中身を確認 + :name: f_factory2022 + + サンプルファイルの中身を確認 + + +2. 以下のコマンドを入力すると、(2) arduino-cli でM5StickCPlusの開発をするための準備として、「ボード情報とライブラリのインストール」 を行います。 :: + + ./setup.sh + +.. note:: setup.sh は事前準備のときの 1回だけ実行すればOKです。その後、ライブラリが必要となり、追加でダウンロードするときは、arduino-cli lib install XXXX コマンドを実行してください。 + + +3. 以下のコマンドを入力すると、(3) のサンプルファイル(FactoryTest2022)の「コンパイル」 を行います(:numref:`fig_compileupload`)。 :: + + ./compile.sh + +.. warning:: **M5StickCPlus本体がない事前準備の段階で、できるのは、ここまでです。** 以下の「書き込み」は、本体をUSB接続したあとで、行う作業になります。**次のステップとして、(4)のVisual Studio Code のインストール に進んでください。** + + +4. 以下のコマンドを入力すると、(3) の「書き込み」 を行います(:numref:`fig_compileupload`)。 **ただし「書き込み」は、M5StickCPlus本体をUSB接続していないと失敗します。** :: + + ./upload.sh + +.. note:: 今後、ソースコード(ここでは、FactoryTest2022.ino)を編集していくと、「コンパイル」と「書き込み」 を頻繁に実行することになります。その場合、以下のように && でつなげて1回のコマンド入力でも実行できます。 :: + + ./compile.sh && ./upload.sh + + + +.. _fig_compileupload: + +.. figure:: img/22_0323_154834.png + :scale: 80% + :alt: コンパイルと書き込み(upload)を行っている様子 + :name: f_compileupload + + コンパイルと書き込み(upload)を行っている様子 + + + +(4) Visual Studio Code のインストール +-------------------------------------------------------------------------------------------- + +Windows の場合は、Microsoft Store で、Visual Studio Code のインストールができます。Mac の場合は、`インストーラー `_ でダウンロードしてください。 + +(5) Arduino拡張機能の追加と設定 +-------------------------------------------------------------------------------------------- + +必須ではないですが、できれば次のページを参考に、 `Arduino拡張機能の追加と設定 `_ をしておくとよいでしょう。 + +この設定をしておくと、ソースコード編集→保存→右上のボタン で、書き込みができます。 + +.. note:: この設定をしない場合でも、(3) のコマンドライン(またはシェルスクリプト)を修正・実行すれば、書き込みができます。 + diff --git a/pre2023.rst b/pre2023.rst new file mode 100755 index 0000000..9e52652 --- /dev/null +++ b/pre2023.rst @@ -0,0 +1,54 @@ +.. _00_pre2023: + +事前準備 (2023年度:arduino-cli + 独自プログラムIoTP) +============================================================================== + +`M5StickC Plus `_ に、プログラムを書き込むには、 +おもに以下の方法があります。 + +1. Arduino IDE +#. arduino-cli (Command-Line Interface) +#. PlatformIO + +2022年度は2. の方法を用いましたが、シリアルモニタが使いづらい問題がありました。 +そこで今年は独自プログラムIoTP を併用して、ファイルの編集、ビルドと書き込みを行います。 +(別途、Visual Studio Code 等のエディタを併用してもかまいません。) + +.. note:: 以下の手順は、なるべく簡便に環境構築を行えるよう、事前に教員が準備したスクリプトを実行するものです。内容は2022年度とほぼ同等です。違いは独自プログラムIoTPを動作させるため、Jarファイルをダウンロードしたり、必要に応じてJava Runtime (JRE) をインストールしたりする部分になります。 + + +Windows の場合 +~~~~~~~~~~~~~~~~~ + +1. `Git for Windows `_ をインストールしてください。Setup時にいろいろ訊かれますが、すべてそのまま「Next」を押して進めて大丈夫です。 +#. Git Bash を起動して、ターミナル(例: :numref:`fig_cli_iotinst` )に以下のコマンドを入力してください。(この下の灰色のテキストエリアの右端の四角アイコンを押すと、コマンドをコピーできます。) :: + + curl -fsSL istlab.info/iotinst | sh + + +.. _fig_cli_iotinst: + +.. figure:: img/22_0323_144455.png + :scale: 90% + :alt: インストールスクリプト実行後の画面(例) + :name: f_cli_iotinst + + インストールスクリプト実行後の画面(例) + + + +Mac の場合 +~~~~~~~~~~~~~~~~~~ + +1. `Homebrew パッケージマネージャ `_ をまだ入れていない場合は、インストールしてください。ターミナルを開き、以下のコマンドを実行します。 :: + + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + + +#. 続けて、ターミナルで、以下のコマンドを実行してください。 ::  + + brew update + brew install git arduino-cli + + curl -fsSL istlab.info/iotinst | sh + diff --git a/week1.rst b/week1.rst index c95342d..bee0929 100755 --- a/week1.rst +++ b/week1.rst @@ -1,12 +1,11 @@ -.. |br| raw:: html -
- +.. .. |br| raw:: html +..
1週目 ======================== -.. note:: 以下の項目について、全員がすべてを試す必要はありません(あきらかに、時間が足りなくなります)。役割分担をして、手分けして動作の確認と、同じ班のメンバーへの動作説明・共有をして、すすめてください。必要に応じて、検証する機能を絞り込んでください。 +.. note:: 以下の項目について、全員がすべてを試す必要はありません(時間が足りなくなる可能性が高いです)。役割分担をして、手分けして動作の確認と、同じ班のメンバーへの動作説明・共有をして、すすめてください。必要に応じて、検証する機能を絞り込んでください。 電源の切り方・入れ方 ---------------------------------------- @@ -93,7 +92,7 @@ 本体には、3つのボタンがあります。 (参考:`M5StickCガイド `_ の、4ページ目、ハードウェアの概要) -:numref:`button01` に、ボタンをおしたらシリアルモニタに表示する例を示します。ボタンも、M5StickC/CPlusの機能なので、 ``#include `` を指定し、``M5.begin()`` を呼び出しておく必要があります。また、ボタンの状態を読み出して、ボタンオブジェクト(BtnA,BtnB)に設定するために、 ``M5.update()`` を、ループのなかに入れておく必要があります( `update()の定義 `_ )。長押しと普通押しを区別したい場合は、ifで確認する順番(長押しを先に判定する)が重要です。 +:numref:`button01` に、ボタンをおしたらシリアルモニタに表示する例を示します。ボタンも、M5StickCPlus の機能なので、 ``#include `` を指定し、``M5.begin()`` を呼び出しておく必要があります。また、ボタンの状態を読み出して、ボタンオブジェクト(BtnA,BtnB)に設定するために、 ``M5.update()`` を、ループのなかに入れておく必要があります( `update()の定義 `_ )。長押しと普通押しを区別したい場合は、ifで確認する順番(長押しを先に判定する)が重要です。 .. literalinclude:: src/button01.ino :caption: @@ -123,7 +122,7 @@ :linenos: .. :emphasize-lines: 10-14 -.. note:: `変数の型一覧 `_ uint16_t は unsigned int 16bit type の略です。 |br| 参考:`M5StackのLCDディスプレイの色をRGBで指定する。 `_ +.. note:: `変数の型一覧 `_ uint16_t は unsigned int 16bit type の略です。参考:`M5StackのLCDディスプレイの色をRGBで指定する。 `_ ブザー(Beep) @@ -182,8 +181,10 @@ .. figure:: images/pwm.jpg :scale: 50% + `Copyright (C) 2021 by Junichi Akita, CC BY-SA `_ + :numref:`pwm01` は、赤色LEDを点滅させるシンプルなプログラムです。 ``ledcSetup(チャンネル, 周波数, 分解能)`` で、PWMチャンネル(0〜3)に対する周波数と分解能設定をし、 ``lecAttachPin(ピン番号, チャンネル)`` で、PWMチャンネルを適用する出力ピンを選択します。そのあと、 ``ledcWrite(チャンネル, 値)`` で、分解能で設定したビットで表現できる最大値+1以下の値を指定することで、デューティー比を設定します。:numref:`pwm01` の場合、分解能で8bitを指定したので、0〜256 の値が、デューティー比 0〜1 のパルス生成に対応します。 .. literalinclude:: src/pwm01.ino @@ -301,7 +302,7 @@ これにより、画面のちらつきが抑制できます(ダブルバッファリング)。 ちらつき防止のほかに、なめらかに画面スクロールする目的で、実画面よりも大きい仮想画面を作成しておき、その一部の領域のみを実画面に描画するといった用途にも使われます。 -TFT_eSprite クラスは、Lcdクラスとほぼ同様の描画関数を備えています。:numref:`sprite01` は、スプライトの効果あり/なしを確認できるサンプルプログラムです。 +TFT_eSprite クラスは、Lcdクラスとほぼ同様の描画関数を備えています。:numref:`sprite01` は、スプライトの効果あり/なしをAボタンで切り替えて確認できるサンプルプログラムです。 `→動画 sprite01 `_ .. literalinclude:: src/sprite01.ino