Arduino IDEではじめる FreeRTOS入門[ESP32 ラズパイPico 2W対応]
- 後閑哲也 著
- 定価
- 3,520円(本体3,200円+税10%)
- 発売日
- 2026.6.24
- 判型
- B5変形
- 頁数
- 264ページ
- ISBN
- 978-4-297-15684-8
概要
組み込みプログラミングにおいて、「AをやりながらBも同時に進める」といった並行処理は、プログラムの難易度を著しく上昇させます。しかし、リアルタイムOS(RTOS)を用いることで、タスク管理が容易になり、コードの見通しを良くすることができます。
本書の主題であるFreeRTOSは、軽量かつ幅広いプラットフォームに対応したRTOSです。現在はMITライセンスのもとオープンソースとして提供されています。Wi-Fi、Bluetooth、イーサネットを介したクラウド接続機能も強化されています。
本書では、リアルタイムOSであるFreeRTOSを、手軽に利用できるプラットフォームとしてArduinoを使うことを軸に解説します。特に、標準でFreeRTOSベースで構成され、デュアルコアに最適化されたESP32、およびデュアルコアのタスク割り当てが可能なRaspberry Pi Pico WをArduinoで使用する方法に焦点を当てます。小型で安価なXIAOシリーズを中心に、ブレッドボードでの具体的な製作例を通して、FreeRTOSの実践的な使い方を詳細に解説します。
こんな方にオススメ
- ラズパイPIやESP32で、もっと多機能な作品を作りたい人
- FreeRTOSを使いたい人
目次
第1章 FreeRTOSとは
- 1-1 RTOSとは
- 1-2 FreeRTOSとは
- 1-3 FreeRTOSの内部構成と動作
- 1-3-1 Amazon FreeRTOSの全体構成
- 1-3-2 FreeRTOS Kernel部の構成
- 1-3-3 タスクの状態遷移
- 1-3-4 タイムスライス
- 1-3-5 メモリ管理
第2章 ArduinoとFreeRTOS
- 2-1 ArduinoとFreeRTOSの連携
- 2-2 Arduino ESP Coreの概要
- 2-3 Arduino-Picoの概要
第3章 テスト用ハードウェアの製作
- 3-1 XIAO IoT Boardの製作
- 3-1-1 XIAO IoT Boardの全体構成
- 3-1-2 主要部品の概要
- 3-1-3 回路設計と組み立て
- 3-2 Pico IoT Boardの製作
- 3-2-1 Pico IoT Boardの全体構成
- 3-2-2 主要部品の概要
- 3-2-3 回路設計と組み立て
- 3-3 周辺デバイスライブラリの使い方
- 3-3-1 BME280センサライブラリの使い方
- 3-3-2 OLED用ライブラリの使い方
- 3-3-3 実際の例題
第4章 FreeRTOSの基本の使い方
- 4-1 FreeRTOSを使うための準備
- 4-1-1 ESP32系の場合
- 4-1-2 Raspberry Pi Pico系の場合
- 4-1-3 ビルドと書き込み
- 4-2 タスクの作り方とタスク制御
- 4-2-1 タスクの基本書式
- 4-2-2 タスク生成関数
- 4-2-3 タスク制御用API関数
- 4-2-4 例題によるタスクの作成方法
- 4-2-5 例題によるタスク制御の使い方
- 4-3 Queue(キュー)の使い方
- 4-3-1 Queueとは
- 4-3-2 Queue制御用のAPI関数
- 4-3-3 競合が起きる例題
- 4-3-4 Queueを使った例題
- 4-4 Semaphore(セマフォ)の使い方
- 4-4-1 Semaphore(セマフォ)とは
- 4-4-2 Semaphore制御用API関数
- 4-4-3 例題によるSemaphoreの使い方
- 4-5 Mutex(ミューテックス)の使い方
- 4-5-1 Mutexとは
- 4-5-2 Mutex制御用API関数
- 4-5-3 Mutexなしの例題
- 4-5-4 例題によるMutexの使い方
- 4-6 Notification(タスクノーティフィケーション)の使い方
- 4-6-1 Notificationとは
- 4-6-2 Notification制御用API関数
- 4-6-3 Notificationの使い方
- 4-6-4 例題による単純なNotificationの使い方
- 4-6-5 例題によるイベントモードのNotificationの使い方
- 4-7 Event Group(イベントグループ)の使い方
- 4-7-1 Event Groupとは
- 4-7-2 Event Group制御用API関数
- 4-7-3 例題によるEvent Groupの使い方
- 4-8 Stream Buffer(ストリームバッファ)の使い方
- 4-8-1 Stream Bufferとは
- 4-8-2 Stream Buffer制御用API関数
- 4-8-3 例題によるStream Bufferの使い方
- 4-9 Message Buffer(メッセージバッファ)の使い方
- 4-9-1 Message Bufferとは
- 4-9-2 Message Buffer制御用API関数
- 4-9-3 例題によるMessage Bufferの使い方
- コラム FreeRTOSを使う際のポイント
第5章 応用編
- 5-1 デュアルコアの使い方
- 5-1-1 デュアルコアとは
- 5-1-2 デュアルコア対応API関数
- 5-1-3 例題によるデュアルコアの使い方
- 5-1-4 XIAO IoT Boardの場合
- 5-1-5 Pico IoT Boardの場合
- 5-2 Wi-Fiの使い方
- 5-2-1 Wi-Fiの使い方の差異
- 5-2-2 例題によるWi-Fiの使い方
- 5-2-3 XIAO IoT Boardの場合
- 5-2-4 Pico IoT Boardの場合
- 5-3 ESP-NOWの使い方
- 5-3-1 ESP-NOWとは
- 5-3-2 例題によるESP-NOWの使い方
- 5-3-3 MACアドレスの取得方法
- 5-4 ファイルシステムの使い方
- 5-4-1 SDライブラリのプログラム構成と特徴
- 5-4-2 SDライブラリのAPI関数の使い方
- 5-4-3 例題によるSDライブラリの使い方
- 5-5 IoTシステムの製作
- 5-5-1 IoTシステムの全体構成
- 5-5-2 XIAO IoT Boardの場合
- 5-5-3 Pico IoT Boardの場合
第6章 インターネットラジオの製作
- 6-1 全体構成と仕様
- 6-2 デバイスの外観と仕様
- 6-3 回路設計と組み立て
- 6-4 プログラムの全体構成
- 6-5 ESP32-audioI2Sライブラリの使い方
- 6-6 液晶表示器ライブラリの使い方
- 6-7 プログラム詳細
第7章 グラフ表示IoTボードの製作
- 7-1 全体構成と仕様
- 7-2 回路設計と組み立て
- 7-3 プログラムの全体構成
- 7-4 プログラムの詳細
第8章 メカナムホイール車の製作
- 8-1 車体の製作
- 8-2 デバイスの外観と仕様
- 8-3 制御部の回路と組み立て
- 8-4 車体の組み立て
- 8-5 送信機の製作
- 8-6 デバイスの外観と仕様
- 8-7 送信機の回路と組み立て
- 8-8 車体のプログラムの全体構成
- 8-9 プログラムの詳細
- 8-10 送信機側のプログラムの構成
- 8-11 プログラムの詳細
第9章 カメラ付きリモコンカーの製作
- 9-1 全体構成と仕様
- 9-2 デバイスの外観と仕様
- 9-3 制御部の回路と組み立て
- 9-4 車体の組み立て
- 9-5 車体のプログラムの作成
- 9-6 プログラム詳細
- 9-7 タブレットのプログラム作成
- 9-7-1 画面設計
- 9-7-2 コンポーネントの設定
- 9-7-3 ブロックプログラミング
- 9-8 カメラ内蔵XIAOのプログラム作成
第10章 自動水やり器の製作
- 10-1 全体構成と仕様
- 10-2 デバイスの外観と仕様
- 10-3 制御ボードの設計と組み立て
- 10-4 ハードウェア全体の製作
- 10-5 プログラムの構成
- 10-6 プログラムの詳細
- 10-7 実行結果
- 索引
- プログラムなどのダウンロードについて
- 参考文献