2020 年度 組込システム (J5)

はじめに

本科目では ESP32 マイコンを用いて以下を目的とした演習を行う.

  • 比較的低級な C 言語から, 高級言語 (python, ruby) までの各種言語を用いたプログラミングを修得する.
    • ESP32 の公式な開発環境は C 言語.
  • 高級言語でのマイコンプログラミングの実際を理解する.
    • 呼び出し元の言語に応じたラッパーを作成し, ラッパーを経由して C 言語ライブラリを使用する.
  • マイコン周辺機器 (peripheral) のデータシートを (多少なりとも) 読み, それをプログラミングできるようになる.

解説

教材

教育ボード

本ドキュメントでは ESP32 マイコンを搭載した教育ボードを対象とする.


パーツPin など
LEDGPIO13, 12, 14, 27, 26, 25, 33, 32
スイッチGPIO34, 35, 18, 19
サーミスタ温度計GPI39 (ADC1_CH3)
圧電ブザーGPIO15
GPS (GYSFDMAXB)GPIO16 (TX), GPIO17 (RX)
LCD (AQM0802A-RN-GBW)I2C (SDA: GPIO21, SCL: GPIO22, アドレス: 0x3E)
RTC (RC-8035SA)I2C (SDA: GPIO21, SCL: GPIO22, アドレス: 0x32)
注) GPS は近日実装予定.

USB-Linux

USB ブートの Linux (Debian 10) を利用する. 演習ではイメージファイル (<URL:es-mruby2020.img> 29GB) の書き込まれた USB メモリ (SanDisk SDCZ73-032G-G46 [32GB]) を用いる.

USB メモリから Linux をブートするためには, 利用する PC の BIOS で以下を設定を行う必要がある.

  • BIOS のタイプ: UEFI (legacy では起動しない)
  • SecureBoot: 無効
  • Boot: USB メモリの優先順位を上げる.

ログインするための情報は以下の通りである.

  • user, live

演習

各種開発環境を用いたプログラミング

[1] Arduino IDE + ESP32ボードマネージャ



[2] ESP-IDF 環境 + C 言語


[3] MicroPython


[4] mruby/c

mruby/c で IoT

課題:定期的に温度計測を行い,その結果をサーバに送信するプログラムを作成せよ.

mruby/c のライブラリ作成

ITOC のチュートリアルを利用.

TODO

  • WPA2 enterprise
  • GPS, CO2 センサ, ディープスリープ

[参考] 教材準備

ブート可能な USB-Linux のセットアップや, 各開発環境のセットアップ方法を以下にまとめる.

演習で使う Live-USB の img ファイルは <URL:es-mruby2020.img> (29GB) である. これを USB に焼き, しかるべく PC の bios (UEFI) を設定すれば演習環境を再現できる. なお, img ファイルを USB メモリに焼くには Linux の dd コマンドや Etcher など使うと良い.

謝辞