SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

.NET nanoFrameworkとESP32でIoTプログラミング

C#とマイコンでIoTプログラミング! .NET nanoFrameworkとESP32の基本を解説

.NET nanoFrameworkとESP32でIoTプログラミング 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 .NET nanoFrameworkは、組み込みデバイス向けの.NET実装です。.NET nanoFrameworkを用いれば、ハードウェア的な制約のあるマイコンボードでも、C#でのプログラミングが可能になります。この連載では、.NET nanoFrameworkと、ESP32マイコンモジュール(ESP32-WROVERなど)を使い、C#によるIoTプログラミングを解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

対象読者

 IoTに興味があり、C#と電子工作の基本的な知識がある方を対象とします。C#や電子工作のごく初歩的な説明は割愛していますので、「C#ではじめるラズパイIoTプログラミング」の記事なども併せて参照してください。

はじめに

 連載第1回の今回は、.NET nanoFrameworkの概要と、ESP32というマイコンモジュールについて解説します。

ESP32マイコンとは?

 .NET nanoFrameworkを説明する前に、そもそもESP32とは何なのかを説明しておきましょう。CodeZineの読者には、Arduinoやラズパイ(Raspberry Pi)は聞いたことがあるが、ESP32は知らないという人も多いのではないでしょうか。

概要

 ESP32は、上海に拠点を置くEspressif Systems社が開発した、SoC(System on a Chip)のマイクロコントローラ(マイコン)です。SoCとは、1枚の基板(チップ)上にCPUやシステムの動作に必要な周辺機能を集積したものです。

 一般には、ESP32というと、後述するESP32開発ボードを指すことが多いかもしれません。ただ実は、ESP32は、いくつかの意味で総称的に使われています。主には、次の3つを指します。

  • SoC単体(EESP32-D0WDなど)
  • SoCを集積したモジュール(ESP32-WROOM-32など)
  • モジュールを搭載した開発ボード(ESP32-DevKitCなど)

 それぞれ似たような型番があり、混乱しそうになりますが、これら3つは、次のような構造になっています。

ESP32チップ、モジュール、開発ボードの構造
ESP32チップ、モジュール、開発ボードの構造

 本連載では、単にESP32と書いた場合は、SoC単体のESP32チップの意味で使うことにします。

ESP32の特徴

 ESP32の特徴を以下にまとめます。

  • 低コスト
  • 低消費電力
  • デュアルコアまたはシングルコアのXtensa/RISC-Vマイクロプロセッサ
  • Wi-Fi 802.11b/g/n/acと、Bluetooth 4.2/5.0に対応

 ESP32は、Wi-FiとBluetoothの両方に対応し、豊富な周辺回路を内蔵しながら、低コストなのが特徴です。ESP32のCPUは、その名の通り、Xtensaという32ビットのマイクロプロセッサ(デュアルコア、一部製品はRISC-Vベースのシングルコア)で、最大クロックは240MHzとなります。

 なお、ESP32はマイコンですので、ラズパイ(Raspberry Pi Picoは除く)のような汎用OSは動作しません。ラズパイは、LinuxのPCと同じような感覚で操作できましたが、ESP32では、大きく異なります。この連載を通じて、マイコン開発を体感してみてください。

ESP32チップ

 ESP32チップには、さらに次のようなシリーズがあります。

ESP32シリーズ

 ESP32シリーズは、ESP32の前身となるESP8266(Wi-Fiのみ対応)に、Bluetoothを対応させたものです。2016年に販売が開始され、今も利用されています。現行のバージョンは、「ESP32-D0WD-V3」などです。

ESP32-Sシリーズ

 ESP32-Sは、ESP32シリーズの後継とも言えるSoCです。CPUコアをXtensa LX6からLX7にパワーアップしたシリーズで、処理能力が向上しています。また、Bluetoothのバージョンが、4.2から5になっています。現行のバージョンは、「ESP32-S3」などです。

ESP32-Cシリーズ

 ESP32-Cシリーズは、CPUコアをRISC-Vベースのものに変更したもので、Bluetoothのバージョンは5です。シングルコアで、従来より省電力になっています。

ESP32モジュール

 ESP32モジュールは、SoCのESP32チップに、フラッシュメモリや、Wi-Fi/Bluetoothに対応する回路やアンテナなどをひとつに集積したものです。

 ESP32-WROOM-32シリーズが、もっとも標準的なモジュールです。またESP32-WROVERシリーズは、PSRAM(擬似SRAM)と呼ばれる外部メモリを搭載したモジュールです。

ESP32開発ボード

 ESP32チップ本体は、単なるSoCで、そのSoCを内蔵したESP32モジュールは、動作に必要な最低限の回路やパーツをまとめたものにすぎません。開発を行うには、電源回路や開発機器に接続するためのインターフェイス(回路)が必要です。ESP32開発ボードとは、そのような開発用インターフェイスとモジュールを実装したボード(基板)で、そのままPCとUSBで接続できるようになっています。また、あらかじめピンヘッダがハンダ付けされているものが多く、すぐにブレッドボードで利用することができます。

 ESP32を搭載した開発ボードは、さまざまなベンダーから発売されています。筆者の手元には、比較的最近発売された以下の開発ボードがあります。いずれも、PCとの接続は、USB Type-Cで行い、別途電源は必要ありません。またモジュールには技適マークがついていますので、Wi-FiやBluetoothの使用も安心です。

Freenove ESP32-WROVER Board

 Freenove ESP32-WROVER Boardは、エレクトロニクス向けの教育用キットなどを数多く製造しているFreenove社の開発ボードで、ESP32-WROVER-Eというモジュールを搭載しています。オンボードのカメラが付属し、PSRAM(外部メモリ)が内蔵されているのが特徴です。

Freenove ESP32-WROVER Board
Freenove ESP32-WROVER Board

ESP32-WROOM-32を実装した開発ボード(互換品)

 ESP32の開発元であるEspressif Systems社から販売されている、ESP32-WROOM-32を実装したESP32-DevKitCという開発ボードが、開発ボードの基本モデルとなっています。そのボードの互換品や類似品を、さまざまなメーカーが製造しています。Amazonでも、そのようなESP32開発ボードが数多く販売されています。中には、粗悪品もあるようなので、購入時はレビューなどでよく確認しましょう。

ESP32-DevKitC互換品
ESP32-DevKitC互換品

 

Seeed Studio XIAO ESP32S3

 XIAO ESP32S3は、Seeed Studio社のESP32-S3R8チップを搭載した親指サイズ(XIAOシリーズ)の超小型マイコンボードです。Seeed Studio社は、多くのIoT製品の製造販売を行っているメーカーです。XIAOシリーズとは、18mmx21mmの小さな基板に、マイクロコントローラなどを搭載した開発ボードのラインナップです。XIAO ESP32S3では、上記2つの開発ボードとは異なり、Wi-Fi/Bluetoothのアンテナは基板上にはなく、外部アンテナを接続する形となっています。

Seeed Studio XIAO ESP32S3
Seeed Studio XIAO ESP32S3

Seeed Studio XIAO ESP32C3

 XIAO ESP32C3は、ESP32C3と同様、XIAOシリーズのマイコンで、Seeed Studio社のESP32-C3チップを搭載しています。また、外部アンテナ仕様も同じです

Seeed Studio XIAO ESP32C3
Seeed Studio XIAO ESP32C3

M5ack

 ESP32は知らなくても、M5Stackなら聞いたことがある人もいるかもしれません。M5Stack(エムファイブスタック)は、ESP32を利用したマイコンモジュールで、中国深センに拠点を持つスタートアップ企業が開発したものです。約5cm四方のケースの中に、カラー液晶ディスプレイや、プッシュボタン、スピーカなどの周辺部品が組み込まれています。さまざまな拡張モジュールがあり、また拡張モジュールは積み重ねるように接続するだけで利用でき、配線する必要がありません。IoTデバイスを手軽に試すことができます。こちらは本連載では、扱いません。

次のページ
ESP32のさまざまな開発環境

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
.NET nanoFrameworkとESP32でIoTプログラミング連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18591 2023/11/09 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング