2010/12/23

シャープ測距モジュールGP2Y0A21YK

赤外線で距離を測る GP2Y0A21YKというモジュールがあります。
電源を供給するだけで 、距離に応じたアナログ電圧が勝手に出てくるので、それをA/Dして計算したら距離が測れます。だいたいの場合「ある距離まで近づいたかどうか」が分かれば良いので、実際には計算しなくても良い場合が多いでしょう。
電源電圧は5Vで消費電流は平均30mAということなので、HT7750Aとかで簡単に駆動できそうです。でも実際にやってみると、実はそうでもなかったのでした。

まず、消費電流はこんな風になっていて、ピークでは200mA以上だそうです。(DSO nano V2で波形を見てみたら、実際その通りでした。) この電流が取れないと、モジュールはちゃんと動作してくれません。HT7750Aではそんなに取れないのですが、平均の30mAを供給することはできるので、電源ラインに適切なコンデンサを入れてやれば大丈夫なはず。結局、モジュールに47uFを直付けしたらなんとかなりました。データシートには10uFを入れろと書いてありますが、電源の容量がプアな場合、10uFでは足りないようです。

平均30mAとはいえ、電池の寿命を考えると、必要なときだけ電源を供給するような使い方をしたいところ。データシートによると、電源を供給して60mS後ぐらいから正しい測定電圧が得られるそうなので、マイコンでうまくスイッチングしてやれば良さそうです。ただし、それなりの電流を流せるMOSFETとかを使わないと、電圧が下がってしまって、やっぱりモジュールはちゃんと動作しません。

結局、こんな回路になりました。PICのGP5でモジュールの電源を制御し、GP4で測定電圧を受け取ります。

 ちなみに、このモジュールから得られる測定電圧は、基本的に距離が近いほど高く、遠いほど低くなります。測定できる最大の距離は80cmで、それ以上になると、80cmの時よりもさらに低い電圧が出てきます。
モジュールに必要な電源電圧が供給されない場合にどうなるかというと、測定できる範囲が狭くなるだけでなく、その範囲を超えた場合に、より高い電圧が出るようになります。この電圧は電源の状態によってだいたい決まっているようで、実際の距離とは関係がありません。低い電圧が出てくれるとありがたいのですが、そううまくはいかないようです。

関連記事:
シャープ測距モジュールGP2Y0A21YK(その2)

2010/12/04

AC100Vを安全に使うためのhack

AC100VでLEDの記事へのアクセスが多いようです。こういう回路ではヒューズなどで保護するのが鉄則なので、例の回路でもポリスイッチを入れてありますが、これは回路の保護という意味で不完全なものです。
まず、ヒューズにしてもポリスイッチにしても反応速度がとても遅いので、突入電流から半導体素子を保護するのにはまったく役に立ちません。それでも入れてあるのは、LEDを保護するためではなく、回路の短絡などによる事故を防ぐためです。
それに当然、保護できるのはヒューズより先の回路だけです。なので基板のレイアウトとか配線の引き回しとかでも、できるだけ入り口に近いところにヒューズを入れるなどの注意が必要です。

突入電流からの保護には、直列に抵抗を入れるのが有効です。この抵抗が役に立つのは電源を入れた直後の一瞬だけで、あとは無駄に電力を消費するだけのお荷物になってしまうのですが、これはやむを得ません。

これに関して、こんなアイデアを思いついた人がいます。
How to stop your inventions from blowing up…
回路と直列に電球を入れるというアイデアです。
電球は、非線形な特性を持つ抵抗です。温度が低いときは抵抗値が低く、電流が増えるにしたがって温度が上がって抵抗値が上がり、ある程度のところで電圧降下が供給電圧とバランスして、それ以上の電流が流れなくなります。(この状態が、普通に電球が点灯している状態です。)
この特性はポリスイッチと同じ傾向ですが、それほど極端ではないので、(1)最初からある程度の抵抗があるので突入電流が制限されていて、(2)最大電流を制限するだけで遮断はしない、ということになります。これは実験の際には好都合なことが多いでしょう。

最大電流は、電球のスペックから単純に計算できます。 たとえば60Wの電球なら600mA程度ということになるでしょう。最初の抵抗値は、常温の状態で電球の端子間の抵抗値を計れば分かります。

注意しなければならないのは、この回路をはずしてAC100Vに直結するようになると、その時点で電球による突入電流保護の機能がなくなるという点です。電流も電圧も、おそらく増加します。つまり、これはあくまでも初期のテストや実験を安全に行うためのhackと考えるべきですが、それにしてもなかなか良いアイデアです。

2010/11/28

DSO nano V2

...というわけで、DSO nano V2 を入手しました。
おそらく最近のロットから(?)プローブの色が赤黒から白黒に変更されたようです。この方が本体の色に合っていて全然良いですね。
プローブ用とテスト信号出力用の端子は同じ形状(オーディオ用のミニジャック)なので、差し替えてプローブをブレッドボードに直接挿したりもできます。プローブの長さも、短すぎず長すぎず、良い感じです。

最近は共立とかでも買えるようになりましたが、せっかく円高なのでSeeedStudioから直接購入してみました。89ドルで送料無料なので、日本円にして約7500円ぐらいで買えます。在庫があったので注文してから約2週間で届きました。

(2011/07/03 このとき他のパーツも買ってみました。)

2010/11/20

洗濯ばさみ2

SeeedStudioの DSO nano がV2にバージョンアップしてますが、純正の専用スタンドにもニューモデルが出たようです。


これ、なんと本当に購入できます。しかも現在99%オフの大特価!
SeeedStudio、いろんな意味で目が離せませんね。。

2010/10/30

洗濯ばさみ

ヘルパースタンドのワニ口クリップはバネが強い上にギザギザなので、はさんだものを傷めてしまうことがあります。100円ショップで売っている小さな木製の洗濯ばさみを使うと良いですよ。

2010/10/24

オレオレアダプタ1号

オレオレドゥイーノに標準サイズのシールドを載せるためのアダプタを作りました。
もちろんアダプタ部分は着脱可能です。
アダプタの基板は、例のハーフピッチずれてるところで二つに分かれています。
各ピンごとに2本ずつのスズめっき線を使って垂直に立てた基板に接続してあります。
とりあえずピンの数は多いので、これでもそれなりの強度はあるようです。
 GMC-4シールドを載せたら、こんな感じ。

2010/10/17

オレオレドゥイーノ1号

自作のArduino互換ボードを作りました。

普通のユニバーサル基板(ICB-88とか)のサイズなので、市販のシールドは乗りませんが、こんなことをしなくても楽に自作シールドが作れるので、プロトタイピング用に使うだけならこの方が実用的かと。

ISP端子の代わりに、FT232RLの機能を使ってブートローダを書き込むための端子を付けてあります。つまり、これだけでブートローダの書き込みもできるので、AVRライタは必要ありません。

FT232RLが乗っている小さな基板は、この前作った8ピンのモジュールの改良版で、ブートローダ書き込み用の配線も取れるようにしたもの。基本的に配線をつないだだけのものですが、作るのはけっこう大変です。
 
狭い基板にどうやって部品を配置するのか考えるのが好きなので、Inkscapeで図を描いて検討したりします。本当はEagleとか使ったほうが効率的なんでしょうけどね。

2010/09/26

Arduino Uno

Arduino Duemilanoveの後継にあたる Arduino Uno が出ました。確かにこれまでのは名前がややこしいよね、ということで、イタリア語に不慣れな人にも分かりやすいように短い名前にしたんだそうです。無限大の中にプラスとマイナス、という新しいロゴもできました。
Unoからは、USBインターフェースが専用チップになって、Arduino固有のベンダーIDが割り当てられているようです。
Arduino Blog: Dinner is Ready

2010/09/12

リールはんだの台

ジャンク箱の中にあった材料で、リールはんだ用の台を作りました。


スポンジのところは2段重ねになっていて、端のほうだけ両面テープでくっつけてあります。この隙間にはんだを通しておくと、適当に引っ張り出しても「ゆるゆる」にならずに巻いた状態をキープできます。引っ込める時はリールをまわして巻き取ります。
リール交換は面倒ですが、めったに交換しないので問題ありません。

2010/09/05

Sylvia's super awesome maker show

小学生makerのSylviaさんが、Arduinoネタを披露してくれてます。



ビデオはパパのTechNinjaさんによる手作りだそうですが、一連のシリーズのどれを取っても完成度の高さがハンパない。

「ただモノを買ってきて何の考えもなしに使い消費していくだけの人たち」が増えている中、Sylviaさんのようなmakerは貴重な存在です。その才能をうまく伸ばしてくれるTechNinjaさんは、親としても最高にエライと思うのです。

2010/07/25

8ピンのFT232RLモジュール

市販のUSB-シリアル変換モジュールはピンの数がやたら多いので、FT232RLを使って最小限のものを作ってみました。
バスパワー駆動なら、必要なのはUSBの4本とRX/TXの2本で、合計6本。Arduino用に3.3V出力とリセット信号の2本を加えても、合計8本。なので、8ピンDIPサイズにできるはずなのです。USBコネクタをモジュールに載せるのは強度的にもスペース的にも無理があるので、USB用の信号線をピンから取り出す形にします。

FT232RLはSSOPですが、基板を起こしたり変換基板を使ったりしないで、秋月のSMD用ユニバーサル基板を使います。こうやって足を曲げておくと、そのまま載せることができます。(一部のピンは空中配線になりますが。) 使わないピンを折ってしまえば、もう少し楽になるかも。

この基板は非常に薄いので、普通のはさみで簡単に切れます。だいたいのサイズに切り出したら、ICをはんだ付けする前に、細い銅線で裏側部分のパターンを作っておきます。主にGNDの配線です。

 ここにICを載せて配線したら、いちおう完成。RX/TXの表示用LEDも載せましたが、部品が全部1608サイズなので、とりあえず付けるだけでいっぱいいっぱいです。まっすぐ付けるなんてとても無理です。

2010/06/20

gmc-noを更新

gmc-noに、すべての内蔵プログラムを実装しました。これでGMC-4の機能はすべて網羅したことになります。ここまで作るとスケッチも相当なサイズになっているので、もうJapaninoだと容量ぎりぎりです。各プログラムの内容は一応GMC-4の動作に合わせたつもりですが、テニスゲームについては、[F]キーを押したらコンピュータと対戦できるように拡張してあります。

メモリと命令の拡張についての説明も追加しました。
gmc-noの拡張機能

拡張命令や拡張メモリを追加しても、それを使うプログラムがないと意味がないだろう、と言われるとまったくその通りですが、今回は「拡張機能をつけること」自体がひとつの目的だったので、それはそれで満足なのです。このあたりは、子どものころに買えなかったおもちゃを大人買いする感覚と似ています。

ただ正直、それだけではモチベーションとして不十分です。これと同じものをPICで作るのには、あんまり意義は感じられませんが、Arduinoベースで作ることには大きな意味があるような気がしています。

2010/06/13

GMC-4 on Japanino (or Arduino), 略してGMC-no

Japaninoで作るGMC-4の、ハード/ソフトのバグ取りと調整がだいたいできたので、スケッチを公開しました。
gmc-no
GMC-4というよりもむしろ、FXマイコンを再現したというべきかも。

2010/06/06

JapaninoでGMC-4を作る

この間作ったシールド基板に、そのへんにあった部品を乗せて、GMC-4シールドを作ってみました。
基板が狭いので、抵抗とかは主に裏側に実装しています。(Japanino以外で使うことも想定して、コネクタとかに当たりそうな場所はよけたつもり。)
基板上の部品配置とかもGMC-4に似せていますが、ただGMC-4を忠実に再現するだけじゃなく、GMC-4で不満だった点を改良しようと思っています。GMC-4の実機にプログラムをセーブする機能をつけるだけでも苦労しましたが、全部作っちゃえば何でもありです。
まず、ハード的に、ボリュームとかオーディオ出力とかは最初から付けてあります。LEDはスタティック点灯なのでPOVとか出力端子にも使えます。さらに入力端子を付けて、CAL INPT命令を復活させます。(もしGMC-4がこうなっていれば、ちょっと違った展開になったのかも。。)
ソフト的には、仮想CPUとかのレベルから全部作る必要がありますが、もともとシンプルな仕様なので意外と簡単です。(Arduinoだし。) すでにシリアル通信やEEPROMを利用したプログラムのロード・セーブ機能も実装していますが、それ以上の拡張もできそうです。

2010/06/01

Arduinoのシールド基板を作る

Arduinoのシールドは簡単に作れそうに見えますが、いざ作ろうとすると、いきなり壁にぶち当たります。よくあるサイズのユニバーサル基板だと微妙に足りないし、そもそも一部のピンヘッダがずれているので、普通の基板にピンヘッダを立てても、Arduinoには刺さりません。でも大丈夫。L字型のピンヘッダがあれば、普通のユニバーサル基板でもなんとかなります。

まず、基板の端の穴にスズメッキ線を通して1周半巻きつけ、ラジオペンチでしっかりと締め付けて、表側ではんだ付けします。
次に、裏側から、このスズメッキ線の隣に並べるようにL字型ピンヘッダをはんだ付けします。
このとき、ずれてるところだけ反対側に並べるのがミソ。
こうすることで、スズメッキ線の直径x2ほどピンヘッダの位置がずれて、ちょうど良い具合になるのです。(もちろん、ときどきArduinoに軽く刺して確認しながら位置決めした方が良いです。)
これならピンヘッダはガッチリ固定されるので、強度的にも心配ないでしょう。今回使ったのは、かなり端のほうまでランドのある両面基板ですが、もっと穴の少ない、一番安い片面基板でも同じ方法でいけるはずです。

2010/05/09

ヘルパースタンドの照明

チップ部品とかの細かいはんだ付けには拡大鏡が必要ですが、そういう場合に、ちょうど良い角度から邪魔にならないように照明を当てるのが難しいことがあります。そこで、ヘルパースタンドの拡大鏡にはめ込んで使えるような照明を作ってみました。

ベース部分は、ペットボトルを輪切りにしたもの。

光源には、バックライト用のチップLEDを使います。今回は6個直列にしました。

LEDを配線して、輪の内側にエポキシ接着剤で固定します。というかLEDとその周囲をまとめて埋め込んでしまいます。これで絶縁にもなるし、ちょっと垂れ気味で固まったエポキシがレンズのような働きをします。

このままだと正面以外にもけっこう光が漏れてしまうので、側面をアルミテープで覆います。このあと外周にもアルミテープを貼って、すべての光が正面に向かって出て行くようにします。

ヘルパースタンドに取り付けたところ。サイズがぴったりなので、はめ込むだけで固定できます。電源の配線は、はんだ付け作業で使うことを考慮して、耐熱性のあるものにしました。

LED自体の明るさはたいしたことないのですが、対象物との距離が近いので、それなりに照明として使えます。対象物が金属とかだとモロに鏡面反射しそうですが。

2010/04/17

フリーホイールダイオード?!

何の疑いもなく「フライホイールダイオード」だと思っていたら、そうじゃないらしいんです。それは日本人の間でだけ広まった誤用で、「フリーホイールダイオード」というのが正しいというんです。マジですか。。
「フライホイール」は、エンジンとかについてる、慣性を利用して回転力を保持する円盤のこと。上の回路で言うと、コイルの部分がこのフライホイールにあたります。一方の「フリーホイール」は、自転車のギアとかのラチェット機構のこと。ペダルを漕いだら噛み合って、漕ぐのをやめたら空転する、アレです。1方向にだけ力を伝える、という時点ですでにダイオードっぽいですが、例の回路でのダイオードのはたらきも、まさにこれと同じ。だから、このダイオードに名前をつけるとすれば、「フリーホイールダイオード」というのが理にかなっている、というわけです。た...たしかに。

では、「フライホイールダイオード」が日本だけの誤用、というのは本当でしょうか。これはGoogle先生に聞いてみましょう。
なんと、英語でも「フライホイールダイオード」の方が多いじゃないですか。念のために、日本語ページと比べてみましょう。
これまた意外で、圧倒的に「フライホイールダイオード」の方が多いというわけでもないのです。比率では英語も日本語も大差なく、いずれも2:1ぐらいでフライホイール派が優勢。もちろんGoogleの検索結果はひとつの目安にすぎませんが、少なくとも、日本だけの誤用とは言えないことがわかります。英語でも flywheel diode という言い方もするし、むしろ多数派なわけですから。

たしかに「フリーホイールダイオード」が正しいのですが、コイルをフライホイールとして働かせるためのダイオード、という解釈で「フライホイールダイオード」と呼んでも、あながち間違いとも言いきれないような気もします。世の中には最適じゃない名前が定着してしまっている例も非常に多いことを考えると、これについては、どっちも正解でいいんじゃないでしょうか。。


(2010/04/27)
flywheel diode と freewheel diode については上のとおりですが、英語では他にもいろんな呼び方があります。
"flyback diode"/"fly back diode" 50800件
"flywheel diode"/"fly wheel diode" 42600件
"catch diode" 36800件
"snubber diode" 28100件
"freewheel diode"/"free wheel diode" 23400件

2010/04/10

ナイトライダー

こんなLEDを入手しました。3個の素子が入っていて、端子はそれぞれ独立しています。というか、3個の角形LEDをならべてそのまんまモールドしたような感じのもの。ピンの間隔は等間隔でも2.54mmピッチでもないので、基板に乗せるときはちょっと困るかも。高輝度タイプではないようなので、ちゃんと光らせるには10mA以上流す必要があります。
ていうか、この3個のLEDをPIC10F222の3本のI/Oにそのままつないだら、ナイトライダーができるじゃないですか。これは作ってみなければ。
すると、そのへんに偶然、数年前にワゴンセールで買ったQ-steerがあるじゃないですか。これは乗せてみなければ。
 こんなことになりました。

回路図とHEXファイル

2010/03/27

SN76477

ものすごく昔に作ったSN76477の基板が出てきました。

SN76477は、抵抗とかコンデンサをつないで音を作るので、マイコンとかで制御して音源として使うのには適していません。それでも、こんなものを作ってる人とかもいたりします。なるほど、リズムボックスとしてなら使えそうかも。

ということで例の基板を調べてみたら、いちおう音は出るものの、どうも正常な動作ではないような雰囲気。何か壊れているようです。そういえば、何年か前に、それを直そうとしたけど結局あきらめたような気もする。(よく覚えてないけど。) あらためて調べてみた結果、どうやらIC自体が壊れているようです。残念。

いまさら、こんな骨董品のICが市場に出回ることはないだろうし、もしあってもビンテージ価格のコレクターズアイテムになってたりして。。とか思いながら、ふと共立をのぞいてみたら...

http://eleshop.jp/shop/g/g974411/
コンプレックス・サウンドジェネレータIC / SN76477N
販売価格 : \700

...普通に売ってました。

ちなみに、SN76477はピンの間隔が特殊で、2.54mmの(1/√2)になっています。普通のユニバーサル基板を使う場合は、こうやって斜め45度に置いて、1本おきに足を曲げるか穴を開けるかすれば使えそうです。1.27mmピッチの基板なら斜めにするだけで良いかも。

2010/03/02

導通チェッカー

PIC10F222で導通チェッカーを作りました。

  

プローブどうしを接触させれば電源オン。測定をやめて約16秒経ったら自動電源オフ。電源が入っているかどうか分かりやすいように、測定中は常に音が鳴り続けます。音はいわゆる「金属探知機」みたいな断続音で、抵抗値が低いほど周期が短くなり、約3Ω以下で連続音になります。

  

SDカードのケースに入れて、まっすぐに伸ばした安全ピンをプローブにしています。この、ぜんぜん安全じゃない安全ピンは、使うときだけはめ込みます。もう片方はワニ口クリップなので、測定対象に固定したり、別のプローブを挟んだりできます。

  

メイン基板(?)はPIC10の汎用マイコンボードとほぼ同じものです。ケースの厚みがないので空中配線してますが、回路は単純なのでたいしたことはありません。

  

A/D変換を使って抵抗値を測定する、という方法をとっています。測定対象には最大で0.3mAぐらい流れます。 測定回路自体の保護については、特に何もしていません。たいした回路じゃないし、PIC内部にもいちおう保護ダイオードがあるので。 導通判定の閾値を調整するための「ゲタ」として約12Ωの抵抗(20Ωと33Ωの並列)を入れてますが、これは別になくても良かったかも。 音と連動して光るLEDは、いちおう保護回路としての意味もあります。

HEXファイル: checker.HEX

プログラムのメインループでは、GP0の電圧をA/D変換して、その値から求めた抵抗値に応じて音のインターバルを変える、という処理を実行します。A/D変換値と抵抗値は比例してないし、抵抗値のlogをとりたいので、あらかじめ計算しておいたテーブルを参照しています。 オープン状態が長く続いたらGP0をデジタル入力にしてスリープし、そこからGP0のレベル変化で起きてリセット。これだけで電源の制御ができます。  

電池ホルダがケースに入らなかったので、電池を直接ケースに入れて、ケース内部の出っ張りとかを利用して固定しています。電極は、100円ショップで売っている薄~い真鍮版を切って両面テープで貼り付けたもの。これが意外と簡単で、コストパフォーマンスも非常に良いのです。

 

2010/02/13

6セグ時計のボタン

アクリル板で6セグ時計のケースを作りました。

ボタンの数はできるだけ少なくしたい。
がんばったら1個でもできるけど操作しにくい。
2個あれば十分だけどなんか普通すぎる。
ということで2個のボタンをくっつけて1個の大きなボタンにしました。

ボタンというより棒です。スペースバーより長いです。
このバーの部分は、厚い透明のアクリル板を切り出して、
アクリル用の研磨剤で磨いたものです。

右と左の端にタクトスイッチが1個ずつ入っていて、
それぞれ独立して押せるようにしてあります。
右の端を押したら右だけ、左の端を押したら左だけが押されます。
では真ん中を押すとどうなるかというと、両方(ほぼ)同時に押されます。
ということは、バーを押す位置によって3通りの入力が識別できるわけです。

1個にするか2個にするかで迷った結果、
見た目1個で実質3個のボタンになったのでした。

アーカイブ