2017年12月10日日曜日

MDFのヤニ



MDFをレーザーカットするとヤニがついてしまいます。以前はIPAや水で拭き取ればきれいになるのですが、繊維が残らないように不織布を用意したり乾くのをまったり面倒くさい。

衛生用のアルコールティッシュを使ったら綺麗に落ちて乾燥も早いです。

2017年12月8日金曜日

PCB発注いろいろ

ご無沙汰しております。

最近、サラリーマン業が炎上気味かつメイカー仕事がキャパオーバーでブログ書く時間ありませんでした。

PCB / PCB A発注は以前はelecrowとpcbgogoだけでしたが、最近、seeedやp-ban.comも頼んでみたので、その辺の雑感など。

わたしはいずれの場合も日本から主要部品を送りました。送らないで済ませたいのですが、基本的にMouserなどからの仕入れになるので日本向け製品については送らざるを得ないのです。そういうものを使わないで設計したいのですが、普段秋月に依存しているのでしょうがないのです。

■Elecrow■

PCBの品質はPrototypeで70点ぐらい。シルク太い。カットが汚い。Premierで80点ぐらい。Premierなら文字サイズ24milでもなんとか読めるけど、Prototypeは32milがギリギリ、50milをオススメします。あ、1.6mm、緑レジストだとPrototypeでもわりときれいです。

PCB Aに関しては、半田付けはきれい。レジスト精度0.3mmまでなのでQFNには対応していないが、1mmピッチぐらいまでなら圧倒的に安く作れます(50x30mm, 1.6mm両面基板で20枚1万円ぐらい)。納期はあちらに部品が届いてから10-12日ぐらいで届く。時々腰の抜けるようなミスがあるので、指定はうるさいほど厳密に。表面実装のCRなどは無料で使える。Fusionだとメーカー型番を厳密に指定しないといけないけど、ここは2012, 1kΩと書いておけばライブラリから適当なものを使ってくれる。

0.5mmピッチQFNには非対応。知らないで頼んだらロット全滅しました(笑)。

あと、事前に言っておけば余った部品は返却してくれます。

担当者との連絡はすべて英語。

■PCBgogo■

PCBの品質は85点ぐらい。十分きれい。48時間特急料金にしてもそれほど高くない(50x50mm, 1.6mm, ENIG仕上げ5枚で送料込み1万円弱)。土曜日も作業してくれるので、タイミングによってはp-ban.comの標準納期より早く着く。

PCB A、こないだ特別オファーでElecrowと同じぐらいの費用で受けてくれたので頼んで見た。 基板の品質は良いし、この値段なら普通に頼める。QFNについては頼んだことないのでわかりません。

あ、あと、日本から部品を送る場合、少し余分に入れておいてくださいと言われるんだけど、余った部品はちゃんと返してくれます。

担当者とのやりとりは日本語。

■Fusion / Seeed■

PCBの品質は90点ぐらい。十分きれい。

PCB Aでは、一般的な基板とQFNを含むレジスト精度0.1mm以下の基板を頼んで見たけど、不良ゼロだった(当たり前か)。事前のチェックはElecrowよりかなり細かく、抜けをそのまま放置する、なんてことはなく問い合わせが来ます。納期はあっちに部品が届いてから2週間+αという感じ。作業過程が見えないので、ちょっと遅く感じます。いや実際Elecrow / PCBGOGOより5日ぐらい遅いかな。

担当者とのやりとりは日本語。やっぱり楽。リンクはこちら


■P-ban.com■

PCBを頼んで見た。納期予定通り。金額はWebの見積もり通り、だいたい中国勢の5-7倍ぐらい。ただ、中国勢に特急料金払って空輸してもらっても日本国内なら翌日配達なので、急ぎの基板については差はもう少し縮まるし、最短翌々日に届くのは中国からでは絶対に不可能なので、非常用手段としてキープ。

仕上がりは驚愕するレベル、100点満点。エッジはつるつるだしシルクも美しい。

今まで、中国勢に50mil, 8%でシルク指定してて「このぐらいの太さだな」と思っていたものが、細過ぎて老眼鏡が必要なレベル。もちろん24milでもくっきりと読むことができて、顕微鏡で拡大してもにじみがない。いやびっくりです。なんでこんなに違うの?

なお、P-ban.comで標準になった水溶性フラックス仕上げってので頼んでみたのですが……半田付けしたあとにフラックスクリーナーでわたしの半田付けの下手さを洗い流すことができないのが辛い(フラックスを洗い流すと銅箔が錆びるから)。

担当者とのやりとりは当然日本語。PCB Aはまだ頼んだことありません。

■まとめ■


基板のみの場合、超特急なら国内。週末に設計・発注して翌週末に作業したい週末メイカーにはPCBGOGO。試作でとにかく安くということであればElecrow(pcbgogoも安いけど、ElecrowはOCS/ANAを選べるのでDHL/FedExより1日早いし、もっと安い一般航空便も選べる……試したことないけど)。高精度のものはFusionか国内。

PCB Aについては、簡単なものを安くあげたいならElecrow。高精度なものを比較的安価にということであればFusion。高精度なもの and/or 美しく and/or 早くであれば国内。

……ごく当たり前の結論ですね。

このところ、本格的な受託開発が多く、「値段は(あまり)気にしないから早く早く」ということで国内業者を使って見たのですが、いやー、やっぱ綺麗だわ……というのが感想。ただ、わたしら基板を手にとって見る人間にとっては綺麗だけど、基板の入った装置を買う人にとってはオーバークォリティなのかもしれないなぁと思いました。

……また当たり前のことを書いてしまった。

2017年11月29日水曜日

Raspberry Piでpythonアプリが自動起動しない

お久しぶりでございます。

Raspberry Pi + pythonでbluetoothを使ってちょっとしたツールを作りました。

で、systemctlで自動起動しようとしたのですが、動いてくれません。どうも起動してすぐエラーになっているようですが、ログにはexitしたと出るだけで具体的な内容がわかりません。

この記事を参考にして設定ファイルを書き、サービスを登録します。その場でstart / stopを実行するとちゃんと動いてくれます。


設定ファイルはこんな感じ

[Unit]
Description=sample
After=syslog.target
[Service]
Type=simple
ExecStart=/usr/bin/python2 /home/pi/locker/app/sample.py
TimeoutStopSec=5
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target

ですが、動いてくれません。pythonがエラーは吐いているはずなんですが、ログに乗っかってくれません。

しばらく試行錯誤した後、/var/log/syslogを見てsample.serviceの起動に失敗した後で何が行われているか探してみたら、bluetoothが。このアプリはbluetooth使っているので、先にbluetoothが動いてなければそりゃ失敗しますがなorz

systemctl list-units --type=service

これで動いているサービスの一覧を出力すると、その中に

bluetooth.service loaded active running Bluetooth service 

があります。ログインした状態では当然bluetoothは起動していますが、自動起動では特に指定しないとサービス名順に実行が開始されますので、sample.serviceが起動した時点ではbluetooth.serviceは起動していないのは当然ですorz

ということで、設定ファイルを以下のように書き換えました。Afterにスペース区切りで上記のbluetoothのサービス名を追加します。

[Unit]
Description=sample
After=syslog.target bluetooth.service
[Service]
Type=simple
ExecStart=/usr/bin/python2 /home/pi/locker/app/sample.py
TimeoutStopSec=5
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target

これで無事起動しました。最初wantsで指定したのですが、wantsは実行順には関係ないんですね。

systemctlはMacではずいぶん前から標準になっているんですが、Raspberry Piで使ってみたのは初めてです。コマンドラインでenable / disableで自動起動の有無を切り替えたり、start / stopでその場で起動 / 停止ができるので、なかなか便利です。

ともかく動いてよかったよかった。

2017年9月23日土曜日

鳩対策:Arduino + サーボで振り払う

我ながら雑だ

■再来■

えー、また鳩害対策の話ですが……廊下側の給湯器排気筒の上に来て大量の糞を落とすようになってしまいました。

当初ぐるぐるまいた鉄条網を設置したらしばらく来なかったのですが、ある日ふと見ると上に鎮座してやがりました。鉄条網ぐらいの短い針じゃあんまり効果無いですね。



■検出して振り払う■

ということで、電子工作的に対応しました(キリッ


電源はダイソーのモバイルバッテリを使いました。ボタン押さなくても給電開始してくれるのでこういう用途にばっちりです。

別にカメラ付けなくても良いんですが、やっぱ「装置が働いたことによって排除することが出来た」ってのを確認したいじゃないですかw



今回使ったAdafruitのmini spy cameraは、micro SDカードをセットして電源をつなげば、あとは信号を0.5秒以下GNDに落とすと静止画、それ以上だと動画録画を開始しもう一度落とすと止まる……という仕様です。間違って買ってしまったんですが、イマイチ使いにくいっす。

サーボはSG90のパチ物です。本物は180度動くみたいですが、これは120度しか動いてくれないし安定性もイマイチです。でも1個100円なので、こういう用途には十分です。

ソフト的にはPIRが検知したら撮影を開始し、ちょっと待ってから数秒間サーボの腕(割り箸をサーボホーンにホットグルーで接着)をぶんぶん振り回し、撮影を止める……というたわいないものです。

サーボはタミヤのプラスチックアングルに固定し秋月のこれで給湯器に貼り付けました。以前にも書きましたが、コレの接着テープは非常に強力でキレイな面に貼るとちょっとやそっとでは剥がれません。ご注意下さい。ケースはレーザー加工したMDF箱が大量に余っているのでそれを流用し、ネオジム磁石のフックで吊りました。

我ながら雑です。

雑ですが、設置期間中は鳩の糞はありませんでした。そして、spy cameraにも鳩らしいものは写っていませんでした。ははははははorz

■そして物理障壁設置へ■

というわけで、一応効果のある装置でしたが、公団に文句を言い続けてたら対策してくれました。



物理障壁強い。横から入りそうで少し心配な形状ではありますが。


2017年9月22日金曜日

ESP32とカメラをつなぐ



これを見つけてからぜひ一度試してみたかったんですが、やっと準備ができました。

■せっかくの基板、OV7660では動かず■

以前、ユニバーサル基板を簡単に間違いなく作る方法をここに書いたのですが、この時作ったのがこのための基板です。


うーむ、もう4ヶ月前か……。このときは、やけに安く手に入ったOV7760を使ってみたのですが、案の定動きませんでした。I2Cでの設定を変えたりすれば動くんでしょうけど、面倒くさいのでそのまま放置してました。

■OV7725で再挑戦→動いた■

その時はOV7725がまだ高かったのですが、先日ebayを見たら、1100円以下で売っていたので取り寄せました。今となっては懐かしい640x480ですが、メモリの少ないESPには丁度良いと言えなくもないです。

なお、手持ちがないので試していませんが、200万画素のOV2640でも動くみたいです。ebayでの価格も同じ程度なのでこれから買うなら2640の方がいいかもしれません。


接続して一発で動作しました。トップの不気味な写真がそれです。急な雨で洗濯物を取り込んだ直後の写真です。

コンソールに出てくるメッセージに従って、http://<ip address>/pgm または /getで画像がダウンロードできます。pgmでダウンロードしたファイルの拡張子を .pgm に変更すると、ビューワーなどでみることができます。

配線するだけでカメラとして使えるので、秋月でESP32開発ボードを買ったとしても材料費3,000円以下でWiFi Cameraを作れてしまいます。メモリが少ないのであまり凄いことはできないですが、動体検知ぐらいなら楽勝だと思います(やれよ)。

恐ろしい時代になったものです。

作者のigrrさん、ありがとうございます!