ボクにもわかる電子工作

Raspberry Pi、IchigoJam、Wi-Fi、BLE、XBee、RN-42、ESP-WROOM-02、ESP32

IchigoJam

[ リスト | 詳細 ]

記事検索
検索

全20ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]

aitendoで販売されているai.robot.Jamの裏面にMixJuiceを接続し、ランドセルを背負うロボットのように見えるIchigoJam用マイコンボードを作ってみました。

イメージ 1
MixJuiceを背負ったairobot.jamで、インターネットサイト「ボクニモワカル for MixJuice」へアクセスしたときの様子。

ai.robot.Jamは、ロボット形状の基板(上部)で作成するIchigoJam互換ボードです。別売りの発射台基板(下部)との2枚で構成します。今回、ロボット基板の裏側にピンヘッダ(足の長いタイプ)を接続し、IchigoJam用ネットワークボードMixJuiceをロボット基板に背負わせてみました。
こどもパソコン「ai.robot.Jam」キット [K-airobotjam]

この写真の接続は誤り(aitendoサイトの写真)
下図はMixJuiceを背負っている様子です。

イメージ 2

MixJuiceの電源は、発射台基板(別売り・下部)のPS/2端子の近くにある5VからMixJuiceのCN5の5V端子へ入力し、MixJuiceのCN6にジャンパピンを差し込みました。
ロボット基板のTXDとRXDのピンは、発射台基板ではGNDになっているので接続しないようにします(ピンを切る)。また、PS/2端子側がロボット基板の正面に来る方向に接続します(aitendoのホームページの写真が誤っているので注意する)。

画面の「ボクニモワカル for MixJuice」はIchigoJam+MixJuice用のコンテンツを提供しているインターネットサイトです。アクセス方法は下記をご覧ください。
IchigoJam + MixJuice用ボクニモワカル for MixJuice:
by ボクにもわかるIchigoJam用マイコンボード

開く コメント(0)

IchigoSoda(モバイル通信4G LTEに対応したIchigoJam互換機・さくらインターネット製)の節電動作の実験を行い、単4アルカリ乾電池4本で20日間(2018/10/28〜2018/11/17)の動作が確認できました。
  • 単4アルカリ乾電池4本で20日間の動作を確認
  • 累計の送信回数は82回。(1日当たり約4回の送信が行える)
  • 単2に換算すると4.4か月・送信回数550回に相当
Wi-Fiの届かない郵便受けに届いた荷物の確認や、遠方に駐車している乗用車の電源検知、野獣捕獲機の状態監視など、さまざまな用途に使えそうです。

以下は、各種の乾電池での換算結果です。
単4アルカリ乾電池  19.4 日間(実験結果) 送信回数82回
単3アルカリ乾電池  49日間(試算値) 送信回数200回(試算値)
単2アルカリ乾電池 134日間(試算値) 送信回数550回(試算値)
単1アルカリ乾電池 317日間(試算値) 送信回数1300回(試算値)
イメージ 1
単4アルカリ乾電池4本で、20日間、節電動作し続けたIchigoSoda。初回の実験につき、プログラムを見直しながら実験したので、実験開始直後の測定値は不正確。

製作方法

製作方法は、下記を参照ください。一部、ハードウェアの改造を伴います。

考察と今後

送信が出来なくなったときの、電池電圧は5.0V(1本あたり平均1.25V)でした。
単4電池は電池の内部インピーダンスが高いので、sakura.ioモジュールが動作しはじめると、電圧降下が生じてしまいます。このため、電池残量が残ったまま、sakura.ioモジュールが送信できない状態となりました。
ちなみに、送信が出来なくなっても、IchigoJamマイコンは動作し続けました。

今回は、実験開始時に、何度かプログラムを修正しました。修正が無ければ、あと数日程度、長く動いた可能性があります。

1日の送信回数は、電池の持ち時間に影響します。仮に2倍の1日8回、累計164回の場合、同じ条件で17日程度、動作する試算になります。1日2回〜8回くらいまでの間で加減すれば良いでしょう。

得られたデータや知見を整理してから、条件を変えて再挑戦してみようと思います。

by ボクにもわかるIchigoJam用マイコンボード


開く コメント(3)

IchigoSoda(さくらインターネット製)をプラスチック製のケースへ組み込み、乾電池駆動の実験を開始しましたので製作方法について説明します。
IchigoSoda=Softbankのモバイル通信4G LTE対応のIchigoJam互換機(さくらインターネット製)
Ambient=IoTセンサ用クラウドサービス(https://ambidata.io
モバイル通信を行うには2本のアンテナが必要ですが、実験のときは想定以上に邪魔になります。ケースへ組み込むことで、アンテナやアンテナケーブルの煩わしい存在を気にしなくて済むようになります。

イメージ 1
秋月で販売されている蝶番開閉式のABS樹脂ケース112-TS(ABS)へIchigoSodaを組み込んだ。アンテナをケースに取り付けることで、実験のときのアンテナやアンテナケーブルの煩わしさから解放された。

乾電池でモバイルインターネット回線を活用

モバイル通信機能を有効に活用したかったので、持ち出して使えるように電池ボックスを取り付けました。乾電池3本の直列接続では電源電圧が約4.5Vとなり、IchigoSodaの動作が不安定となるので、単4のアルカリ乾電池4本をIchigoSodaへ接続しました。

イメージ 2
ケースには、IchigoSodaと、単4電池ボックス(4本・直列・6V仕様)、2本のアンテナを取り付けた。モバイルでの利用を想定。

なお、モバイル環境で、長期間の動作を行うには、省エネ動作が欠かせません。IchigoJam BASICには省エネ機能が標準搭載されているので、モバイルIoTセンサを簡単に製作することが出来ます。

IchigoSodaの裏面の電源入力用テストパッドへ電池を接続

IchigoSodaや電池ボックスはプラスチック製のビスでケースに固定します。本例ではM3(3ミリ)のネジを使用しました。電池ボックスは、多くの場合、皿ネジが必要です。また、M2.6の場合もあります。入手しにくいネジは、モノタロウ(通販)や西川電子部品(秋葉原)、ナニワねじ(大阪・日本橋)などで購入します。

イメージ 3
IchigoSodaの基板背面にある5.0Vへ電池ボックスの赤色の電線を、GNDへ黒色の電線を接続する。IchigoSodaや電池ボックスはプラスチック製のビスでケースへ固定した。電池ボックスには皿ネジが必要。

ビスやコネクタ用の開口部のうち、丸穴加工はドリルで空けて、リーマで広げるだけなので、数分で綺麗に作成することが出来ます。
今回は、キーボード用USBコネクタの開口部に、四角形の角穴加工を行いました。ボクは角穴加工が苦手なのですが、1時間以上かけて、ヤスリで仕上げました。

イメージ 4
苦手なうえに、時間がかかる角穴加工(右)をしてみた。自分なりに満足できる仕上がりだったので、紹介させていただいた。

乾電池を入れずに、マイクロUSB端子から電源を供給する(キーボード使用時)

新品のアルカリ乾電池の電圧は1本あたり約2V程度で、4本だと7〜8Vになることがあります。IchigoSodaは、安定した動作が可能ですが、キーボードが故障する場合があります。キーボードを使用するときは、電池を取り外し、マイクロUSB端子からDC 5Vの電源を供給してください。

イメージ 5
キーボードを接続するときは、必ず、乾電池を取り外し、マイクロUSB端子からDC 5Vを供給する。

IoT向けクラウドサービスAmbientへ電池電圧を送信する

製作した機器へ、単4アルカリ乾電池を取り付け、分圧した電池電圧をIchigoJamのIN2へ入力し、IN2の値をIoT向けクラウドサービスAmbientへ送信します。

イメージ 6
単4アルカリ乾電池4本を取り付け、電池電圧をIchigoJamのIN2へ入力した。

IchigoSodaで省エネ動作を行うには、ハードウェアの改造が必要です。以下の改造を行うことで、より長期間の動作が可能になります(試算で1か月の動作が可能になる)。

より省エネ動作を行うためのIchigoSodaのハードウェア改造
  • WAKE信号の電圧変換回路部・プルアップ抵抗(R4・1kΩ)の取り外し
    取り外す理由:IchigoJamがSLEEPしたときにsakura.ioモジュールがONしてしまう(不具合)
    省エネ効果:17 mW (3.3mA×5V) + sakura.ioモジュールの消費電力

  • Power LED部の電流制限抵抗(R19・1kΩ)の取り外し
    取り外す理由:LED動作による消費電力の削減
    省エネ効果:8 mW (2mA×3.8V)
省エネ動作については、下記のブログ記事も参考になるでしょう。
IchigoSodaを乾電池で省エネ駆動させる方法(2018/9/1):
IchigoSoda基板上のWAKE信号設定スイッチは下の写真のように、上側を左(EN側)に、下側を右(DIS側)にスライドしておきます(上記のブログとは異なる)。

イメージ 7
WAKE信号設定スイッチSW3(上側を左、下側を右に設定する)
また、多回転可変抵抗器を用い、電池電圧を分圧して、IchigoSodaのIN2端子へ入力します。可変抵抗器は、1VでAD変換値100が得られるように調整します。IN2端子に入力された電圧は、BASICプログラムで10回のサンプルの合計値を計算し、1Vあたり送信値1000となるようにして、sakura.ioのクラウドへ送信します。
sakura.ioのクラウドからAmbientへ転送する方法は、下記のブログを参照ください。
sakura.ioからAmbientへデータ転送(2018/5/19)

イメージ 8
送信の様子を、いつでも確認できるように、クラウドサービスAmbientへ送信した。

IchigoJam BASICを使ったIoTセンサ用プログラム

使用した送信用のプログラムを以下に示します。行番号5のT=10は、送信間隔です。T=10は約10時間ごとに送信します。行番号110では、IN2端子に入力されたAD変換値を10回、取得し、変数Aにその総和が保持されます。また、行番号120では、前回送信したときの値との差を求め、200mV以上の変化があったときに送信を行います。
new
1 cls:?"SAKURA IoT TX ANA 44 3
2 ?"CC BY Wataru Kunino
3 ?"ボタン/センサ ニュウリョク BTN
4 S=1:?"ショウデンリョク S=";S
5 T=10:?"ソウシン カンカク T=";T;"ジカン"
10 'ショキカ
20 T=T*720:C=0

100 @MAIN
110 A=0:forI=1to10:A=A+ana(2):next
120 ?" A=";A:if abs(B-A)>200 goto @ON
130 gsb @SLP:C=C+1:if C<T goto @MAIN
140 C=0:goto @ON

200 @ON
210 out 8,1
220 poke #880,1,0,1,0,0,0,0
230 I=!i2cr(#4F,#880,3,#884,3)
240 ?"Status I2C=";I;
250 if I I=(peek(#886)=#80)
260 ?" LTE=";I
270 if I goto @TX
280 gsb @SLP
290 goto @ON

300 @TX
310 X=A>>8:Y=A%256
320 poke #880,#21,#A,1,73,Y,X,0
330 poke #887,0,0,0,0,0,X^Y^#63
340 ?"LTE_Send= ";hex$(X);" ";hex$(Y);" ";
350 I=i2cw(#4F,#880,13)
360 if I ?"ERR" else B=A:?"OK"
370 gsb @SLP:out 8,0:gsb @SLP
380 goto @MAIN

500 @SLP
510 if inkey() cont
520 led 0:wait 300,!S:led 1
530 rtn
2018/10/29 修正
IchigoJam BASIC Ver. 1.2.3で動作確認済み

むすび

以上の製作およびプログラムでは、IN2端子へ分圧した電池電圧を入力することを想定していますが、温度センサや照度センサに変更することで、IoTセンサへの応用が可能です。

IchigoSodaのモバイル通信機能を使うことで、無線LANの届かない場所や、親族の家といった遠隔地や、車や外出時の鞄といったモバイル環境で利用可能なIoTセンサを簡単に実現することが出来そうです。
sakura.io製品:

IchigoSoda/IchigoJam for sakura.io (Amazonでの販売ページ)

sakura.io さくらの通信モジュール LTE (Amazonでの販売ページ)

by ボクにもわかるIchigoJam用マイコンボード
(アドレスが変わりました)

開く コメント(0)

IchigoJam+MixJuiceで100日間、動作し続けるかもしれない、IoT温湿度センサを製作してみました。

前回は、単3電池3本で55日の実証に成功しました。
前回の結果:
このときの結果から、設計上、約2倍の長寿命化を図る改造を施して、再挑戦します。

試算上、4か月の動作期間が見込ます。
しかし、その一方で、ESP-WROOM-02単体では11か月の動作の実績があります。

このまま実証しても、探求心も実証の意義も少ないのです。

そこで、下の写真のように、乾電池を1本、減らして、2本にしてみました。しかも、秋から冬にかけての実験は、夏季よりも電池が早く消耗します。
この条件で100日を超えたら、達成感が得られるのではと考えました。

イメージ 1
こんどは、単3電池2本で100日に挑戦する。懸念点は多いが、あとは待つだけ。

ビニールテープで覆われている部分は、まだ内緒です。成功したら、公開します。


by ボクにもわかるIchigoJam用マイコンボード
(ホームページのアドレスが変わりました)


開く コメント(0)

乾電池で長期間動作が可能なIchigoJamとMixJuiceを使って、IoT温湿度センサを製作してみました。

IchigoJam BASICには3種類の省エネ動作機能が標準装備されています。本ブログでは、下記のページで紹介した[3]Single Shot動作により、IchigoJamを低消費電力で動かします。
IchigoJam スリープ方法:
温湿度センサには、SiliconLabsのSi7021を使いました。Amazonで400円程度、AliExpressだと$2程度で販売されています。接続方法については、下記をご覧ください。
温湿度センサの接続方法:
https://blogs.yahoo.co.jp/bokunimowakaru/56159806.html
下図はIchigoJam、ネットワーク拡張ボードMixJuice、温湿度センサSi7021、アルカリ乾電池をケースへ収容したときの様子です。

イメージ 1
IchigoJam SまたはTへMixJuiceを接続し、単3アルカリ乾電池×3本で電源供給する。温湿度センサには、安価で高性能なSi7021を使用した。

SingleShot動作を行うための製作のポイント

IoT温湿度センサを、どのようなタイミングで動かしましょうか?

多くの場合、予め決めた一定の間隔で周期的に動作すれば問題ないでしょう。また、測定する時以外はIchigoJamは何もせずに、ただ次の周期を待つだけです。

そこで、IchigoJamを低消費電力動作するための方法[3]SigleShotを用いて、20分間隔で周期的に動作させてみます。
具体的には、IchigoJamのSLEEPコマンドを使って、IchigoJamの動作を停止させ、20分後にBTN信号を入力して起動するようにしました。
下図は、MixJuiceのIO16端子をIchigoJamのBTN端子へ接続し、また、IchigoJamのIN4端子をMixJuiceのRST端子へ接続したときの様子です。

イメージ 2
①MixJuiceのIO16端子をIchigoJamのBTN端子へ接続し、また、②IchigoJamのIN4端子をMixJuiceのRST端子へ接続する。
 
MixJuiceは、予め設定した時間が経過するとIO16からリセット信号を出力します。この信号をIchigoJamのBTN端子へ入力することで、IchigoJamをスリープ状態から復帰させます。

    ① MixJuiceに設定した時間が経過するとスリープ中のIchigoJamを起動する
    ② IchigoJamが起動したら、IchigoJam BASICからMixJuiceのリセットをかける
    ③ 温度と湿度を測定し、送信を行う
    ④ 次に起動するタイミングをMixJuiceへ設定する
    ⑤ IchigoJamをスリープへ移行させる
       20分間、おやすみなさい。。。

IoT用クラウドサービスAmbientへ送信する

IoT温湿度センサが測定した温度情報と湿度情報は、IoT用クラウドサービスAmbientへ送信することで、簡単にデータの蓄積と蓄積したデータのグラフ化が可能です。
製作したIoT温湿度センサをAmbientでグラフ化したときの様子を下図に示します。

イメージ 3
製作したIoT温湿度センサからAmbientへ温度と湿度を送信し、Ambientへ蓄積したときの様子。

IchigoJam用 IoT温湿度センサのBASICプログラム

下記は、プログラムの一例です。IchigoJamのファームウェアは、Ver 1.2.3で動作確認しました。古いファームウェアでは動作しない場合があります。
プログラム2行目のxxxxにはAmbientのチャネル番号、3行目のxxxxxxxxxxxxxxxxにはAmbientのライトキーを入力してください。
入力を終えたら、必ず「save 0」でファイル番号0へ保存してください。IchigoJamはスリープ時にプログラムが消えてしまいます。スリープ復帰後にファイル番号0のプログラムが自動的に読み込まれ、プログラムの先頭から実行します。
new
1 uart0,2:?"IoT Envセンサ PS2
2 C=xxxx
3 K="xxxxxxxxxxxxxxxx"
4 T=1200:S=1

100 @CNF
110 out 11,0:out 11,1:wait 300
120 clk:clt:uart 1,2
130 if inkey() cont
140 if tick()>1800 goto @SP

150 ?"MJ APS":wait 40
160 if inkey()<>49 goto 120
170 clk
180 ?"MJ PCT application/json"
190 gsb @RX

200 @I2
210 let[0],#3ae6,#f3,#f5
220 ?i2cw(64,#802,1);:wait 2
230 ?i2cr(64,#806,2);
240 A=([3]>>8+[3]<<8)/37-474
250 ?i2cw(64,#804,1);:wait 2
260 ?i2cr(64,#806,2)
270 B=([3]>>9+[3]<<7)/26-65

300 @TX
310 uart 1:clk
320 ?"MJ POST START ambidata.";
330 ?"io/api/v2/channels/";C;
340 ?"/data"
350 gsb @RX:uart 1
360 ?"{";chr$(34);"writeKey";
370 ? chr$(34);":";chr$(34);
380 ? str$(K);chr$(34);",";
390 ? chr$(34);"d1";chr$(34);
400 ?":";A/10;".";A%10;",";
410 ? chr$(34);"d2";chr$(34);
420 ?":";B/10;".";B%10;"}"
430 ?"MJ POST END"
440 gsb @RX
450 if !S wait T*60:goto @I2

500 @SP
510 uart 1:?"MJ SLEEP ";T
520 wait 40,0
530 if inkey() cont
540 sleep

700 @RX
710 uart 0:clt
720 I=inkey()
730 if I clt:? chr$(I);
740 if tick()<40 goto 720
750 rtn

気になる電池の持ち時間は、なんと!55日間(一例)

この回路構成とプログラムを用いて、実際に何か月間の動作が可能なのかを確認してみました。下図は、Ambientで測定しつづけた実測値です。本例では55日間の動作が確認できました。

イメージ 4
55日間(8週間)の室温と、電池電圧を測った。温度が30℃を超えている日は、エアコンを入れていた様子が分かる。電圧は徐々に下がるが、途中から上昇しているように見える。

この測定では、湿度の替わりに電池電圧を送信してみました。ところが、途中から電圧が上がってゆく様子が見られます。これは、IchigoJamマイコンのAD変換器が電源電圧を基準にしているためで、電池電圧の低下とともにAD変換を行うための基準電圧も低下してしまったためです。

そこで、IchigoJamの入力電圧とAD変換値との関係を求めて補正してみました。入力電圧とAD変換値の関係については、別途、実測で求めました。得られた関係式を用いて、正しい電圧値へ補正した結果を下図に示します。

イメージ 5
55日間(8週間)の電池電圧の推移。補正を行うことで、電圧が下がってゆく様子が良く分かるようになった。

無線LANアクセスポイント停止による影響

期間中のデータを確認したところ、無線LANアクセスポイントが累計2時間にわたって停止していたことが分かりました。この停止中に電池の消耗を10%ほど縮めてしまっていたようです。
とくに、2回目の1.5時間におよぶ停止は、下図からも電池の消耗が明らかです。
例えば、30秒、経過しても接続できなかったときにスリープへ移行するような対策が必要だということが分かり、プログラムを修正しました(プログラムの赤文字部分)。

イメージ 6

むすび

乾電池で IchigoJamを動かし、IoT温湿度センサとして実用的な動作期間(55日)を達成することが出来ました。より長期間、動かしたいときは、単2や単1型に変更すると良いでしょう。
また、動作間隔を長くしたり、MixJuice上のレギュレータを低消費電力のタイプに交換したりすることで、より長い期間の動作も出来るようになるでしょう。

by ボクにもわかるIchigoJam
https://bokunimo.net/ichigojam/ (ホームページのアドレスが変わりました)

開く コメント(0)

全20ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事