ウェアラブルアプリケーション用の各種開発ボードおよびプロトタイピングボードの評価

著者 Clive "Max" Maxfield(クライブ・マックスフィールド)氏

DigiKeyの北米担当編集者の提供

オープンソースArduinoのコンセプトには、ホビイストやメーカーの間で見事な成功を収めている実績があります。また、プロの設計者も初期開発やプロトタイピングに活用しており、最近では本格的な設計にも採用されています。ウェアラブルや健康モニタリングなどのアプリケーションの出現により、どちらのタイプのユーザーも、これまで以上に小さい基板フォームファクタで高い性能とより多くの機能性を求めています。

この記事では、低電力でスペースに制約のあるアプリケーションで、高い性能と機能を求めるメーカーや専門家のニーズに応えるために、Arduinoボードがどのように進化を遂げてきたかについて概説します。次に、Arduinoファミリの新製品、Seeed Technology Co.Seeeduino XIAOを紹介し、その使用方法について解説します。

ウェアラブル設計の要求に応じて進化したArduino

多くのホビイストや設計者は、ウェアラブルなどの物理的に小さな製品の開発、およびスペースに制約のある環境での開発に関心を寄せています。その代表的なものはスマート電子システムで、多くの製品がマイクロコントローラをベースにセンサデバイスやディスプレイなどを組み合わせています。ある製品は「ハイテクジュエリー」としての機能を果たし、また別の製品は皮膚の付近や表面に着用し、体温、心拍数、動脈血酸素飽和度などの身体データや環境データを検出、分析、伝送します。製品によっては、着用するユーザーにバイオフィードバックを瞬時に提供します。

このような設計のために、ホビイストやメーカーの多くが各種のArduinoマイクロコンピュータ開発ボードを使用しています。また、これらの開発ボードを評価プラットフォームやプロトタイピングプラットフォームとして活用し、IC、センサ、周辺機器の評価を迅速に行い、そのコストを削減しているエンジニアも増えています。

通常このようなユーザーは、「入門定番ボード」と謳われているA000073 Arduino Uno Rev3から始めます(図1)。このボードは、Atmel(現Microchip Technology)のATMEGA328P-AURマイクロコントローラをベースにしています。5Vのプロセッサは、パルス幅変調(PWM)機能を持つ6つのピンを含む14のデジタル入力/出力(I/O)ピン、および必要に応じてデジタルI/Oとしても使用できる6つのアナログ入力ピンを備えています。また、デジタルI/Oピン2と3で2つの外部割り込みをサポートし、UART、SPI、およびI2Cインターフェースをそれぞれ1つずつ備えています。

Arduino Uno Rev3開発ボードの画像図1:動作速度16MHzの8ビットATmega328PマイクロコントローラがベースのArduino Uno Rev3開発ボード。デジタルI/Oピン x 14、アナログ入力ピン x 6、電源、グランド、リファレンスの各種ピンを備えたヘッダのフットプリントは、「シールド(Shield)」と呼ばれるドーターボードによる広範なエコシステムの基盤になる(画像提供:Arduino.cc)

データパスが8ビット、クロックが16MHzの制約に加えて、32KBのフラッシュプログラムメモリと2KBのSRAMしか搭載していないArduino Uno開発ボードは、サイズが68.6 x 53.4mm(36.63cm2)で、多くのアプリケーションには大きすぎます。

マイクロプロセッサ開発ボードの物理フットプリントを小さくする1つの方法は、ABX00028 Arduino Nano Everyに移行することです。これは、AtmelのATMEGA4809-MURマイクロコントローラをベースにしています(図2)。Arduino Nano Everyは、Arduino Unoの1.5倍のプログラムメモリ(48KB)と3倍のSRAM(6KB)を備えています。Arduino Unoと同様に、Arduino Nano Everyは5Vのプロセッサをベースにしており、デジタルI/Oピン x 14、および必要に応じてデジタルI/Oとしても使用可能なアナログ入力ピン x 6を備えています。。またUnoと同様に、Nano EveryにはUART、SPI、およびI2Cインターフェースをそれぞれ1つずつ備えています。ただし、外部割り込みが2つのみのUnoと異なり、Nano Everyのデジタルピンはすべて外部割り込みとして使用できます。

Arduino Nano Everyの画像図2:Arduino Nano Everyは従来のArduino Nanoの進化版で、強力なATMEGA4809プロセッサを備えており、プログラムメモリの容量はArduino Unoの1.5倍。またSRAM容量は3倍の6KBのため、変数用のスペースが大幅に増加(画像提供:Arduino.cc)

Arduino Nano Everyには8ビットデータバスの制約がありますが、クロックはより高速(20MHz)で、メモリもより大容量です(48KBのフラッシュ、6KBのSRAM)。サイズに制限があるプロジェクトにとってさらに重要なのは、Arduino Nano Everyのわずか45 x 18mm(8.1cm2)の寸法です。

Arduinoの統合開発環境(IDE)を使用してプログラミング可能なもので広く使用されているもう1つの代替品は、SparkFun ElectronicsDEV-13736 Teensy 3.2です(図3)。これは3.3Vの開発ボードで、さらに意欲的なI/O仕様が採用されており、PWMをサポートする12のピンを含むデジタルピン x 34、および高分解能アナログ入力ピン x 21を備えています。

Teensy 3.2の画像図3:Teensy 3.2は、ブレッドボードと相性の良い小型の開発ボードで、PRJC.comのPaul Stoffregen氏による設計。ユーザーフレンドリーで、ホビイスト、学生、およびエンジニア向けの低コスト32ビットArm® Cortex®-M4プラットフォーム(画像提供:PRJC.com)

Teensy 3.2は、NXPMK20DX256VMC7R Kinetis K20マイクロコントローラを搭載しています。K20には、動作速度72MHzの32ビットArm Cortex-M4プロセッサコア、256KBのフラッシュメモリと64KBのSRAMが内蔵されています。スペース制約のあるプロジェクトにとって、Teensy 3.2の35 x 18mm(6.3cm2)という小さなサイズが特に注目されます。その大きさはArduino Nano Everyの約4分の3です。

Seeeduino XIAOの紹介

Teensy 3.2はわずか6.3cm2のサイズですが、多くの応用用途ではまだ大きすぎます。さらに小型でより強力なプラットフォームを求めるユーザーに適したソリューションは、膨大なArduinoエコシステムの中にあります。比較的新しい選択肢の1つは、Seeed TechnologyのSeeeduino XIAOです(図4)。その寸法はわずか23.5 x 17.5mm(4.11cm2)、ほぼ郵便切手のサイズです。Seeeduino XIAOの設計者は、超低コストにもこだわっています。

ブレッドボードと相性の良いSeeeduino XIAOの画像図4:現在Seeeduinoファミリで最小のArduino互換マイクロコントローラ開発ボードとしてブレッドボードとも相性のよいSeeeduino XIAOは、プロセッサコアに動作速度48MHzの強力な32ビットArm Cortex-M0+を搭載(画像提供:Seeed Studio)

XIAOは、AtmelのATSAMD21G18A-MUT SAMD21G18マイクロコントローラを搭載しています。このマイクロコントローラは、動作速度48MHzの32ビットArm Cortex-M0 +プロセッサコアを搭載しており、256KBのフラッシュメモリと64KBのSRAMによりサポートされます。

XIAOは11のデータピンしか備えていませんが、それぞれのピンをデジタルI/Oまたはアナログ入力として使用できます(図5)。10のピンがPWMをサポートし、1つがD/Aコンバータ(DAC)を備えており真のアナログ出力として機能します。さらにXIAOは、UART、SPI、およびI2Cインターフェースを1つずつサポートします。

デジタルI/O(D0~D10)またはアナログ入力(A0~A10)として機能するデータピン x 11の図図5:データピン x 11のすべてがデジタルI/O(D0~D10)またはアナログ入力(A0~A10)として機能。さらに、A0は真のアナログ出力として、D4とD5はI2Cインターフェースとして、D6とD7はUARTインターフェースとして使用可能。D8、D9、D10はSPIインターフェースとして機能。(画像提供:Seeed Studio)

Seeeduino XIAOの導入と使用

一般的に言って、Seeeduino XIAOを使用するのは、ArduinoまたはArduino互換の他の開発ボードを使用するのと同じくらい簡単ですが、いくつかのヒントとコツを押さえておくと便利です。

まず始めに、使用するArduino IDEが最新バージョンであることを確認しましょう。次にSeeeduino XIAO Wikiにアクセスし、適切なボードマネージャを使用してArduino IDEを拡張する手順について調べます。

多くのSeeeduino XIAOプロジェクト(ウェアラブルなど)には、WS2818をベースにするAdafruitの3色NeoPixel、たとえば1mに144個のNeoPixelを備えた2970ストリップなどが使用されます(図6)。

数百個の3色NeoPixelを別々に制御するために使用できるSeeeduino XIAOの画像図6:Seeeduino XIAOの1つのピンを使用して、Adafruitのストリップ(黒)1mあたりにNeoPixelを144個含むような、数百個の3色NeoPixelを別々に制御可能(画像提供:Adafruit.com)

想定される問題の1つは、Seeeduino XIAOはAdafruit NeoPixelライブラリの最新の最上位バージョンが必要になる可能性があります。従来のArduino開発ボードは旧バージョンのAdafruit NeoPixelライブラリでも使用できます。

もし旧バージョンのNeoPixelライブラリがインストールされていると、わかりにくくてややこしいエラーメッセージが表示される場合があります。これを解決するには、旧バージョンのライブラリをシステムからすべて削除し、AdafruitのNeoPixelガイドの指示に従って、最新の最上位バージョンをインストールします。

もう1つ懸念されるのは、NeoPixelがデータピンのオーバーシュートやアンダーシュートに敏感なことです。問題は、最新のマイクロコントローラからの信号の高速なエッジレートがそのような特性の原因になり得ることです。これを解決するには、NeoPixelチェーンの最初のエレメントに可能な限り近づけて直列抵抗器を追加します(図7)。適切な例には、許容差5%、1/4W、390Ωの抵抗器、たとえばStackpole Electronics Inc.CF14JT390R 炭素皮膜抵抗器などがあります。

最初のNeoPixelの可能な限り近くに直列抵抗器を配置した図図7:チェーンの最初のNeoPixelに可能な限り近づけて直列抵抗を配置することで、MCUデータストリームのエッジでのオーバーシュートとアンダーシュートが排除可能(画像提供:Max Maxfield氏)

NeoPixelに関連するもう1つの問題は、Seeeduino XIAOの3.3Vデジタル出力では、NeoPixelの5Vデータ入力を駆動するには不十分な可能性があることです。1つの解決策として、SparkFunのBOB-12009ロジックレベルコンバータブレイクアウトボードを使用する方法があります(図8)。

SparkFunのBOB-12009ロジックレベルコンバータの画像図8:4つの双方向チャンネルを備えて、3.3Vおよび5Vドメイン間での信号変換に使用できるSparkFunのBOB-12009ロジックレベルコンバータ(画像提供:Adafruit.com)

NeoPixelアプリケーションに必要なのは、単一の一方向チャンネルのみです。BOB-12009の問題は、4つの双方向チャネルを備えていることです。スペースに制約のあるプロジェクトには少し大きすぎるソリューションとなり、コスト重視のプロジェクトには割高なソリューションとなります。簡単な代替策として、Comchip Technology1N4001ダイオード1個を使用する方法があります(図9)。

NeoPixelを「犠牲にして」電圧レベルコンバータとしての役割を強制する図図9:0.7Vの電圧降下を得るように1N4001ダイオード1個を使用し、NeoPixel1個を「犠牲にして」電圧レベルコンバータの役割を果たすように強制(画像提供:Max Maxfield氏)

NeoPixelでは、ロジック1が0.7 * VCCを上回ると見なされていします。この例では、NeoPixelはロジック1を0.7 * 5 = 3.5Vと見なしています。

0.7Vの順方向電圧降下をともなうIN4001ダイオードを介して「犠牲となる」ピクセルに電力を供給すると、5 - 0.7 = 4.3V VCCにで電力が供給されることになり、ロジック1を0.7 * 4.3 = 3.01Vと見なします。つまり、Seeeduino XIAOからの3.3V信号には、犠牲となるピクセルを駆動する以上の能力があることになります。同時に、犠牲となるピクセルからの4.3V出力は、チェーン内で次のNeoPixelへのデータ入力を駆動するのには十分すぎるほどになります。

まとめ

16MHz駆動の8ビットArduino Unoのような初期のArduino開発ボードは、サイズが物理的に大きい上に容量と性能の面でも制約がありました。現在のArduinoエコシステムには、幅広い形状、サイズ、機能を含むきわめて多様なボードが用意されています。

ウェアラブルなどのサイズに制約のあるプロジェクト向けには、Seeeduino XIAOに搭載されている48MHz駆動の32ビットArm-Cortex-M0+プロセッサコア、256KBのフラッシュメモリと64KBのSRAMがそのニーズに応えます。これらすべての要素がわずか4.11cm2の小型プラットフォームに収まっており、ブレッドボードとも相性が良く、幅広いエコシステムによってサポートされています。

DigiKey logo

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

著者について

Image of Max Maxfield

Clive "Max" Maxfield(クライブ・マックスフィールド)氏

Clive "Max" Maxfield氏は、1980年にイギリスのシェフィールドハラム大学で制御工学の理学士号を取得し、メインフレームコンピュータの中央処理装置(CPU)の設計者としてキャリアをスタートしました。Maxは長年にわたって、シリコンチップから回路基板まで、果ては脳波増幅器からスチームパンクな予測エンジンまであらゆる設計に携わってきました(細かいことは聞かない)。彼はまた、30年以上にわたってEDA(電子設計自動化)の最前線にいます。

また彼は、『Designus Maximus Unleashed』(アラバマ州で発禁)、『Bebop to the Boolean Boogie』(型破りなエレクトロニクス界へのガイド)、『Where Electronics Begins』(EDA関連)、『Instant Access』(FPGA関連)、『How Computers Do Math』(同)をはじめとする多くの書籍の著者や共著者として活動しています。彼のブログ Max's Cool Beans をチェック!

出版者について

DigiKeyの北米担当編集者