United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

色んな拡張ボードを使ってみよう! ~パート1:様々な拡張ボードの紹介~

マイコンボードを使った電子工作で、皆さんはどのようにして、理想の作品を作り上げていますか?

外界の状態をセンサーから取り入れることで、環境のデータを収集できる環境モニターを作ることができたり、モーターとマイコンボードを組み合わせることで、地上を走るローバー、さらにはマルチコプターも自作できたりと、可能性は無限大です。ただし、ここで問題になってくるのが、『構成部品の選定』です。センサーは同じようなものが多く存在するし、モーターを動かしたいけれど、なんかマイコンに直結するとよくないらしいし、そもそもマイコンと他の部品ってどう繋げたら良いのかわからない…

こんな悩みを解決してくれるのが、拡張ボードと呼ばれるものです。ご存じの方も多いと思いますが、代表的なものはArduino用シールド基板Raspberry Pi HATGroveシステム等があります。ただ、日本ではあまり普及していないような拡張ボードが、他にも多く存在しているんです!

この記事では、それぞれの面白さ、拡張性の高さなど、様々な特徴とともに、拡張ボードについて解説していきます。今まで同じ系統の拡張ボードしか使っていなかったそこのアナタ! ぜひ今後の工作に、使ったことがない拡張ボードを取り入れてみては?

 

目次

  • 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用シールド基板を使った例:

phpDBdvIi_16748c6cb4e418adc3192d339ebc6ea236332303.png

 

Raspberry Pi HAT


Fig.3 Raspberry Pi Sense HAT (894-9310)

こちらも定番、『Raspberry Pi』用の拡張ボードである、Raspberry Pi HATです。Raspberry Piシリーズ用に、センサーやモータードライバーはもちろん、タッチキーボードやE-inkディスプレイ、4G通信モジュールなど、ちょっと変わったものもあります。

Raspberry Pi HATを使った例:

 

Groveシステム


Fig.4 Grove Arduino スターターキット (174-3221)

こちらはM5Stack社のマイコンボードに搭載されていることから、知っている方は多いかもしれません。先に紹介した2つと異なり、すべてのモジュールが4線の規格で統一されています。センサーやアクチュエーターによって通信方法は異なるものの、各通信方式でピンの配置が決まっているため、特に深く考えることなく、モジュールを接続するだけで使用することが可能です。

phpYkTeRd_cc65e9d59615560aeae1249d3a35e713d96a7400.jpg
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システムを使った例:

phpyismGp_dd382188f1cabaa033fd722da4fb381843bba72d.png

 

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用のポートに同じように差し込むだけで使用可能です。この際のピン配置は、通信方法によって変わってきます。それぞれ見ていきましょう。

phpPWYii5_559e7713817233e0829ddc432151cad5b9d3e528.png
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を使った例:

 

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ボードを使った例:

 

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を使った例:

 

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を使った例:

 

今まで見たことがないようなものや、使ってみたいなぁと感じたボードはありましたか? 
パート2では、マイコンボードと拡張ボード間で通信する際に必要な知識である『通信方式』について、簡単に解説していきます。手元のマイコンボードと一緒に拡張ボードを使ってみたいけれど、I2CとかUARTとかよくわからないなぁという方、使ってみたいけれど、繋ぎ方が合っているのか心配だという方などなど、参考になれば幸いです!!

とある大学の、修士2年生です!普段は大学で、航空宇宙工学/機械工学を勉強しています。 授業以外の場所では、学生だけで衛星をつくったり、ハッカソンに参加したりと様々な機会でものづくりにふれています~ ものづくりはとても楽しい