BS21 Lab の製品 - 目覚めよ!xxduino!シールド(製品番号:BS21LAB-008)

17/oct/2013 新規
26/nov/2013 更新

RTC(ボタン電池駆動)が指定の時刻になったら、単四電池6本(6〜9V)を Arduino に供給し、スケッチを実行、powerOff 命令で電力供給を停止するシールドです。
例えば、1時間ごとに1分程度だけ電源ONさせて、残り59分は電源OFFにする、という事が可能になります。
また、バッテリーバックアップされた SRAM 64kB も付いています。

  1. 概要
  2. ギャラリー
  3. ご購入方法
  4. 注意事項
  5. 免責事項
  6. 仕様
  7. Arduino Pro について
  8. 組立て方法
  9. 使用方法
  10. 単四電池について
  11. RTC について
  12. ソフトウェア

・概要

以下の様なシーケンスで運用させます。

 @ RTC が指定の時刻になったら、単四電池6本(6〜9V)の電力を Arduino の Vin ピンに供給開始する。
 A Arduino が起動し、一定時間後(Unoは2〜3秒,Leonardoは7秒ほど)に、あらかじめ書き込んでおいたスケッチが実行される。
 B スケッチの途中で、RTC に次の起動時刻を設定する。
 C スケッチの最後で powerOff 命令を実行し、Arduino への9Vの供給を停止させる。RTC と SRAM だけはボタン電池で駆動しつづける。
 D @〜Cの繰り返し。

RTC に指定する時間を、例えば 30 分ごとにすれば、30 分ごとに Arduino を起動させる事ができます。設定次第で 1時間おき、1日おき、1週間おき、などの起動も可能です。
また、定時の起動だけではなく、乱数を使って、例えば 7時00分〜7時59分までの間の適当な時刻に起動させる、という芸当も可能です。

本製品は、基本的に、AC電源が確保できず、電池駆動のみに頼るしかない環境での運用を想定しています。
また、6本あっても所詮は単四電池ですので、大出力の負荷を長時間駆動させつづけるのも、現実的には困難です。
ですので、温度・湿度などを定時・定点観測して、XBee 等でホストPC に送信する、というような運用がメインになると思われます。

本製品は組み立て式キットとなっています。(単四電池と CR2032 は付属してませんので、別途御入手ください。)
表面実装部品(SOタイプ 8ピン)が1つだけ有ります。他はスルーホール部品です。組み立て方は組立て方法を御覧下さい。

<注意1>:Intel Galileo は、Vin ピンは +5V 以上を供給しては駄目なので、絶対に本シールドを接続しないで下さい。
<注意2>:Arduino Proは、動作未確認です。詳細は Arduino Pro について を参照してください。


・ギャラリー

全体写真(単四電池と CR2032 は付属してません):クリックすると拡大します。
View

Arduino 本体より、一回り大きいです。
CompSize

裏側にも電池があります(Arduino本体は付属していません)。
BackView

模式図。仕組み自体は単純です。
模式図



・ご購入方法

本製品は、以下のサイトで取り扱って頂いております。

(株)スイッチサイエンス様


・注意事項

本製品を使用中は、Arduino の DC 電源プラグは接続しないで下さい。一応、逆流防止用ダイオードが入っていますが、部品等が破壊される恐れがあります。

本製品は、基本的には、電源を OFF にした状態で SW の切り替えを行ってください。通電中に SW を切り替えますと、もしかすると IC 等が静電破壊される恐れがあります。
電源を OFF にした状態でも、SW を切り替える時は、静電気を逃がしてから行ってください。

また、本製品は端子等が露出しており、ショートなどで容易に故障しやすくなっておりますので、取り扱いには十分に注意してください。

鋭利な部分も多数有りますので、怪我等に十分に注意してください。


・免責事項

本製品は人命等に関わる装置への利用につきまして、考慮されておりません
また、本製品を使用した事によって発生しました如何なる事象につきまして、弊社は責任を負いかねますので御了承下さい。


・仕様

寸法幅約81.3mm×長さ約78.7mm
高さ約27mm※上面電池ホルダー先端から、下面電池ホルダー先端まで
固定穴φ3.2×4ヶ※Arduino Uno と同じ位置
ボタン電池CR2032×1ヶRTC と SRAM のバッテリーバックアップ用。Arduino 本体には供給されません。
単四電池単四電池×6本6.0V〜9.6V。Arduino 本体の Vin ピンに供給されます

Arduino UNO R3 ピン互換シールド ※Arduino Mega2560 R3 以前の Mega シリーズで動作させるには、TWI 接続に何らかの工夫が必要と思われます。

構造上、そのままでは Arduino Mega や Due には装着できませんので注意して下さい。(単四電池が物理的に干渉します)
間に別のシールドを挟めば、対処できると思います。

Arduino 本体で "Vin" となっているピンは、本シールドでは "Vout" とシルク印刷されていますので、御注意ください。


電源制御 IC TPS2421-1 仕様:
駆動可能電圧3V〜20VD1 で 15V に制限しています。実際は EN が推奨max.5V (絶対max.6V) なので、Vsup≦12V にしてください。
Fault電流約900mAFault LED(赤)が点灯します。
一旦 fault するとロックされっぱなしになるので、単四電池を外し、過電流の原因対策してから、単四電池を入れなおしてください。

TPS2421 が出力中は Good LED(緑)が点灯します。
※ TPS2421 の EN ピン(負論理)が有効の時に、単四電池を装着すると、一瞬、9Vが出力されます。この為、Vout 側にはコンデンサが必須になります。 Arduino 本体はこのコンデンサを持っていますので、本シールドを Arduino に装着する場合は、この問題は気にする必要は有りません。
※ D1 は ESD対策です。単四電池の逆接続対策ではありませんので、単四電池は逆に接続しないようにしてください。


RTC DS1337 仕様:
接続方式TWI (I2C) 方式※スライドSW にて、アナログピン A4〜A5 ピンを使用して接続する方法と、UNO/Mega2560 R3 より増設された SCL/SDA ピンを使用して接続する方法の、どちらかを選択できます
TWI アドレス7bit表記: 0x68
8bit表記: 0xD0+R/W
※ 固定。変更不可
駆動電圧1.8V〜5.5V
カレンダ誤差1日当たり±約2秒
1月当たり±約1分
25℃時。気温によっては更に増減します


SRAM 23LC512 仕様:
接続方式SPI 方式ジャンパーで無効にする事ができます
CS ピンデジタル 4/5/10 ピンのいずれかをジャンパーピンで選択
記憶容量64kB
駆動電圧2.5V〜5.5V


注意:
Arduino に電源供給開始してから、実際にスケッチが動作開始するまで、Uno の場合は 2〜3 秒ほど、Leonardo の場合は 7 秒ほど、かかります。
このタイムラグは Arduino 側の特性ですので、本シールドでは変更する事はできません。ですので、wakeup 日時は、このタイムラグを見越してセットするようにしてください。


回路図:
回路図


<動作確認>
以下の時での動作を確認しています。

・Arduino UNO R3 (Atmel ATmega328P:CLK=16MHz)
・Arduino Leonardo (Atmel ATmega32U4:CLK=16MHz)
・Arduino IDE 1.0.5
・Windows 7 Home Premium SP1 (64 bit)


・Arduino Pro について

Arduino Proですが、回路図を見ると、 ICSP ソケットの Vcc ピンが +3.3V 仕様になっているようです(弊社は Arduino Pro の実物を持っていないので、確認できていません。Arduino Pro の実機をお持ちの方、情報頂ければ幸いです)。
本シールドの v1.00 基板では、このピンは +5V と直結されていますので、もし上記回路図が正しい場合、+5V ラインと +3.3V ラインがショートしてしまいますので、 絶対に Arduino Proに接続しないでください。(この問題、v1.01 基板で修正する予定です)

なお、Arduino Due の同じピンは、テスターで実測すると +5V になってます。


・組立て方法

巨大なので、別ページにしました。「目覚めよ!xxduino!シールド」の組立て方法 をクリックしてください。


・使用方法

★☆★☆★☆★☆★☆★☆
☆★☆ Vio の選択 ★☆★
★☆★☆★☆★☆★☆★☆

基板上に "Vio selector" とシルク印刷されている箇所があります。
御使用の Arduino の Vio 電圧に合わせて、ここのジャンパーピンを、以下の3つのいずれかに設定する必要があります。
御注意!! ここの設定を間違えた場合、ホスト側の TWI 通信機能を破壊する恐れがあります。十分に注意して下さい。

Vio 電圧ジャンパーピンの位置コメント
@+5V 決め打ち5V−VioTWI 通信を 5V で行う必要があるタイプArduino Duemilanove, Arduino Uno(初代,R2,R3), AE-ATmega 等
A+3.3V 決め打ち3V3−VioTWI 通信を 3.3V で行う必要があるタイプArduino Pro(3.3V仕様), Arduino Due
BIOREF に依存IOR−VioIOREF ピンの電圧値(3.3V or 5V のどちらか)を参照すれば良いタイプ
※通常はこの設定を選んでおくのが無難です
Arduino Uno R3, Leonardo や Due 等の IOREF ピンが存在するタイプ

@5V−Vio A3V3−Vio BIOR−Vio


スライドスイッチは SS1, SS2, SS3 の3つあり、以下の様に機能が割り振られています。
記号名称左側右側コメント
SS1Vout Mode"Cont."
Vout 連続出力
"RTC"
RTC アラーム時のみ
Vout の出力方法を選択する
SS2TWI Pullup"0"
Pullup無し
"Up"
Pullup有り
TWI 通信の Pullup 抵抗(10kΩ)を有効/無効にする
SS3TWI PinSel"R3"
Uno R3 拡張ピンを使用
"Old"
A4/A5ピンを使用
Arduino Uno R3 以降は "R3" を、それ以前は "Old" を選択
スライドスイッチ

SS1 の Vout Mode は、通常は RTC 側にします。この場合、RTC がアラームの時にのみ、Vout が出力されます
一方、Cont.側にすると、RTC のアラーム状態に関係なく、常に Vout が出力されるようになります。

SS2 の TWI Pullup は、通常は、Pullup 抵抗を有効("Up")にします。
ただし、本シールド以外にも TWI 通信を行う機器が接続されている場合、Pullup 抵抗は1組(SCL/SDA1つずつ)あればいいので、 本シールドの SS2 の Pullup 抵抗を無効("0")にする事を検討して下さい。(Pullup 抵抗が複数組あると並列化され、無駄に電流が流れます。場合によっては過電流の恐れがあります)

SS3 の TWI PinSel は、本シールドに接続するホスト機(Arduino 等)の SCL/SDA 信号ピンが、Arduino Uno R3 拡張ピンを使用できる場合は "R3" 側に、 使用できない場合(従来の A4/A5 ピンで TWI 通信するタイプ)は "Old" 側に設定して下さい。 この設定を間違えると、TWI 通信できない可能性が有ります。(例えば、Leonardo は "Old" 側だと、まったく TWI 通信できません。)


本シールドを Arduino Uno に取り付けた場合、SS1/SS2/SS3 の足が、Uno の USB コネクタと接触しそうになりますので、 USB コネクタの上面に絶縁テープを貼る等の安全対策を講じる事をお奨めします。
UnoのUSBコネクタ


SRAM Power Sel は SRAM への電力供給方法を選択するジャンパーです。
Bat.バッテリーバックアップ有効powerOff 時でも内容は保持されます。ただし、ボタン電池の消耗が早くなります。
Vioバッテリーバックアップ無効powerOn 時にSRAM が使用できますが、powerOff されると内容が消えます。ボタン電池は RTC のみになるので、長持ちします。
ジャンパー無しSRAM そのものが無効powerOn 時でも SRAM は使えなくなります。ボタン電池は RTC のみになるので、長持ちします。
バッテリーバックアップ有効 バッテリーバックアップ無効 SRAM そのものが無効

SRAM の SPI 通信方式を、従来の 11/12/13 ピンを使用する方法か、もしくは、ICSP ピンを使用する方法のいずれかをジャンパーで選択できます。 この時、3つのジャンパーピンは同時に切り替えてください。
従来の11/12/13 ピンを使用する方法 ICSP ピンを使用する方法

SRAM の CS ピンの割り当ては、T字型した JPCS にて 4/5/10 ピンのいずれかを選ぶことができます。他の SPI 機器と被らないピンを割り当てて下さい。
4デジタル 4 ピンを使用
5デジタル 5 ピンを使用
10デジタル 10 ピンを使用
デジタル 4 ピンを使用 デジタル 5 ピンを使用 デジタル 10 ピンを使用


JPVOUTM は、Arduino で現在の Vout の電圧を計測するためにあります(ただし、約2/5 に分圧しています)。単四電池6本の現在の電圧値の目安を知る事が出来ます。
A0アナログピン A0 に接続
A3アナログピン A3 に接続
ジャンパー無し接続無し
アナログピン A0 に接続 アナログピン A3 に接続

Reset スイッチは、Arduino 本体の Reset スイッチと同様に、Arduino 本体をリセットします。
Reset スイッチ



・単四電池について

アルカリ単四電池の場合、開始電圧は 1.6V なので6本の場合、9.6V になります。電池によっては 1.7V の場合も有るので、その場合、6本では 10.2V になります。
実際は、逆流防止用ダイオードが間に挟まってますので、Arduino に供給されるのは、この値から 0.5V(最大値) を引いた電圧になります。

"エネループ"等のニッケル水素電池(Ni-MH)はテストしていませんが、1本当たり1.2V×6本で7.2Vですので、6本あれば使用できると思います。
※ ただし、本シールドに装着した状態での充電は行わないで下さい。必ず取り外して、専用の充電器で充電する様にして下さい。

電池は使用していくと、だんだんと電圧が落ちていきます。6本合計で 6.0V を切ると、Arduino 本体のレギュレータが 5V を生成できなくなります。
Arduino 本体は、その状態でも何とか動作します(ATmega328P 単独なら、仕様では 4.5V でも動作可能)が、シールドによっては、5V 未満になると、挙動がおかしくなる場合があります。

本シールドには、Vout モニター用の電圧を、アナログピンの A0 か A3 に供給する方法が有りますので、Arduino 側でこれを読み取る事で、電池の現在の電圧値を知る事ができます。
これにより、6.0V 切るあたりで何らかの警告を出す事で、電池の交換のタイミングをユーザーに知らせる事が可能になります。
※ 但し、誤差がありますので、Vout モニター値は真の電圧値を示しているとは限りません。あくまで目安と考えてください。

サンプルスケッチの print_clock_and_batt_cap を参考にして下さい。
Voutモニターの例



・RTC について

RTC のカレンダー機能ですが、ネットに繋げていない PC の内蔵時計と同じ位、ズレます。
使用している水晶発振器の精度が±20ppm(25℃の時)ですので、25℃を維持した環境でも、計算上、1日当たり0〜±1.728秒、1月当たり0〜±53.568秒、の誤差が出ます。 更に、気温によってズレが増減しますので、御使用の環境によっては、これ以上に誤差が出る場合があります。

このズレが問題になる場合は、定期的に、何らかの方法で RTC を校正してやる必要が有ります。
本シールド単独では校正させる方法がありませんので、別の何かが必要です。
例えば以下の様な方法が考えられます。
無線モジュール外部のホスト機から校正の時刻を無線送信し、それで RTC を校正させる
GPS モジュールGPS 情報を受信し、GPS 時刻で RTC を校正させる



・ソフトウェア

DS1337 用の Arduino 用ライブラリを用意しています。
以下の圧縮ファイルをダウンロードし、arduino フォルダの中の libraries フォルダの中に解凍するだけで OK です。
注意:別途、Time ライブラリも必要です。(詳細は 「DS1337RTC ライブラリ」の解説 を御覧下さい。)

BS21Lab-ArduinoLib-DS1337RTC-v1.01b.zip 2013年10月21日版

※ Arduino IDE 1.0.5 で動作確認しています。

アンインストールも、DS1337RTC フォルダーごと削除するだけで OK です。


ライブラリの使い方ですが、巨大なので、別ページにしました。「DS1337RTC ライブラリ」の解説 をクリックしてください。


SRAM 23LC512 の方は、arms22 氏作成の「SPISRAMライブラリ」が使用できます。
詳細は「なんでも作っちゃう、かも。 」の Arduinoで遊ぼう - シリアルSRAMを使ってメモリを拡張する を参照してください。
arms22 氏の「SPI SRAM 23k256 library for Arduino」は 23K256 用ですが、23LC512 でも使用できます。
※もっと大容量が欲しい場合、23LC1024 に置き換える事もハード的には可能ですが、上記ライブラリの改造が必要になるはずです(試してません)。


【御注意】
Windows 用の Arduino IDE でしか動作確認していません。もしかすると、Mac 用や Linux 用の Arduino IDE では、問題が発生するかもしれません。その際は、御連絡下さい。可能な限り対応してみます。(頑張ったが無理だった、という結果になる可能性もあります…)


製品リストに戻る

Copyright (C) 2013 BS21 Lab, All rights reserved.