Echo SpotとGoogle Homeの消費電力と比較してみました。

Echo SpotとGoogle Homeの消費電力と比較してみました。

アナログ時計表示時や音楽再生時はGoogle Homeの方が省電力でしたが、テキスト文字表示状態では表示部の無いGoogle Homeと変わらないか、若干、勝っているようです

Amazon Echo Spotの消費電力

文字表示(輝度最小)1.8W 参考:Google Home 1.9W
時計表示(輝度最小)2.2W
時計表示(輝度最大)2.6W
音楽再生(音量5)  2.8W 参考:Google Home 2.3W

Echo Spotの消費電力は、表示輝度や表示内容によっても変化します。表示輝度の大小で約0.4W、文字表示と時計表示でも約0.4Wの差が生じ、合計で0.8Wもの差が生じます。
時計表示のときに秒針が動くので、その消費電力が大きいのでしょう。

また、本ディスプレイに限らず、表示輝度を少し下げるだけで消費電力は大きく変化します。例えば明るさを中央(自動明るさ設定はOFF)にした場合の消費電力は文字表示時1.9W、時計表示時2.3Wでした。

タッチパネルで操作ができるので、マウスの近くに設置することに決めました。奥のPC用ディスプレイの消費電力は74W(パソコンを含めると80W以上)。歌詞を見ながら音楽を聴きたいときに、Amazon Echo Spotを使えば、消費電力を30分の1くらいに削減できそうです。
by ボクにもわかるホームページ
https://bokunimo.net/

IchigoJam+バーコードリーダ+レシートプリンタで大人向けレジごっこ

IchigoJamで簡単に大人向けレジごっこ遊びができます。
野菜などの無人直売所で、商品管理や自動レシート発行に利用できるかもしれません。

レーザーを扱うので、未成年者を対象とした活用は、ご遠慮ください。

写真の左側は、ESC/POS 対応のレシートプリンタQR204です。プリンタのシリアルRX端子とGND端子を、それぞれIchigoJamのTXDとGNDへ配線しました。プリンタの電源はDC9V出力のACアダプタで供給します。
右側は小型のバーコードリーダSymcode MJ2090です。こちらは基板上のシリアルTXと5V、GNDを、それぞれIchigoJamのRXD、5V、GNDへ接続しました。

ESC/POS 対応のレシートプリンタQR204とバーコードリーダSymcode MJ2090。プリンタはシリアル入力、バーコードリーダはシリアル出力なので、両方をIchigoJamへ接続することが出来る。

※実験するときは、かならずカバーを閉めること。
拡散されていないレーザーが目に入ると、失明などの大きな傷害を負う恐れがあります。
バーコードリーダの方は、シリアル出力TXを基板から取り出す必要があります。5VやGNDはUSB端子から引き出しても良いでしょう。
下図のバーコードリーダの場合、RS-232C用レベル変換IC用ランドの10番ピンがシリアル出力TXです。また、15番ピンがGNDで、16番ピンが5Vです。
バーコードリーダの基板。RS-232C用レベル変換IC用ランドの10番ピンがシリアル出力TXで、15番ピンがGND、16番ピンが5V。
バーコードリーダに付属の説明書などを見ながら、データ出力形式を「RS-232C」に、データレートを「9600bps」に設定します。はじめに、「facrory default」と書かれたバーコードをスキャンし、続いてInterface Modeの「RS232C Mode」、Baud rate settingの「Baud rate 9600」をスキャンしてください。設定値はFLASHに保存され、次回からは起動するだけでシリアル出力となります。なお、ボクが購入した商品に付属していた説明書は「1D Laser Wired Barcode Scanner User Guide」でした。Symcode MJ2090専用の説明書では無いので、仕様などが曖昧な書き様になっている点に注意してください。
IchigoJam側では、BPS 9600を実行して、シリアル速度を9600bpsに変更してください。
本機は測距センサが搭載されており、紙などを接近させると、自動的にレーザー光が線状に放射されます。照射されないときは、一度、対象物を遠ざけて、再度、接近させてください。
バーコードでスキャンすると、スキャンしたバーコードの数値やコードが、IchigoJamに表示されます。
ご注意:レーザ光が止まっても覗き込まないでください
紙などを接近させると、自動的にレーザ光が線状に放射される。自分や周囲の人の目に入らないように十分に注意する。
プリンタの方は、分解や改造不要で配線だけで動かすことが出来ます。
プリンタで文字を印字するには、シリアルから?命令でテキスト文字を送るだけです。
BPS 9600:UART 1
?"TEST Print":?
ESC/POS 対応のレシートプリンタへ、テキスト文字をシリアル出力して印字してみたときの様子。

レジごっこ用プログラム(2018/7/29追加)

レジごっこ用のプログラムを以下に示します。実行すると、受信したバーコードのデータと、変数FとRの値を示します。変数Fは受信の有無です。変数Rは検索値の一致を示します。
new
1 cls:?"Tester Barcode":?"クニノ ワタル"
2 clv:bps9600:uart0
3 let[4],#6552,#6461,#2E79
4 [0]="4910016200362":'マチウケ モジ 13ケタ
10 @M
20 cls:uart3*F:?"read:";str$(#808):?"F=";F,"R=";R:gsb@R
30 ifFbeep:gsb@T:goto@M
40 waitT*60:goto@M
500 @T
510 copy#808,#940,16:rtn
700 @R
710 uart0:clt:R=0:F=0
720 I=inkey():ifI>31clt:F=1:?chr$(I);
730 iftick()>30goto770
740 ifR=13goto720
750 ifI=peek([0]+R)R=R+1elseR=0
760 goto720
770 ?:R=R=13:rtn
999 bps0:uart1:?"MJ GET bokunimowakaru.github.io/MJ/808.txt
実行すると、バーコードを読むたびに読んだコードをプリンタへ印字します。また、行番号4に書かれた13桁の待ち受け文字と一致すると、変数Rに1を応答します。
read:4910016200362
F=1     R=1
read:4910016200362
F=1     R=1
read:4910066630966
F=1     R=0
read:4910066630379
F=1     R=0
read:9784789842211
F=1     R=0
大人のレジごっこをお楽しみください。

by ボクにもわかるIchigoJam用マイコンボード
https://bokunim
o.net/ichigojam/


以上の記事では、シリアル信号を基板から取り出していますが、PS2を利用したほうが、より簡単に扱えるようになります。本機のマニュアルにはPS2対応と書かれているので、いろいろと試しましたが、いまのところPS2での動作は成功していません。以下は試行や調査したときの関連情報です。
【情報提供依頼】
本バーコードリーダーは、PS2出力にも対応していますが、設定するためのバーコードが記載されていませんでした。PS2へ接続する方法をご存知の方は、教えてください。
【試してみたこと・確認してみたこと】
  • 通常のWindows PCへ接続してみたが、PS2キーボードとして認識しなかった。
  • 他の機種のマニュアルに掲載されているPS2キーボード設定のバーコードを読んでみたが、PS2接続はできなかった。
  • IchigoJamへ接続し、PS2信号を確認すると、キーボードが無い状態と同じ状態となる。
    電源ONと同時に、CLOCK(D+)とDATA(D-)がHレベルになり、約1.5秒後にCLOCK(D+)がLレベルに、その0.2μs後にDATA(D-)側がLレベルになる。CLOCKは約1μs以内にHレベルへ復帰するが、DATAはLレベルのままになる。このあと、本来であれば、デバイス側(バーコード側)がCLOCKをLレベルに遷移させるはずだが、その動きがみられない。
  • D+のプルアップ抵抗を外してみたが、PS2接続が出来なかった。
【USB/PS2判定方法】
NXPのUSBキーボード用の制御IC M68HC08のリファレンス資料「USB and PS/2 Multimedia Keyboard Interface」によると、以下のような方法でUSB/PS2の自動切り替えを実現しています。
USBロースピードのデバイス(キーボード側)は、D+(CLK)が1.5kΩでプルアップされています。このため、起動直後は、、D+(CLK)はHレベルとなります。
その後、USBの場合は4us以内にUSBリセットでLになります。このとき、D+(CLK)がLにならない(USBリセットが来ない)場合はPS2と判断します。
しかし、タイミングによってはPS2の場合もホストからD+(CLK)のLが来ます。その場合はUSBリセットの完了またはPS2のクロック解除後に次の第2の判定処理を行います。
第2判定処理においても、D+(CLK)を監視します。USBデータがあればデータの検出を試み、USBデータを検出すればUSBと判定します。データがHレベルのまま1ms以上、変化が無ければPS2と判断します。
第1・第2のどちらの場合も、不定な状態が10秒以上、継続した場合は、USBと判定します。
【PS2の動作】
             ───┐   ┌───────────────────
Host Clock      └───┘
             ──────┐  ┌───┬───┬───┬───┬─
Host Data          └──┴───┴───┴───┴───┴─
             ────────┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌
Device Clock         └─┘ └─┘ └─┘ └─┘ └─┘
             ───────────────────────────
Device Data
──────┼←→┼←────────────────
送信     ホスト送信データ
要求
下記から転用
by ボクにもわかるIchigoJam用マイコンボード

たった160バイトのドライバで表示するIchigoJam×I2C液晶モジュール

IchigoJam S/TのCN5端子から液晶モジュールへ配線し、たった160バイトのドライバでテキスト文字を表示してみました。
IchigoJam-FANグループのRuria Amanagi  さんからのアドバイスで、136バイトまで短縮できました。
たった160バイトのドライバでテキスト文字を表示できた
ドライバ部を含むサンプルプログラムを以下に示します。ドライバは、行番号996~998です。

1 cls:?"I2C LCD Driver 2
2 ?"by Wataru KUNINO
3 gsb @LC_INI

995 end
996 @LC_INI:let[96],64,2,#C0,#5639,#C6C:ifi2cw(62,#8C5,5)?"E
997 @LC:ifi2cw(62,#8C1,2)+i2cw(62,#8C0,1,#900,16)+i2cw(62,#8C3,2)+i2cw(62,#8C0,1,#920,16)?"E
998 rtn

液晶については、AE-AQM0802, AE-AQM1602A, AQM1602Yの3種類で動作確認を行いました。初期化コマンドを 4バイト(+制御1バイト)に抑えている点や、待ち時間を省略している点など、LCDコントローラHD44780の仕様から逸脱している部分がありますが、AE-AQMシリーズに搭載されているLCDコントローラST7032で一定の動作確認済みです。
詳細情報:I2Cキャラクタ液晶LCDの接続方法
by ボクにもわかるIchigoJam用マイコンボード

IchigoJam用 IoTセンサ端子CN5専用・変換アダプタの製作

IchigoJam TやS、IchigoSodaに実装されているIoTセンサ端子CN5へ、温湿度センサを直接、接続したい。
そう思って、写真のように温湿度センサを取り付けてみました。
少し、写真のセンサの根元を見てください。
このセンサのピン配列がCN5の配列と異なっているので、変換アダプタを経由しています。
IchigoJam TのCN5に温湿度センサSi7021を変換アダプタ経由で取り付けた。
今日のメインは、この変換アダプタの製作方法。
さて、この変換アダプタの製作ですが、秋月で販売されている下図のような変換基板を使えば、見た目ほど難しくはありません。
100⇔300mil変換基板 両面ガラス・スルホール基板 40P 分割タイプ
秋月の商品名である「100⇔300mil変換」からは用途が異なりますが、この基板を使えば、配線の入れ替えが比較的簡単です。通常のユニバーサル基板と同じ2.54mmピッチのハンダ付けで作れるからです。
まずは、GND、SCL、SDAの3本を下図のように配します。
GND、SCL、SDAの3本を配線した。3.3VとGNDを交差させるため、本面ではGNDのみを配線した。
次は裏面です。ポリウレタン導線を使って3.3VとVINを配線します。この面では加熱の痕が残っているにも関わらず、半田が馴染んでいませんが、表面の方で、きっちりとハンダ付けしておけばOKです。
裏面で3.3VとVINを接続した。加熱の痕が残るほど加熱したが、ポリウレタン線の絶縁は溶けず、表面で導通を確保した。
あとは、ピンヘッダとソケットを、間違わないように取り付けます。先にソケットを基板にピッタリと密着させた状態でハンダ付けしました。ピンヘッダは基板と平行になるようにしました。
ソケット(写真・手前)は基板に密着させて表面(写真・奥)でハンダ付けを行った。ピンヘッダ(写真・奥)は、はじめに1ピンだけハンダ付けし、少し溶かして角度を調節し、平行になってから残りのピンをハンダ付けした。
これで、見た目の良いIoTセンサの完成です。
センサから値を取得するためのプログラムは、下記を参照してください。
安価で高性能な温湿度センサSi7021をIchigoJamに接続
もちろん、IchigoSodaでも動作します。
by ボクにもわかるIchigoJam用マイコンボード

安価で高性能な温湿度センサSi7021をIchigoJamに接続

IchigoJamで使用可能な安価なI2C接続の温度+湿度センサを見つけたので、接続してみました。
購入した温湿度センサはSiliconLabsのSi7021です。Amazonで400円程度、AliExpressだと$2程度で販売されています。
Amazonでの販売例:
IchigoSodaの登場など、IoT用途への期待が高まるIchigoJamですが、IoTセンサの基本となる環境センサとなると、I2Cの相性の問題や、得られたデータの処理などに悩むことも多いでしょう。
ここでは、手っ取り早く環境センサの実験を行えるよう、SiliconLabsのSi7021のサンプル・プログラムを紹介します。もちろん、IchigoSodaでも動作します。
ハードウェアは、SiliconLabsのSi7021を搭載した下図の環境センサモジュールと、IchigoJam Tを用いました。
モジュール基板上には3つの型番が書かれていますが、搭載されているセンサはSi7021です。
SiliconLabsのSi7021を搭載した環境センサモジュール。Amazonで400円、AliExpressで$2で売られている。ピンヘッダをハンダ付けするときは、センサ部へ半田やフラックスが付着しないように、十分に注意する。裏面でハンダ付けしたほうが、センサは保護できるが、裏面は裏面で周辺部品が近接するので。。。
これらの各ピンをIchigoJam TのCN5へ接続するのですが、残念ながらピンの順番が異なるので、ジャンパワイヤーなどで繋ぐ必要があります。下表のIchigoJam Tの信号名の前に付与した数字は、IchigoJamのCN5の手前側を1番ピンとしたときのピン番号です。
Si7021  IchigoJam T
1. VIN -----— 2. 3.3V
2. GND -----– 1. GND
3. SCL -----– 3. SCL
4. SDA -----– 4. SDA

IchigoJam BASIC用プログラム

以下に環境センサから情報を取得して表示するプログラムを示します。IchigoJamのファームウェアは、Ver 1.2.3で動作確認しました。短縮形i2cw命令を使用していたり、 i2cr命令の相性などの問題で、古いファームウェアでは動作しない場合があります。

1 ?"Humidity Sensor SILICON LABS Si7021
2 'if ver()<12348 stop
100 'MAIN
110 let[0],#3ae6,#f3,#f5
120 if i2cw(#40,#800,2) stop
130 if i2cw(#40,#802,1) stop
140 wait 2
150 if i2cr(#40,#806,2) stop
160 A=([3]>>8+[3]<<8)/37-474
170 if i2cw(#40,#804,1) stop
180 wait 2
190 if i2cr(#40,#806,2) stop
200 B=([3]>>9+[3]<<7)/26-65
210 ?"Tempr=";A/10;".";A%10;" ";
220 ?"Humid=";B/10;".";B%10
230 wait 300
240 goto 120

プログラムの処理内容

行番号120で初期化コマンドをSi7021へ送信し、行番号130で温度取得コマンドを送信します。温度の取得が完了するまで33msだけ待ってから、行番号150で温度値を受信します。
湿度についても、行番号170~190で同様に取得します。
行番号160と200は、I2Cからの受信データから温度値と湿度値の計算部です。定数がSi7021のデータシートと異なるのは整数演算での誤差を最小化するための工夫です。また、湿度の方は補数の演算を避けるために符号ビットを使わないようにしました。
取得結果は、温度値、湿度値ともに10倍値にしました。表示するときは、整数部に10で割った値を、小数部にその余りを出力してください。

ケースへ入れ、乾電池で駆動してみる

下図は、Wi-FiネットワークボードMixJuiceと、乾電池を接続し、ケースに入れたときの様子です。
IchigoJam、MixJuiceの省電力機能を利用することで、温度と湿度を長期間(数か月)にわたって送信し続けるIoT環境センサを作成することが出来ます。
IchigoJamを使ったIoT環境センサの製作例。
このIoT環境センサ(ハードウェア)を使って、クラウドサービスAmbientへのデータ送信を開始しました。
Ambientへ送信中
ソフトウェア(IoT環境センサ用のプログラム)は、MixJuiceを使って、下記へアクセスして、ダウンロードすることができます。
ボクにもわかるMixJuice ホームページ
?"MJ GET bokunimowakaru.github.io/MJ/0.txt"
メニュー[8]→[8]→[25]
製作したIoT環境センサから温度と湿度情報をクラウドへ送信を開始したときの様子。乾電池で数か月の動作が可能な見込み。

雑談

現在は、様々なメーカーから半導体温湿度センサが販売されていますが、半導体温湿度センサと言えば、スイスのSENSIRION社が有名でした。
下図は2012年に1個3000円で購入したSENSIRIONのSHT71です。もともと、ピンヘッダがついていたのですが、実は、2.54ミリピッチだと勘違いして購入し、あまりの小ささに驚きました。

また、各種のI2Cデバイス向けのドライバ部のIchigoJam用プログラムを作成するための情報を、下記に公開しています。IchigoJam TのI2Cデバイス用端子CN5を活用したモジュールが、次々に登場することを願っています。
ボクにもわかるI2Cインタフェース方式
by ボクにもわかるIchigoJam用マイコンボード