書籍概要

ESP32Arduino 電子工作 プログラミング入門

著者
発売日
更新日

概要

電子工作ファンに人気のマイコンArduino,そしてWiFiとBluetooth内蔵でネットワーク接続しやすいESP32。それらのマイコンでプログラムを組む際に使うのが「Arduino言語」です。
「電子工作は好きだけどプログラミングはよくわからない」あるいは「プログラミングの経験がある。それを活かして電子工作を楽しみたい」--そんなみなさまのための電子工作プログラミング入門が本書です。
ESP32とArduinoに両対応。電子工作を始めるために必要なものから,電子工作とプログラミングの関係,はじめてのプログラム作り,開発環境のインストールと,スタートから丁寧に解説します。
変数/制御構造/配列/関数/ライブラリと,確実にプログラミングの力をレベルアップしていき,実践編では「GPSロガー」「ラジコンカー」「環境計」の制作にチャレンジ。
プログラミングで,電子工作の楽しさと世界を広げましょう。

本書で身につく知識

  • 電子工作の始め方,Arduinoの開発環境の使い方
  • 変数,配列,ポインタ,条件分岐,繰り返しなどの必須構文
  • 関数を使ったデジタル/アナログの入出力制御,割り込み処理など
  • クラスとライブラリの使い方,作り方
  • サーボモーターの制御,WiFi接続など目的ごとのライブラリの使い方
  • GPSロガー,ラジコンカー,環境計の作り方

本書で作って動かすもの

  • ログを収集してディスプレイに表示するGPSロガー
     →緯度/経度/日付/時刻/速度/標高のデータを記録してOLEDディスプレイにアウトプット
  • Bluetoothで通信,衝突防止機能付きのラジコンカー
     →パソコンやAndroidからコマンドを送ってコントロール。超音波センサーによる衝突防止機能付き
  • 温度や空気の状態を知らせてくれる環境計
     → 周囲の環境(温度/湿度/気圧/空気状態)をチェックして液晶ディスプレイに表示。Google Homeを使って空気の状態を音声で通知する機能も

こんな方におすすめ

  • ESP32&Arduinoのユーザーの方
  • ESP32&Arduinoのユーザーでプログラミングを始めたい方
  • プログラミング経験を活かして電子工作を楽しみたい方

サンプル

samplesamplesamplesamplesample

目次

  • Arduino言語をマスターして電子工作の幅を広げよう

第1章 Arduinoプログラミングの第一歩

  • 今どきの電子工作の始め方
  • プログラミングで電子工作の世界が広がる
  • Arduinoの開発環境(Arduino IDE)のインストールと使い方
  • Arduinoの最小限のプログラムの構成
  • シリアルモニタにメッセージを表示する
  • Arduino IDEで純正Arduino以外の開発を行う
  • Column Webブラウザ上で電子工作を体験できる「Circuits on Tinkercad」

第2章 Arduino言語の基本的な構文をマスターする

  • データを変数で扱う
  • さまざまな計算を行う(算術演算子の使い方)
  • 条件によって処理を分ける
  • 同じような処理を一定回数繰り返す
  • 条件を満たす間,繰り返しを続ける
  • 多数のデータを配列で効率よく扱う
  • ポインタの利用
  • 変数にアクセスできる範囲(スコープ)と寿命を理解する
  • 定数に名前を付ける
  • そのほかの便利な構文
  • Column 配線図を描くのに便利な「Fritzing」

第3章 関数の使い方

  • 関数の仕組みを知る
  • 数値を扱う関数
  • 文字列関係の処理を行う
  • データ型を変換する
  • デジタル/アナログの入出力を制御する
  • ユーザー定義関数を作る
  • 割り込みで処理を実行する
  • ESP32のDeepSleep機能を使う
  • そのほかの組み込み関数
  • Column AliExpressでパーツを安く手に入れる

第4章 ライブラリやクラスの利用と作成

  • 既存のライブラリをインストールして利用する
  • 自分でライブラリを作る
  • データをまとめる「構造体」
  • 新しいクラスを作る
  • ライブラリをクラスの形で作る
  • 既存のクラスを継承する
  • Column ESP32のそのほかの開発環境

第5章 各種のライブラリを使う

  • シリアル通信を行う
  • サーボモーターを制御する(Servo/ESP32Servoライブラリ)
  • タイマー割り込みを行う
  • キャラクタ液晶ディスプレイを使う
  • SDカードを読み書きする
  • ESP32のFlashメモリにファイルを格納する(SPIFFS)
  • ESP32をWiFiに接続する
  • ESP32をWebサーバーとして動作させる
  • ESP32から外部のWebサーバーにアクセスする
  • ESP32にローカルな名前でアクセスできるようにする
  • WiFiでESP32にプログラムを書き込む(OTA)
  • Bluetoothシリアルで通信する
  • Column データの蓄積に便利な「Ambient」

第6章 プログラム制作事例

  • GPSロガーを作る
  • ラジコンカーを作る
  • 環境計を作る
  • Column 3Dプリンタで電子工作をより楽しくしよう

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2021年8月20日最終更新)

第1刷,第2刷での修正。第3刷以降では修正済み
P.226

 一方、ESP32は2系統目のシリアルを使います(16番ピンが送信、17番ピンが受信)。片方の送信を他方の受信に接続しますので、Arduino Unoの3番ピンをESP32の16番ピンに接続し、Arduino Unoの4番ピンをESP32の17番ピンに接続します。
 一方、ESP32は2系統目のシリアルを使います(17番ピンが送信、16番ピンが受信)。片方の送信を他方の受信に接続しますので、Arduino Unoの3番ピンをESP32の17番ピンに接続し、Arduino Unoの4番ピンをESP32の16番ピンに接続します。

第1刷,第2刷での修正。第3刷以降では修正済み
P.226 図5.2

誤

正

「誤」では16番ピンと17番ピンの接続が逆になっていました。
図5.2で,Arduino Unoの3番ピンをESP32の17番ピンに接続し,Arduino Unoの4番ピンをESP32の16番ピンに接続してください。

(以下2020年9月8日更新)

第1刷での修正。第2刷以降では修正済み
P.66

volt = 5 * dac / 1024;
volt = 5.0 * dac / 1024;

(以下2020年8月25日更新)

第1刷での修正。第2刷以降では修正済み
P.94 リスト2.21 12行目


else if (dacs[i] > dac_max) {

if (dacs[i] > dac_max) {

(以下2020年8月3日更新)

第1刷での修正。第2刷以降では修正済み
P.331 2行目


f.println("VALID,LAT,LNG,DATE,SPEED,LAT");

f.println("VALID,LAT,LNG,DATE,SPEED,ALT");

(以下2020年6月10日更新)

第1刷での修正。第2刷以降では修正済み
P.318 図6.4

誤

正

※図をクリックすると大きく表示できます。
「誤」では16番ピンと17番ピンの接続が逆になっていました。
図6.4で,GPSモジュールのRXD/TXDを,ESP32のそれぞれ17番/16番ピンに接続してください。

第1刷での修正。第2刷以降では修正済み
P.321 リスト6.5 9行目,10行目

#define SW 5
#define SW 4

#define SD_CS 4
#define SD_CS 5

商品一覧