2015年3月26日木曜日

いわゆるスーパー三端子レギュレータ

交換前。


3端子のDC/DCコンバータ、使ってみました。

この回路、電源24vだけどmbedなのでロジック回路は3.3v。約50mA流れるので約1wが三端子レギュレータに消える計算になり、さすがにチンチンに熱くなります。

さすがにこれはいけないので、スーパー三端子レギュレータに交換してみました。

YES! 秋月!

表面積がでかいので単純には比較できないけど、触っても全然温度を感じません。電流が小さいこともあって、オシロで拡大してみてもシリーズレギュレータとの差は特に感じられないレベル。まぁオーディオなどだとわかんないけど、私の粗雑な電子工作レベルでは何の問題もない。

昔、100mAの7805が150円ぐらいしたことを考えれば500mAで250円はただみたいなもの。今後もこういう用途には使っていきたいと思います。

それにしても…便利な時代になったものよのぉ…。

全然関係ないけど、オリーブオイルで焼いてコンソメバジルかけたら旨かった。下手な本物より好きかもしれないw


2015年3月22日日曜日

Arduinoで指紋認識

たれにLEDが映える…と思ったら私の顔もかすかにw

友達のOさん経由でFingerprint sensorを入手できたので、さっそく試してみました。

Adafruitで公開されているDatasheet PDFが中国語でびっくりしますが、Adartuitがチュートリアルを用意しているので、ご安心くださいw しかし、mbedで使うつもりだったのですが、ドライバの情報が中国語だけなのは辛い。

なお、先に書いておきます。原因はわかりませんが私の入手したセンサーには指紋を一つしか登録することができませんでした。Adafruitで売っているものと違うタイプなのかもしれません。いずれにしてもこれでは指紋認証デバイスの意味がないので、Adafruitに改めて注文して後日また報告します。

それはさておき、Arduinoにつないでみます。

付属のコネクタ&配線は導線部分が短すぎてそのままではブレッドボードなどに刺せないので廃リード線をつぎたしてやります。最近、リード線の接触事故などでBBB、LPC1114FN28などを相次いで殺してきた私なので、熱収縮チューブできれいにカバーしました。


なお、コネクタは下の写真の向きで差し込みます。


Arduinoとの接続は、

  • 黒:GND
  • 赤:5V
  • 緑:p2
  • 白:p3

です。GitHubからライブラリ+サンプル+ドキュメントをダウンロードします。チュートリアルではいきなりfingerprintサンプルを試していますが、当然まだ指紋を登録していないので動きません。まずenrollで登録しましょう。

encollの使い方はソースを見ればわかりますが、起動しシリアルモニタを9600で表示するとidを何にするか聞いてきます。12にする場合、 12とスペースを入力し、送信ボタンを押します。そうするとセンサーが赤く点灯、待機状態になります。あとはシリアルモニタの指示に従い:
  1. 登録したい指をセンサーに乗せる。
  2. 指を離す
  3. もう一度乗せる。
  4. 失敗した!と言われたらもう一度
で、これを繰り返して別のIDで別の指を登録します。


これでめでたくfingerprintを試せます。実行すると赤く早い周期でLEDが点滅しますので、さきほど登録した指を乗せます。

が。

前述の通り何故か最後に登録した指一本しか認識してもらえません。新しいのが届いたらまたテストします。

お疲れ様でしたorz

認識に失敗してもエラーメッセージなどは出ないので、認識失敗してリトライしているのか認識処理をしているのかがわからないのですが、1秒以下で認識されることもあるので、一応カタログ性能は出ているのかもしれません。登録した時とほぼ同じような位置に指を置かないと認識されないので、指ガイドなどを設置する必要があると思います。

ライブラリの中身を検証する気力がないので、とりあえず部品沼に沈めておきます。なむ。

PanaVise導入しました。

想定よりも土台がでかい。こっちは小さなバイス

何というか、私のチマチマした電子工作にはデカいw

こっちは大型基板用バイス

でもユニバーサルジョイントが2カ所ついててネジ二つ緩めるだけでどんなポジションでも取れるのはすごく便利。ユニバーサルジョイントにも何か絶妙なクリック感があって、軽くネジを締めれば自然に止まる。




バイスは小型基板用と大型基板用を合計2種類。でかい基板用はワンタッチで基板を脱着できて便利。


  • 591-312 TRAY BASE MOUNT(部品トレイを兼ねたプレート)
  • 591-305 LOW PROFILE BASE(球関節のついた土台)
  • 591-315 CIRCUIT BOARD HOLDER(大きい方のアーム)
  • 591-203 HEAD FOR 300 BASES(小さい方のアーム)


made inどことは書いてないんだけど、雑なところときれいなところが混在していて笑える。バリあるけど怪我するようなとがったところはない。メッキはむちゃくちゃ分厚くて長持ちしそうな感じ。何というかまぁ昔のアメ車的。



今使っている2,000円弱で買ったやつは作業性がものすごく悪い。ツマミの仕上げが悪くて強くつかむと痛いし、ジョイントのボール把握がいまいちなので思いっきり閉めてもとまらないしで、少しワークの角度を変えようとしても大騒ぎなのだった。クリップのビニールカバーはすぐ外れるし、錆の上にメッキしたんじゃないかってぐらいシャフトがざらざらだし。ああ悪口いえばキリがない。



今回Mouserに注文して合計15,000円ぐらい。送料無料なのでUPS Worldwide Express Saverが選択されたのですが、水曜日の朝注文して木曜に成田到着、金曜のお昼に配達されました。UPSすげえ。いつもは国内でものすごくモタモタするんですが、これがExpress Saverのご威光というやつなのでしょうか。

アメリカーンといえば、梱包。プチプチ充填された上、それぞれがビニール袋に入って熊でも止められそうなホチキスでがっつり止まってます。で、このプチプチがまた多い。30リットルぐらいあるので処分が大変っす。


一方中国は封筒にそのまま部品が入ってたりする。

中間点はないのか。

2015年3月7日土曜日

仕事に役立つ電子工作w



私は耳が遠いのですが、一日中補聴器をつけていると汗疹ができたりして具合が悪いので基本的に仕事場では外しています。

しかし、それではミーティングの招集に気づかなかったりで何かと不便。いちいちチャットで教えてもらうのも何だかなぁだし。

というわけで、呼び出しデバイスを作りました。

LEDと電池とスイッチでいいじゃん、とも思ったのですが、無駄な努力こそ電子工作。

第一号機は以前、「無駄に豪華な自転車用ストップランプ」の流用で、「叩く→点灯」というシンプルな装置。加速度センサADXL345で装置を叩いた時の振動を検出し、MSP430G2553でFFTかけてノイズなどの影響を排除して「叩かれたかどうか」を判断してLEDを点灯するのですが…今ひとつ反応が鈍いしLEDまで電線ひっぱるのが面倒くさい。

だったらリモコンにすりゃあいいんじゃね?とできたのが2号機。上の写真です。赤外線リモコン受光器とLPC1114FN28を使って、そこらに転がっているリモコンからの信号が来たらLEDを激しく点滅させる方式としましたw

こんなん1時間もあれば終わるわ、と始めたのですが…IR Remoteが何故かFRDM-KL46で正常に動作せず2時間ほど捕まってしまいました。安直に動かそうとFRDMを使ったことが裏目にorz

あきらめてLPC1114FN28を使うことにしたら、dp27がオープンコレクタだと忘れていて「LEDが点灯しない…いや電圧が出ていないじゃん?」と頭を抱えたこと以外は特に問題ありませんでした。

ああ無駄な工作は楽しいw

2015年2月21日土曜日

負け続ける週末>故BBB、24GHzレーダー、LTSpice IV

FRDM-KL46につないだ24Ghz、10Ghz、24Ghz勢揃い

昨夜、Beagleboneさんを壊してしまいました…端子に過電圧がかかって、いや掛けてしまい、あっという間でした。電源入らず、3.3v-GND間がほぼ短絡状態になっているので、私の手には終えません。私の電子工作史上、自分で壊したもののとしてはもっとも高価なデバイスです…。ごめんなさい>beaglebone

これが生前最後の姿でした…
ということで、死蔵してたもう一台のBBBを箱から出してきましたが、これは悪名高きsshで入れないバージョン。BBB-FlusherをSD Cardに組み込むところからはじめて約2時間かかって何とかBBB警備?システムをリカバリしました。

その後は秋月から届いた24Ghzドップラーレーダーで遊びます。

これは出力が-300mV 〜 +300mVとのことなので、ADCで読むには 0-1800mVぐらいに変換してやる必要があります。

オペアンプで減算回路というものを組めばうまく行きそうなのですが、算数のできないワタシには抵抗値を決められませんw しばらくGoogle Spreadsheetで数字をいじったのですが、ぴったりの数字が出てこないし、そもそもそれで正しく動くのかも不明。

というわけで、LTSpice IVに初挑戦してみました。いつの間にかMac版があるのですね。

しかし起動しても、よく見るような画面ではなく、ボタンが3つ並んだだけのシンプルというより殺風景なウィンドウ。ツールバーっぽいものは無く、どうやらファンクションキーやコンテキストメニューで操作していかなければならない様子。

いやー…EagleのGUIが素晴らしく見えるレベルで、面倒くさい操作でした。それでも折角MacにやってきてくれたLTSpiceさん、ちゃんとシミュレーションができればそれで十分、今後に期待します。ただ、Windows版ではパラメータをGUIから設定すればドットコマンドというのを生成してくれるようですが、mac版では手動です。手動で入力している例があまりなくて探すのに苦労しましたが、とりあえず「.tran 1s」と入力してやれば、10秒間の任意の箇所の電流電圧をグラフ化してもらえます。ここまで約2時間でした。いやはや。


一度抵抗値を決めたものの、手持ちのパーツに100kを越える抵抗がなかったので、また計算し直してLM358でブレッドボードに回路を組みます。



で、ドップラーレーダーをつない電圧を見る…のですが、レーダーの前で手をひらひらさせても、想定していたような電圧は出てくれません。だいたい±30mVぐらいで、動きと一致しているようなしていないような微妙な値です。大きなものがもっと高速移動しないとダメなのかもしれませんが、これ室内用なんですよね。

日本無線の24GHzドップラーレーダーよりも安いし、アナログ出力でいろいろ遊べそうだったのですが…。

あと、アマゾンで「サンハヤト ジャンプワイヤキット SKS-100 単線タイプでよく使用する短めジャンプワイヤのセット品」ってのを売ってたので買ってみました。495円。



ブレッドボードのセットによく付属してくる固いジャンパ線は、長いのばかりがやたら余ってしまいますが、これはまさに不足しがちがな短いものの詰め合わせです。いつも抵抗などのリード線の切れ端を曲げて作っていたのですが、ラクをしたいのが人間というものです。で、使ってみたのですが…いやー、品質の酷さに大笑いできます。平気で45度ぐらいねじれていて、挿す前にちゃんと修正しないと刺さらないw こういうのは機械でさくさく作っちゃうと思っていたんですが、手作業というか中国あたりで内職で作っているんじゃないだろか。

2015年2月18日水曜日

BBBにI2CでLCDつないでみた

BBBも混雑しはじめてきたw

いやー、嫌ですね、技術屋って略号ばっかりで…と言われそうなタイトルですが。とりあえず、いろいろググっていたら、シェルスクリプトだけでI2C液晶が時計になってしまう記事を見かけたので、さっそく試してみました。


まず、i2cの初期化をします。初期化について参考にさせていただいたのはこちらです。
記事はRev.A5AでうちのはRev.Cなのが原因かどうか、少しパラメータなどが違っていました。

まず、P8-17/18ピンのi2c端子I2C1を有効にしますが、その前にポートの状態を調べておきます。


つぎに、ポートを初期化します。
echo BB-I2C1 > /sys/devices/bone_capemgr.9/slots
もう一度ポートの状態を確認します。


良いようです。はい。ここで注意。配線したのはI2C1ですが、今設定して変化したのはi2c-2って書いてある行です。上の記事によれば、1と2の番号とデバイスが入れ替わっているのだとか。よーわからんのですが、Beagleboneにはこういう要素が多いような気がします。ともかく、先人のおかげでハマらないですみました。ありがとうございます。

というわけで、秋月の液晶「 I2C接続小型LCDモジュールピッチ変換キット」をBeagleboneと接続します。GND, 3.3V、あとは10kΩでプルアップしたSDAとSCL。基本これだけでいいのですが、RESET端子を3.3Vにつないでおきます。オープンにしたままだとリセットされないことがあるので。

接続したら、確認します。


液晶のデバイス番号3eが見えますね。秋月の資料には「スレーブアドレスは、0x7Cです」と書いてありますが、これはread/writeビットを最下位に置いて読んでいるためです。これ、メーカーなどによって読み方 / 指定の仕方が違うので悩むんですよね…。ともかくBBBでは3eです。

では、今度はBeagleBone Black のハードウェアハック(5)を参考にしてデジタル時計を動かしてみます。viでコードをコピペするのですが、記事とはi2csetのパス(i2cset=/usr/sbin/i2ctest)と接続しているポート(bus=2)が異なるのでそこは書き換えたのですが…記事の通りでは真っ黒い四角が並ぶだけでした。上記秋月の資料と比較してみると、コントラスト設定値として0x3fが指定されてて液晶が真っ黒になってしまうのと、意味はわからないですがICONってのがOFFになっていること、が原因のようでした。秋月の資料と同じデータ順にして、ばっちり動きました。


スクリプトでこんなことできちゃうんですね。すげー。

改めて、初期化とスクリプト時計の執筆者の方々に感謝申し上げます。おかげさまで今夜はすっきりぐっすり眠れそうです。

ありがとうございました。

Emberjs:定数のロードはload/loadManyじゃなくてpush/pushMany

最近のマイブームはドップラーレーダーw

Ember.jsのFixturesを使えばRESTサーバが動いていなくてもRESTで取ってくるのと同じ形式のデータを予め用意することができるので、Webデザイナとサーバサイドがいい感じで同時並行して作業ができます。

が。

Fixture AdapterはREST Adapterと共存することができません。例えば、「他の処理/データはすべてRESTで取ってくるけど都道府県を定数配列として置いておきたい」というような場合に「都道府県だけFixtureであとはREST」というワザは使えません。

そういう場合には、REST Adaptetを指定しておいてDS.Storeに定数配列を置きます。困ったときのStackOverflowさんにも出ています。
ってか、あちこちググっても、みんなload/loadManyを使えって書いてあります。

でも、使えませんorz 最初、Ember.jsの公式ページ(Ember.js - DS.Store)の一番下にあるリストで「Deprecated」をチェックしてみたのですが、load/loadManyのことは出てきません。それから迷走しまくり探しまくりだったのですが…結局、push / pushManyを使えば同じことができると判明しました。


なお、こうやっておいといたデータは、コントローラの中で this.store.all('model名');って書けば取り出すことができます。これで良くある「都道府県プルダウンメニュー」が作れますw こんなものまでRESTで取ってたらキリないし。

Ember.js本体は最近落ち着いてきたんですが、Ember-Data.jsについては、まだβだといえばそれまでなんですが、こういうundocumented(いや、どこかに書いてあるのかもしれませんが)な変更が多くて困ります。どこかの「俺様がEmberを使わない理由」っていうページにも書いてあったんですが、ドキュメントが古かったり矛盾してたりするんですよね。

せめてわかったことだけでも貢献したいけど英語力がないので、とりあえず自分のブログに書いておきます。

2015年2月11日水曜日

Beaglebone black(bonescript)からメールを送る

サランラップ+お湯で柔らかくなるプラスチックによる雑な仕事w

まず、SMTPサーバを入れてその設定、次にBoneScriptを書く。

SMTPサーバの入れ方はこちら。とても参考になりました、ありがとうございます。
記事との相違点はMacではなくBeagleboneなので「brew/aptitudeの替わりに apt-get を使う」ことと、設定ファイルの中身です。蛇足ですが、fromとuserは同じでOKです。設定したら記事にあるように、テストしてみてください。

で、BoneScriptで書いてみます。Node.jsから直接SMTPを呼び出せるmailなどのモジュールも試してみたのですが、エラーの山を解決することができなかったので、child processとして呼び出す方式にしました。




メール系のテストをするとこうなるよねw

さて。

この度、玄関にもPIRセンサーを取り付けました。恐ろしいことに15mのワイヤ(余ってた6芯の電話線)による有線接続ですw センサーをほどよくナナメに固定するのは結構難しいのですが、玩具として売られているお湯で柔らかくなるプラスチックを使いました。80度のお湯に3分ほどつけておくと練り消しゴム状態になり、好きな形に成型してから冷します。プラスチックというよりもスーパーゴムのような素材なので、パッキングがわりに使ったり、断線しやすいiPhoneコネクタの補強、壊れた自転車用パーツの補修などに使えると思います。これでまた3Dプリンタの購入が遠ざかってしまいました(笑)。

これだけ入って1080円

なお、お湯を保温性のあるカップにいれて作業場所まで持っていくのがコツです。PIRセンサーを覆うように形を作っておき、反対側を冷たいドアに押し付けると丁度いい角度に調整することができます。私は面倒くさいので養生テープで止めちゃいましたが、プラスチックの中に磁石埋め込めばそのまま固定できると思います。電子工作において、「ナナメ固定」は結構鬼門ですが、これはホントに便利です。安いし。

養生テーブが泣かせます
先日の「自室での人間の動きを記録するアプリ」をちょっと改造して、来客を検知したらメールを送るようにしてみました。

これで留守番中に間違ってドアチェーンをかけてしまって外出中のヨメを締め出してしまっても大丈夫だ(ごめん)。

うちは宅配便ぐらいしか来ない&廊下の端で他の住民が通らないから通知ごとに送るようにしていますが、人通りの多いところでは一度送ったら数分間は検出しても送らない、などの工夫が必要かもしれないですね。


2015年2月1日日曜日

自家製キット?


買ってきた部品、特にICは一度試しておきたいものです。今回、TO92パッケージで外付け部品4つで簡単に0.9vから5vまで昇圧できるHT7750Aを使って赤外線リモコン受光器を動かしてみました。

もろもろの事情によりバラすことになったのですが、こういう場合、捨てるのは論外としても元の新品部品沼に戻すのも気が引けます。

そこで、こういう汎用性のあるパーツは秋月のチャック袋に入れてメモを添えておくと部品のピックアップが楽になります。

…なんかおバアチャンの知恵、みたいなネタだな。

2015年1月31日土曜日

電池昇圧回路+赤外線リモコン受光センサー

今回は素回路だけで終わってしまった

長い間何故か手を付けなかった赤外線リモコンを扱ってみます。

手元にある赤外線リモコン受信センサーは5v駆動、しかし最近私の周りは3.3vプラットフォームがメイン。ということで、昇圧ICを使って3.3vから5vを作るところから。昇圧にはこのICを使いました。
DC/DCのモジュールなら500円ぐらいで売ってるけど、このICは外付けにコンデンサ2個、インダクタ1個、ショットキーバリアダイオード1個で簡単 / コンパクト / 廉価 / 電源0.9vから利用可能なので部品箱に転がしとくと便利です(「転がしとくと便利」は部品沼への直線コース)。

なお、同じタイプのICで3.3v出力のものもあり、両方買っても400円です(その発想が部品沼だと何度言えば)。


まず部品拾い。100uのマイクロインダクタがないので47uでいいか、とか、47uと22uのチタコンないから同容量の電解とセラミック積層でいいや、逆電圧防止のSBDは1S4で…みたいに多少の違いは気にしない。インダクタは気にした方が良いのですが、今回消費電力微弱で入力も3.3vなので、まぁ試してみてダメなら考えます。やっぱりマイクロインダクタと積層セラミックコンデンサの詰め合わせも買っておこう。

Amazon : ありゃ在庫切れだ


ブレッドボード上に昇圧IC回路と受信センサ回路を組み立てて、受信センサを抜いてから電源チェック、問題なければ受信センサを戻して手近のリモコンに出力に反応が出ているか、異常な電圧が出ていないかを確認。問題なし。

5v出力を3.3v回路の入力端子につなぐと壊れるので、分圧回路作らなきゃな…と思いつつ受信センサの出力端子を5v・10kでプルアップして電圧みたら約3vしか出ていなかった。のでそのまま接続w


Energia付属のリモコンライブラリで動作チェック、動きました。なお、そこらに転がっていたMP3プレイヤ用のカード型リモコンは問題なく受信できるのですが、やっぱりエアコン用はライブラリが対応していませんでした。

で。

これを使って、先日のデジタル時計に時間合わせ機能を付けようと思っていたのですが…デジタル時計で使っているRTCライブラリとレジスタがかち合ってしまい、ビルド通りませんでした。ソース追ってみたけど、あちこち影響が出そうでどちらのライブラリも手を入れるのはめんどくさそうな感じ。諦めました。

今朝はウォーキングに出たら路面凍結してるし、どうもツイてません。