IoT-BOOSTER-R1IoT-BOOSTER は家庭用のIoT 機器の開発や実験の中...
Transcript of IoT-BOOSTER-R1IoT-BOOSTER は家庭用のIoT 機器の開発や実験の中...
IoT-BOOSTER-R1
利用マニュアル
マイクロファン
http://www.microfan.jp/
https://store.shopping.yahoo.co.jp/microfan/
https://www.amazon.co.jp/s?merchant=A28NHPRKJDC95B
2017年 11月
Copyright c⃝ 2017 MicroFan,
All Rights Reserved.
i
目次
第 1章 IoT-BOOSTERの紹介 1
1.1 製品概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Blynk: IoTシステム開発ソフトウェア . . . . . . . . . . . . . . . . . . 2
1.3 Arduinoでのスケッチ . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 マニュアルの記載内容に関して . . . . . . . . . . . . . . . . . . . . . . 3
第 2章 部品一覧 4
2.1 部品表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 別売品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1 Arduino UNO R3 . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.2 オプション部品 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
第 3章 IoT-BOOSTERの作成手順 9
3.1 抵抗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 FET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 赤外線レシーバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 セラミックコンデンサ . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5 発光ダイオード、明るさセンサー . . . . . . . . . . . . . . . . . . . . . 10
3.6 環境センサー GY-BME280 . . . . . . . . . . . . . . . . . . . . . . . . 11
3.7 圧電スピーカー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.8 トランジスタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.9 赤外線発光ダイオード . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.10 電解コンデンサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.11 タクトスイッチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.12 ピンソケット CN8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.13 ピンヘッダー CN10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.14 ピンヘッダー CN2/CN3,CN4/CN5,CN6/CN7 . . . . . . . . . . . . 12
3.15 ピンヘッダ SV1-SV4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.16 IoT-BOOSTERの作成例 . . . . . . . . . . . . . . . . . . . . . . . . . 12
第 4章 環境整備とサンプルスケッチ 14
目次 ii
4.1 Arduinoボードとの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 ライブラリのインストール . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.1 BME280のライブラリ . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.2 赤外線 LEDと赤外線レシーバーのライブラリ . . . . . . . . . . . 15
4.2.3 OLEDディスプレイのライブラリ . . . . . . . . . . . . . . . . . 16
4.2.4 DS3231リアルタイムクロックライブラリ . . . . . . . . . . . . . 18
4.2.5 WS2812/NeoPixel カラー LED . . . . . . . . . . . . . . . . . . 18
4.3 サンプルスケッチの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3.1 スイッチと圧電スピーカー . . . . . . . . . . . . . . . . . . . . . 19
4.3.2 BLINK:LEDの単純な点滅 . . . . . . . . . . . . . . . . . . . . . 20
4.3.3 明るさセンサーの利用 . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.4 BME280環境センサー . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.5 OLEDディスプレイ . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3.6 リアルタイムクロック . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3.7 超音波距離センサー . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3.8 RCサーボ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
第 5章 資料 31
5.1 IoT-BOOSTERの回路図 . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2 Arduinoボードのピン接続 . . . . . . . . . . . . . . . . . . . . . . . . 32
5.3 ハードウェア拡張用コネクタ . . . . . . . . . . . . . . . . . . . . . . . 33
5.3.1 CN2/CN3端子 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3.2 CN4/CN5端子 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3.3 CN6: I2C端子 (3.3V) . . . . . . . . . . . . . . . . . . . . . . . 34
5.3.4 CN7: I2C端子 (5V) . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3.5 CN8: 超音波センサー/アナログ信号端子 . . . . . . . . . . . . . . 34
5.3.6 CN9: 加速度・ジャイロセンサ MPU6050端子 . . . . . . . . . . 35
5.3.7 CN10: リアルタイムクロック . . . . . . . . . . . . . . . . . . . . 36
5.3.8 CN11: デジタル信号端子 . . . . . . . . . . . . . . . . . . . . . . 36
第 6章 購入および問い合わせ先 37
6.1 ご協力のお願い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2 販売:ネットショップ . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.3 製品情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4 問い合わせ先 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.5 所在地 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
iii
図目次
2.1 部品:写真 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 OLEDディスプレイ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 加速度・ジャイロセンサー . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 DS3231リアルタイムクロックモジュール . . . . . . . . . . . . . . . . . 8
2.5 HC-SR04 超音波距離センサー . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 IoT-BOOSTERの作成例 . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1 ライブラリマネージャを利用した BME280ライブラリの導入 . . . . . . 15
4.2 ライブラリマネージャを利用した U8g2ライブラリの導入 . . . . . . . . 17
4.3 OLEDディスプレイ (SSD1306)用のコンストラクタ . . . . . . . . . . 17
4.4 OLEDディスプレイ (SSD1306)用の文字表示専用コンストラクタ . . . 17
4.5 カラー LEDライブラリ . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.6 スイッチと圧電スピーカーのサンプルスケッチ . . . . . . . . . . . . . . 20
4.7 BLINK:LEDの単純な点滅 . . . . . . . . . . . . . . . . . . . . . . . . 21
4.8 明るさセンサー値のシリアル出力 . . . . . . . . . . . . . . . . . . . . . 21
4.9 BME280環境センサーのサンプルスケッチ . . . . . . . . . . . . . . . . 22
4.10 BME280環境センサーの計測結果を OLEDに表示するサンプルスケッチ 23
4.11 OLEDディスプレイのサンプルスケッチ . . . . . . . . . . . . . . . . . 24
4.12 OLEDディスプレイの文字専用出力 . . . . . . . . . . . . . . . . . . . 25
4.13 リアルタイムクロックのサンプルスケッチ . . . . . . . . . . . . . . . . 26
4.14 リアルタイムクロックのサンプルスケッチ . . . . . . . . . . . . . . . . 27
4.15 超音波距離センサーのサンプルスケッチ . . . . . . . . . . . . . . . . . . 29
4.16 RCサーボのサンプルスケッチ . . . . . . . . . . . . . . . . . . . . . . . 30
5.1 IoT-BOOSTERの回路図 . . . . . . . . . . . . . . . . . . . . . . . . . 31
iv
表目次
2.1 部品表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1 Arduinoボードのピン接続 . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2 CN2ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3 CN3ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.4 CN4ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5 CN5ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.6 CN6ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.7 CN7ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.8 CN8ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.9 CN9ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.10 CN10ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.11 CN11ピン配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1
第 1章
IoT-BOOSTERの紹介
1.1 製品概要
近年様々なものをインターネットに接続してサービスの高度化を図るモノのインター
ネット「IoT *1」が注目されており、IoTサービスを実現するための様々な開発や実験が、
企業はもちろん個人でも行われています。
IoT-BOOSTERは身近な Arduino UNO R3で IoTシステムの実験や開発を手軽に行
うためのシールドキットです。IoT-BOOSTER は 家庭用の IoT 機器の開発や実験の中
核となる機能をコンパクトな基板にまとめており、IoT機器の試作や実験を行う人が、高
機能な IoT装置を手軽に作成するために利用できます。
IoT-BOOSTERの特徴を以下に示します。
• BME280を用いた温度、湿度、気圧センサーを搭載し、I2Cインターフェースで信
号線 2本のみで制御できます。
*1 Internet of Things
第 1章 IoT-BOOSTERの紹介 2
• 赤外線 LEDを搭載し、家電製品を赤外線リモコン機能で制御することができます。
• 赤外線レシーバーを搭載し、家電製品のリモコンの制御信号を受信することができます。
• 明るさセンサーを搭載しています。• 4個のタクトスイッチを搭載しています。
• 2個の LEDを搭載しています。
• 圧電スピーカーを装備し、ビープ音などの電子音の出力を行えます。• 128X64ピクセルのOLEDディスプレイの接続端子を装備しており、I2Cインター
フェースで信号線 2本のみで制御できます。
• 加速度・ジャイロセンサーMPU6050モジュール、リアルタイムクロック DS3231
モジュール、超音波距離センサー HR-SR04 モジュールの接続端子を装備してい
ます。
• 5Vの I2C機器を接続する端子を装備しています。
• I2Cの信号を 3.3Vに変換する回路を搭載しており、3.3Vの I2C機器を接続する
端子を装備しています。
• 焦電センサ(人感センサ)などの外部デバイスを接続できる端子を装備しています。• RCサーボや NeoPixel/WS2812カラー LEDを接続できる端子を2個装備してい
ます。
• Arduino UNO R3に接続して利用できます。
• 電子工作で広く利用されている Arduinoのシールドとして開発されており、手軽
に利用できる Arduinoの IDEを利用して独自のスケッチを行えます。
1.2 Blynk: IoTシステム開発ソフトウェア
IoT システムの中でも、外から家庭の温度や湿度のモニタリングをしたり、家庭の家
電機器を遠隔で操作するなどのホームオートメーション系の応用は、IoT-BOOSTERと
Blynkソフトウェアを利用することで、手軽に開発することができます。
• https://www.blynk.cc/
IoTシステムを動作させるためにはネットワーク接続が必要なため、Arduino UNO R3
を利用する場合は通常イーサネットシールドなども接続する必要があります。しかしなが
ら Blynkでは、USBで接続されている PCをネットワーク接続装置として利用できるた
め、Arduino UNO R3, IoT-BOOSTER, PCのみで IoTシステムの実験を行うことがで
きます。
第 1章 IoT-BOOSTERの紹介 3
1.3 Arduinoでのスケッチ
本製品は、Arduinoのシールドとして開発されています。このためプログラミングは、
多くの利用者が親しんでいる Arduino の IDE を利用して手軽に行うことができます。
IoT-BOOSTER を操作するための基本的な機能はライブラリとして提供しているため、
利用者自身で様々なパターンを表示するスケッチを手軽に作成することができます。
1.4 マニュアルの記載内容に関して
本文書の一部もしくは全部を無断で複写、複製、配布することは、法律で認められた場
合を除き、著作権の侵害となります。
本文書に記載されている製品名などは、一般的にそれぞれの権利者の登録商標または商
標です。
お伝えする内容と本質的な問題がないと判断した場合には、本マニュアルには、旧バー
ジョンの製品の写真や他製品の写真などがそのまま使用されている場合がありますのでご
承知おきください。
本文書は最善の注意を払って作成されていますが、本書に記載されている内容の誤り、
本書に記載されている内容に基づく作業、運用などにおいて、いかなる損害が生じても、
弊社および著者をはじめとする本文書作成関連者は、一切の責任を負いませんのであらか
じめご了承ください。
4
第 2章
部品一覧
2.1 部品表
IoT-BOOSTERキットの部品一覧を表 2.1,図 2.1に示します。部品が不足、破損して
いる場合には、キットを組み立てる前にマイクロファンに問い合わせてください。
図 2.1 部品:写真
2.2 別売品
2.2.1 Arduino UNO R3
本製品には、以下の製品が含まれていませんので、別途ご用意ください。
• Arduino UNO R3あるいはその互換品(必須)
第 2章 部品一覧 5
表 2.1 部品表
部品 シンボル 規格等 個数
プリント基板 IoT-BOOSTER Rev.1 1
IC IC1 VS1838B 1
環境センサー CN1 GY-BM280 1
加速度センサー CN9 GY521:MPU6050 別売り
FET Q1, Q2 2N7000 2
トランジスタ Q3 S8050 1
明るさセンサー Q4 3mm 灰緑 1
発光ダイオード LED1, LED2 3mm 青 2
赤外線発光ダイオード LED3 5mm 透明 1
抵抗 R1, R2, R5, R7 1KΩ 4
R3, R4, R6, R8, R12 10KΩ 5
R9 33Ω 1
R10 22KΩ 1
R11 100Ω 1
R13, R14 330Ω 2
OLEDディスプレイ OLED1 0.96インチ I2C 別売り
セラミックコンデンサ C1, C2 0.1μ F 2
電解コンデンサ C3, C4 100μ F 2
タクトスイッチ SW1-SW4 4
圧電スピーカー X1 1
ピンヘッダ SV1-SV4 1列 1x40PIN 1
CN2-CN7 2列 2x10PIN 1
ピンソケット CN8 4PIN 1
CN11 6PIN 別売り
本製品は Arduino UNO R3のシールドとして開発されています。このため、本製品を
利用するためには、Arduino UNO R3あるいはその互換品が別途必要です。
Arduinoには、R2以前の製品もありますが、それらは、SCL,SDAや IOREFなどのピ
ンソケットの信号が不足しているため IoT-BOOSTERでは使用することはできません。
2.2.2 オプション部品
本製品には、以下の製品が含まれていませんので、必要に応じて別途ご用意ください。
• OLEDディスプレイ
https://store.shopping.yahoo.co.jp/microfan/oled096-128x64-i2c-blue.
第 2章 部品一覧 6
html
• MPU6050 加速度・ジャイロセンサー
https://store.shopping.yahoo.co.jp/microfan/gy-521.html
• DS3231 リアルタイムクロック
https://store.shopping.yahoo.co.jp/microfan/ds3231-rtc-module.
html
• US-015 超音波距離センサー
https://store.shopping.yahoo.co.jp/microfan/us-015.html
• HC-SR04 超音波距離センサー
https://store.shopping.yahoo.co.jp/microfan/hc-sr04.html
• HC-SR501 焦電センサー
https://store.shopping.yahoo.co.jp/microfan/hc-sr501.html
• WS2812B カラー LEDリング
https://store.shopping.yahoo.co.jp/microfan/cjmcu-ws2812-ring-12.
html
https://store.shopping.yahoo.co.jp/microfan/cjmcu-ws2812-ring-24.
html
OLEDディスプレイ
図 2.2に示す別売りの OLEDディスプレイを専用の接続端子に接続することができま
す。OLEDディスプレイは、128x64ドットのグラフィックディスプレイになっており、
様々な情報やメッセージを表示することができるようになります。
図 2.2 OLEDディスプレイ
IoT-BOOSTERでは、基板上に OLEDディスプレイを搭載できるため、様々な情報を
OLEDに表示し確認することができます。
第 2章 部品一覧 7
MPU6050 加速度・ジャイロセンサー
IoT-BOOSTER は、MPU6050 を搭載したセンサーセンサーモジュール (図 2.3) を
装着できます。MPU6050 は加速度センサーとジャイロセンサーが組み込まれた IC で、
XYZの 3方向の加速度と、3方向の回転角を調べることができます。この機能により、特
別な操作をする必要なく IoT-BOOSTERの傾きや回転などの動きを取得することができ
ます。また、付加機能として、温度センサーも内蔵しています。
図 2.3 加速度・ジャイロセンサー
MPU6050の概要は、下記のWEBページに掲載されています。
http://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/
また、このWEBページからMPU6050のデータシートをダウンロードできます。
DS3231リアルタイムクロック
IoT-BOOSTER は、左上部の CN10 に DS3231 にバックアップ電池を付加したモ
ジュール (図 2.4)を搭載することができます。
DS3231は、秒、分、時間、曜日、日付、月、および年の情報を管理する高精度のリア
ルタイムクロック ICです。
DS3231の概要は、下記のWEBページに掲載されています。
https://www.maximintegrated.com/jp/products/digital/real-time-clocks/
DS3231.html
HC-SR04 超音波距離センサー
IoT-BOOSTERは、右下部の CN8に HC-SR04(図 2.5)を搭載することができます。
HC-SR04は計測に超音波を利用した距離センサーです。
第 2章 部品一覧 8
図 2.4 DS3231リアルタイムクロックモジュール
図 2.5 HC-SR04 超音波距離センサー
9
第 3章
IoT-BOOSTERの作成手順
IoT-BOOSTERキットの標準的な作成手順を以下に示します。基本的には、一般的な
電子工作の手順と同様で、背の低い部品から実装していきます。
• 抵抗の実装• FETの実装
• 赤外線レシーバーの実装• セラミックコンデンサの実装• 発光ダイオード、明るさセンサーの実装• 環境センサー GY-BME280の実装
• 圧電スピーカーの実装• トランジスタの実装• 赤外線発光ダイオード• 電解コンデンサ• タクトスイッチの実装• ピンソケットの実装• ピンヘッダーの実装
実際の作成作業に入る前に、一度作成手順全体に目を通しておくことをお勧めします。
抵抗、コンデンサ、発光ダイオード、圧電スピーカー、FET、 トランジスタ,、赤外線
レシーバーなどの 2/3本足の部品のはんだ付けは、まず一つの足をはんだ付けし、部品の
取り付け姿勢などを必要に応じて修正してから残りの足をはんだ付けすると、部品の配置
をきれいに整えて取り付けることができます。はんだ付け後に、基板裏面から伸びて余っ
ている足をニッパーなどで切り取ります。
ピンソケット、ピンヘッダー、ICなどの複数の端子を持つ部品のはんだ付けは、端子
の端の1ピン、もしくは両端か対角上の2ピンをはんだ付けし、部品の取り付け姿勢など
を必要に応じて修正してから残りの端子をはんだ付けすると、部品の姿勢をきれいに整え
て取り付けることができます。
第 3章 IoT-BOOSTERの作成手順 10
3.1 抵抗
抵抗をプリント基板上の所定の位置に取り付けはんだ付けします。抵抗は、数種類の抵
抗値があるため、部品表 2.1で確認して取り付けてください。
3.2 FET
FET Q1, Q2を所定の位置に取り付けはんだ付けします。
FETは、その上に OLEDディスプレイを取り付ける可能性があるので、切欠き面が基
板側になるように、ラジオペンチなどで事前に足を曲げるとともに足の間の幅を広げて基
板に取り付けてください。
3.3 赤外線レシーバー
赤外線レシーバーの端子の根元に近いところをラジオペンチなどで挟んで L 字型に折
り曲げ、赤外線レシーバーの本体が基板に張り付くような姿勢で基板上の所定の位置に取
り付けはんだ付けします。
3.4 セラミックコンデンサ
セラミックコンデンサを所定の位置に取り付けはんだ付けします。
3.5 発光ダイオード、明るさセンサー
発光ダイオード LED1, LED2、明るさセンサー Q4を所定の位置に取り付けはんだ付
けします。
発光ダイオードの端子には極性があり,長い脚のほうがアノード (+)、短い脚のほうが
カソード (-)で、カソード側のプラスティックモールドに切り欠きがあります。
青色の発光ダイオードは、切り欠きを基板のシルク印刷の切り欠き(下)に合わせて取
り付けはんだづけします。
明るさセンサー(フォトトランジスタ)の端子には極性があり,長い脚のほうがアノー
ド (+)、短い脚のほうがカソード (-)で、カソード側のプラスティックモールドの基部に
切り欠きがあります。その切り欠きを基板のシルク印刷の切り欠き(下)に合わせて取り
付けはんだづけします。
第 3章 IoT-BOOSTERの作成手順 11
3.6 環境センサー GY-BME280
環境センサー GY-BME280にまずピンヘッダをはんだ付けします。次に、ピンヘッダ
が付けられた GY-BME280を基板の所定の位置に取り付けはんだ付けします。
3.7 圧電スピーカー
圧電スピーカーを所定の位置に取り付けはんだ付けします。
3.8 トランジスタ
トランジスタ Q3を所定の位置に取り付けはんだ付けします。
トランジスタは、取り付け穴の間隔に合うように、本体に大きな力が加わらないように
注意してラジオペンチなどで事前に足の幅を広げて基板に取り付けてください。トランジ
スタ本体の切りかけ部分とシルクの切りかけ部分の方向を合わせて取り付けてください。
3.9 赤外線発光ダイオード
透明の赤外線発光ダイオード LED3 を所定の位置に取り付けはんだ付けします。赤外
線発光ダイオードの端子には極性があり,長い脚のほうがアノード (+)、短い脚のほうが
カソード (-)で、カソード側のプラスティックモールドに切り欠きがあります。その切り
欠きを基板のシルク印刷の切り欠き(上)に合わせて取り付けはんだづけします。
3.10 電解コンデンサ
電解コンデンサをプリント基板に取り付けはんだ付けします。電解コンデンサの端子に
は極性があり、本体の白い帯と基板のシルクの白塗り部分が合致するように取り付けてく
ださい。
3.11 タクトスイッチ
はじめてタクトスイッチの取り付けを行う際には,タクトスイッチの足がそのままでは
プリント基板に刺さりにくいように思えますが、タクトスイッチの 4本の足を基板の穴に
あてがった状態で、タクトスイッチを基板に強く押し込むとタクトスイッチの足が基板の
穴に入って固定されます。その後、それぞれの足をはんだ付けします。
第 3章 IoT-BOOSTERの作成手順 12
3.12 ピンソケット CN8
4ピンのピンソケットをプリント基板の右下の所定の位置 CN8に取り付けはんだ付け
します。
3.13 ピンヘッダー CN10
ピンヘッダーから、ニッパーなどで 5ピン切り取り、プリント基板の上部の所定の位置
CN10に取り付けはんだ付けします。
3.14 ピンヘッダー CN2/CN3,CN4/CN5,CN6/CN7
2 列のピンヘッダーから、ニッパーなどで 2x3 ピン 2 個と、2x4 ピンを切り取り、
CN2/CN3と CN4/CN5に 2x3ピンのピンヘッダを、CN6/CN7に、2x4ピンのピンヘッ
ダを取り付けはんだ付けします。
3.15 ピンヘッダ SV1-SV4
ピンヘッダから、ニッパーなどで 8ピン2組と、10ピン,6ピンを切り取り、SV1-SV4
の基板の裏面に、それぞれのピンヘッダを取り付け、表面ではんだ付けします。
ピンヘッダのはんだ付けは、まず、それぞれのピンヘッダーの片端の端子をはんだ付け
し、ピンヘッダの取り付け姿勢などを必要に応じて修正してから残りの端子をはんだ付け
すると、ピンヘッダの配置をきれいに整えて取り付けることができます。
3.16 IoT-BOOSTERの作成例
IoT-BOOSTERの作成例を図 3.1に示します。お疲れ様でした。
第 3章 IoT-BOOSTERの作成手順 13
図 3.1 IoT-BOOSTERの作成例
14
第 4章
環境整備とサンプルスケッチ
4.1 Arduinoボードとの接続
IoT-BOOSTERの背面に延びているピンソケットの足を利用して、Arduino UNO R3
ボードに接続します。
4.2 ライブラリのインストール
IoT-BOOSTER の環境センサー BME280 や赤外線リモコン機能を手軽に利用するた
めには、Arduino IDEに制御用のライブラリをインストールする必要があります。
• 環境センサー GY-BME280
• 赤外線 LEDと赤外線レシーバー
• OLEDディスプレイ
• DS3231リアルタイムクロック
• WS2812/NeoPixel カラー LED
Arduino IDEへのライブラリの一般的なインストール法は、下記のWEBページに説
明されています。
https://www.arduino.cc/en/Guide/Libraries
4.2.1 BME280のライブラリ
BME280用のライブラリは、Arduino IDEのライブラリマネージャを利用してインス
トールすることができます。ライブラリマネージャの検索フィルタに [BME280] を入力
して絞り込むと、BME280 用のライブラリは、この文書の作成時点では3個ほど列挙さ
れます。
ここでは、[BME280 by Tyler Glenn] とタイトルが付けられているライブラリを選択
してインストールする例を示します。
ライブラリマネージャのダイアログ上でインストールするライブラリの欄をクリックす
第 4章 環境整備とサンプルスケッチ 15
ると、インストールボタンが表示されるので、最新バージョンを選択して、ライブラリを
インストールします。
このライブラリは、以下の URLで取得することもできます。
https://github.com/finitespace/BME280
図 4.1 ライブラリマネージャを利用した BME280ライブラリの導入
ライブラリのインストール後、Arduino IDE メニューから [ファイル] ⇒ [スケッチ
の例] を選択すると、リストに BME280 フォルダが追加されているのが確認できます。
BME280フォルダの中を確認するといくつかのサンプルスケッチがあり、選択して実行
することができます。
IoT-BOOSTER では、BME280 モジュールは I2C で接続されているので、サンプル
スケッチのうち [BME 280 I2C Test]を選択します。このサンプルスケッチは、温度、湿
度、気圧およびそれらから算出できる値を 0.5秒ごとに取得してシリアルモニタに出力し
ます。
サンプルスケッチはこのままコンパイル、書き込んで実行させることができますが、
温度が華氏であったり標高がフィートだったりするので、サンプルスケッチの 46 行の
boolmetric = false;の falseを trueに変更します。この変更により、温度は摂氏で、標
高がメートルで表示されるようになります。
シリアルモニタの出力が文字化けする場合には、setup() 内で指定したボーレートと、
シリアルモニタの右下で選択できるボーレートが合致していることを確認してください。
4.2.2 赤外線 LEDと赤外線レシーバーのライブラリ
赤外線 LEDと赤外線レシーバーは、IRremoteライブラリを使用すると手軽に利用で
きます。IRremoteは、以下の URLで公開されています。
https://github.com/z3t0/Arduino-IRremote
第 4章 環境整備とサンプルスケッチ 16
ライブラリのインストール
IRremoteは、ライブラリマネージャを利用して簡単にインストールできます。
Arduino IDEのメニューから、[スケッチ] => [ライブラリをインクルード] => [ライ
ブラリを管理...] を選択すると、ライブラリマネージャのダイアログウィンドウが表示さ
れ、インストール可能なライブラリの一覧が表示されます。この中から、IRremoteを選
択すると、リストの右下に [インストール] ボタンが表示されるのでそれをクリックしま
す。ライブラリマネージャの検索フィルタに [IRremote]を入力して絞り込むと、簡単に
見つけることができるでしょう。
ライブラリの利用
Arduino IDE メニューから、[ファイル] => [スケッチの例] を選択すると、リストに
IRremote フォルダが追加されているのが確認できます。IRremote フォルダの中を確認
すると、いくつかのサンプルスケッチがあり、選択して実行することができます。
赤外線リモコンが送信するコードを解析するには、サンプルスケッチ IRrecvDumpV2
を利用するとよいでしょう。赤外線レシーバーでリモコンコードを受信する場合には、赤
外線レシーバーが割り当てられている 11番ピンを指定して irrecv(11)コンストラクタを
使用してスケッチを作成します。
赤外線 LED でリモコンコードを送信する場合には、サンプルスケッチ IRsendDemo
を参考にするのがよいでしょう。
4.2.3 OLEDディスプレイのライブラリ
IoT-BOOSTERの OLED1に OLEDディスプレイを搭載することができます。
OLEDディスプレイを利用するためのライブラリとして、U8g2ライブラリを使用する
例を示します。U8g2ライブラリは、Arduino IDEのライブラリマネージャを利用してイ
ンストールすることができます。ライブラリマネージャの検索フィルタに [U8g2]を入力
して絞り込むと、図 4.2のように表示されます。
ライブラリマネージャのダイアログ上でインストールするライブラリの欄をクリックす
ると、インストールボタンが表示されるので、最新バージョンを選択して、ライブラリを
インストールします。
このライブラリは、以下の URLで取得することもできます。
https://github.com/olikraus/u8g2
また、マニュアルは、以下の URLで参照することができます。
https://github.com/olikraus/u8g2/wiki
ライブラリのインストール後、Arduino IDEメニューから [ファイル] ⇒ [スケッチの
例] を選択すると、リストに U8g2 フォルダが追加されているのが確認できます。U8g2
フォルダの中を確認するといくつかのサンプルスケッチがあり、選択して実行することが
できます。
第 4章 環境整備とサンプルスケッチ 17
図 4.2 ライブラリマネージャを利用した U8g2ライブラリの導入
デモ用のスケッチの中には、[full buffer]、[page buffer]の分類があります。[full buffer]
に分類されているデモは、RAM メモリが十分にある MEGA などを対象にしたもので、
[page buffer] に分類されているデモは、RAM メモリが少ない UNO を対象にしたもの
です。
例として [u8g2] ⇒ [page buffer] ⇒ [GraphicsTest] を選択します。このスケッチは、
デモ用のグラフィック表示を行うものです。
このサンプルスケッチをコンパイル・実行するためには、コメントアウトされたリスト
の中から適切な u8g2コンストラクタを選択するか、自分自身で追加する必要があります。
ここで利用する OLEDディスプレイは、コントローラとして SSD1306を使用しており、
I2Cインターフェースで接続されているので、サンプルスケッチの 60行あたりに、以下
のコンストラクタを追加してください。� �U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE) ;� �
図 4.3 OLEDディスプレイ (SSD1306)用のコンストラクタ
OLED ディスプレイに文字しか表示しない場合には、軽量な U8x8 ライブラリを使用
することができます。U8x8libは U8g2libに組み込まれていますが、両者で利用できるコ
ンストラクタやメソッドは異なっていますので、別のライブラリと考えて利用する必要が
あります。
U8x8ライブラリを利用する場合には、以下のコンストラクタを使用します。� �U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE) ;� �
図 4.4 OLEDディスプレイ (SSD1306)用の文字表示専用コンストラクタ
第 4章 環境整備とサンプルスケッチ 18
このコンストラクタの追加により、文字表示専用のライブラリを使用したスケッチのコ
ンパイル、実行ができるようになります。
4.2.4 DS3231リアルタイムクロックライブラリ
DS3231 を利用するためには下記の URL から入手できる RtcDS3231 ライブラリを
Arduino IDEにインストールして利用します。
https://github.com/Makuna/Rtc
4.2.5 WS2812/NeoPixel カラー LED
WS2812/NeoPixelは CN2/CN3に接続して利用することができます。
IoT-BOOSTER で利用できるカラー LED:WS2812B には、LED の発光制御用の IC
が組み込まれています。この ICのおかげで、カラー LEDの色や明るさを 1本の信号線
で制御できるのですが、その制御信号として、高速かつ正確なタイミングの制御信号を生
成する必要があります。このようなプログラムを作成するためには、MCU(Arduinoのマ
イクロコントローラ:ATmega328P)のマシン語を用いたプログラミングの知識なども必
要になり少々面倒なのですが、Adafruit 社がオープンソースライセンスで公開している
NeoPixel ライブラリ*1を利用すると、WS2812B を簡単に制御することができるように
なります。
NeoPixelライブラリは以下の URLで公開されています。
https://github.com/adafruit/Adafruit_NeoPixel
Adafruitの NeoPixelに関するWebページは次のとおりです。
https://learn.adafruit.com/adafruit-neopixel-uberguide/overview
ライブラリのインストール
NeoPixelライブラリは、Arduino IDEのライブラリ管理機能を利用して簡単にインス
トールすることができます。
Arduino IDEのメニューバーから、[スケッチ] ⇒ [ライブラリをインクルード] ⇒ [ラ
イブラリを管理...] を選択します。図 4.5に示すような [ライブラリマネージャ]ダイアロ
グが開きますので、[Adafruit NeoPixel Library] の項目を見つけてクリックします。な
お、項目をスクロールして見つけるのが面倒であれば、ダイアログの右上の [検索をフィ
ルタ...]と表示されている入力枠に [NeoPixel]と入力すると、候補が絞られます。項目の
右下に [インストール]ボタンが出てきますので、それをクリックするとライブラリがイン
ストールされます。
*1 高機能で利便性の高いライブラリをオープンライセンスで公開されている Adafruit 社に感謝いたします。
第 4章 環境整備とサンプルスケッチ 19
図 4.5 カラー LEDライブラリ
ライブラリの利用
ライブラリがインストールされると、メニューバーの [ファイル] ⇒ [スケッチの例...]
を選択すると、インストールされた NeoPixelライブラリに関する項目が追加されている
ことがわかります。その項目を選択すると、いくつかのデモプログラムが表示されます。
ライブラリのテストとしては、カラー LEDの鮮やかな色の変化を楽しめる strandtest
を使用するとよいでしょう。スケッチを開いたら、#defineで 6が設定されている信号線
PINを 9もしくは 10に設定します。また、Adafruit NeoPixelコンストラクタの1番目
の引数の 60を、実際に接続するカラー LEDの個数に変更します。
4.3 サンプルスケッチの実行
IoT-BOOSTERの利用例として、以下のようなサンプルスケッチを示します。
• スイッチと圧電スピーカー• BLINK:LEDの単純な点滅
• 明るさセンサーの利用• OLEDディスプレイ
• リアルタイムクロック• 超音波距離センサー• RCサーボ
4.3.1 スイッチと圧電スピーカー
SW1-SW3を押すと、それぞれ異なる音を鳴らすスケッチを以下に示します。タクトス
イッチにはプルアップ抵抗がついていないので、対応するデジタルピンの初期化の際に、
第 4章 環境整備とサンプルスケッチ 20
INPUT PULLUPを使用して信号端子の内蔵プルアップを有効にしてください。� �#define SW1 2
#define SW2 4
#define SW3 7
#define SW4 8
#define SOUNDER 13
void setup() {
pinMode(SW1, INPUT_PULLUP) ;
pinMode(SW2, INPUT_PULLUP) ;
pinMode(SW3, INPUT_PULLUP) ;
}
void loop() {
int hz = 0 ;
if (digitalRead(SW1) == LOW)
hz += 200 ;
if (digitalRead(SW2) == LOW)
hz += 400 ;
if (digitalRead(SW3) == LOW)
hz += 800 ;
if (hz != 0)
tone(SOUNDER, hz) ;
else
noTone(SOUNDER) ;
delay(100) ;
}� �図 4.6 スイッチと圧電スピーカーのサンプルスケッチ
4.3.2 BLINK:LEDの単純な点滅
電子工作界の hello world、LEDの点滅スケッチを実行しましょう。
Arduino IDEの [ファイル] ⇒ [スケッチの例] ⇒ [01.Basics]から Blinkを選択してく
ださい。IoT-BOOSTERの LEDは 5番ピンと 6番ピンに接続されているので、スケッ
チの pinMode(),digitalWrite()の第 1引数を 5もしくは 6に変更します。
第 4章 環境整備とサンプルスケッチ 21
� �// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(5, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(5, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(5, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}� �図 4.7 BLINK:LEDの単純な点滅
4.3.3 明るさセンサーの利用
明るさセンサーの値は、analogRead(0) で簡単に読み取ることができます。analo-
gRead(0)の値は、0~1023で、暗いときに 0となります。� �void setup(void)
{
Serial.begin(115200) ;
}
void loop(void)
{
Serial.println(analogRead(0)); // 明るさセンサーの値
delay(1000);
}� �図 4.8 明るさセンサー値のシリアル出力
スケッチがコンパイルされ IoT-BOOSTERに正しく書き込まれたら、シリアルモニタ
を開いてください。シリアルモニタに明るさの計測値が出力されます。
4.3.4 BME280環境センサー
BME280環境センサーを使用する際には、BME280I2C ライブラリを使用します。
BME280I2C ライブラリを使用したサンプルスケッチを図 4.9に示します。ライブラリ
第 4章 環境整備とサンプルスケッチ 22
のサンプルスケッチ BME 280 I2C Testの簡略版です。� �#include <BME280I2C.h>
BME280I2C bme;
#define PRESSURE_HPA 1 // ヘクトパスカル
void setup()
{
Serial.begin(115200) ;
while (!bme.begin()) {
delay(1000) ;
}
}
void loop()
{
float temp ; // 温度float hum ; // 湿度float pres ; // 気圧
// 気圧 (hPa)、温度 (摂氏)、湿度を取得bme.read(pres, temp, hum, true, PRESSURE_HPA) ;
Serial.println("---") ;
Serial.print("Temp: ") ;
Serial.print(temp) ;
Serial.println(" C") ;
Serial.print("Humidity: ") ;
Serial.print(hum) ;
Serial.println(" % RH") ;
Serial.print("Pressure: ") ;
Serial.print(pres) ;
Serial.println(" hPa") ;
delay(1000) ;
}� �図 4.9 BME280環境センサーのサンプルスケッチ
BME280の計測結果を OLEDに表示するサンプルスケッチを図 4.10に示します。
第 4章 環境整備とサンプルスケッチ 23
� �#include <U8x8lib.h>
#include <BME280I2C.h>
// SSD1306をテキストディスプレイとして利用するためのコンストラクタU8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE) ;
BME280I2C bme;
#define PRESSURE_HPA 1 // ヘクトパスカル
void setup()
{
u8x8.begin() ;
u8x8.setFont(u8x8_font_artossans8_r) ;
while (!bme.begin()) {
delay(1000) ;
}
}
void loop()
{
float temp ; // 温度float hum ; // 湿度float pres ; // 気圧
// 気圧 (hPa)、温度 (摂氏)、湿度を取得bme.read(pres, temp, hum, true, PRESSURE_HPA) ;
u8x8.clear() ; // 画面をクリアしカーソルを左上に戻す
u8x8.println("BME280\nEnv. Sensor\n");
u8x8.print(temp);
u8x8.println(" C");
u8x8.print(hum);
u8x8.println(" % RH");
u8x8.print(pres);
u8x8.println(" hPa");
delay(1000);
}� �図 4.10 BME280環境センサーの計測結果を OLEDに表示するサンプルスケッチ
第 4章 環境整備とサンプルスケッチ 24
4.3.5 OLEDディスプレイ
OLEDディスプレイを使用する際には、U8g2libライブラリを使用します。U8g2libラ
イブラリの使用法は、以下のWEBページに紹介されています。
https://github.com/olikraus/u8g2/wiki/u8g2reference
U8g2lib ライブラリを使用したサンプルスケッチを図 4.11 に示します。U8g2lib ライ
ブラリを使用する際には、まず、ヘッダーファイル [U8g2lib.h]をインクルードします。� �#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE) ;
void setup(void)
{
u8g2.begin() ;
u8g2.setFont(u8g2_font_ncenB10_tr) ;
}
void loop(void)
{
u8g2.firstPage() ;
do {
u8g2.drawStr(0, 30, "Hello, MicroFan!") ;
u8g2.setCursor(50, 50) ;
u8g2.print(millis()/100) ;
} while( u8g2.nextPage() ) ;
delay(100) ;
}� �図 4.11 OLEDディスプレイのサンプルスケッチ
OLED ディスプレイに文字しか表示しない場合には、メモリの使用量が少ない軽量な
U8x8ライブラリを使用することができます。U8x8ライブラリの詳細な使用法は、以下
のWEBページに紹介されています。
https://github.com/olikraus/u8g2/wiki/u8x8reference
U8x8ライブラリを使用したサンプルスケッチを図 4.12に示します。U8x8ライブラリ
を使用する際には、まず、ヘッダーファイル [U8x8lib.h]をインクルードします。
第 4章 環境整備とサンプルスケッチ 25
� �#include <U8x8lib.h>
// SSD1306をテキストディスプレイとして利用するためのコンストラクタU8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE) ;
void setup(void)
{
u8x8.begin() ;
u8x8.setFont(u8x8_font_artossans8_r) ; // フォントの指定}
void loop(void)
{
u8x8.clear() ; // 画面をクリアしカーソルを左上に戻す
u8x8.println("MicroFan") ; // println()は文字列の表示後に改行u8x8.println("IoT-BOOSTER\n") ;
u8x8.print("OLED") ; // print() は改行しないので文字列を継続表示できるu8x8.print(" 128x64\n") ; // print()で改行したい場合には\nを指定u8x8.println(millis()) ; // 整数値の表示u8x8.println(123.45) ; // 実数値の表示
delay(1000);
}� �図 4.12 OLEDディスプレイの文字専用出力
4.3.6 リアルタイムクロック
CN10にリアルタイムクロック DS3231を接続して日時表示するスケッチを以下に示し
ます。時間をシリアルモニタに出力する例を 4.13 に、OLED に表示する例を 4.14 に示
します。
リアルタイムクロックモジュールは、最初の状態では適切な日時が設定されておらず、
でたらめな日時が表示されるようです。私の例では、2000年の適当な日時が表示されま
した。
リアルタイムクロックモジュールに正確な日時を設定するのは少し面倒ですが、おお
ざっぱな時間を設定するのは簡単にできます。上記のスケッチの setup()中の2行のコメ
ントを外して実行できるようにしてコンパイルし、スケッチを Arduinoボードに書き込
んで実行すると、コンパイルを行った日時がリアルタイムクロックに設定されます。ス
ケッチのコンパイルとスケッチの実行では少し時間差があるので、リアルタイムクロック
モジュールに 10-20秒程度遅れた時間を設定することになりますが、それなりの日時を簡
第 4章 環境整備とサンプルスケッチ 26
� �#include <RtcDS3231.h>
RtcDS3231 Rtc ;
void setup(void){
Serial.begin(115200) ;
Rtc.Begin() ;
// DS3231の日時を「それなりの値」に設定する場合に、以下の2行をコメントアウト// RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__) ;// Rtc.SetDateTime(compiled) ;}
void loop (){
char dbuff[12], tbuff[12] ;
RtcDateTime dt = Rtc.GetDateTime() ;
sprintf(dbuff, "%04u/%02u/%02u", dt.Year(), dt.Month(), dt.Day()) ;sprintf(tbuff, " %02u:%02u:%02u", dt.Hour(), dt.Minute(), dt.Second()) ;
Serial.println("---") ;Serial.println(dbuff) ;Serial.println(tbuff) ;
delay(1000) ;}� �
図 4.13 リアルタイムクロックのサンプルスケッチ
単に設定できます。この方法は、ライブラリのデモプログラムの中に記載されていたもの
です。
一度リアルタイムクロックに日時を設定すると、リアルタイムクロックは電池でバック
アップされているため、Arduino本体の電源を切っても日時は自動的に更新されます。
第 4章 環境整備とサンプルスケッチ 27
� �#include <U8g2lib.h>#include <RtcDS3231.h>
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE) ;RtcDS3231 Rtc ;
void setup(void){
u8g2.begin() ;u8g2.setColorIndex(1) ; // pixel onu8g2.setFont(u8g_font_unifont) ;
Rtc.Begin() ;
// DS3231の日時を「それなりの値」に設定する場合に、以下の2行をコメントアウト// RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__) ;// Rtc.SetDateTime(compiled) ;}
void loop (){
char dbuff[12], tbuff[12] ;
RtcDateTime dt = Rtc.GetDateTime() ;
sprintf(dbuff, "%04u/%02u/%02u", dt.Year(), dt.Month(), dt.Day()) ;sprintf(tbuff, " %02u:%02u:%02u", dt.Hour(), dt.Minute(), dt.Second()) ;
u8g2.firstPage() ;do {u8g2.drawStr( 20, 32, dbuff) ;u8g2.drawStr( 20, 48, tbuff) ;
} while( u8g2.nextPage() ) ;
delay(100) ;}� �
図 4.14 リアルタイムクロックのサンプルスケッチ
第 4章 環境整備とサンプルスケッチ 28
4.3.7 超音波距離センサー
CN8 に超音波距離センサー HC-SR04 を接続して計測した距離を表示するスケッチを
以下に示します。
HC-SR04の利用には特別なライブラリは必要ありません。Arduinoの pulseIn関数を
利用して、超音波の反射時間を計測して、距離を求めます。
第 4章 環境整備とサンプルスケッチ 29
� �#include <U8x8lib.h>
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE) ;
#define USDS_TRIG 16 // A2
#define USDS_ECHO 17 // A3
#define USDS_TIMEOUT (100*1000) // us
#define ONSOKU (340.0*100) // cm
void setup()
{
u8x8.begin() ;
u8x8.setFont(u8x8_font_artossans8_r) ;
pinMode(USDS_TRIG, OUTPUT);
digitalWrite(USDS_TRIG, LOW) ;
pinMode(USDS_ECHO, INPUT);
}
void loop()
{
int duration ;
float distance ;
digitalWrite(USDS_TRIG, HIGH) ;
delayMicroseconds(10) ;
digitalWrite(USDS_TRIG, LOW) ;
duration = pulseIn(USDS_ECHO, HIGH, USDS_TIMEOUT) ;
if (duration > 0) {
// 音速: 340m/s = 34000cm/s = 0.034cm/us
distance = duration / 2.0 * ONSOKU / 1000000 ;
u8x8.clear() ; // 画面をクリアしカーソルを左上に戻す
u8x8.println("HC-SR04\n");
u8x8.print(duration);
u8x8.println(" us ");
u8x8.print(distance);
u8x8.println(" cm");
}
delay(200) ;
}� �図 4.15 超音波距離センサーのサンプルスケッチ
第 4章 環境整備とサンプルスケッチ 30
4.3.8 RCサーボ
RCサーボも、WS2812/NeoPixelと同様に、CN2/CN3に接続して利用することがで
きます。
RCサーボ用の Servoライブラリは、基本的なライブラリとして Arduino IDEに組み
込まれており、改めてライブラリをインストールしなくても利用できます。
サーボライブラリの詳細は以下の URLを参照してください。
https://www.arduino.cc/en/Reference/Servo� �#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9); // RCサーボを接続する CN2は 9番端子
}
void loop()
{
int pos;
for(pos = 0; pos <= 180; pos += 1) { // 0度から 180度へ
myservo.write(pos);
delay(15);
}
for(pos = 180; pos>=0; pos-=1) { // 180度から 0度へ
myservo.write(pos);
delay(15);
}
}� �図 4.16 RCサーボのサンプルスケッチ
31
第 5章
資料
5.1 IoT-BOOSTERの回路図
IoT-BOOSTERの回路図を図 5.1に示します。
図 5.1 IoT-BOOSTERの回路図
第 5章 資料 32
タクトスイッチにプルアップ抵抗が配置されていませんので、タクトスイッチを利用す
る場合には、対応するデジタルピンの内蔵プルアップ機能を利用する設定を行ってくださ
さい。
5.2 Arduinoボードのピン接続
IoT-BOOSTERに接続する Arduino UNO R3のピン接続を表 5.1に示します。
表 5.1 Arduinoボードのピン接続
ピン番号 CLCD STACKでの利用 備考
D0 - RX: USBインターフェースに接続
D1 - TX: USBインターフェースに接続
D2 SW1
D3 赤外線 LED
D4 SW2
D5 LED1 PWM
D6 LED2 PWM
D7 SW3
D8 SW4
D9 CN2 PWM
D10 CN3 PWM
D11 赤外線レシーバー
D12 CN5
D13 圧電スピーカー
AREF -
SDA I2Cデバイスへ 3.3Vにも変換
SCL I2Cデバイスへ 3.3Vにも変換
A0 明るさセンサー
A1 CN4
A2 CN8:HCSR-04:TRIG
A3 CN8:HCSR-04:ECHO
A4 - SDAとして使用
A5 - SCLとして使用
第 5章 資料 33
5.3 ハードウェア拡張用コネクタ
IoT-BOOSTERには、ハードウェアの拡張を行えるように、Arduinoの信号線の引き
出しコネクタが用意されています。信号線は、CN1-CN2としてまとめられています。
5.3.1 CN2/CN3端子
CN2/CN3端子には、5Vの電源と信号を使用する RCサーボやWS2812カラー LED
を接続することができます。
表 5.2 CN2ピン配置
ピン番号 信号線 備考
1 GND
2 5V
3 D9 デジタル
表 5.3 CN3ピン配置
ピン番号 信号線 備考
1 GND
2 5V
3 D10 デジタル
5.3.2 CN4/CN5端子
CN2/CN3端子と信号線の配置が異なっています。
CN4/CN5 端子には、5V の電源と 3.3V の信号を使用する焦電(人感)センサー
HC-SR501を接続することができます。
また、CN4はアナログ入力として利用することもできます。
表 5.4 CN4ピン配置
ピン番号 信号線 備考
1 GND
2 A1 デジタル/アナログ
3 5V
第 5章 資料 34
表 5.5 CN5ピン配置
ピン番号 信号線 備考
1 GND
2 D12 デジタル
3 5V
5.3.3 CN6: I2C端子 (3.3V)
CN6は、3.3Vの I2Cデバイスを接続するための端子です。多様なセンサーや機器を接
続できるため、システムの機能強化に活用することができます。
I2C信号線にはプルアップ抵抗が必要ですが、CN1に標準で装備されている BME280
モジュールにプルアップ抵抗が組み込まれているため、CN6に接続する I2Cデバイスに
プルアップ抵抗は必要ありません。
CN6のピン配置を表 5.6に示します。
表 5.6 CN6ピン配置
ピン番号 信号線 備考
1 GND
2 3V3
3 SDA 3.3V
4 SCL 3.3V
5.3.4 CN7: I2C端子 (5V)
CN7 は、5V の I2C デバイスを接続するための端子です。多様なセンサーや機器を接
続できるため、システムの機能強化に活用することができます。
I2C信号線にはプルアップ抵抗が必要ですが、IoT-BOOSTERにはプルアップ抵抗が
組み込まれているため、CN7 に接続する I2C デバイスにプルアップ抵抗は必要ありま
せん。
CN7のピン配置を表 5.7に示します。
5.3.5 CN8: 超音波センサー/アナログ信号端子
CN8には、IoT-BOOSTERキットとは別途調達した超音波距離センサー HC-SR04を
接続できます。CN8のピン配置を表 5.8に示します。
CN8は、超音波センサーを利用しない場合には、アナログ信号端子として利用するこ
ともできます。
第 5章 資料 35
表 5.7 CN7ピン配置
ピン番号 信号線 備考
1 GND
2 5V
3 SDA 5V
4 SCL 5V
表 5.8 CN8ピン配置
ピン番号 信号線 備考
1 5V
2 A2 HC-SR04:TRIG
3 A3 HC-SR04:ECHO
4 GND
5.3.6 CN9: 加速度・ジャイロセンサ MPU6050端子
CN9は、加速度・ジャイロセンサMPU6050を搭載したサブボードを接続するための
コネクタで、別途調達したセンサーモジュールを接続します。CN9 のピン配置を表 5.9
に示します。
Arduinoボードとの接続は I2Cで、スレーブアドレスは 0x69です。
電源は 5Vを供給していますが、センサーボードに 3.3Vに変換する電源レギュレータ
が搭載されており、センサーと I2C信号線は 3.3Vで駆動されます。
表 5.9 CN9ピン配置
ピン番号 信号線 備考
1 5V
2 GND
3 SCL 3.3V
4 SDA 3.3V
5 -
6 -
7 AD0 3.3Vに固定
8 -
第 5章 資料 36
5.3.7 CN10: リアルタイムクロック
CN10は、リアルタイムクロック (RTC)の DS3231とバックアップ用の電池を搭載し
たサブボードを接続するためのコネクタで、IoT-BOOSTER キットとは別途調達した
DS3231モジュールを接続することができます。CN10のピン配置を表 5.10に示します。
Arduinoボードとの接続は I2Cで、スレーブアドレスは 0x3Eです。
DS3231は 3.3Vで駆動されます。
表 5.10 CN10ピン配置
ピン番号 信号線 備考
1 3V3
2 SDA 3.3V
3 SCL 3.3V
4 -
5 GND
5.3.8 CN11: デジタル信号端子
CN11は、CN2-CN5で信号端子が不足する際に利用することができるデジタル信号端
子です。CN11のピン配置を表 5.11に示します。
CN11 の信号と SW1-SW4 の信号は共用となっているため、CN11 の信号線を利用す
る際には、該当する信号線に接続されているタクトスイッチの使用を控える必要があり
ます。
タクトスイッチの信号線と CN11の信号線は共用となっていますが、プロアップ抵抗は
接続されていないため、タクトスイッチを押さない限りは、冗長な外部回路が接続されて
いない入出力端子として利用できます。
表 5.11 CN11ピン配置
ピン番号 信号線 備考
1 GND
2 IOREF 5V
3 D2
4 D4
5 D7
6 D8
37
第 6章
購入および問い合わせ先
6.1 ご協力のお願い
製品をより良くし、多くの方々にお楽しみいただけるよう、製品の向上に努めて参り
ます。問題点やお気づきの点、あるいは製品の企画に対するご希望などございましたら、
[email protected]までご連絡いただけますようよろしくお願いいたします。
末永くご愛顧いただけますよう、お願いいたします。
6.2 販売:ネットショップ
製品の販売はネットショップで行っています。対面販売は行っておりません。
• マイクロファン Yahoo!ショップ
WEBアドレス:https://store.shopping.yahoo.co.jp/microfan/
• アマゾンWEBアドレス:https://www.amazon.co.jp/s?merchant=A28NHPRKJDC95B
6.3 製品情報
マイクロファン ラボ
WEBアドレス:http://www.microfan.jp/
マイクロファンの製品情報や活用情報を紹介しています。
6.4 問い合わせ先
株式会社ピープルメディア マイクロファン事業部
E-Mail: [email protected]
TEL: 092-938-0450
お問い合わせは基本的にメイルでお願いいたします。
第 6章 購入および問い合わせ先 38
6.5 所在地
株式会社ピープルメディア マイクロファン事業部
〒811-2316 福岡県糟屋郡粕屋町長者原西 2-2-22-503