11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【Arduino入門編⑭】センサーシールド(Sensor Shield)を使ってみる!

前回、Arduinoの「シールド」と呼ばれる拡張ボードについてご紹介しました。
ブレッドボードの拡張版的な使い方が出来る便利な「プロトタイプシールド」についてご紹介しましたが、Arduinoで使える便利な拡張ボード(シールド)は他にも多数販売されています。

【Arduino入門編⑬】テスト環境に便利!Arduino拡張ボード(シールド)プロトタイプシールドを使ってみる!

Arduinoはオープンソースで作られたハードウェア(マイコンボード)であり安価で入手が出来ることから人気があり、統合開発環境(IDE)のソフトが無料配布されているので開発やテスト環境に適しています。
また、ハードウェアやソフトウェアがオープンソースであるためライセンスの範囲内であれば改変や解析等自由に行うことが出来ます。

そしてArduinoに直接接続することにより機能を拡張出来る拡張ボードは多数販売されており、ArduinoとつなげてGPS情報を取得したり、ディスプレイを接続し表示させたり、またイーサネット通信や各種センサーなど様々なものがあります。

これらArduinoの拡張ボードは「シールド」と呼ばれますが、Arduinoに直接差し込むだけではんだ付けなどの結線が必要なく手軽にArduinoに機能を追加することが出来ます。

前回Arduinoの「プロトタイプシールド」についてご紹介しました。
そして前回少し話でふれた「センサーシールド(Sensor Shield)」について今回ご紹介したいと思います。
これからArduinoを使いテスト動作をさせたり、何かしら実機に搭載させたりと便利に使えるかと思います。

「センサーシールド」の使い方はいろいろとありますが、これまでArduino入門編として当ブログでやってきたサーボモーターの駆動に大変便利なシールドとなるので今回そちらを例にして見ていきたいと思います。

Arduino UNO R3 拡張ボード V5.0 センサーシールド(Sensor Shield)
HiLetgo

【Arduino】センサーシールド(Sensor Shield)を使ってみる!

Arduinoの便利な拡張ボード(シールド)として前回、「プロトタイプシールド」を使ってみました。
Arduino単体(こちらではArduino Unoでご説明していきます)では数が少ない電源(5V出力およびGND端子)を補うことができ、電源が複数端子から取れる簡易的ブレッドボードのような使い方ができテスト環境で便利に使えるものでした。

そして今回は、「センサーシールド(Sensor Shield)」というものを使ってみたいと思います。
このシールドも非常に便利に使えるArduino用の拡張ボードとなります。

デジタル入出力ピンやアナログ入力ピンはもちろんですが、I2CやUART(TX/RX)、Bluetoothなど全てのポートで電源端子(5VおよびGND)が確保できます。
またLCD用のパラレル端子なども装備されています。

いろいろと使えますが、これまでこのArduino入門編記事でやって来たことではサーボモーターの接続に非常に便利に使えます。
その前に少しセンサーシールドがどのようなものか見ていきたいと思います。

Arduino拡張ボード『センサーシールド(Sensor Shield)』

こちらがArduino Uno用センサーシールド(Sensor Shield)となります。
ピンヘッダーでArduinoと接続して使う形となります。

ちなみにこちらはArduino Nano用センサーシールドです。

共にArduino本体とピンヘッダーで接続するだけで使えArduinoの機能を拡張することが出来る拡張ボード(シールド)となります。
機能的にはほぼ同じ構成のものとなりますが、こちらではArduino Uno用について見ていきます。

少し形状等を見てみましょう。
デジタル入出力ピン・アナログ入力ピン・I2C端子・UARTポートなどが配置されています。

裏面のピンヘッダーをArduino Unoに差し込み使う形となります。

Arduino Unoとピン配列は統一されているので、向きを合わせて接続するだけなので簡単です!

Arduino用のシールドは全て形状(Arduinoのピン配列)は標準化されており、どのメーカー製のシールドを使ってもArduinoとすぐに接続出来る形状で作られています。

MEMO
Arduinoは形状やピン配置が標準化されているので別形状のArduinoでもシールドを使うことが出来ます。(例えばArduino UnoシールドをArduino Megaで使うなど)
しかしソフトウェア等の互換性の問題で全てが対応しているわけではありません!

これだけではArduino本体と機能的には変わりませんが、よく見ていただけると分かりますが全てのピンで電源端子(5VおよびGND)が用意されています。

Arduino Uno単体だと電源は、5V端子(3.3V端子)が1本・GND端子が3本しかありません。
LEDやサーボモーター、センサーなどを接続し動かすには外部電源を利用するか、またはArduino本体からの電源をブレッドボードなどを使い分岐して使う必要がありました。

センサーシールドを使って複数台のサーボモーターを動かす!

そこでこのセンサーシールドが役立ちます!
先述のように全てのポートに電源端子が用意されているので接続が非常に簡単になります。

今回その例としてサーボモーターを繋いでみたいと思います。
サーボモーターの制御に関してはこちらを参考にして下さい!

【Arduino入門編⑧】サーボモーターを動かしてみる。PWM制御についていの解説です!

サーボモーターの接続には、接続する数が少ない場合はArduinoから直接電源を取ることもできました。
しかし基本的にモーター系は電力を消費するパーツなので外部電源を用意し駆動するのが望ましくなります。
ブレッドボードを使いジャンパーワイヤを何本も使い電源ケーブルや信号線を繋いで・・・なんてことをこれまでやってきました。

センサーシールドを使えば非常に簡単、そして配線もシンプルに出来ます。
サーボモーターの制御で使うPWM信号はデジタル入出力ピンを使いますが、全てのピンに電源端子が用意されているので接続はこんな感じにサーボモーターのプラグを差し込むだけで完結します。

そしてそれらを駆動するための電源供給用の端子(5V)も用意されているので、ここから電源供給すれば複数台のサーボモーターの制御も簡単に行うことが出来ます。

Arduino Unoではサーボライブラリを使うことにより同時に12台のサーボモーターを制御出来ます。(上記記事を参考に!)
今回は8本のサーボモーターを繋ぎ動作チェックをしてみました。

プラグ接続だけで複数台のサーボモーターを同時に制御することが出来ました。
配線もシンプルに出来るのでテスト環境や動作チェックなどで役立ちます!

そして基本構成はほぼこのままで、このような4足歩行ロボットなんかも動かすことが出来ます。(12個のサーボを使っています)

このようにArduinoに拡張ボード「センサーシールド」を1枚挿すだけで複数台のサーボモーターを動かす際の電源を確保でき、その配線も簡素化できて非常に便利となります。

今回デジタル入出力ピンを使いサーボモーターを繋げて動かしてみましたが、もちろんサーボ以外にも各種センサーをつなげたり、アナログ入力ピンにも電源端子が用意されているのでジョイスティックを繋げてサーボを制御する・・・などいろいろと便利に使えます。

【追記】SG90サーボで動かす4足歩行ロボットを公開しました!

SG90サーボモーターで動かす2関節8サーボ制御の4足歩行ロボットのデータを公開しました。

基本動作を入れたサンプルスケッチと超音波センサーHC-SR04を使って障害物をひたすら避けながら動くサンプルスケッチも添付しています。

Arduinoを使った動くものの学習用としてや、さらにハードやプログラムを変更し自分仕様に仕上げるなどして楽しんで頂ければと思います。

Arduinoで動かす4足歩行ロボット製作ノート!Arduino学習に便利なロボくんなので使って下さい!【STLデータ公開】

Arduino Nano用の拡張ボード(センサーシールド)についての追記です!

Arduino Nano用のセンサーシールドは4足歩行ロボットでも使ったのですが、このように複数サーボモーターを接続して使う場合にArduinoが落ちるといったコメントをいくつか頂きました。

この事は上記4足歩行ロボット製作時に私も感じていたことで、サーボモーターを駆動する5Vの電源ラインにリポバッテリーなどの電圧をDC/DCコンバーターを使い5Vに降圧させて直接接続する事により対策していました。
おそらくシールドに搭載されている5Vラインのレギュレーターの問題だと思います。(電流不足によるもの?)

上記4足歩行ロボットでは8個のSG90サーボモーターを接続し制御していますが、負荷が高い時で2A以上流れる時もあります。
これだけ多くのサーボモーターを接続して使用することはあまりないかと思いますが、上記のように対策する事が出来ます。

またレギュレーターが強化されたセンサーシールドもあるようです。(下写真左)

詳しくはこちらの記事も参考にして頂ければと思います。

【Arduino】サーボモーターやセンサーなどの接続に便利!Arduino Nano拡張ボード(センサーシールド)について!
Keyestudio Arduino Nano拡張ボード
created by Rinker

今回使ったパーツ

Arduino拡張ボード『センサーシールド(Sensor Shield)』

今回ご紹介したArduino Uno用拡張ボード『センサーシールド((Sensor Shield)』は、国内サイトでも安価で入手が可能なものとなります。
Arduinoの動作テストや実機への組み込みなどで便利に使えます。

今回はArduino Uno用を見ていきましたがArduino Nano用のセンサーシールドも同様の手順で使えます。
テスト環境や組み込むもののサイズにより使い分けたりするのが便利かと思います。

Arduino UNO R3 拡張ボード V5.0 センサーシールド(Sensor Shield)
HiLetgo

Arduino UNO

Arduinoはオープンソースのハードウェアなので正規品以外にも互換品が多数メーカーから販売されています。
互換品でも正規品と比べて特に問題なく使用でき安価で入手出来るのでArduino学習用としていいですね!(ELEGOO製のArduino Unoは使いやすいかと思います。)

Arduino スターターキット

また、これからArduino学習を進めていくにあたりArduino UNO(互換品)やブレッドボード、ジャンパーピンなどがセットになったスターターキットが販売されています。

私はGeekcreit製のスターターキットを使っていますが、ELEGOO製のものは国内Amazonなどでも購入可能で人気があるようです。(セット内容はほぼ同じです!)

そしてELEGOOのサイトからスターターキット用サンプルスケッチのダウンロードも可能です。(Geekcreitのキットでも使えます)

参考 チュートリアルダウンロードELEGOO

基本的にこれからこのセットで出来るものから紹介していこうと考えていますが、かなり多くのことが出来ます。
電子工作を始めるにはまずブレッドボードやジャンパーピン、メインとなるArduino UNOやサーボ、LEDなどの基本的なパーツがないと実際に動かすことが出来ませんが、個々にパーツを購入して回路を組んでとなるとかなりの手間がかかります。

スターターキットがあればArduinoの初歩的なことはかなりの数こなすことが出来るのでオススメです!

最後に!

今回センサーシールドを使いサーボモーターを複数台動かしてみました。
接続するデバイスの電源確保はもちろんですが、面倒な配線が非常にシンプルに出来ていいですね!

デジタル入出力ピン以外にもアナログ入力ピンやI2C端子、UARTポート(TX/RX)などにも電源端子が用意されているので各種センサーや他のデバイスなどの接続にも便利に使えます。

国内サイトでも入手することができ便利なArduino用の拡張ボードとなるので、テスト環境や動作チェックそして実機への組み込みなど大変重宝するかと思います。

コメントを残す