Arduinoで開発できる非AVRマイコンボードの紹介

Arduinoボードソフト

趣味の電子工作や、ちょっとしたプロトタイプを作ったり試したりする時に、サクッと使えて情報も豊富なArduino。種類も豊富で正規品が何種類もありますし、リーズナブルな互換品も多数販売されています。

これらのArduino正規品や互換品は全てAVRマイコンを搭載しているのですが、最近では他のマイコンを使った様々なマイコンボードもArduinoで開発できるようになってきています。

この記事では、Arduinoで開発可能な様々なマイコンボードとその使い方を紹介します。

Arudino正規品と互換品

非AVRマイコンのボードを紹介する前に、基本となるArduinoボードをいくつか紹介します。正規品だけでも結構な種類がありますが、特徴的なものをいくつか紹介します。

UNO

Amazon.co.jp

元祖ArduinoといえるのがこのUNOです。意外と大きかったりコネクタの間隔が2.54㎜ピッチでなかったりと、ブレッドボードやユニバーサル基板と組み合わせられなくて意外と使い辛いです。とはいえ、元祖ということもあって特徴的な基板形状やコネクタピン配置に合わせた拡張基板(シールドといいます)が多数存在します。

現在では、UNOそのものを使うことはあまりないと思いますが、評価や検証ボードを設計する際の”良識”として形状やコネクタピン配置を流用することはよくあります。Arduinoで試せるデバイスの評価ボードやArduino向けシールドが使えるマイコンボードといったものです。私も、UNOを使ったことよりもUNOと同じ形状の基板を設計したことの方が多い気がします。

Nano / Micro

https://amzn.to/3LwxodS
https://amzn.to/3GGkwhy

UNOの小型版といった位置づけがNanoやMicroといったボードになります。普通のブレッドボードやユニバーサル基板を使う事ができるので、この辺りが一番使いやすいと思っています。

Pro Mini

https://amzn.to/3sArQX6

Nano/Microよりもさらに小型なのがPro Miniです。値段も安価です。正規版は既に廃止されていますが、互換品が多数出回っています。

最大の特徴は、プログラム書き込み用のUSBが無い事です。プログラムを書き込むにはシリアル⇔USB変換機能を別途用意しないといけません。この辺のハードルの高さと安さが、”Pro”と名の付いている(そして廃止されてしまった)理由なのだと想像します。

Mega 2560

https://amzn.to/3JkskqM

Mega 2560は、UNOのIOポート増加版といったボードです。IOピンが54本、アナログ入力16本と、UNOと比べてかなり充実しています。それだけボードも大きくなっていますが、一部のコネクタがUNO互換となっているので、UNO用の拡張基板の大半を組み合わせることが可能です。

ESP32

Bitly

ESP32はWi-FiBluetooth機能を搭載した無線通信モジュールの超定番品です。IOTに興味があるならとりあえずこれに触れておきましょう。メーカ純正の評価ボードやその相当品が1,000~2,000円くらいで販売されており、USBでPCに接続して直ぐに開発がスタート出来るお手軽さも魅力です。

ESP32はモジュール内部にXtensaというあまり聞いたことのないデュアルコアのプロセッサを搭載しており、このソフトをArduinoで開発できます。一応、C言語で開発する開発環境も用意されていますが、結構古臭い感じなので、今どきのマイコン開発環境に慣れてしまうと使い勝手が微妙すぎます。ですので、Arudinoで製品向けのソフト開発まで行うのが通常です。

定番すぎるデバイスなので、ネット上に情報が多量にあって大抵のことはちょっと調べれば解決策がみつかるのもありがたいです。Arduinoが事実上、ESP32専用開発環境となっている方も多いかと思います。私もArduinoで開発したプロジェクトはESP32がダントツで多いです。

かなり使い勝手のよい無線モジュールですが、消費電流が大きいのだけは注意しましょう。乾電池で何か月も動作してくれないといけない製品では、他の無線モジュールを探すことになると思います。

使い方

ESP32をArduinoで開発するためには、ESP32用のコアライブラリをArduinoにインストールしなければなりません。やり方はググればいくらでも出てくるので割愛しますが、中には古い情報も結構あります。

特に、頻繁に変わるボードマネージャーのURLが、古いURLのままになっているサイトが見受けられます。古いURLですと、最新バージョンのコアライブラリがダウンロード出来なかったり、リンク切れになったりする可能性があります。リンクのURLはメーカのWEBサイトから確認するようにした方が良いと思います。

メーカWEBサイトは下記のリンクになります。
Welcome to ESP32 Arduino Core’s documentation

細かな使い方の情報も上記のメーカ公式リンクを参照すれば一通り確認できます。英語のサイトなので、ググった方が手っ取り早く調べられることも多いですが…

FreeRTOSの上にArduino

ESP32はFreeRTOSに対応しており、ESP32-ArduinoはこのポーティングされたFreeRTOS上で動作しています。勿論、普通にArduinoで開発しているだけでは意識することは有りませんし、FreeRTOSの知識も必要は有りません。内部的に無線通信のタスクを一方のコアで行い、もう一方のコアでユーザーのアプリケーションのタスク(Loop関数)を処理するような使い方をされているようです。

ただ、せっかくFreeRTOSが使えるならば、ちょっと複雑なプロダクトの設計をする際は活用するのが便利です。特別な手順も必要なく、ヘッダーファイル(”freertos/FreeRTOS.h” や ”freertos/task.h” )をインクルードすればFreeRTOSを使う事ができます。

リアルタイムOSは、ポーティングして使うところまでにハードルが高いことも多いので、開発環境に最初から入っているのは非常にありがたいです。FreeRTOSの学習としてESP32を触ってみるのも良いと思います。私はESP32でFreeRTOSの学習をしました。

M5Stack

M5Stackは、前述のESP32を搭載して様々な機能をケースにパッケージした開発キットになります。ラインナップも豊富で、基本となるM5Stack Core2の他にも、小型なM5StickC、大型タッチパネル付きのM5Paperなど、様々な製品がありますし、センサなどの拡張セットも多数用意されています。

ESP32が内蔵されているということもあり、Arduinoで開発するのがスタンダードで開発を始めるハードルが非常に低いです。

使い始めるには、メーカの下記WEBサイトを確認していただければ最新情報が入手できます。
m5stackクイックスタート

M5Stack Basic

https://amzn.to/3wMc9zA

M5Stackのラインナップのなかで基本となっているのがM5Stack Basicです。基本的な機能が一通り搭載された状態でケーシングされているので使い勝手はかなり良いです。

  • ESP32コア
  • カラーLCD
  • 押しボタンx3
  • MicroSDスロット
  • スピーカ
  • バッテリー
  • 拡張ピンソケット

M5StickC Plus

Bitly

M5Stackの小型版という位置づけの製品です。ESP32-PICOというESP32の小型版を搭載しています。腕時計のベルトのようなアクセサリも販売されていて、ウェアラブルデバイスみたいなコンセプトで設計されているようです。

小型ではありますが、下記のような多数の機能を搭載しています。

  • ESP32-PICOコア
  • カラーLCD
  • 押しボタンx2
  • ブザー
  • マイク
  • 赤外線送信
  • 6軸IMU
  • RTC
  • バッテリー
  • 拡張ピンソケット

M5Stack Paper

Bitly

BASIC製品のLCD強化版といった製品です。LCDの代わりに4.7インチの電子ペーパー(静電容量式タッチセンサ―付)を搭載している製品です。バッテリー容量もかなり強化されています。

パネルや壁掛けしてつかうようなイメージの製品になります。

WioTerminal

https://amzn.to/3BjEYUm

概要

Wio Terminal は、様々な機能をケースにパッケージした多機能マイコンボードになります。搭載されている機能は下記のように本当に様々です。

  • 2.4インチLCD
  • 無線LAN
  • Bluetooth
  • 3軸加速度センサ
  • マイク
  • スピーカ
  • microSDスロット
  • 光センサー
  • 赤外線送信機
  • 押しボタンx3
  • 十字ボタン

これだけでも相当なものですが、拡張コネクタとしてGroveコネクタとラズパイ互換40ピンコネクタが搭載されているので拡張性も十分です。

M5Stackと似ているところも多い製品ですが、最も大きな違いはWioTerminalは2次電池を搭載していないところです。WioTerminalを使う場合はUSBか拡張コネクタから電源を供給してあげないといけません。IOTなどの検証では不便かもしれませんが、リチウムイオン電池取り扱いの注意をしなくて良いのは気楽だと思います。

使い方

使い方に関しては、製造元に日本語のWikiがあって開発環境のセットアップから、各機能の使い方、回路図などのドキュメントまで、一通りの情報がまとめられています。下記のリンクになります。

Wio Terminalをはじめよう – Seeedウィキ(日本語版) (seeedstudio.com)

Raspberry Pi Pico

https://amzn.to/3DiaXW7

Raspberry Pi Pico は、Raspberry Pi財団からリリースされている低価格のマイコンボードになります。通常のラズパイとは異なり、Linuxは搭載できなないのでPCのようには使えません。とはいえ、搭載されているマイコン(RP2040)は、Arm CortexM0+デュアルコア133MHz、SRAM264kB、Flash2MBと、Arduinoに使用されているAVRマイコンと比べると相当の高スペックです。

ラズパイPicoはMicroPythonでソフト開発するのが一般的な感じ(当然C/C++も可)ですが、Arduinoでの開発も出来るようになっています。

Arduino開発環境から、ボードマネージャーで”Arduino Mbed OS RP2040 Boards”というパッケージをインストールすればラズパイPICOがArudinoで使えるようになります。ラズパイPicoのC/C++開発環境を構築するのは結構面倒なので、Arduinoで簡単に環境整うのはありがたいです。

また、ボードマネージャーの名前を見て分かるように、ラズパイPicoのArudinoは、Mbed OS上に構築されています。Mbedの機能をArduino上から呼び出すことも出来るので、MbedOSの入門として使ってみるのも良いと思います。

コメント