[PR]記事内のアフィリエイトリンクから収入を得る場合があります
スポンサーリンク

【Blynk】SwitchBot見守りカメラをX方向(一軸)可動させる自作IoT

SwitchBot見守りカメラをX軸に沿って可動にするという話。

かなり長いのでブックマークしておいてゆっくり読んでください。

スポンサーリンク

初期構想のフローチャートとポンチ絵

  1. Blynkまたは物理ボタンで右または左と指示
  2. サーボが右または左に半回転程度する
  3. サーボに取り付けた滑車が回転し紐を回す
  4. カーテンレールに固定されたカメラが紐の動きに伴って左右いずれかに数cmスライドする
  5. 限界点まで到達したら止まり、それ以上は先に進まない
  6. カメラのパン・チルトはSwitchBotアプリで操作できるのはもちろん、視点をX方向で変えることができる

カメラレールの構想図

上の図でサーボの角度と角材の角度が適切でないが、実際の設置のときにはなるべくカーテンレールに近づくように90度X方向に回転させてつけている。

初期構想サーボ回す仕組みと取り付け

材料

  • ESP8266
  • ブレッドボードとジャンプワイヤー
  • 360度サーボとブラケットとM3ビスナット
  • 厚さ0.5mm程度の鉄板と木ネジ
  • 滑車と細いタッピングビス

ESP8266にプログラム

例によってBlynkレガシーを活用する。

この最初の一点だけで「もう無理」と諦めないでほしい。ここさえ別のIoTブローカーを活用してなにかできればここから下は中学生レベルの工作でなんとかなる。

ちなみにプログラムはGithubに入れてみた。見えればダウンロード自由だ。

物理ボタンまたはBlynkアプリによりサーボ回す

サーボを回すのはどこかのコードをコピペしているだけなので理屈は自分はわかっていない。回ればいいのだ。

Blynkまたは物理ボタンの左という信号(命令)であれば左半周ぐらいさせる命令をサーボのGPIOに送るし、逆なら逆のことをする。

コピペ制作なので解説できることはこれ以上ない。

サーボASSY組み立て

サーボにサーボブラケット取り付けるが、M3の小ねじとナットが要る。

▼サーボはこれ MG995という型番でも180度回転と360度回転とタイプがあるようなのでちゃんと360度のものを買うようにしよう。

サーボホーンはサーボについてくるので適当なのをつけ、サーボホーンに滑車を小さいタッピングビスで固定する。適当なタッピングビスがなければ接着剤でもつくと思う。

これを使った▼

鉄板を天井にビス止め

ここは少々悩んだ。結果としてオーライなやり方を閃いた。

この鉄板はもともと片側に薄い両面テープがついていてタブレットやスマホに貼り付けて車載スマホホルダーなどにピタっとくっつける用途で買ったものを使わなくなり保管しておいたものだ。

それが薄くてサーボブラケットを天井に固定するのにうってつけだったので使った。サーボブラケットの接地面より少し大きめだったから使えた。

鉄板を天井に固定してその隙間にサーボブラケットを挟み込むことでしっかりと動かないようにできた。

カメラ動く物理的仕組み

材料

  • カーテンレールと固定用ビス
  • 木の角材5cm前後
  • 木ネジ適当なサイズ
  • L金具2個と木ネジ
  • 丸ゴム

①カーテンレール取り付け

カーテンレールとサーボ滑車

カーテンレールはカインズで2mで700円弱のプラスチック製のものを買った。

位置を決めて木ネジ等で固定する。このとき2mでは長すぎるかなと感じたら潔く切ろう。

②自由滑車取り付け

カーテンレールと自由滑車

サーボ側と反対側の滑車を固定する工程。

取り付け方は長いビスを使おうとなんでもいいんだが、木の角材を使うのが簡単そうだったので選んだ。

まずは角材の長さをサーボ高さと揃えて切る。のこぎりが必要になる。

のこぎりで高さを揃えた角材にL型金具をビス留めする。このときL金具を天井への固定に使うのでツライチ合わせて留める。

さらに角材の下になる側に滑車を木ネジなどでねじ留めする。滑車の回転が不規則にならないようになにか工夫しよう。

滑車同士をゴム紐で結ぶ

長くて断面が丸いゴム紐を探してようやく見つけたのが丸ゴムという名称のもの。

これを適当な長さに切って滑車に取り付ける。タイミングベルトみたいなものだ。丸ゴムの結束は縛ってもいいしギボシを加工してもいいしなんでもよかろう。

ゴム紐をカメラシャフトに巻きつける

滑車に連動しているゴム紐(丸ゴム)をカメラシャフトに巻きつける。

巻き付けて丸ゴムの移動に合わせてシャフトが動くというのはあまり格好のよい出来ではないが、動けばなんでもいい。

もっと良いアイデアが浮かんだら変えるかもしれないがここは問題ではない。

カーテンレールへのカメラフランジ固定

カーテンレールのライナー2個の間にカメラの支柱をぶら下げているフランジを固定する。

固定方法は輪ゴムで適当にやったらうまくできた。紐で縛ってもいいし、針金など使ってもよいだろう。ここはそんなに頭を捻る工程ではない。

カメラが限界点で止まる仕組み

材料

マイクロスイッチをカーテンレールの近く適当なところにつけて上死点みたいなところにさしかかったらスイッチを押して駆動が止まるような仕掛けにする。

どこにスイッチを取り付けるか決めるのがちょっと厄介なだけで仕組みとしては極あたりまえのもの。

マイクロスイッチの取り付け

マイクロスイッチをカーテンレールの両端近くのフランジが当たる場所に合わせて固定する。

限界点手前で止まる位置を決めて木ネジ等で固定すればOK

スイッチ部分にはフランジが当たるがフランジが丸くてうまくスイッチが反応しなかったら別の方法を考える。

物理スイッチでも動く仕組み

材料

プッシュスイッチを壁の手の届くところに設置しておこうと考えた。スマホからしか操作できないのでは自分しか使えないのでその場にいて誰でも左右の移動指示ができれば面白いはずだ。

壁にスイッチを取り付け

GPIOにスイッチも接続して人の手が届くあたりに設置して機能させる。

Blynkを使えるのは自分だけなので自分しかカメラの移動ができないというのもちょっと難なので物理スイッチでも同じように操作できるようにしておこう。

動作確認

右のボタンで右に
左のボタンで左に

という確認をする。

ここまでの結論

Microスイッチとプッシュスイッチの設置をするまえに滑車でちゃんと左右にスムーズに動くかという確認が先であることは誰でも想像できると思うのでやってみた。

だめだった。

滑車とゴム紐の摩擦が小さすぎて滑車が空回りするばかりでぜんぜんカメラシャフトを動かしてくれない。

失敗です。

バージョン2 ネジジャッキ方式

構造と取り付け方と部品

サーボを回転させる機構とスイッチ類の機構に変更はなく、プーリー(滑車)でカメラシャフトを動かす機構からネジ棒を回転させてナットに固定したシャフトを移動させる方式に変更した。

サーボと同軸にネジ棒

サーボと同軸にネジ棒をなんとか適当に固定してBlynkからの命令によりサーボが回る。サーボの回転とともにネジ棒が限りなく回り、そこにくっついたナットは固定状態になっているので左右に移動するという仕組みだ。

ナットとカメラシャフト固定

シャフトとナットの固定もそんなに凝った構造にしてあるわけではなくM5のナットと適当な金属パイプを溶接でくっつけてそれとカメラシャフトを輪ゴムかなにかで固定してあるだけだ。

ネジ棒の終端は自由に回れるように木の角材に穴をあけて通してある。ただしギザギザのネジ棒が木の角材の穴の中でぐるぐる回ったら木がすり減るので金属のパイプを通してある。金属のパイプの中でネジ棒が回ればそんなにすり減ることはないはず。

ネジ棒終端で自由回転

変わった部品はM5のネジ棒とM5のナットとそれをつける適当な金属パイプぐらい。M5のネジ棒2メートルなんて市販では存在しないので自分で5mmの丸棒を買って一所懸命ダイスでネジを切った。何時間かかったやら。

結論

しかし一所懸命ネジを隅から隅まで切った割には思ったような結果にならなかった。

なぜならM5の標準的なネジはピッチが0.8mmしかないのだ。つまりナットが一周またはネジ棒が一周回るごとに0.8mmしか移動しない。

2メートルのネジ棒ではあるが有効移動範囲を1.5メートルとしてもその範囲を移動させようと思ったら膨大な時間がかかる。

ざっくり計算だが、サーボが360度回転するのに0.5秒かかるとしよう。おそらく実際にはもう少しかかると思うが計算しやすくするため0.5秒とする。

端から端まで移動するのに必要な回転数は1500(mm)/0.8=1875(回転)

かかる時間は1875(回転)x0.5(秒)=937.5(秒)=15.625(分)

連続で回転しつづけて15分かかるということで現実的には使い物にならん。

総括

一応ネジ棒によって移動はできるということは確認したが、移動の速度が遅すぎてその他のスイッチ類をつける気にならず完全な完成には至らずここで中止とする。

じつは世の中にはボールねじという機械要素があり、これはシャフトの回転に対してもっと移動距離が長いものだ。これを使えばより早くカメラを移動できるが価格が高いので個人の趣味として買うには躊躇しすぎる。

したがって新しいアイデアが生まれてもっと早く移動できるようになったら追記または新しい記事として公開する。

 

タイトルとURLをコピーしました