人気ブログランキング | 話題のタグを見る

LabVIEW info. Sharing 新館

labview.exblog.jp
ブログトップ
2013年 12月 15日

ルンバ620の充電電力測定

お掃除ロボットも各社から発売されていてどれにしようか迷うほどです。でも実際はあまり悩まずに、このジャンルを開拓したiRobot社に敬意を表してRoomba 620にしました。
愚直な動きのように見えますが、袋小路も人手を煩わすことなくこなすところは良く考えられているように思います。

ルンバ620の充電電力測定_c0023764_1839355.jpg




さて、どのぐらい電力を使っているのか気になりましたので測ってみることにしました。前日からベースステーションに置かれて満充電状態のはずのルンバを30分働かせて、その後のベースステーションの電力を記録してみました。
ルンバ620の充電電力測定_c0023764_1750592.jpg

ほぼフラットで21Wで30分ぐらい充電して、オレンジからグリーンのランプに変わって充電完了となりました。大雑把に言って1時間働かせて20Whぐらいの電力を消費するようです。

ルンバ620の充電電力測定_c0023764_17501153.jpg

グリーンランプがついてからは平均で3.2W消費しています。掃除も充電もしていない22時間はこの状態だろうと考えると、3.2W×22h=70.4Whです。
待機中の電力量の方が3倍以上大きいのはちょっと困ったものです。

本当にミニマムなトリクル充電を行っているのでしょうか。



(131215)

# by wire_works | 2013-12-15 18:18 | 電力モニタ
2013年 12月 10日

最新のN個の総和を逐次求めて波形データとして出力したいと、、

波形データはデータの初期時刻、サンプルの時間間隔がパッケージされているので便利ですが、要素を取り出したり、波形データに戻したりがちょっと手間に感じることがあります。

緊急の相談事があったのでちょっとプログラムを作ってみました。1msecインターバルである程度の量のデータを取り続ける仕事で、最新のN個の総和を逐次求めて波形データとして出力したいということです。Nは固定値ではないとのことですが、測定中に変更するのかどうかは書いていないのでとりあえず動き出したら変更しないということで書いてみました。

最新のN個の総和を逐次求めて波形データとして出力したいと、、_c0023764_2319743.jpg


リングバッファで、ということでしたので更新ポイントを移動するタイプのバッファを使いましたが、動き出したらNを変更しないのであれば移動平均の関数を使ってN倍すれば良いだけなので、もっともっと簡単にできますけど、、。

どうでしょ?

>>>>>>>>

"見えないコメント"ではNは実行中に変更されるということで、作り変えました。
最大限の長さのバッファで更新されるようにして、先頭から指定サイズを積算するようにしました。 この方が素直でしょう。

最新のN個の総和を逐次求めて波形データとして出力したいと、、_c0023764_21422889.jpg


動かしていないのできっとバグがあると思いますが、ご勘弁。ダメなところを(わざと仕込んでいるわけではありませんが、)見つけるのは良い勉強になるかと思います。

i=0のときだけ波形データをシフトレジスタに入れているのは、大事なt=0のタイムスタンプが入っているからです。

こんどはどうでしょ。
(コメント主は地理的に「ユーザー会の北東北支部」には入れないのだそうです。残念ですね~。)





(131211)

# by wire_works | 2013-12-10 22:15 | ひごろの話
2013年 12月 09日

サンプルスケッチで親しむArduino

引っ越しの片づけが進んでArduinoをいじれるようになりました。

今度の職場では地域の人材育成の一環でArduinoに親しんでもらうという企画もできそうなので、たたき台としてLED,力センサー , I2CのLCDを使ったコースを考えてみました。

サンプルスケッチで親しむArduino_c0023764_11561591.jpg


サンプルスケッチで親しむArduino_c0023764_11462053.jpg


Arduino開発環境にはたくさんのサンプルプログラムが用意されていますので、主だったものをピックアップして試していくだけでArduinoで何ができるのか体感することができます。

まず初めは「Blink」です。これはArduinoが正しく接続されているかどうか確認する大事なスタートポイントです。さらにDelay時間を変更して、意図通りArduinoに伝わっていることが分かればちょっと楽しくなるでしょう。

次にブレッドボードの構造の理解です。内部の配線が見えないのでふつうは絵で説明するのですが、分解して見せるのが一番分かりやすいのではないでしょうか。


LEDの+側をDigital 9Pinに接続して、100Ωの抵抗を介してGNDに接続します。初めてのときにはブレッドボードに抵抗の足を差し込むだけでも要領の良しあしがあります。

せっかくなので、BlinkでLEDが点滅するように改造します。
ひとしきり点滅間隔を変えて遊んだあとでサンプルスケッチ「Fade」を開いて動作させてみます。面倒なプログラムなのでプログラムの中味には立ち入らずに、AnalogWriteを使っているということと基板の~マークがPWM出力できる端子であることを確認します。

力センサと100kΩの抵抗を直列接続し、力センサを+5V、抵抗をGNDに接続します。力センサと抵抗が接続された部分をアナログ入力A0Pinに接続します。
サンプルスケッチ「AnalogReadSerial」を使えばシリアルモニターを使って力センサーに加えた力に応じてA0Pinの電圧が変化するのが分かります。寡黙なArduinoが仮想COMポート経由で値を報告してくれます。

Arduinoにもっと表現力をつけるのがLCDキャラクタディスプレイです。I2C接続のモノは信号線が2本で済みますので利用価値がとても高いのです。Wireライブラリで指定されているようにSDAはA4, SCLはA5に接続します。VDDに5V,GNDはGNDに接続するだけでOKです。

このI2C LCDを簡単に使うにはN. MitsunagaさんのライブラリI2CLiquidCrystalを使わせていただくのが一番良さそうです。これでライブラリの追加の仕方も実習できたことになります。
スイッチサイエンスのI2C LCDモジュールは3.3V版と5V版がありますが、どちらもLCDは3.3V仕様を使用していますのでI2CLiquidCrystalライブラリでは3.3Vとして扱います。

この追加ライブラリにもサンプルスケッチ「HelloWorld」がありますので、表示文字数を8文字2行に変更し、コントラストを調整するとできあがり。

力センサの出力をLEDとLCD表示器に表示します。

-----------------------------------------------------------------------------
#include
#include

// initialize the library
I2CLiquidCrystal lcd(35, false);
// | +--- set true if the power suply is 5V, false if it is 3.3V
// +-------- contrast (0-63)
int led = 9;

void setup() {
lcd.begin(8, 2);
lcd.print("Touch");
pinMode(led, OUTPUT);
}

void loop() {
int sensorValue = analogRead(A0);

int brightness = sensorValue/4;
analogWrite(led, brightness);

lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(sensorValue);

delay(100);
}


-----------------------------------------------------------------------------

力センサーは力を増加させると抵抗が減少する特性を持っていますが、力と抵抗をlog-logプロットグラフに書くとおおむね直線になります。この関係式が分かれば、加えられている力を知ることができます。
今回はとりあえず、
力をF, センサーの抵抗値をRとして、定数B=336000, a=-0.806という値を使用します。
F=(R/B)^(1/a)
いい加減ですが、おおむね力に比例する出力がえられます。

-----------------------------------------------------------------------------
#include
#include


// initialize the library
I2CLiquidCrystal lcd(35, false);
// | +--- set true if the power suply is 5V, false if it is 3.3V
// +-------- contrast (0-63)
int led = 9;
float Rm = 100000;
float Vmax = 5.0;
float R0 = 336000.0;
float C = -0.806;

void setup() {
lcd.begin(8, 2);
lcd.print("Touch");
pinMode(led, OUTPUT);
}

void loop() {
float sensorValue = analogRead(A0);
float Vm = Vmax / 1023.0 * sensorValue;
float Vsnr = Vmax - Vm;
float Rsnr = Vsnr / Vm * Rm;
float F = pow(Rsnr/R0, 1/C);

int brightness = F*255.0/450.0;
analogWrite(led, brightness);

lcd.clear();
lcd.setCursor(0, 0);
lcd.print(Vsnr);
lcd.setCursor(0, 1);
lcd.print(F);

delay(100);
}

-----------------------------------------------------------------------------

注意
#includeに続くライブラリ名が表示されていませんが、I2CLiquidCrystal.hとWire.hです。



最後のスケッチがちょっと難しいですが、さらにデータの平均化や関数でひとまとめにする方法などを確認します。



(131209)

# by wire_works | 2013-12-09 11:32 | Arduino
2013年 11月 23日

LabVIEWユーザー会の北東北支部を作ろう会 -Web調査

近々、盛岡に引っ越しますが、Webでどんな方が活躍しているか調べてみました。
「青森 labview」「岩手 labview」「秋田 labview」をキーワードにしてリンクをたどってビッグデータの解析手法で相互関連性などを調べてみたいところですが、地道に手作業で各100件調べてみました。
青森は6件、岩手は7件、秋田は5件で、合計18件見つかりました。企業では青森が3件、岩手が1件ですから、噂通り大学・研究機関の利用者が多いという結果でした。
その中でもActiveに感じられたのは秋田県立大学の先生、秋田高専の先生、青森大学の先生でした。

秋田、青森、岩手でオフ会・研究会・講習会などを企画する場合、移動距離の問題もありますので、「LabVIEWユーザー会」よりも「LabVIEW研究会」「LabVIEW活用情報交流会」みたいな名前にしないと集まりにくいかもしれないなと思い始めました。

だれも興味がわかないようで、まだ問い合わせのメールは1件もありません。やはりこちらからお伺いをたてて回らないと始まらないようです。

訪問記を書いてみようかしらね?

 LabVIEWユーザー会の北東北支部を作ろう会 -Web調査_c0023764_23322793.jpg



(131123)

# by wire_works | 2013-11-23 23:13 | 北東北LabVIEW
2013年 11月 15日

LVQcamの紹介

Webカメラは手ごろな値段で購入できるのがすばらしいと思います。
画角とか、フレームレートとか、解像度などを問わない用途ならばLabVIEWの画像入力手段として十分活用することができます。
去年の今頃「DirectShow対応のUSBカメラの画像収録」記事を書きましたが、その後でLVQcamというフリーのLabVIEWドライバーが提供されているのを知って、ユーザー会などでは紹介していたのですが、このブログではまだ紹介したことがなかったようです。

LVQcamはLabVIEWをベースに、研究・実験・検査システムを開発している(株)イー・アイ・ソルが無料で公開してくれています。展示会などでは音源探査のデモをやっているので同社を知っている方も多いと思います。

ドライバーの名前がQcamとなっているので一般的なWebカメラは使えないと思ってしまいますが、そんなことはありません。

ダウンロードしてLVQcam_100.zipを解凍するとLVQcamDistributeというフォルダがあらわれます。ReadMe.txtによると
「WindowsXP,Vistaの動作するパソコンで、
ロジクール社のWebCam 『QcamOrbitAF』を
LabVIEW8.2.1以降(含むNI-IMAQ3.7.1以降)」で使用することができるドライバーソフトということです。

手持ちのカメラを接続してExampleの「GettingStart.vi」から研究するのが良いかと思います。
ここではBuffaloのBSW20K06Hシリーズを使いました。

LVQcamの紹介_c0023764_20564478.jpg


LVQcamの紹介_c0023764_20565030.jpg



(131115)

# by wire_works | 2013-11-15 10:36 | 画像