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さん、ありがとうございます!

2017年9月17日日曜日

ESP32のPDMでクリアーなサウンドを(希望)

ESP32のPDM出力、波形がもの凄く崩れてます。ローパスフィルタ通して音を聞くともの凄くツブれた音になります。

Facebookでトランジスタ1個で波形整形すると良い、とアドバイスをいただいたのですが、アナログスキルがないので、部品頼みで整形しました(手元のオペアンプは遅すぎてコンパレータとして働いてくれませんでした)。

昔懐かしいシュミットトリガSN74HC14を使います。私が子供の頃TTLのSN74N/Aシリーズは5v専用だったんですが現在のHCシリーズはCMOSなので電源電圧範囲が広く、それにあわせてスレッショルドが変わるので便利です。

接続はESP32から3.3vとGndとGPIO25,26をつなぎます。SN74HC14の使っていないピンは全部GNDに落として置きます(基本のお約束)。HC14はインバータなので2段にしています(あんまり意味ないんですが)。HC14の遅延は最大でも20nS程度なので、今回の用途では問題ありません(と断言したら怒られるかな)。


ESP32SN74HC14Amplifier
GPIO251
2-3
4R-IN
GPIO2613
11-12
10L-IN
3.3V14
GND1,7,9

出てきた波形はこちらです。黄色がGPIO出力、水色がシュミットで整形後です(プローブx10)。


上の表では省略していますが、SN74HC14の出力にはフィルタを通してからアンプに入れます。フィルタは基本的なCR型で、HC14の4ピン→220Ω→アンプ入力(6ピン→220Ω→アンプ入力)、アンプ入力とGNDの間に0.1μFのコンデンサを入れます。これで約8khzのローパスフィルタになります。

結果として、内蔵DACよりもかなり良い感じの音になります。

でも、無音時のホワイトノイズが消えてくれません。あと一歩です。

うーん、アナログはわからない……。

2017年9月11日月曜日

修理依頼:ニキシー管時計


これ欲しかったんだよねー。

修理して欲しいと持ち込まれたので、昼休みを利用して直してみました。

まずACアダプタの電圧を測る。接触が悪いものの12v出ている。次に接続してみる。うんともすんともいわない。バラして、高圧電源を見てみると安定して出ている様子。


基板にフラックスが付着していてハンダ箇所がよく見えないので洗浄ブースで簡易洗浄する。どんなハンダを使ったのか知らないけど、ヤニがとにかく落ちなくて、しばらく不織布にクリーナーを浸してパックしてから専用ブラシで落として乾燥。ホーザンのフラックスクリーナーを買ってみたんだけど、サンハヤトの方が落ちるしキレイに乾くなぁ。

見ると、ハンダが浮いている箇所がある。ベンチにセットして、補修。私の扱う基板はもっと小さいので滅多に使わないんだけど、今回はまさにピッタリ(写真撮り忘れた)。



再度電源を入れると、少し表示が出てきた! 操作しながら表示を見てみると、0-9, ドットはそれぞれ出ているので、セグメント側は生きている。10H桁が非表示で、1H桁に10H表示が重なっているところを見るとカラムドライバICのハンダ付け不良と思われる(トランジスタの故障なら1Hに重なることはない)。ので、ドライバICの怪しいところを一旦ハンダを除去してから盛り直し。冷ましてから電源をいれたら無事動作。スイッチも操作できる。

video

で、あとはケースをお掃除して再梱包。所要時間30分、そのうち20分が清掃時間w

いつもこんな風にうまくいくとは限らないですけど、動かないキットを抱えた方、ご相談くださいw

2017年9月1日金曜日

ESP32でI2Sから音を出す

Kickstarterプロジェクトで使ったI2Sに関するメモ

■内蔵DAC, PDM, 外付けI2S■

esp-idfのexample/peripheral/i2sにサンプル入ってますけど、これ動きました?

DAC, PDM, I2S、いずれも苦労しました。DACとI2Sは符号付き整数、PDMだけ符号なし整数でデータの塊を作ってi2s_write_bytesに渡しますが、i2s_driver_installへのパラメータが試行錯誤の山でした。

PDMはやたら音が歪んでしまい、パラメータをいじりまくったのですが改善しないのでギブアップしました。正弦波を出して第二高周波が-10dBも出ているのは辛いです。DACは素直に入れた通りの波形が出てきます(あたりまえですが)。

で、I2Sに関しては、MAX98357Aを接続し、最終的に以下のコードで動きました。なお、MAX98357Aはモノラルなので、データは符号付き16ビット整数をみっちり詰め込んで渡します。