Arduino IDEではじめる FreeRTOS入門[ESP32 ラズパイPico 2W対応]

「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 実行結果
  • 索引
  • プログラムなどのダウンロードについて
  • 参考文献