小型ボードコンピュータ:Tech Basics/Catalog
IoTでデータを収集したり、電子/機械工作などでセンサーやメカを制御するために利用できる小型ボードコンピュータの一覧をまとめておく。
IoTにおけるデータ収集や、電子/機械工作におけるモーターやセンサーの制御などでは、システムへの組み込みに向いた小型のボードコンピュータを使って処理を行うことが多い。デスクトップPCと違って、簡単にアナログセンサーなどを接続できるし、管理の手間もほとんど要らないからだ。
本稿では、このような用途に向いていて、日本国内で入手が容易な小型のボードコンピュータ製品をリストアップし、その概要をまとめておく。
Raspberry Pi
「Raspberry Pi(ラズベリーパイ)」は、英Raspberry Pi Foundationが開発した、小型ボードコンピュータのアーキテクチャ。2012年から出荷されている。もともとは学校でのプログラミング教育のために作られたが、現在ではIoTや電子工作の制御用途などに広く使われている。
Raspberry Pi 2 Model B
これはRaspberry Piシリーズの中では一番高機能なRaspberry Pi 2 Model B。HDMIとイーサネットを装備しており、GUIのLinuxデスクトップ環境やWindows 10 IoT Coreを実行できる。
安価な製品を実現するために、プロセッサとしては、PCでよく使われているx86アーキテクチャのCPUではなく、さまざまな周辺機能(入出力インタフェース)なども統合された、ARMアーキテクチャのCPUを採用している。
またRaspberry Piだけでも独立したコンピュータとして利用できるように、キーボードやマウスなどを接続するためのUSBインタフェースやビデオ/音声回路などを備えている。さらに、LinuxのようなGUIを持つリッチなOSを実行できるだけのCPU性能やメインメモリ、ストレージインタフェースなども備えている。
項目 | 内容 |
---|---|
名称 | Raspberry Pi |
開発元 | ラズベリー Foundation |
モデル(バリエーション) | ・Raspberry Pi 1/Raspberry Pi 2/Raspberry Pi Zero ・備えているインタフェースなどの違いによって、Model A/A+/B/B+などのバリエーションがある |
CPUコアアーキテクチャ | ARM1176(ARMv6)/ARM Cortex-A7 |
SoC | Broadcom BCM2835/BCM2836 |
音声/映像インタフェース | Broadcom VideoCore IV GPU/HDMI/15ピンMIPIカメラインタフェースなど |
メインメモリ(RAM) | 256MB/512MB/1GB(モデル依存) |
周辺インタフェース | USB/イーサネット/デジタルI/O/アナログI/O/シリアルインタフェースなど |
ストレージ | SDカードで増設可能 |
細部はモデルごとに異なる。
Raspberry PiはGUIを備えたOS(LinuxベースのRaspbian OS)がそのまま動くなど、今回取り上げているボードの中では比較的性能が高い部類に入る。そのため、Linuxだけではなく、Windows IoTのように、必要なリソースが多いOSも稼働させることができる(連載「Windows 10 IoT Coreで始めるIoT入門」参照)。
Arduino
「Arduino(アルデュイーノ)」は、Atmel社がリリースしているマイクロコントローラー(マイコン)の「AVR」シリーズをベースにした小型ボードコンピュータである。2005年頃から販売されているので出荷台数が多く、小型・安価なものから拡張性に優れた高機能なものまで、製品ファミリーも非常に多い。
Arduinoの製品例
Arduinoにはさまざまな(互換)製品があり、機能も形状もさまざまである。左側はArduino Uno、右側はArduino Micro。これ以外にも、例えばウェアラブル製品の制御などにも使えるような、非常に小型のものもある。Arduino Unoの上面には機能拡張用コネクタが用意されている。
Arduinoの仕様はオープンであり、実際の製品はArduino以外にも、いろいろなベンダーから発売されている(商標の問題により、第三者の製品には、Arduinoという単語が含まれない名前が付けられている)。
Arduinoで使われているAtmel AVRには幾つかの種類があるが、オリジナルのAVRは基本的には8bitアーキテクチャのCPUである。x86やARMアーキテクチャのような32bit CPUと比較すると、性能も低いし利用できるアドレス空間も狭い。そのため、例えばArduino Unoでは、プログラムサイズは最大32KB、利用できるRAMサイズは2KBまでとなっている。
項目 | 内容 |
---|---|
名称 | Arduino |
開発元 | ・米Arduino LLC(ソフトウェア開発・コミュニティ運営) ・伊Arduino Srl(ハードウェア設計・製造・販売) |
モデル(バリエーション) | ・Arduino Uno/Pro/Nano/Micro/Mega/Due/Yunなどをはじめとして多数あり ・Arduinoはオープン仕様なので、Arduino SRL以外からも多数の互換製品が販売されている |
CPU | ATmega32/ATmega168/ATmega2560/ARM Cortex-Mなど |
メインメモリ(RAM) | 8K〜64KB程度(モデル依存) |
プログラムメモリ(フラッシュメモリ) | 8K〜256KB程度(モデル依存) |
周辺インタフェース | USB/イーサネット/デジタルI/O/アナログI/O/シリアルインタフェースなど |
拡張機能 | Arduinoシールドによる拡張ボードを増設可能 |
細部はモデルごとに異なる。
Arduinoのボード上面には、通常、機能拡張用のピンソケットが用意されている(Arduino NanoやArduino Microのような小型のものを除く)。ここには「Arduinoシールド」と呼ばれる拡張ボードを(必要なら何段も重ねて)挿すことができる。シールドの例を次に示しておく。
Arduinoシールドの例
左側はイーサネットとMicroSDカードスロットなどが使えるようになる「イーサネットシールド」、右側はモーターなどを接続するための「モーターシールド」。このようなシールドが多数販売されており、必要ならArduinoの上に積み重ねて接続できる。Arduinoだけでなく、他の小型ボードコンピューターでもこのシールドを利用できるものがある。
Arduinoのプログラムのことを「スケッチ」という。スケッチの作成は専用のIDE(スタンドアロン版とクラウド版がある)を使って行う。IDEで作成したスケッチは、USB経由などでArduinoに書き込んで実行する(※)。
Raspberry Piと違って、ArduinoにはGUIの画面はないし、メモリも少ないのであまり複雑なことはできない。その一方で、昔の組み込みコンピュータのような低レベルな制御はArduinoの得意とするところである。
※Arduino LLC 対 Arduino Srl
Arduinoの開発や販売は「Arduino LLC」と「Arduino Srl」が行っているが、開発・運営方針の違いなどを巡って、現在この2つの団体が係争中である(「Arduino分裂、渦中の1人が胸中を語る」参照)。これに伴い、異なるバージョンのIDE開発環境がそれぞれからリリースされるなど、Arduino界にいくらか混乱が起こっている。一刻も早い事態の収束を願うばかりである。
mbed
「mbed(エンベッド)」は、ARMアーキテクチャのシステムの普及・啓蒙のために、ARM社が推進するプロジェクト。組み込み機器向けの低消費電力シリーズのマイクロコントローラーであるARM Cortex-Mシリーズを使った小型ボードコンピュータ(高速プロトタイピングボード)と、その開発環境から構成される。
mbed対応ボードとしては、当初はNXPセミコンダクターズ社が製造するARMアーテクチャのマイクロコントローラー、LPCシリーズを使ったボードしかなかった。だが、現在ではNXP以外のARMプロセッサを使った製品も多く提供されている。
項目 | 内容 |
---|---|
名称 | mbed |
開発元 | ARM mbed |
モデル(バリエーション) | ・mbedに準拠した製品は、ARM/Atmel/Freescale/NXP/Renesas/STM/SeeedStudio/Silicon Labsなど、各社から提供されている。ARM mbedサイトの platforms 参照 |
CPU | NXP LPCシリーズ/ARM Cortex-Mシリーズなど |
メインメモリ(RAM) | 4K〜256KB程度(モデル依存) |
プログラムメモリ(フラッシュメモリ) | 16K〜512KB程度(モデル依存) |
周辺インタフェース | USB/イーサネット/デジタルI/O/アナログI/O/シリアルインタフェースなど |
拡張機能 | Arduinoシールドによる拡張ボードを増設可能なものが多い |
細部はモデルごとに異なる。
mbedの開発環境としては、クラウドベースのIDE環境が用意されている。ローカルにツールなどをインストールしなくても開発できるので、(場合によっては)便利だろう。
Intel Galileo/Edison
Intel Galileo/Intel Edisonは、Intel製のプロセッサ、Intel Quark/Atomを搭載した小型ボードコンピュータ。Intelが開発/販売している。いずれもx86アーキテクチャの命令セットを備えており、Windows PC系のユーザーには扱いやすいかもしれない(もっとも、アセンブリ言語でプログラムを書くことはほとんどないだろうから、x86でもARMでもあまり違いはないだろうが)。
Intel EdisonとArduino接続用キット
左下に見える小さいボード部分がIntel Edisonの本体。切手サイズで非常に小さい。プログラミングしたり、周辺機器を拡張したりする場合は、このようにArduinoシールド互換の拡張ボードにセットして利用する。
項目 | 内容 |
---|---|
名称 | ・Intel Galileo/Intel Galileo Gen2 ・Intel Edison |
開発元 | Intel |
CPU/MCU | ・Intel Quark SoC X1000/Intel Atom |
メインメモリ(RAM) | ・256MB(Galileo)/1GB(Edison) |
周辺インタフェース | USB/イーサネット/デジタルI/O/アナログI/O/シリアルインタフェース/Wi-Fi/Bluetoothなど |
拡張機能 | Arduinoシールドによる拡張ボードを増設可能 |
細部はモデルごとに異なる。
Intel Edisonは切手サイズという超小型のボードコンピュータだ。しかし、そのままでは使いづらいので、プログラミングなどを行う場合は「インテル Edison キット For Arduino」という拡張ボードに接続して利用する。この拡張ボードを使うと、Arduinoのシールドを増設できるので便利だ(前出の写真参照)。
BeagleBone
「BeagleBone(ビーグルボーン)」は、BeagleBoard.org FoundationがTIの協力を得て開発した、カードサイズの小型ボードコンピュータである。幾つかモデルがあるが、現在はBeagleBone Blackというモデルが広く流通している。
Element14のBeagleBone Black
Element14製のBeagleBone Black互換ボード。あらかじめLinuxがインストールされており、購入後、PCに接続してすぐに使える。
HDMI出力を持っているので、ディスプレイを接続して主にLinuxなどを稼働させることが多い。主な仕様を次に示しておく。
項目 | 内容 |
---|---|
名称 | BeagleBone Black |
開発元 | BeagleBoard.org Foundation |
その他のモデル(バリエーション) | ・BeagleBoard/BeagleBoard-xM/BeagleBone White/BeagleBone Black/BeagleBoard-X15/BeagleBone Greenなど ・仕様はオープンなので、幾つかのメーカーから製品が販売されている |
CPUコアアーキテクチャ | TI Sitara AM3358(ARM Cortex-A8) |
メインメモリ(RAM) | 512MB |
プログラムメモリ(フラッシュメモリ) | 4GB |
周辺インタフェース | USB/HDMI/イーサネット/デジタルI/O/アナログI/O/シリアルインタフェースなど |
ストレージ | microSDカードで増設可能 |
BeagleBone Blackの仕様概要 |
BeagleBone Blackでは、内蔵のフラッシュメモリにLinuxがインストール済みのため、パワーオンですぐにLinuxが使える。ただし、この拡張バスはArduinoのシールドやRaspberry Piの拡張バスとは互換性はないので、何らかのデバイスを接続したい場合は自分で回路を組む必要がある。
Copyright© Digital Advantage Corp. All Rights Reserved.