こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
マイコンボードを使った電子工作で、皆さんはどのようにして、理想の作品を作り上げていますか?
外界の状態をセンサーから取り入れることで、環境のデータを収集できる環境モニターを作ることができたり、モーターとマイコンボードを組み合わせることで、地上を走るローバー、さらにはマルチコプターも自作できたりと、可能性は無限大です。ただし、ここで問題になってくるのが、『構成部品の選定』です。センサーは同じようなものが多く存在するし、モーターを動かしたいけれど、なんかマイコンに直結するとよくないらしいし、そもそもマイコンと他の部品ってどう繋げたら良いのかわからない…
こんな悩みを解決してくれるのが、拡張ボードと呼ばれるものです。ご存じの方も多いと思いますが、代表的なものはArduino用シールド基板、Raspberry Pi HAT、Groveシステム等があります。ただ、日本ではあまり普及していないような拡張ボードが、他にも多く存在しているんです!
この記事では、それぞれの面白さ、拡張性の高さなど、様々な特徴とともに、拡張ボードについて解説していきます。今まで同じ系統の拡張ボードしか使っていなかったそこのアナタ! ぜひ今後の工作に、使ったことがない拡張ボードを取り入れてみては?
目次
- Arduino用シールド基板
- Raspberry Pi HAT
- Groveシステム
- Pmod
- Clickボード(mikroBus)
- Xinabox
- micro:bit用拡張ボード
- SPRESENSE用拡張ボード
Arduino用シールド基板
Fig.1 Arduino Ethernet Shield 2
(873-2285)
拡張ボードの中では、このArduino用シールド基板が最もよく知られており、種類も豊富なのではないでしょうか? というのも、このシールド基板に接続するマイコンボードのプロジェクト、『Arduino』は、オープンソースであることから、さまざまなメーカーから多種多様なボードが販売されており、世界中に普及しているため、それに伴ってシールド基板も多く存在しています。中でも、『Arduino UNO』については、様々なマイコンボードがピン配置を同一の並びにすることで、このArduino用シールド基板の多くを使用できるようにしています。
Fig.2 SONY社製SPRESENSE 拡張ボード
(179-8487)
例えば、このSONY社のSPRESENSE拡張ボード。SPRESENSEについては後述しますが、この拡張ボードはピン配列がArduino UNO互換になっており、多くのArduino用シールド基板を使用することが可能です。
Arduino用シールド基板を使った例:
- Arduinoでステッピングモータを制御する
- An Arduino Controlled Spooling Machine
- Arduinoをタッチで操作! Digilent製タッチパネルシールドをレビュー
- RGB LED Lighting Dimming goes Flicker Free on XMC1202 with Arduino style shield
Raspberry Pi HAT
Fig.3 Raspberry Pi Sense HAT
(894-9310)
こちらも定番、『Raspberry Pi』用の拡張ボードである、Raspberry Pi HATです。Raspberry Piシリーズ用に、センサーやモータードライバーはもちろん、タッチキーボードやE-inkディスプレイ、4G通信モジュールなど、ちょっと変わったものもあります。
Raspberry Pi HATを使った例:
- 高い視認性を実現! Raspberry Pi 電子ペーパー拡張ボード PaPiRus ePaper HAT登場
- DRAGINO LoRa GPS HAT -JPとLoRa Mini Wireless Moduleを使って温度、湿度データをクラウドサービスで表示してみた
- GPS電波をRaspberry Piで読み取り、時間と位置把握する
- Plug and Play IoT with the Pi Sense HAT
- Using the CanaKit Raspberry Pi Zero W Starter Kit with a TV Hat (注:日本では使用できません)
Groveシステム
Fig.4 Grove Arduino スターターキット
(174-3221)
こちらはM5Stack社のマイコンボードに搭載されていることから、知っている方は多いかもしれません。先に紹介した2つと異なり、すべてのモジュールが4線の規格で統一されています。センサーやアクチュエーターによって通信方法は異なるものの、各通信方式でピンの配置が決まっているため、特に深く考えることなく、モジュールを接続するだけで使用することが可能です。
Fig.5 Groveコネクタ
上の図のように、Groveシステムは、黒、赤、黄、白の4色の配線で構成されています。どの通信方式でも、黒はGND、赤はVccで配線されますが、他の2本は、通信方式によって以下のようになります。
デジタル
黄:デジタルI/O 1
白:デジタルI/O 2
スイッチモジュールや、LEDモジュールなどに使用される通信方式です。基本的にはどちらか片方のみを使用しますが、複雑なモジュールではどちらも使用する場合があります。
アナログ
黄:アナログ入力 1
白:アナログ入力 2
光センサーモジュールや、マイクモジュールなどで使われています。デジタル同様、基本的にはどちらか1つを使用しますが、複雑なモジュールでは両方使います。
UART
黄:RX(シリアル受信側)
白:TX(シリアル送信側)
WiFiモジュールや、GPSモジュールなどで使われています。
I2C
黄:SCL(クロック信号)
白:SDA(データ信号)
モータードライバーモジュールや、加速度センサーモジュールで使用されています。種類が豊富で、I2Cの性質上、コネクタの数を拡張することが可能であるため、人気の高い方式です。
「便利だけれど、最初からこの端子がついているマイコンボードでしか使えないんじゃないの?」
心配ご無用、様々なマイコンボードに合わせた、ポート拡張用ボードも用意されています! 上のFig.4で紹介したGrove Arduino スターターキット (174-3221) には、Arduino UNO用のポート拡張ボードが同梱されていますし、他にも、micro:bit (205-0229) や、Raspberry Pi (184-5102) 、Arduino MEGA (184-5097) 用など、一般的なマイコンボードで使用することが可能です。
Groveシステムを使った例:
- Arduino用 Grove スターターキット の製品レビュー
- Grove - Arduino用音声認識キットについて
- An Introduction to the OKdo IoT Air Quality Starter Kit
- Using the Grove Smart Plant Care Kit for Arduino
Pmod
Fig.6 Raspberry Pi用 Pmod HAT
(144-8419)
続いてはこちらの『Pmod』。Xilinx(AMD)社のFPGAボードを使用している方であれば、ご存じではないでしょうか? ARTYやZYBOといったボードには、下の写真のように、標準で搭載されています。もちろん、こういったFPGAボード以外にもArduinoや、Raspberry Piといった、様々なマイコンボードで使用できるような変換ボードが用意されています。
Arduino Uno用Pmodシールド
Raspberry Pi用Pmod HAT
Fig.7 Xilinx Artix-7 FPGA開発ボード
(134-6478)
Pmodモジュールのピンは、6ピンが1列のもの、6ピンが2列のもの(全部で12ピン)、4ピンが2列のもの(全部で8ピン)があり、すべてPmod用のポートに同じように差し込むだけで使用可能です。この際のピン配置は、通信方法によって変わってきます。それぞれ見ていきましょう。
Fig.8 1x6ピンと2x6ピンのピン番号(出典:Digilent Pmod™ Interface Specification)
以下のピンの番号は、Fig.8に示しているものです。
GPIO(1x6ピン)
サイドスイッチモジュール等で使用されています。
ピン番号 |
信号の種類 |
入力 or 出力 |
備考 |
1 |
I/O1 |
入力、出力 |
|
2 |
I/O2 |
入力、出力 |
PWM出力対応 |
3 |
I/O3 |
入力、出力 |
|
4 |
I/O2 |
入力、出力 |
|
5 |
GND |
|
|
6 |
VCC |
|
|
拡張版GPIO(2x6ピン)
LEDモジュール等で使用されています。
ピン番号 |
信号の種類 |
入力 or 出力 |
備考 |
1 |
I/O1 |
入力、出力 |
|
2 |
I/O2 |
入力、出力 |
PWM出力対応 |
3 |
I/O3 |
入力、出力 |
|
4 |
I/O2 |
入力、出力 |
|
5 |
GND |
|
|
6 |
VCC |
|
|
7 |
I/O5 |
入力、出力 |
|
8 |
I/O6 |
入力、出力 |
PWM出力対応 |
9 |
I/O7 |
入力、出力 |
|
10 |
I/O8 |
入力、出力 |
|
11 |
GND |
|
|
12 |
VCC |
|
|
SPI(1x6ピン)
電流センサーモジュールなどで使用されています。
ピン番号 |
信号の種類 |
入力 or 出力 |
備考 |
1 |
CS(チップセレクト) |
出力
|
|
2 |
MOSI |
出力 |
|
3 |
MISO |
入力 |
|
4 |
SCK(クロック) |
出力 |
|
5 |
GND |
|
|
6 |
VCC |
|
|
拡張版SPI(2x6ピン)
WiFiモジュールなどで使用されています。
ピン番号 |
信号の種類 |
入力 or 出力 |
備考 |
1 |
CS(チップセレクト) |
出力
|
|
2 |
MOSI |
出力 |
|
3 |
MISO |
入力 |
|
4 |
SCK(クロック) |
出力 |
|
5 |
GND |
|
|
6 |
VCC |
|
|
7 |
GPIO |
入力、出力 |
割り込み信号用 |
8 |
GPIO |
入力、出力 |
リセット信号用 |
9 |
GPIO |
入力、出力 |
追加CSとして |
10 |
GPIO |
入力、出力 |
追加CSとして |
11 |
GND |
|
|
12 |
VCC |
|
|
I2C(1x6ピン)
ガスセンサーモジュールなどで使用されています。
ピン番号 |
信号の種類 |
入力 or 出力 |
備考 |
1 |
NC |
- |
割り込み信号用 |
2 |
NC |
- |
リセット信号用 |
3 |
SCL |
入力、出力 |
|
4 |
SDA |
入力、出力 |
|
5 |
GND |
|
|
6 |
VCC |
|
|
拡張版I2C(2x6ピン)
ジャイロセンサモジュールなどで使用されています。
ピン番号 |
信号の種類 |
入力 or 出力 |
備考 |
1 |
NC |
- |
割り込み信号用 |
2 |
NC |
- |
リセット信号用 |
3 |
SCL |
入力、出力 |
|
4 |
SDA |
入力、出力 |
|
5 |
GND |
|
|
6 |
VCC |
|
|
7 |
GPIO |
入力、出力 |
|
8 |
GPIO |
入力、出力 |
|
9 |
GPIO |
入力、出力 |
|
10 |
GPIO |
入力、出力 |
|
11 |
GND |
|
|
12 |
VCC |
|
Pmodを使った例:
- ラズパイとPythonでPmodを簡単に利用しよう
- PMODとラズベリーパイを使ってプロトタイピングを高速化
- Pmod™ - レゴブロックみたいに電子設計!
- DesignSpark Pmod HATで試作 - OLEDrgbを試す
- DIGILENT Pmod 拡張ライブラリ
- DesignSpark Pmod HAT AdapterでJSTK2モジュールを利用してみた
- 人工知能 画像認識システム「Pidentifier」を、ラズパイとMovidius でサクッと作ってみた
- Raspberry Pi 3 Model B+でセンサプラットフォームを作る
Clickボード(mikroBus)
Fig.9 MikroElektronika LED ring R clickボード
(136-0801)
お次はこちら、『Clickボード』。もちろん、他と同様に、差し込むだけでセンサーからのデータ取得や、アクチュエーターを動作させちゃえます。そしてなななんと、2022年3月現在、全部で1174個もの拡張ボードがあるんです! これだけあれば、何でも揃えられて、どんな工作でも困らなさそうです(笑)
Fig.10 MikroElektronika LED ring R clickボード(出典:MikroElectronika)
Clickボードは、上のような異なる3つの大きさで展開されています。ポテトみたいですね。6軸センサーモジュールや、ジェスチャーセンサーモジュールといった、小型のセンサーを搭載したものはSサイズなので、組み込み機器を作りたい時には配線に煩わされず、小型化を簡単に実現できそうです。
また、このClickボード、全通信方式で、『mikroBUS』という接続インターフェースに統一されています。下に示しましたが、すべてこの配置をとるんです。モジュールごとに使わない部分はNCにして、使う部分はこの規格に合わせる、といった感じです。
Fig.11 microBUS ピン配置(出典:MikroElectronika)
1174個もモジュールが出されているとなると、独創的な、面白いモジュールが数多くありそうです。私の独断と偏見で、いくつか面白そうなものをピックアップしてみます。
SpeakUp 2 Click (136-0833)
Fig.12 SpeakUp 2 click
(136-0833)
マイクとMCUがついているモジュールです。何に使うかって? そう、「音声認識」です。Si〇iや、Ale〇aのようなことが、自分でできちゃいます。しかもうれしいことに、USBでPCとつないで、配布されているアプリからちょちょいと設定するだけで、音声認識を体験できます。
LPS22HB click (168-3051)
Fig.13 LPS22HB click
(168-3051)
こちらは、MEMS圧力センサーを搭載したClickボードです。気圧を計測可能なので、気候の変化や、高度の変化を検出する必要があるようなアプリケーションに最適です。このモジュールの面白いところは、このデザインですね。上のメーター部分が、基板を切り取って、その上からかわいいシルクで装飾されています。このように、Clickボードはかわいらしいデザインのものが非常に多い印象です。普段はケースに入れたり、アクチュエーターの後ろに配置されたりして、あまり見えることがない基板部分ですが、このデザインをうまく活用して、「魅せる」基板を作ってみるのも良いですね。
Clickボードを使った例:
- ラズパイ3に無限の拡張性を! Clickシールド レビュー
- 開発ボード「Clicker 2 for PSoC 6」を使ってプロトタイピング
- Catching a Bus: Prototyping a wireless robot with MikroElektronika Click Boards
- Catching a Bus: Basic Serial Communication Part 2, SPI
- Catching a Bus: Basic Serial Communication Part 6, Wireless
- Catching a Bus: Prototyping a wireless robot control box with MikroElektronika Click Boards
- Building a Pi Powered Lightning Detector
XinaBox
Fig.14 XinaBox STEM Starter Kit
(190-6040)
続いてはこちら、『XinaBox』(イクシナボックス)。xChipと呼ばれるモジュールに、センサーやLED、マイコンなどが載っています。それぞれのモジュール同士をxBusという共通したインターフェイスで接続することで、まるでおもちゃのブロックのように回路作成が可能になります。ハードウェアの知識が全くない方でも、気軽にものづくりが楽しめちゃうんです!
Fig.15 XinaBox CC01 Arduino Pro/Pro Mini モジュール
(190-6040)
通信規格について、上のCC01モジュールを参考にして見ていきましょう。
xBus
これは、各モジュール同士を接続するための規格です。Fig.15でいうと、上下左右の中央に配置されている、5つの端子(両面あわせて10個)と一つの切り欠きがあるものになります。下部分の端子を例に、表面を1~5番ピン、裏面を6~10番ピンとして、ピン配置を下に示します。
ピン番号(表) |
信号の種類 |
備考 |
1 |
SCL |
I2Cクロック用 |
2 |
SDA |
I2Cデータ用 |
3 |
GND |
|
4 |
VCC(3.3V) |
|
5 |
Vbat |
|
ピン番号(裏) |
信号の種類 |
備考 |
6 |
Reset |
|
7 |
Alert |
特殊用途用 |
8 |
RX/TX |
UART用 |
9 |
TX/RX |
UART用 |
10 |
Vraw |
太陽電池等からの給電 |
xPDI
『Cxxx』といった名前の付いたモジュールは、マイコンが搭載されたプログラム可能なxChipです。これには特別に、プログラミングとデバック用の3つの端子(両面あわせて6個)が備わっています。
ピン番号(表) |
信号の種類 |
備考 |
1 |
DP |
USB D+ |
2 |
DCK |
TCK/SWDCLK/SCK |
3 |
DIO |
TMS/SWDIO/CS |
ピン番号(裏) |
信号の種類 |
備考 |
4 |
DM |
USB D- |
5 |
DI |
TDI/MOSI |
6 |
DO |
TDO/MISO |
CxxxといったxChipを使用すれば、直接プログラミングが可能です。このほかにも、Raspberry PiやPi zero、micro:bit用の拡張シールドが用意されているので、普段使い慣れているマイコンボードで使用することもできちゃいます!
Fig.16 XinaBox 拡張ボード
XinaBoxを使った例:
- XinaBox(イクシナボックス)をArduino IDEで開発! プロトタイピングの時短!
- XinaBoxとAlexaでファンをコントロールしてみた
- XinaBoxとZerynthで卓上扇風機を制御しよう
- ジェスチャーコントロールによる気象観測装置
- XinaBoxによるLoRa無線モニタリングのプロトタイピング パート1: はじめに
- XinaBoxによるLoRa無線モニタリングのプロトタイピング パート2: データの送信
- Prototyping LoRa Wireless Monitoring with XinaBox Part 3: Adding I/O and Testing
- Space Invaders with XinaBox and Raspberry Pi
micro:bit用拡張ボード
Fig.17 Halo HD Board for the BBC micro:bit
(204-8224)
英国で11歳から12歳の子どもたちに配布されていることからもわかるように、誰もが扱いやすいように作られている『micro:bit』。マイコンボード自体が、手軽に、楽しくプログラミングを学ぶことができるような工夫を施されていることもあり、拡張ボードには非常に面白いものが数多く存在しています。センサーだけではなく、アクチュエーターもはじめから組み合わされていて、micro:bitをさすだけで、ロボットになってしまうものなんかもあります。
Fig.18 micro:bitのピン配置(出典:micro:bit edge connector)
ぱっとみたら3つの信号ピンと2つの電源ピンに見えるmicro:bitですが、実は、25個ものピンを備えています。上の図はV2のピン配置です。V1は8、9番ピンが異なる接続となっているのでご注意を!
Fig.19 ZIP Halo HDのピン配置(出典:https://microbit.pinout.xyz/)
micro:bitはどのピンがどういった役割を持つのか、ボードに書いていないため、見ただけではわかりません。すると、拡張ボードがどのピンを使い、どういった通信をしているのかも判断がつきにくいですね。ですが大丈夫! 拡張ボードがどのピンをどうやって使用しているのか、一目で分かるようにしてくれているページがあるんです! 例えば、Fig.17のZIP Halo HDをみてみると、19、20番ピンをRTCに、14番ピンをブザーに、8番ピンをネオピクセルに、0番ピンをマイクに使用しているといった感じです。
ではここで、いくつかmicro:bit用の拡張ボード(キット?)を紹介します。
micro:bit用Grove開発キット (174-3278)
Fig.20 micro:bit用Grove開発キット
(174-3278)
こちらは前述した『Groveシステム』を、micro:bitで使用できるようにする拡張ボードと、いくつかのセンサー類がセットになった商品です。センサーの評価から、実際のプロジェクトまで、プラグ&プレイで簡単に行えちゃいます!
BitCar (205-0231)
Fig.21 BitCar
(205-0231)
なんとこちら、micro:bitを組み合わせるだけで、自立走行ロボットができちゃいます! 自分でコーディングをして、ロボットを動かせるなんて、ロマンがありますねぇ~。こちらはもう、拡張ボードというよりかは、センサーや基本的な基板、アクチュエーターなどがてんこ盛りの、拡張キットと呼んだ方が良いかもしれません(笑)
micro:bitを使った例:
SPRESENSE用拡張ボード
Fig.22 SONY社 SPRESENSE メインボード
(179-8486)
RTOSのNuttXがベースで動作している、少し変わったマイコンボードの『SPRESENSE』。メインボードだけでも、みちびきに対応したGNSSや、ハイレゾ機能など、他にはない機能が詰めこまれています。そんなSPRESENSEですが、SONY社や他のサードパーティーから、様々な拡張ボードが販売されています。
Fig.23 SPRESENSEのピン配置(出典:SONY SPRESENSEの仕様)
SPRESENSEのピン配置は上の図のようになっています。また、Fig.2に示した『SPRESENSE 拡張ボード』を接続することで、Arduino UNO互換のピン配置にすることも可能です。
どういった拡張ボードがあるのか、見ていきましょう。
SPRESENSE 拡張ボード (179-8487)
Fig.24 SONY社製SPRESENSE 拡張ボード
(179-8487)
SPRESENSEのピン配置を、Arduino UNOと同様のものに変更することができるため、こちらを使うと一部のArduino UNO用拡張ボードがそのまま使用できるようになります。それだけではなく、microSDカードスロットや、オーディオ入出力が追加され、考えられるプロジェクトの幅が広がりますね。
Wi-SUN Add-onボード (192-0475)
Fig.25 Wi-SUN Add-onボード
(192-0475)
ROHM社のWi-SUNモジュールを搭載した、無線通信用の拡張ボードです。こちらは特定小電力無線(920MHz)を使用するため、長距離でのデータ通信が可能であったり、電波干渉に強かったりと、2.4GHz帯を使用する無線通信に比べて、安定した通信が可能になります。
SPRESENSEを使った例:
- エキスパートに聞く - Sony SPRESENSE
- Spresense搭載スマートセキュリティデバイス パート1: はじめに
- Building a Spresense Powered Smart Security Device Part 2: SDK Setup, Structure and First Example
- Building a Spresense Powered Smart Security Device Part 3: Sensor Processing
- Building a Spresense Powered Smart Security Device Part 4: GNSS and Storage
- Building a Spresense Powered Smart Security Device Part 5: Putting It All Together
- Sony Spresense Packs Advanced IoT Capabilities into Tiny Board
今まで見たことがないようなものや、使ってみたいなぁと感じたボードはありましたか?
パート2では、マイコンボードと拡張ボード間で通信する際に必要な知識である『通信方式』について、簡単に解説していきます。手元のマイコンボードと一緒に拡張ボードを使ってみたいけれど、I2CとかUARTとかよくわからないなぁという方、使ってみたいけれど、繋ぎ方が合っているのか心配だという方などなど、参考になれば幸いです!!