1. 組込みシステムとIoT入門 MOC
- 組込みシステムとは
- 組込みシステムの定義 (特定の機能に特化し、機器に組み込まれるコンピュータシステム)
- 組込みシステムの特徴 (リソース制約, リアルタイム性, 高信頼性, 省電力)
汎用コンピュータとの違い
身の回りの組込みシステムの例 (家電, 自動車, 産業機器)
- IoT (Internet of Things) とは
- IoTの定義 (モノがインターネットに接続され、相互に情報をやり取りする仕組み)
- IoTの構成要素 (デバイス, ゲートウェイ, ネットワーク, クラウド)
- IoTがもたらす価値 (可視化, 遠隔操作, 自動化, 予測)
- 組込みシステムとIoTの関係
- IoTデバイスは組込みシステムの一形態
"M2M (Machine-to-Machine)"との関係
- 開発の難しさと特有の課題
ハードウェアとソフトウェアの密接な連携
リソースの制約 (メモリ, CPU, 電力)
デバッグの困難さ
セキュリティリスク
ライフサイクルの長さとメンテナンス
- 組込み/IoT開発の学習ロードマップ (例)
2. 組込みシステムのハードウェア基礎 MOC
- マイクロプロセッサ (MPU) vs. マイクロコントローラ (MCU) MOC
MPUの定義と特徴 (汎用プロセッサ)
MCUの定義と特徴 (CPU, メモリ, I/Oがワンチップに統合)
MPUとMCUの使い分け
- MCUのアーキテクチャ
CPUコア (ARM Cortex-M, RISC-V, AVRなど)
命令セットアーキテクチャ (ISA - RISC vs. CISC) (再掲・組込み文脈)
- メモリ (Memory)
フラッシュメモリ (Flash Memory) - プログラム格納用
SRAM (Static RAM) - データ格納用
EEPROM (Electrically Erasable PROM)
- ペリフェラル (Peripherals) / 内蔵周辺機能 MOC
- 汎用入出力 (GPIO - General Purpose Input/Output) (Lチカの基礎)
- タイマ / カウンタ (Timer/Counter)
PWM (Pulse Width Modulation) 制御 (モーター、LED調光)
- 割り込みコントローラ (Interrupt Controller)
- A/Dコンバータ (ADC - Analog-to-Digital Converter)
- D/Aコンバータ (DAC - Digital-to-Analog Converter)
- ウォッチドッグタイマ (WDT - Watchdog Timer)
- シリアル通信インターフェース (詳細は後述)
UART (Universal Asynchronous Receiver/Transmitter)
I2C (Inter-Integrated Circuit)
SPI (Serial Peripheral Interface)
- シングルボードコンピュータ (SBC - Single-Board Computer) MOC
Raspberry Pi (フルサイズモデル) (MPUベース)
SBCとMCUボードの違い
- (オプション) FPGA (Field-Programmable Gate Array) と ASIC (Application-Specific Integrated Circuit)
3. 組込みシステムのソフトウェア基礎 MOC
- 組込みプログラミング言語 MOC
- C言語と組込み開発
ビット演算
ポインタとメモリアドレス直接操作
- “volatile
キーワード
構造体とレジスタマッピング
- C++と組込み開発
オブジェクト指向の適用
RAII (Resource Acquisition Is Initialization) によるリソース管理
組込み向けC++の注意点 (例外、RTTI、STL)
- MicroPython / CircuitPython MOC
Pythonの組込み向けサブセット
ラピッドプロトタイピングと教育での利用
(オプション) Ada, Rust, Goなどの組込み利用
- ベアメタルプログラミング (Bare-metal Programming) MOC
- OSなしでハードウェアを直接制御するプログラミング
ブートシーケンスとスタートアップルーチン
レジスタ直接操作
割り込みハンドラ (Interrupt Service Routine - ISR) の実装
- リアルタイムOS (RTOS - Real-Time Operating System) MOC
RTOSの定義と目的 (時間的制約を守る)
汎用OSとの違い
- RTOSのコアコンセプト
タスク (スレッド) 管理
リアルタイムスケジューリング (優先度ベース、プリエンプティブ)
タスク間同期 (セマフォ, ミューテックス, キュー)
割り込み管理
メモリ管理
- ハードリアルタイム vs. ソフトリアルタイム
- 代表的なRTOS
FreeRTOS (デファクトスタンダード)
Azure RTOS (ThreadX)
Zephyr
mbed OS
- 組込みLinux (Embedded Linux) MOC
組込みLinuxの利点と適用分野 (SBCなど高機能デバイス)
クロスコンパイル環境の構築
ブートローダ (U-Bootなど)
Linuxカーネルのコンフィグレーションとビルド
ルートファイルシステムの構築
デバイスドライバの基礎
(オプション) Yocto Project / Buildroot (カスタムLinuxディストリビューション構築)
4. 組込み/IoT向けハードウェアプラットフォーム MOC
- Arduino MOC
Arduinoの思想とエコシステム (プロトタイピング、教育)
Arduinoボードの種類 (Uno, Nano, Megaなど)
Arduino IDEとプログラミング言語 (C++ベース)
シールド (Shields) による機能拡張
- ESP32 / ESP8266 MOC
ESP32/ESP8266の特徴 (Wi-Fi/Bluetooth内蔵、低価格、高性能)
開発環境 (Arduino IDE, ESP-IDF, MicroPython)
- Raspberry Pi Pico MOC
RP2040マイクロコントローラ
PIO (Programmable I/O)
開発環境 (C/C++ SDK, MicroPython)
- STM32 MOC (ARM Cortex-Mベース)
STM32シリーズのラインナップ
開発環境 (STM32CubeIDE, Mbed, Keil, IAR)
- Raspberry Pi (フルサイズ) MOC (SBC)
Raspberry Pi OS (旧Raspbian)
GPIOプログラミング (Python, C)
IoTゲートウェイとしての利用
- センサー (Sensors) MOC
センサーの種類 (温度, 湿度, 圧力, 加速度, ジャイロ, 光, 距離, ガスなど)
センサーとのインターフェース (I2C, SPI, UART, アナログ)
- アクチュエータ (Actuators) MOC
アクチュエータの種類 (LED, モーター, サーボ, リレー, ソレノイド)
ドライバ回路の必要性
5. IoT通信プロトコルとネットワーク MOC
- IoTネットワークの階層と課題 (低消費電力、長距離、多数デバイス接続)
- 低消費電力広域ネットワーク (LPWAN - Low-Power Wide-Area Network) MOC
- LoRaWAN MOC
LoRa (物理層) と LoRaWAN (MAC層)
アーキテクチャ (エンドデバイス, ゲートウェイ, ネットワークサーバー, アプリケーションサーバー)
クラス (A, B, C)
- NB-IoT (NarrowBand-IoT) MOC (セルラーLPWAN)
Sigfox MOC (ウルトラナローバンド)
- 近距離無線通信 (Short-Range Wireless) MOC
- Wi-Fi (IEEE 802.11)
IoTにおけるWi-Fiの利用 (消費電力の課題)
Wi-Fi HaLow (IEEE 802.11ah)
- Bluetooth / Bluetooth Low Energy (BLE) MOC
BLEのアーキテクチャ (GATT, GAP)
セントラルとペリフェラル
プロファイル、サービス、キャラクタリスティック
ビーコン (iBeacon, Eddystone)
- メッシュネットワークプロトコル
Zigbee MOC
Z-Wave MOC
Thread MOC
NFC (Near Field Communication)
- アプリケーション層プロトコル (IoT向け) MOC
- MQTT (Message Queuing Telemetry Transport) MOC
Publish/Subscribeモデル
ブローカー (Broker), トピック (Topic), QoS (Quality of Service)
- CoAP (Constrained Application Protocol) MOC
リソース制約環境向けのRESTライクプロトコル
UDPベース
- AMQP (Advanced Message Queuing Protocol) MOC
- HTTP/HTTPSのIoT利用と課題
6. IoTプラットフォームとクラウド連携 MOC
- IoTプラットフォームの役割 (デバイス管理、データ収集、処理、分析、可視化)
- 主要なクラウドIoTプラットフォーム
- AWS IoT MOC
AWS IoT Core (デバイスゲートウェイ, メッセージブローカー)
AWS IoT Device Management
AWS IoT Device Defender (セキュリティ)
AWS IoT Analytics
AWS IoT Greengrass (エッジコンピューティング)
- Azure IoT MOC
Azure IoT Hub
Azure IoT Central (SaaSソリューション)
Azure Sphere (セキュアMCUプラットフォーム)
- Google Cloud IoT MOC
Cloud IoT Core (サービス終了、移行先)
Pub/Sub と Dataflow を用いたアーキテクチャ`
- デバイスプロビジョニングと管理
- データインジェストとストレージ
- ルールエンジンとイベント処理
- デバイスツイン (Device Twin / Digital Twin)
- クラウドからデバイスへの通信 (Cloud-to-Device)
7. 組込みシステムとIoTのセキュリティ MOC
- 組込み/IoTセキュリティの特有の脅威 (物理的攻撃, ライフサイクルの長さ, リソース制約)
- デバイスレベルのセキュリティ MOC
- 通信のセキュリティ MOC
TLS / DTLS (Datagram TLS) (CoAP向け)
VPNの利用
プロトコル固有のセキュリティ (LoRaWANのJoin Procedureなど)
- ネットワークレベルのセキュリティ MOC
デバイスのセグメンテーション
ファイアウォールとIDS/IPS
- クラウド/アプリケーションレベルのセキュリティ MOC
- デバイス認証と認可 (X.509証明書, トークン)
APIセキュリティ
データの暗号化 (保存時、転送時)
- セキュアなファームウェア更新 (FOTA/OTA) MOC
- ファームウェアの完全性と真正性の検証
- 安全な配信メカニズム
- ロールバック機能
- セキュリティのライフサイクル管理
- 主要なIoTセキュリティガイドライン
8. 組込み/IoT開発のプロセスと運用 MOC
- 組込み開発のワークフロー MOC
クロスコンパイル
デバッギングとトレース (JTAG, SWD)
ロジックアナライザとオシロスコープ
ハードウェアインザループ (HIL) シミュレーション
- 組込み/IoTシステムのテスト MOC
ユニットテストとハードウェア抽象化レイヤー (HAL)
インテグレーションテスト (ハードウェア含む)
システムテスト
耐久テストとストレステスト
消費電力テスト
- CI/CD for Embedded/IoT MOC
- ハードウェアを組み合わせたテストの自動化
- ファームウェアの自動ビルドと配布
- DevOps for IoT (IoT DevOps) MOC
- デバイスフリート管理 (Device Fleet Management)
- リモート監視とメンテナンス
- FOTA (Firmware Over-the-Air) 更新の運用
9. 組込み/IoTの応用分野とケーススタディ MOC
- スマートホーム (スマートスピーカー, スマート照明, スマートロック)
- ウェアラブルデバイス (スマートウォッチ, フィットネストラッカー)
- コネクテッドカーと自動運転 (ECU, CANバス, V2X)
- インダストリアルIoT (IIoT) / インダストリー4.0
予知保全 (Predictive Maintenance)
スマートファクトリー
SCADAとPLC
- スマートシティ (スマート街灯, 交通監視, 環境センシング)
- スマート農業 (Smart Agriculture) (土壌センサー, ドローン, 自動水やり)
- ヘルスケアIoT (IoMT - Internet of Medical Things) (遠隔患者モニタリング, ウェアラブルセンサー)
- スマートグリッドとエネルギー管理
- 小売業 (スマートリテール) (在庫管理, ビーコンによる顧客追跡)
10. 組込み/IoTの将来とトレンド MOC
- エッジコンピューティングとAI (Edge AI / TinyML)
- 5GとIoT (高速・低遅延・多接続)
- WebAssembly (Wasm) とIoT/組込み (ポータビリティとセキュリティ)
- デジタルツイン (Digital Twin)
- セキュリティとプライバシーのさらなる重要化
- 持続可能性と省エネルギー技術
- オープンソースハードウェアとソフトウェアの役割拡大