2016年8月22日月曜日

Eagle v7からステンシル用DXFを出力する方法



スイッチサイエンスさんのスクリプトを使う方法が一般的に広まっていると思うのですが、私のところのEagleがv7なせいか同スクリプトを走らせても有効なステンシルデータが出力されません。

ふと思い立って、brd画面に表示されているレイヤをDimensionとtCreamだけにしてからFileメニュー>Export>DXFを実行してみたら、正しいDXFが出力されました。

その際、Use Wire WidthsとFill areasのチェックを外し、単位をmmからinchに切り替えるといい感じにできました(mmのままだと、何故か幅2mもある巨大なデータが出力されました)。

近日中に地元のfabスタジオで試してみます。

2016年8月17日水曜日

ESP+400円あれば10分で作れる睡眠計

ただし送料は別ですw

秋月電子通商のサイトから

これは毎度おなじみのPIRセンサー、赤外線を発する物体が動いたことを検出してくれるセンサーです。主に防犯用途で使われるものですが、安い割には高感度なので鳩の検出や来客の検出など便利に使えます。なお、このHC-SR501は安いんですが、動きを検出したあと信号を数秒〜数分間引き伸ばして出力する仕様です。侵入者を検知してランプを点灯するためのものなので。そういう意味ではSE-10というセンサーの方が正確に把握できるんですが、高いのと5V電源では正常に動作しないので、今回は見送ります。

今回はこの400円のセンサーと無料のThingSpeak.comを使って10分で睡眠記録デバイスを作ってみます。

当然ESP-WROOM-02のモジュールも必要です。それにはぜひ倉橋屋Board1をご検討ください:-)

…他にオス - メスのジャンパワイヤとかブレッドボードが必要ですが、それはさておき。

まず、PIRとESP-WROOM-02を接続します。PIRの電極は、ドームを上、ピンを手前にした状態で左からGnd, Signal, Vccです。GndとESPのGnd、SignalとIO12、Vccと電源(5v以上…Board1をUSBにつないでいる場合はVin、ESPrなどではVOUT)を接続します。Signal出力は約3vなので、ESPと直結しても大丈夫です。なお、PIRによってはもっと電圧の高いものやオープンコレクタのものもあるので、その場合は仕様に従ってください(コメント欄に書いていただければ、わかる範囲でお答えします)。

接続はこれでおしまいです。HC-SR501はボリュームが2つ付いていて、それぞれ感度調整と持続時間調整です。感度はその通り感度で時計回りに回すほど敏感になります。持続時間は一度動きを検出した時にその後何秒出力HIGHを維持するかを設定できます。睡眠計として使うのであれば、感度は最低(時計回り目一杯)+持続時間最小(時計回り目一杯)で良いと思います。あとジャンパが一箇所ありますが、基板の端の方にするとHIGHになっているときに次の動きを検出してもLOWになるタイミングは延長されませんが、基板端から離れた方に挿すと動きを検出した時点でHIGHが延長されます。これ、どっちが良いでしょうね。

ThingSpeak.comのアカウントを登録します。ThingSpeak.comは「チャンネル」という単位で送信されてくるデータを管理します。一つのチャンネルは最大8個までのデータ列を記録することができます。New Channelで新しいチャンネルを登録し、Nameは適当に、Field1に「movement」というタイトルを付けチェックします。下の方の「Save Channel」をクリックすればOKです。次にAPI Keysというタブをクリックし、「Write API Key」の値をコピーしておきます。

あとは、以下のソースをArduino IDEで開き、お使いのWiFiのSSIDとパスワード、それからさっきコピーしたWrite API KeyをapiKeyにセットすればOKです。

一晩走らせてみた結果がこちら。

会社のIoT勉強会で使ったThinkSpeakを流用したのでArkの名前がw

そのままグラフにすると細かすぎてわからないので10分ごとの平均を480分表示させています。SE-10で取得したデータほどすっきり分離されないですが、xx時にベッドに入り、xx頃入眠、xxにトイレに起きてxx時起床というのが(言われれば)おわかりいただけるかと思います。

私は初老なので睡眠導入剤などを使っていますが、とりあえずこういうグラフがあれば「どの食事/運動/薬/サプリが有効なのか」を客観的に知ることができるかなー…と思っています。昼間部長とメールバトルした日などはドキドキして眠れないので、なかなか客観的な評価は難しいのですが(笑)。

小心者指数を計れるデバイスが出たら買います。買うべきです。ま、買っても役に立ちませんががが。

2016年8月11日木曜日

Eagleライブラリで多角形のPADは無理?

■プリント基板設計は楽しいけれど■

部品のLibraryを探したり作るのが面倒なんですよね。

今回もルネサスの妙に特性の良いパワーMOSFETを使ってみようと思ったのはいいですが、パッケージがヘン。なんすかHWSON-8って。

仕様書より

ってことでEagleで久しぶりに部品を作りましたが、今まで丸いスルーホールか四角いパッドしか使ったことがないので、単純にSMDを8個置いて、上のSMDと接するように放熱パッドをWidth=0のPolygonで作ってみました。

すると…Deviceとして回路図と結合しようとしたら上のパッド部分が接続できません…。正確な寸法をEagleの座標系に移して作るのは結構たいへんだったのにムダ手間かよorz

と思ったのですが、ぐぐったら、「polygonをsmdに変更する方法はないけど、tStopとtRestrict書いて重ねれば良いよ」というQ&Aが見つかりました。

ということで、こんな感じにコピーしてtStopとtCreamに変更し、tStopはWidthを0.127(mm)にして少し外に広げます(右下)。Widthを変更する前は全体がグレイで塗りつぶされた感じなのですが(右上)、いい感じにハッチングが入ります。creamはpadと同サイズなのでWidthは0のまま。


これを重ねあわせてできたのがコレ。純正SMDパッドの部分とPolygonのtStopとに段差ができてしまいましたが、まぁ良いやw


で、これを実際の回路に置いてみました。一応使えるのですが、上の放熱パッド部分がベタVとつながってくれません。

ので、結局、でっかいパッドをどーんと置くことにしました。

わお、シンプル。


で、最後にTextで「>NAME」「>VALUE」を追加。


これで何とか目的のパターンが出来上がりました。



のですが…このままだと表面張力に引っ張られて上にズレて行くような気がします。チップの仕様書で横に飛び出している箇所ってそれを防止するためにあるんじゃないだろうか。

ということで、SMDパッドを大雑把な形にして貼り付けました。ライブラリ上ではただ置いただけ。


出来上がったパターンを見ると、臙脂色の通りにマスクから銅箔が露出してクリームハンダが塗られるようです。これで「表面張力水泳」が止まってくれればいいのですが。

何だかんだで合計5時間くらい作業してたと思います。試行錯誤(右往左往ともいう)を除き、パッド置いておしまい、なら30分程度だと思うんですけど…ああしんどい(笑顔)。

なお、今回、このライブラリを作る際にはEagle Librariesで公開されていたP-ch MOSFETの回路図記号を使わせていただいたのですが、再配布に関するライセンス条件がわからないので今回はとりあえずパッケージだけ公開します。

2016年8月6日土曜日

超音波洗濯、その1

シャープのハンディ超音波洗濯機が話題になっているので、どこのご家庭にも有る超音波洗浄機で、ワイシャツの汚れの首輪に立ち向かってみました。

検体はワイシャツ。普段液体洗剤を直接塗って洗っても落ちない黄ばみが汚れです。超音波洗浄機はシチズンのSW1500、8年前に自転車のチェーン洗浄用に買ったものです。最近はもっぱらメガネ洗浄専用ですけどね…。

■今日の実験■

指定濃度に薄めた液体洗剤で試しました。洗浄槽に約500cの希釈洗剤を入れ、そこに襟をたたんでから筒状に丸めて突っ込みました。逆立ちしてるイメージです。5分後取り出してから通常通りの洗濯をしました。



■結果■

普段よりすこし白くなった気もしますが、黄ばみの皮脂汚れは依然残ってしまいました。

ただ、普通に洗うと灰色のホコリ線も薄っすらと残ったりするのですが、そっちは液体洗剤原液を塗ったのと同程度以上には綺麗になったので、効果はあるのかもしれません。

■次回■

濃厚な液体洗剤で試してみます。

それでダメなら、白いシャツなので「自転車用デグリーザー(脱脂洗浄剤)」を使った方が速いんじゃない?という気もしてきましたw

■追記8/21■

シミに液体洗剤原液をつけてしばらく置いてから、約100倍程度の洗剤液で動作させてみましたが、普通に洗濯した場合と比べて差異はありませんでした。うーむ。

なお、濃厚洗浄液はスタッフがおいしくいただきましたその後、普通に洗濯で使いました。

2016年7月30日土曜日

理想のハンダ付け作業台を求めて

メインで使っているのはこれです。パナバイス。


パナバイスの固定ベース台座(300)とミニホルダー(203)です。自由度の高さと確実な固定という意味では最高なのですが、サイズの違う基板を挟もうとするとネジをグルグルグルグル…と延々と回し続けなければならないのがネック。基板をほぼワンタッチで固定できるプリント基板ホルダー(315)も持っているんですが、そっちはでかい基板じゃないと使えないので1度も使ったことがありませんw

そういう時はこっち。gootのレンズ付作業台 ST-93 。今Amazonで4000円台ですね。あちこちの機械としての仕上がりが悪くてスムーズにスライドしないし力いっぱいネジ締めないと止まらないしプラスチックカバーも飛んだりするので、この値段はないわーって思います。


でもまぁワニ口でポチっと挟むだけで使えるので小さな基板をちょこっとハンダ付けするにはラクで良いです。ルーペもついているので、ヘッドルーペを買うまでは重宝しました。まぁ便利なんですが、品質が低すぎて使うと気持ちが萎えます。そういう意味ではパナバイスは300+203で9000円ぐらいしますが、満足感あります。

そして今日お勧めする商品はこちらっ じゃじゃんっ(テンプレ)


下から、熱可塑性のプラスチックねんど おゆまる、HAKUBAの自由雲台、ETSUMIの「スマホホルダー」の3点です。自由雲台にスマフォグリップを取り付けて、スマフォグリップで基板を挟んでいる図。このMade in Japanの自由雲台はカメラ用、人間の肩関節と同じ3自由度でスムーズに動くので、好きなアングルにネジ一つでしっかり固定することができます。上記ST-93だとあっちこっちのネジを緩めたり締めたりしないといけないですが、これはネジ一個でピタリと止まります。

ただ、そのままだと軽くてハンダゴテ触っただけで動いてしまうので、熱可塑粘土を柔らかくしておいてギューっと押し付けてやれば、ゴムゴムしたいい感じのマウントが出来上がります。冷えるとスーパーボールみたいな感触で適度なクッション性があり触ってもベタつきません。粘土は850円で約200gなので、全部混ぜて極彩色のゴムマウントにするもよし、鉄の灰皿などに粘土を突っ込んで雲台を固定するのも良いと思います。私は200gのゴム全部使って作りましたが、とてもお見せできる色ではないので写真のオレンジの台は約20gを使ってデモ用に作りましたw

スマフォホルダーは基板を挟む幅の範囲があまり広くない(私のは55-88mm)のとグリップ力が強すぎるという点がネックになるかもしれません。また広げるほどバネが強くなるので、大きな基板で熱を加えると基板が変形してしまうかもしれません。でもサイズさえあえば、作業性はとても良いですし、安いのに品質感があって気持ちいいです。

後ろから見た図:うなじがセクシー

そういえばこの2週間ぐらいはパナバイスと自由雲台ばかり使っているなぁ…。道具がスムーズに動くのってストレス少ないんですよね。

2016年7月23日土曜日

Sitesの落とし穴再び / Salesforce

Salesforceのことをここに書き込むのは何年ぶりでしょ。

勤務先でSalesforceを導入するかも?ってんで、やらせてもらってます。で、Sitesを使うんですが…初期段階で動いていたものが、いつの間にか毎度おなじみの「認証が必要です」画面が出てしまうように。

当然ApexもVisualforceも登録済です。そして数日後、Apexのコンストラクタを見て気付きました。

public FooClass() {
    Id userId = UserInfo.getUserId();
    ....
}

…そりゃ認証しろって言われますよね・・・これに気づかなかった自分がいや。本来ここでidを取得する必要はまったくないのですが、社内デモ向けにSitesではなく普通のVisialforceとして見せるためにちょこっと追加したコードでした。

あー、でも動いてよかった。

なお、この「認証が必要です」について「salesforce sites 認証が必要です。」でぐぐったら2010年3月にまさにこのわたくしがdeveloper forumで同じ質問をしていることが判明いたしましたorz この時は違う原因だったんですが…。

これコンサル取得する前かなー…いやはや…なんとも…。

2016年7月22日金曜日

ラズパイ用電源制御基板

かわいいラズパイA。実は一番好きだ。
ラズパイからI2Cでコマンドを送ると指定した秒数経過後に電源を落とし、また設定時間経過後に電源を入れる基板。こんな単純な処理にMSP430G2553を使うことはないんだけど、手持ちで一番消費電力が少なくEnergia(≒Arduino IDE)で簡単に開発できるので(ATTinyあるけど書き込むの面倒くさい)。

とりあえず出来たので記念写真。ユニバーサル基板は疲れるわー。でも、ちゃんと?回路図を書いてから作業したので、私にしては珍しく一箇所も間違えずに完成した。大抵、出来上がってから「あ、1ピンと20ピンが逆だった」みたいな致命的なミスを見つけるんだけどorz

回路図は人様に見せられるものではないレベルw

見せてるけどなw
疲れたから仕上げは後にしようっと。始めたのは16:30だったから3時間か…。

--

あとは明日にしようと思っていたら23:30ごろ目が覚めてしまって、作業再開。

その間色々なことがありました…。

圧着した後でピンが違うことに気づき

ピンを付け直して圧着完了

部品が干渉するのでTO220を表面実装のMOSFETに交換。プルアップ抵抗もまとめて実装。
まずは圧着するピンを間違えてやりなおしorz

特性が今ひとつなのでハイサイドのスイッチをN-ch一個から2SC1815で電圧変換してからP-ch MOSを駆動する回路に変更。動作が安定せず。調べてみたら、ベース抵抗が100Ωだった。ゲート抵抗をそのまま使っていて交換忘れてましたorz 2.2kΩに交換して安定動作を確保。

パワーLEDを負荷として用いたチェックを一通り終えたので、いよいよラズパイ2B+をつないで見た…ら、MSP430G2553が起動しないorz

オシロで電源見てみたら、起動した瞬間に5v電源が3v近くまでドロップし(犯人はUSBケーブル)ていました。ので、3.3vラインに220μFのケミコンを追加して無事解決。

と思ったらケースのフタがしまらなくなってしまったので、電解コンデンサを取り付け直し。

よし、あとは電源のためのコネクタを接続…しようと思ったら、秋月から仕入れたミニBのDIP化基板には100mAのリセッタブルヒューズがついていて使えない。ねんのため普通のBも買ってあったのですが、家にB<->BのUSBケーブルが見当たらない…。他の小物と一緒にヨドバシに注文。

結局徹夜になりましたw

前述の通り、今回久しぶりのユニバーサル基板作業だったのですが、ヘッドマウントルーペの威力は絶大でした。今まで見えてないなかでよく作業してたなーと呆れるレベル。なにせワイヤストリッパにワイヤをセットするにもよく見えていなかったし、圧着もほぼ勘でしたw ハンダが溶け込んでいくところもよく見えるし、ピンとピンの隙間にハンダ付けをするのも楽勝でした。ちょっと近くが見えにくくなってきた方は、騙されたと思って使ってみてください!



さらにちょっとプログラムを書き換えようとしたら「JDK 6がないと起動しない」とEnergia.appに言われたので今どき6はないだろ、とEnergia最新版を入れたらI2Cが動かなくなりまして。しばらく頭を抱えていたのですが、「そういえば以前もそんなことがあったな」と自分のブログを思い出す。で、改めて、その「動いてたバージョン」を入れたのですが、「ダウンロードしたバイナリが壊れているのでインストールできません」と言われるorz しょうがないのでTimeMachineからほじくりだして再々インストール。無事動くようになりました…。Energia、活動していないわけではないみたいですけど、止まってますねぇ…。

で、書き換えたのは、2番目のパラメータを5分単位に。これで最大5*255=21時間25分までのwake upタイマーとして使えます。とりあえず7/24日 18:13に 60秒後にoff、130*5分後にon…というコマンドを送ったので、これで明日の朝5時ごろ起きてくれれば最終テストOK。

半導体レーザーで200W




ファイバーアウト出力200Wの半導体レーザー
リコーは、高い出力性能を備えたファイバーカップリング式808nm帯半導体レーザー「ハイパワーVCSELモジュール」を開発した。VCSELアレイ単体の出力は310W、ファイバーアウト出力は200Wを達成。センシング用途に加えて、エンジンなどの点火用途にも適用できるという。
(以上の写真およびヘッドラインはEDN Japanより引用しました)

さすがにこれはホビー用には出力高すぎるけど、でも半導体でもこんな出力可能なんですね。10Wぐらいのやつないかな。そしたらKitMill BT100/200にファイバーの先端を括りつけて「フライス盤兼なんちゃってレーザー加工機」にするんだけど。
(ORIGINALMIND.CO.JPサイトより)
10Wあればアクリルも何とか加工できるから、レーザーで切断してフライス盤でケズることができれば大抵のものは作れちゃう…気がする。

というか2Wの半導体レーザーで良いので、出してください>Original Mind様

2016年7月15日金曜日

MSP430G2553とRaspberry PiをI2Cで繋ぐ


■MSP430G2■

超低消費電力をArduinoと同じコードでさくっと動かすにはMSP430G2553 + Energiaに限ります。クロックを1Mhzに落とせば消費電流220μA、単3エネループ2本で1年近くもってしまう計算になります。

■接続■

GND同士、SDA同士、SCL同士…をつなぎます。3.3vは接続してはいけません。

ラズパイのHDMI端子を手前におき、GPIO端子の手前側の列、左から2番目がSDA、3番目がSCL、SCLの奥がGNDです。

例によって白がSCLです。でも黄色SDA/茶GNDなのは在庫切れorz

MSP430G2553側は、P1.6がSCL、P1.7がSDA、20ピンがGNDです。

Energiaは、I2Cが自動的にプルアップされるので抵抗を外付する必要はありません。海外ブログで ラズパイとArduino Unoをつないでいる記事を見かけて、それによれば「ラズパイがマスターでArduinoがスレーブなら問題ない。ラズパイは3.3vでプルアップされるがArduino側はされてないからだ」とのことなんですが…今手元にArduino unoがないので、確認できません。Nanoパチ(5v)で試したところ、4.5v程度の中途半端な電圧が出ていました。なので、5vロジックのArduinoを使うことはお勧めしません。接続前に電圧を測定してからにした方が無難です。

■Energiaの準備■

TI MSP430 LauchPadにMSP430G2553をセットします。同じMSP430G2でもチップによってジャンパの設定が違いますので、チップを取り替えたらこのページで確認してください。

ソースはこれです。Energiaは単に信号を受けて、1バイト目 x 2バイト目の回数、LEDを点滅させています。2バイト以外の場合はバイト数を高速で点滅します。ただし10以上はカットします。動作確認用なので特に意味はありません。

今回Arduinoではじめてi2cスレーブを書いたんですが、受信も送信もハンドラを書く方式でわかりやすくて良いですね。今後活用したいと思います。




■ラズパイの準備■

ここを参考にして一発でした。ありがとうございます。

あとは、i2cdetectで0x40が現れれば接続はOKです。
pi@raspberrypi:~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                      
pi@raspberrypi:~ $ 

あとは、以下のように4バイト書き込めば4回チカチカし、
sudo /usr/sbin/i2cset -y 1 0x40 3 2 2 7 i

こちらで6回ゆっくり点滅すればOKです。
sudo /usr/sbin/i2cset -y 1 0x40 3 2 2 7 i

私は貧乏性なので数千円のラズパイを壊すのがとても恐ろしい。ですが、この構成ならば、例えばリレーやモーターなどの危ないことはマイコンにやらせておいて、ラズパイ様は安全なところで命令だけ下していればいい…という運用も可能になります。

■追記7/24■

i2cdetectで0x40にデバイスが現れない場合には、Energia IDEのバージョンをRelease 0101E0015にしてみてください。Release 0101E0016 / Release 0101E0017でI2Cが動かないという問題で大ハマリしたことがあり、まさにさっき同じ穴に落ちましたのでorz

2016年7月12日火曜日

聴覚支援コイルを自作

補聴器には磁気コイルという補助装置がついてます。磁気ピックアップみたいなもので、美術館や劇場などに設置されたコイルから音声信号出力で駆動される磁気を拾って補聴器に直接届くというすぐれもの。

残念ながら設置場所はそう多くないんですよね。

で、自作してみました。こないだ入手した25Wアンプに24AWGを直径1mで20ターンほど。

見事に、聞こえましたw

左右用を作ったのですが、片チャンネルを裏返しにするとボーカルがヘコんだりしてイトオカシww

できあがった時にはたまたまビートルズが流れていたんですが、THE ENDのドラムスが左右に広がって、Her Majestyがほわほわと左右に揺れるのを聞いて、ちょっと涙でました。

コツはコイルをでかくすること。2mぐらいの輪にすると輪の軸上から左右45度、中心から1mぐらいはしっかり聞こえます。もし周囲にコイル付き補聴器をしている人がいたら、ちょっと電子工作してあげると喜ばれるかもしれません。アンプにコイル接続するだけなので、工作ってほどでもないんですがw

私は食卓の自分の席の前にステレオ設置する予定。今までテレビはヘッドホンで聞いてたんだけど、これで食事をしながらアニメをみながらヨメ(三次)と会話できます :-)