はじめに
Arduino UNO・MEGA・NANO・Pro miniなどに使われているのが「ATmega328P」などのAVRマイコンです.
この記事では,筆者が考える「ArduinoIDEで開発する上で,AVRマイコン搭載のマイコンボードがクソな使いにくい理由」について紹介します.
Arduino UNOのいいところ
本題の前に,Arduino UNOのいいところについて触れましょう.
- Switch Scienceで買うと永久保証がつく
- 買ってArduino IDEをインストールしたらすぐ使える
- 対応していないライブラリはまずない(と思われる)
ボードマネージャのインストールとか面倒な作業なしで始められる上,壊してもタダで交換してもらえるので,初めてプロトタイピングする人にはとてもオススメです.
Arduino UNOの悪いところ
いよいよ本題です.
あくまで,筆者の個人的な意見として読んでいただけると嬉しいです.
ロジックレベルが5V
これが一番大きい理由です.
ロジックレベルとは,マイコンのGPIO(General Purpose Input/Output)が入出力する信号の電圧レベルのことです.
ロジックレベルが異なるモジュール同士では,デジタル信号のHIGH/LOWが認識できず,通信できない場合が多いです.
どうしても通信したい場合は,双方向レベル変換モジュールとかを使わないといけません.なんだこれ.
で,最近のセンサとかってロジックレベルが3.3Vとか1.8Vが多いんですよね.
毎度レベル変換しますか?筆者は嫌です.
最近筆者がよく使うマイコンボードは以下のようなものですが,これらはすべてロジックレベルが3.3Vです.
- Metroシリーズ・Featherシリーズ(Adafruit社)
- ESPr-WROOM-32D/E
余談ですが,SwitchScienceで販売しているようなセンサの開発ボードは,ロジックレベルが異なっても,ボード上の部品がセンサに合わせてロジックレベルを調整したりしてくれるので問題なかったりします.
RAM容量が小さい
RAMが小さいとどうなるかというと,変数の量が限られるということです.
音声など2次元以上の膨大なデータを扱うときにRAMが小さいと格納できるデータが限られてしまいます.
では,Arduino IDEで開発可能な各種マイコンボードはどれほどのRAM容量を持っているのでしょうか?
マイコンの種類 | RAM容量 |
---|---|
Arduino UNO | 2048 byte |
Adafruit Metro M4 Express | 196608 byte |
ESPr-WROOM-32 | 327680 byte |
Spresense | 786432 byte |
...比べてわかる圧倒的小ささです.2桁差て.
SpresenseはSonyから発売されている高性能マイコンボードで,ハイレゾ音源なども扱えるらしいです.
クロック周波数が遅い
「クロック周波数が遅い」とはすなわち「単位時間あたりの処理回数が少ない」ということです.
これも音声や振動などを非常に短い間隔でサンプリングしたいときなどに影響があります.
これについても他のマイコンボードと比較してみましょう.
マイコンの種類 | クロック周波数 |
---|---|
Arduino UNO | 16MHz |
Adafruit Metro M4 Express | 120MHz(Max 200MHz) |
ESPr-WROOM-32 | 80MHz ~ 240MHz |
Spresense | 156MHz |
これも大きな差がついていますね.
価格について
ここまで性能差について着目してきましたが,「安けりゃいいじゃん」な人もいるかと思いますので,価格についても比較しましょう.
マイコンの種類 | 価格 | 販売ページ |
---|---|---|
Arduino UNO | 3300円 | https://www.switch-science.com/catalog/789/ |
Adafruit Metro M4 Express | 4323円 | https://www.switch-science.com/catalog/5399/ |
ESPr-WROOM-32開発ボード | 1480円 | https://akizukidenshi.com/catalog/g/gM-11819/ |
Spresense | 6050円 | https://akizukidenshi.com/catalog/g/gM-14584/ |
※2021/11/03時点の価格です.
Arduino UNOあまり安くない...
Switch Scienceで購入したArduino UNOには永久保証がつくので破損しても無償で交換できるからでしょうか.
ただArduino UNOって教育用途にも使われるのですごく頑丈にできているのか,筆者は初期不良以外で破損したケースを知りません.
結論
ここに書いた欠点は,筆者が実際にArduino UNOを使ってプロトタイピングをした際に直面した問題です(ロジックレベルが違うことに気づかずモジュールと通信できないまま数時間無駄にしたなど).
そこで,同じ失敗をする人が減ったらいいなと思い,記事にしました.
あと,筆者は同じような価格帯なら性能いいほうを買いたい派です.