カテゴリ:活動(電気)( 30 )
スマホ用ダミーバッテリーを作る
 最近、スマホを買い換えたのだけど、古いGalaxy Noteも枕元でちょっと使うには十分な性能を持っているし据え置き機として活用してやりたいと思った。
 充電器につなぎっぱなしにするのが簡単だけれど、めったに発火などはしないとは言え、リチウムイオン電池は小さな爆弾のようなものだし、バッテリー自体膨らんできているので気持ちが良いものではない。そこでバッテリーレスで駆動するためにダミーバッテリーを作成することにした。ちょっと実験したところ、Galaxy Noteではスマホのバッテリー端子の+と-に4vくらいの電圧をかけてやれば普通に起動するようだ。

 まずは手元にあった4.5mm厚のベニヤ板をバッテリーケースに合うように切り出した。これはバッテリーより少し薄い(バッテリーは5.5mm厚程度)。左右が空いているのはバッテリーケースの底が丸くなっているのでそれを避けたため(ケース上部に出っ張りがあるし、ぴったりに切り出したのでカタカタ動いたりはしない)。
a0008202_1134722.jpg

 次に両面ユニバーサル基盤を適当に切り出し、本体側バッテリー端子の+と-に合うところに0.1mm厚の燐青銅板を半田付け。
a0008202_1144597.jpg

 そしてベニヤ板の一部を基板取付部として切り欠き、両者をゼリー状瞬間接着剤で固定し、電線を半田付けしホットボンド固定。電線は裏ふたに穴を開けて外に出してある。
a0008202_1144981.jpg

 これに4.3v ACアダプタから電気を供給してやると普通に起動した。
a0008202_1145290.jpg


 しかし、ACアダプタが古いせいか、電圧の安定性が良くなく5回に1回くらい起動途中でコケてしまう。そこでACアダプタとの接続用の小さな箱を作り、6.3v 1000uFと47uFの2つの電解コンデンサを入れてやった。これで起動に失敗することもなくなった。
a0008202_115567.jpg


 やはり安心して使えるのは良いものです。想定通り、毎日枕元でネットラジオを流したりして稼動しています。
[PR]
by r34_gtt | 2015-08-17 01:34 | 活動(電気) | Comments(1)
mbedはじめました(3)
 うまくいったので、シンプルな常点灯パワーパックを作ってみることにします。ほとんどLPC1114とモータードライバ(BD6231)だけで出来ているような物です。
a0008202_23304161.png
(クリックすると大きくなります)

a0008202_23174220.jpg


 プログラムも実にあっさりしたものです。1/50秒毎に方向スイッチ、常点灯ボリューム、スピードボリュームの値を見てPWM出力でモータードライバを制御します。
---------------
#include "mbed.h"

AnalogIn vThin(dp9);
AnalogIn vIlin(dp10);
AnalogIn vDirin(dp11);

PwmOut rPwm(dp24);
PwmOut lPwm(dp18);

Ticker tick1;
float fDir;

void tick(){
fDir = vDirin;

if (fDir <= 0.1f){
rPwm = 0.0f;
lPwm = 0.0f;
}
else if (fDir > 0.1f && fDir < 0.4f){
rPwm = 1.0f;
lPwm = vIlin * 0.3 + (1 - vIlin * 0.3) * vThin;
}
else{
lPwm = 1.0f;
rPwm = vIlin * 0.3 + (1 - vIlin * 0.3) * vThin;
}
}

int main() {
// PWM周期33usec(30KHz)
rPwm.period_us(33);
lPwm.period_us(33);

// 割り込み周期0.02秒間隔
tick1.attach(&tick, 0.02);


while(1) {
}
}

---------------
 当然一発で動作。しかし、何かおかしい。
 2つのPWM出力でPWM周波数が少し違うし、片方のPWM出力はなんだかガタガタと、2%単位くらいでしか変化しない。そう、プリスケーラーの仕業です。
 mbedライブラリのソースを調べると、pwmout_api.cの中に次のようなところがある。
-pwmout_api.cより-------
(前略)
    if (timer == LPC_TMR16B0 || timer == LPC_TMR16B1) {
/* Set 16-bit timer prescaler to avoid timer expire for default 20ms */
/* This can be also modified by user application, but the prescaler value */
/* might be trade-off to timer accuracy */
timer->PR = 30;
}

(後略)
---------------
 16bitタイマーが割り当たっているPWM出力ピン(dp18)では30のプリスケーラーが設定されています。48MHzで動作するマイコンで、PWM周波数が30KHzの場合、PWMのデューティの分解能を1600段階持つことができますが、プリスケーラー30が設定されていると50くらい(つまり2%刻み)しか分解能を持つことができません。
 本アプリでは16bitタイマーでもプリスケーラーなしでもオーバーフローすることはないので、“timer->PR = 0;”としてしまいました。
 mbedライブラリソース(mbed src)の自プロジェクトへの取り込みはmbedの中を覗くのサイトが参考になりました。そのほかにもmbed関連の情報が載っていて助かります。
[PR]
by r34_gtt | 2015-05-24 23:25 | 活動(電気) | Comments(0)
mbedはじめました(2)
 さて、簡単すぎるF401REのLチカで遊んでいても仕方ないので、たった140円で買えるLPC1114FN28にターゲットを変更します。
 140円とはいえ、そのスペックは立派な物です。
・ARM Cortex-M0 32-bitマイコン
・50MHzクロック(Max)、Flash:32KB、RAM:4KB
・UART x1、SSP/SPI x1、I2C x1、ADC x6、タイマ:32bit x2/16bit x2 、systickタイマ、ウオッチドッグタイマ、GPIO x22
・パッケージ:DIP28 ←重要

 F401REのようなボードタイプではなく単体のマイコンなので、LPC-LINK2というJTAG/SWD(プログラム書き込み機兼デバッガ)を使用してプログラム書き込みをする準備をします。
(1) まずLPC-LINK2のドライバ、ファームウェアなどダウンロード、インストールしてuVisionからCMSIS-DAPデバッガとして使用できるようにします。
(2) 次にオフライン開発環境を整備します。無料で使用できるMDK-ARM (uVision) Lightをダウンロード、インストールします。私はオンライン開発環境と相性が良い4.74の方をインストールしました。
(3) LPC-LINK2とLPC1114の接続は当然SWDで、LPC-LINK2の端のLPCxpresso用コネクタを使用して接続します(秋月のLPC1114の説明書の2ページ目に結線が記述されています)。LPC-LINK2のピンアサインはこちら
(4) 最後にオンライン開発環境からLPC1114のサンプルLチカをエクスポートしてuVisionにインポート、ビルドしてターゲット(LPC1114)に書き込みます。とりあえずLEDを1個付けてLチカです。先の記事のようなPWMで明暗のコントロールはLPC1114のLED1端子(dp14)ではできないので、PWM1端子(dp24)にLEDを接続しました。
a0008202_01175.jpg
(クリックすると大きくなります)

 既に基板上には次の実験のための用意をしてあります。
[PR]
by r34_gtt | 2015-05-02 00:13 | 活動(電気) | Comments(0)
mbedはじめました
 突然、またワンチップマイコンの類をいじりたくなった。

 最近のマイコン事情を調べてみると、安い物では百円くらいから、5千円出すとかなりリッチな環境が手に入る事が分かった。そして百円くらいと言えども、昔とはマイコンの能力やライブラリの充実度などがまったく異なる。

 代表的な物をいくつか挙げると
arduino
 AVRマイコン。オープンソースハードウェアの先駆け。シールドと呼ばれる種々の拡張基盤が売られている。
mbed
 ARMマイコン。Web上のオンライン統合開発環境で開発(オフラインもある)、USBメモリへの実行ファイルコピーでマイコンにプログラムがダウンロードされる。
raspberry pi
 教育用ワンボードマイコン。最近raspberry pi2が出てハードが著しく強化された上に、Windows 10の提供も発表されている。

などなと。それぞれに特色があるが、少なくとも昔のPICをいじっていた頃の無駄な苦労(書き込みハードやマイコン毎の違いなどの学習)を減らす工夫がされている。

 中でも個人的にはmbedの言語仕様の美しさが気に入ったし、一家に一個はある?USBシリアル変換器があれば百円位で始められる所も良いと思ったので、mbedを環境として選ぶことにした。

 そうと決まれば秋月で買い物だ。
NUCLEO-F401RE 1500円
 mbed対応のCortex−M4コアのマイコンボード+書き込み/デバッグボードが一体化しているもの。この内容で1500円は安い。
LPC1114FN28 140円
 Cortex-M0コアのマイコン単体。ARMマイコンで貴重なDIP品。マイコン単体の場合、USBシリアル変換器やSWD(Single Wire Debug)でプログラムを書きこむ。
LPC-LINK2 2800円
 JTAG/SWDボード。書き込み、デバッグ時にUSBシリアルより便利だし、LPC1114の一個しかないシリアルを塞ぎたくないのて購入。

 まずはF401REでLチカ。

(1) mbedサイトでユーザ登録。使用するmbedデバイスも登録(うちの場合はF401REとLPC1114)
(2) F401REのドライバ(“Related Tools and Software”のところ)をダウンロードしてインストール。F401REをUSBで接続。
(3) mbedサイトのオンライン開発環境で新規プロジェクト→サンプルLチカを選んでコンパイル。そうすると実行ファイルがダウンロードされるので、F401REを接続した時に出来たUSBメモリに保存する。
(4) 自動的に実行ファイルがF401REのマイコンに書き込まれ、実行される。

 事前に学習していたとはいえ、(1)から(4)まで10分足らず。恐ろしい程の取っ付きの良さです。

 サンプルLチカを改造して、0.01秒間隔でタイマ割込をかけ、LEDをPWM制御で1%ずつ明るく/暗くするようにするのもあっという間。ちなみにコードは↓こんな感じ。実に直観的でかつ言語的にも美しい。

---------------
#include "mbed.h"

Ticker toggle_led_ticker;

PwmOut mypwm(LED1);

float fDuty;
float fAdd;

void toggle_led() {
if (fDuty >= 1.00f){
fAdd = -0.01;
}
else if (fDuty <= 0.00f){
fAdd = 0.01;
}
fDuty += fAdd;
mypwm.write(fDuty);
}

int main() {
fDuty = 0;
fAdd = 0.01;
mypwm.period_ms(1);

toggle_led_ticker.attach(&toggle_led, 0.01);

while(1) {
}
}

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

 次はターゲットをLPC1114に変え、更にオフライン開発、LPC-LINK2での書き込みにチャレンジしてみます。
[PR]
by r34_gtt | 2015-04-21 23:36 | 活動(電気) | Comments(0)
(家の)電気いじりいろいろ
電気関係の作業は色々やりました。

感触が怪しいスイッチや口数が足りないコンセントはPanasonicのコスモシリーズワイド21の物に交換。
a0008202_142441.jpg


お風呂の換気扇スイッチはタイマースイッチ(Panasonic WN5294)に。
a0008202_1424850.jpg

これもコスモシリーズワイド21にしたかったのだが、WN5294と同等のものがあえなく廃版(WTC53946W)。
後継品WTC53935Wはやたら細かくタイマー時間が設定出来るのが気に食わないので却下。

シーリングライトはほとんど新規購入する必要がありました。この際だし、値段も安くなったLEDシーリングライトに。
リビングは光量の大きい10畳用の東芝 LEDH91044-LC(光色(白色⇔電球色)、明るさの調整機能付き)、その他はシンプルな6畳用のPanasonic HH-LC464N(明るさの調整機能付き)。前者は7千円台、後者は4千円台で入手できたので、蛍光灯シーリングライトに比べてもバカ高ではありませんでした。
a0008202_0382799.jpg
(なんとなくカバーなしでHH-LC464Nを点灯させてみた)


常夜灯機能付き電球型LED(Panasonic LDA9LGKURKW)が届いたので階段の照明に取り付け。
a0008202_23463992.jpg

a0008202_23463444.jpg

この電球型LEDはスイッチをつけた後(この時点で全開で光る)に、パチパチとスイッチをOFF⇒ONする事で常夜灯として弱く光ります。既存の設備に何ら手を入れる必要が無くて便利です。(LEDシーリングライトたちにも似た機能があります)
ただ、一般的な電球は全長98mmくらいであるのに対し、このLEDは全長114mmと長いので、この照明器具だと少し頭が出ちゃいます。

トイレはウォシュレットシャワートイレ 東芝 SCS-T92を取り付け。汚い話ですが、シャワートイレを自分で取り付ける際の最大の障壁は古い便座の普段磨けない所に入り込んだ汚れでした。
a0008202_0272775.jpg


火災報知機はハネウェルジャパンの煙式 けむりde警報 (HS-JV2)を安価に手に入れられたので、リビングや寝室など5個設置。
a0008202_2346422.jpg

天井の下地材を探すのが面倒だし、火災報知機は100g程度と軽い物なので、石膏ボードアンカーを使用して取り付けました。台所のための熱式を1個調達してこないと。

まだまだ家の外構には手を入れなくてはいけないところが山盛りで、ネタは尽きそうにありません。
[PR]
by r34_gtt | 2014-10-28 00:48 | 活動(電気) | Comments(0)
センサーライトを改造する
夜中に階段を上り下りするときに照明を点けるのはめんどくさいし、明るさも過剰だと思っていた。
常夜灯を取り付ける適当な場所もないし、適当な電池式のセンサーライトを付けてみることにした。

手ごろな値段の製品で秋月で売っているIntelligent LEDライト(単4乾電池付)を購入してみた。
a0008202_0481089.jpg


これはアリガチな焦電型赤外線センサとCdSを組み合わせたセンサーライトで、明るいときには動作せず、暗いときに1~2mくらいに人が近づくと20秒ほど白色LEDが点灯するという代物だ。秋月らしく技術資料が付いてくるので、いじるときに便利そうだ。

感度に関しては申し分なかったが、照射範囲が正面なのがニーズに合っていない。階段を下りる時に検知して階段を照らしてほしいので、LEDの取付位置を変更するとともに、LEDは日亜のNSSW157T(なんと今なら10個増量中で20個で200円!)にした。LEDの配置が非対称なのは取付位置と照射範囲の都合からだ。
a0008202_048789.jpg


改造した結果、希望通りに階段を降りるときに下まで照らしてくれるようになった。
a0008202_048574.jpg

今、廊下の照明を常夜灯機能付きLED電球(Panasonic LDA9LGKURKW)にしようとしているが、このセンサーライトもそれなりに役立ってくれることでしょう。
[PR]
by r34_gtt | 2014-10-15 01:02 | 活動(電気) | Comments(0)
百均ランタンをベースに非常用ランタン(3)
(百均ランタンをベースに非常用ランタン(1), (2)の続きです)

 2号機ではHT7733Aが想定以上に安定した出力を出してくれたため、抵抗1本の電流制限でとりあえずモノにしました。
 しかし、HT7733Aは入力電圧の低下に伴って少しずつ出力電圧が下がる傾向にあるため、わずか12Ωの抵抗ではこの電圧低下に伴うLEDへの入力電流の変化は大きいです。

 例えばLEDのVfを2.8Vとすると、出力電圧が3.3Vの時、入力電流は41.6mAとなりますが、3.2Vになると33.3mAとなります(実際は電流が減少するとVfも下がるのでもう少し流れます)。

 これは必ずしも悪いことばかりではなく、「電池が弱ってきたら消費電流も減るので電池の長持ちにもつながる」と言えますが、技術的にはLEDのVfギリギリになっても電流を保つ、すなわち低ドロップ定電流回路を目指したいところです。
 ネットを探したところ、VIC's D.I.Y. 1歩進んだ日曜大工さんのところのコンパクトLEDライトという記事の中でオペアンプを使用した低ドロップ定電流回路を作成されていました。

 この回路は低Vcesatの2SD1616を使用して極めて低ドロップの定電流回路となっています。さっそく作ってみました。電流検知抵抗は欲張って0.1Ω、基準電圧生成抵抗は47Ωで47mAの出力を目指しました。
a0008202_1381594.png

a0008202_129012.png

 うん。安定している。が、電流検知抵抗が精度の低いカーボン抵抗のせいか、予定よりちょっと電流が多くなってしまった。しかし、60mA時のNSSW157TのVfは2.8V強に対し、2.9V入力時でも60mAを保っているのは素晴らしい。

 2号機の電流制限を抵抗からこの定電流回路に変更しました。実用上何が変わるというわけでもないですが、こういうところをコントロールできるのが自作の醍醐味ではないでしょうか。
a0008202_23583189.jpg

[PR]
by r34_gtt | 2014-02-06 00:24 | 活動(電気) | Comments(0)
ブラウンの電動歯ブラシのバッテリー交換(D17525)
 最近、家族全員で(そして決まって俺が最後)風邪やノロにかかってぐったりしています。

 さて、もう7, 8年は使っているブラウンの電動歯ブラシD17525が充電しても元気がなくなってしまいました。
a0008202_23485531.jpg

 長いこと使っているので寿命としてもいいような気がしますが、充電池を替えて元気が復活すればもうけものと考えて電池を交換してみることにしました。ゴソゴソと検索してみると、たぶん同じモデルの充電池を交換している動画がありました。
 
 Replacing the battery in a Braun Electric Toothbrush(YouTube)
 
 また、ブラウン電動歯ブラシの電池交換(オーラルB プロフェッショナルケア D195352)あなたと写真と音楽と)のページでも似たような交換をされている。

 上記2例ではまっとうに4/5Aという元のバッテリーと同規格のバッテリーに交換しているが、「普通に毎日充電していればそこまで容量はいらんやろ」と判断して、千石電商で1本180円で買える単4タブ付ニッケル水素電池に交換することにした。(4/5Aと単4は長さが1mmしか変わらない)

a0008202_2349137.jpg

 分解自体は製品の説明書にも載っているが、歯ブラシを充電器に差して反時計回りに回すと底が外れる。底からは非接触充電のためのワイヤが伸びているので切らないように要注意。さらに先端を力を入れて押すと本体の内部を取り出すことができる。

a0008202_23503791.jpg
(クリックすると大きくなります)

 そのままで電池を外すのはやや困難なので、モーター端子のはんだ付けを外し、ひっかりの爪を押してモーターと電池/基板部を分離する。

a0008202_2352123.jpg
(クリックすると大きくなります)

 元の電池のタブを外す。上側のタブは比較的容易にはんだ付けを外すことができるが、下側は半田ごてが入りにくかったので、タブを切って取り外した。
 黄緑色のが新しい電池。容量は半分以下。新しい電池のタブの長さ、太さをニッパーで適度にカットして調整してはんだ付け。

a0008202_2354928.jpg

 スカスカですw しかししっかりと片側に寄せてはんだ付けしているのでブラブラしたりしません。
 元に戻せば出来上がり。何回か充電すると元の力強さを取り戻しました。
[PR]
by r34_gtt | 2013-12-16 23:58 | 活動(電気) | Comments(0)
百均ランタンをベースに非常用ランタン(2)
百均ランタンをベースに非常用ランタン(1)の続きです)

 シンプルにまとめた1号機はシンプルな割にまずまずの性能でしたが、より効率の向上を目指して2号機を作ってみます。と言うか、もっと作るように指示が下りました。

 DCコンバータは安価な3.3V DCコンバータであるHOLTEK HT7733Aを使ってみることにしました。HT77xxシリーズはうまく使わないとデータシートに載っているような出力を得られないことで知られていますが、100mA出力の場合、2V入力時に3.25V、1.2V入力時に3.12Vの出力電圧となっています。

 HT77xxシリーズのアプリケーションノートを見ると、高効率を目指すなら次のようにしろと(かなり好き勝手に)書いてあります。
 (1) インダクタは47uHが適当。直流抵抗が20mΩ(おそらく200mΩの誤り <なぜならアプリケーションノート中で挙げられているCDR125の47uH品は120mΩだし)以下の物
 (2) 入出力のコンデンサは低ESRの積セラなどが良い。47uF程度
 (3) 出力ダイオードはSBDでVfが0.3V以下の物
 (4) 上記のすべての部品を可能な限り近づけろ。ただしインダクタとの配線はHT77xxの下を引き回してはいけない

 何はともあれ、とりあえず形にして特性を見てみます。インダクタは秋月で買った47uH、2.1A、75mΩのもの、入出力コンデンサはそれぞれ10uF積セラを3個ずつ(出力には0.1uFを1個追加)、出力ダイオードは11EQS04を使いました。
a0008202_0331885.jpg

 また(4)を実現するためにHT7733Aを中心にして可能な限り近づけて配線しました。このためインダクタは基板の裏側となりました(画像中の薄い丸の位置)。はんだ付けがきちゃないけど、試作なので許してください。

 さて、早速特性を見てみます。33Ω抵抗を負荷(3.3V出力時に100mA)にして、0.7~2.0Vまで入力電圧を変えてみました。
a0008202_0375380.png

 リップルのせいか、それとも部品が良かったのか(インダクタの直流抵抗が小さいのが効いたか?)、データシートより高めに出ましたし、出力も安定しています。試作のつもりでしたがこのまま使いましょう(えっ?)。

 思ったより安定した出力なので、とりあえず簡単に抵抗での電流制限でモノにします。12Ωを使って40mA程度を狙いました。LEDは1号機と同じ日亜NSSW157Tです。せっかく工作したのに製品付属の得体の知れない白色LEDなんか使うのはもったいないです。
a0008202_2451659.png

 どうもったいないかはブログ:居酒屋ガレージ日記・まとめ2さんのところの●白色LEDの劣化 (連続通電して寿命を検証してみる)という素晴らしい記録があります。ほかの記録も合わせ、こういう身を張った実験結果は本当に貴重です。

 あとはちゃっちゃっとはんだ付けしてまとめていくだけです。LEDを取り付ける基板は、生基板を切ったものに変更しました。チップLEDで製品の基板を流用すると裏側に漏れる光がもったいないので。
a0008202_122159.jpg

a0008202_125442.jpg


 一応完成した姿です。写真を撮るために1号機の時にも出てきた2本で解放電圧が1V、使用時0.3Vの弱り切った電池に再登場してもらいましたが、1号機より明るいです。
a0008202_125882.jpg

 お楽しみの効率測定結果ですが、新品のアルカリ電池を使用して測定したところ
  入力:3.07V、54.7mA
  DCコン出力:3.33V、42mA(その時LEDのVfは2.82V)
ということで、入力に対するDCコン出力効率は83%、LEDへの出力効率は70.5%とほぼ当初の想定通りに収まりました。
[PR]
by r34_gtt | 2013-10-19 21:46 | 活動(電気) | Comments(0)
100均シガーライターUSB充電器を見る(2)
100均シガーライターUSB充電器を見る の続きです)

 みなさま、ごきげんよう。会社の先輩がセリアでこんな物買ってきてくれました(頼んでない)。
a0008202_23191277.jpg

 ダイソーのと似てる750mA出力のシガライターUSB充電器です。はいはい、使ってみればいいんでしょ。

 以前にセリアで買ったシガライターUSB充電器と区別するために、新しいほうを「セリア小」、古いほうを「セリア大」と呼びます。早速分解に取り掛かります。

a0008202_23214288.jpg
(以下左がセリア小、右がダイソーの物)

 ダイソーの物と形は似ていますが、造りが違うので別物は別物でしょうね。出力表示は5V 750mAとなっています。
 たちの悪いことに、後ろのフタや先端部のねじ込みフタが接着されているので、適当にこじりながら分解する必要があります。
a0008202_23393165.jpg

 おっ、先端部には超小型の管ヒューズ(125V 1A)が入っていました。ショートを避けるために熱収縮チューブが巻いてあるなど芸が細かいです。
a0008202_2342384.jpg
(クリックすると大きくなります)

a0008202_23435791.jpg
(クリックすると大きくなります)

 中身はダイソーの物とは似ているようで全く異なります。また、基板がガラエポのようです。この値段の品物では予想外。ただし、金具のはんだ付けが片側しかされていなかったり、フラックス洗浄がされていないので基板が汚いし、コンデンサやコイルも貧弱です。まあダイソーのとどっこいどっこいのクオリティです。

 ・電流制限抵抗 0.25Ω=1.2A、ヒューズ 1A
 ・出力電圧抵抗 3.3KΩ(1%)と1.0KΩ(1%)=5.375V
 ・入力コンデンサ 25V 47uF、出力コンデンサ 10V 100uF

 D-端子は5V×(62K/51K+62K)=2.74V、D+端子は5V×(82K/120K+82K)=2.02Vにプルアップ、プルダウンされている。これまたダイソーと似ている。

 出力特性はセリア小はきっとダイソー並みなので測る気がしません。セリアで買うならセリア大にしましょう。
[PR]
by r34_gtt | 2013-10-10 00:30 | 活動(電気) | Comments(0)