実験の目的
===================================

近年、ディスプレイと無線通信機能を備えた、安価で高性能な小型マイコンモジュールが登場している。
とくにM5シリーズ（M5Stack / M5StickC ）は、ESP32 マイクロプロセッサとカラー液晶パネルを搭載しており、
ボタンやセンサからの入力をもとに画面表示を書き換えたり、サーボモータを動かしたり、データをインターネット上のサーバに送信したり
することが簡単に行える。

この実験（IoTプログラミング）では、M5StickCPlus を用いて、
実世界の情報を読み取り、インターネット上の機器と連携動作しながら、実世界の環境に働きかける仕組みについての基礎を学んだうえで、
グループによる創造的な開発を進められるようになることを目的とする。

実験のすすめかた
================

一般的な「実験」講義では、教員が指示した実験内容を順次実施し、各自が考察し、報告書にまとめる作業を行う。

この実験では、教員が指示する「必ず実施すべき、与えられた実験」を少なくするかわりに、班としてどのような「システム」や「作品」を完成させたいか？
を話し合って決め、そのために必要な機能の調査と実験、開発を分担してすすめるPBL（Project-based Learning）の形式をとる。

- 1週目の予習：M5StickCPlusの予備調査、開発環境の構築
- 1週目： M5StickCPlus の基本的な使用法と、機能の確認、グループで完成させる「システム」や「作品」についての話し合い、調査・開発の分担
- 1週目〜2週目の期間：分担した調査・開発をすすめ、記録を残す。部分的な統合試験を行う。
- 2週目： 分担して構築した機能の統合と動作試験、報告書(レポート)の執筆、発表会に向けた準備と、情報共有

`報告書の雛形 <https://docs.google.com/document/d/1NdvuHJ9wn09ZZ10xYCM-vMOOj3tjALfLL5VEKULvC6g/edit?usp=sharing>`_ ←こちらをコピー＆班で共有し、班単位でまとめて執筆・提出していただきます。

評価基準
----------------

報告書（レポート）の評価基準を、以下に示す。

- 成果物（「システム」や「作品」）や実験・検証の目的、意図が十分に述べられているか？また、最終的に目的が達成されたかどうかが示されているか？
- >> **なんらかの「通信」機能をもちいたシステムや作品、実験・検証とすること。** M5以外のデバイス（スマホやPC、サーバ等）と連携することも妨げない。
- チーム活動が円滑に行えたかどうか（班として調査項目の洗い出しと分担、機能の統合がうまくできたかどうか）や、レポートの執筆担当範囲が明確になっているか？
- >> **プログラムはGITリポジトリで班内共有することが望ましい。円滑に行うため工夫した点や反省点もレポートに加えてよい。**
- 成果物を再現するための情報と、各機能レベルの実験内容が十分に記述されているか？
- 図や写真を効果的に用いて、わかりやすく記述されているか？
- >> **レポート内での表現の工夫に加えて、成果物の動作を動画撮影し、Youtube等にあげ、レポートにURLを貼ることが望ましい。**
- 引用する場合、引用部分と班として記述した部分が明確に区別できるか？参考文献が明記されているか？
- （図を含む）引用部分に対する、独自の記述・報告内容の割合、および、ページ数
- 説明の一貫性と、読みやすさ（書式、文体は統一されているか？）
- 適切な抽象度の単語・用語を用いているか？
- うまくいかなかった場合は、その理由がどの程度明確になっているか、解決の道筋・方向性が示されているか？

発表会における評価基準も、上記の基準に準じる。

班の最終レポートは発表会後、受講者に公開する。

とくに優秀なレポート・成果物を作成した班については、「IoTプログラミング実験優秀賞」を授与し表彰する。


参考URL
==========================================

- arduino-cli https://arduino.github.io/arduino-cli/ 
- arduino-cli コマンドリファレンス https://arduino.github.io/arduino-cli/1.2/commands/arduino-cli/
- M5StickC非公式日本語リファレンス https://lang-ship.com/reference/unofficial/M5StickC
- スイッチサイエンス M5StickC Plus2 https://www.switch-science.com/catalog/9350
- スイッチサイエンス M5StickC Plus https://www.switch-science.com/catalog/6470
- M5StickCガイド https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/M5StickC_Guide_Japanese.pdf

- **三浦の2024までの資料 (M5StickCPlus)** https://cit.istlab.info/m5stickcplus/ 
  - 上記では、 ``arduino-cli core install esp32:esp32@2.0.17`` ``M5StickCPlus2.h`` を用いています。

