elecdeer が 2021年02月28日21時58分29秒 に編集
初版
タイトルの変更
M5Cameraで作るネットワーク首振りカメラ
タグの変更
秋葉原2021
M5Camera
サーボモーター
メイン画像の変更
記事種類の変更
製作品
本文の変更
大学の課題的なもので必要になったので、[M5Camera](http://ssci.to/5207)を用いたネットワークカメラを作りました。サーボモータを2つ使い、上下左右に首を振ることができます。 始めはSparkFun製の[Pan/Tilt 機構作成キット](https://www.switch-science.com/catalog/3486/)にM5Cameraを取り付けていたのですが、向きが定まらずぷるぷる震え続けてしまうことがありました。そこで、よりトルクがありメタルギアな[GWSMICRO/2BBMG](https://akizukidenshi.com/catalog/g/gM-01908/)を使い、1から作ることにしました。 ## ハードウェア ### フレーム 元のPan/Tilt 機構作成キットで使われているSG90サーボとはサイズが違うため、3Dプリンタで新しく作りました。モデルはFusion360で作成しました。4つのパーツに分かれています。 全面の穴にはLEGOのペグがはまるようになっていて、M5Cameraを直接固定できます。 モデルは以下のページで公開しています。f3dファイルと各パーツのstlファイルが入っています。なお、一部ネジで固定する箇所があります。 [モデルダウンロード(GoogleDrive)](https://drive.google.com/file/d/1ASEyM9vp7QjvYmMIxRC6xCLpcgRXxKo_/view?usp=sharing)  ### 配線 M5CameraのGrove端子に繋いだ線を分岐させ、2つのサーボに配線します。配線を整えるために、[M5Stack用ミニプロトユニット](http://ssci.to/6557)で分岐用のアダプタを作りました。5VとGNDは共通にし、白と黄をそれぞれのサーボへと配線するだけです。[GROVE - サーボ用2分岐ケーブル](http://ssci.to/1250)を用いてもいいと思います。 ## ソフトウェア 動くことを優先した結果、とっちらかったコードになってしまったのでここには載せません。(ライセンスとか考えるのも面倒くさいので...) ### M5Camera ESP32のサンプルである、[CameraWebServer](https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer)にサーボ駆動関係のコードを付け足して使用しています。 サーボ用のライブラリは[ServoESP32](https://github.com/RoboticsBrno/ServoESP32)を使いました。app_httpd.cppのcmd_handler関数にサーボへwriteする処理を追加すれば、httpからサーボを動かせるようになります。GPIOピンは4ピン(Grove内側)と13ピン(Grove外側)です。 ### ビューワ側 カメラ映像は`http://<IP>:3001/stream`で配信されているので、htmlのimgタグのsrcにこのURLを指定すれば表示できます。サーボの操作はformタグを使えば簡単に作れます。  ## 終わりに M5Cameraは簡単にネットワークカメラが作れて便利ですね。少し前に新しく出た[Timer Camera X](http://ssci.to/6742)も気になるところです。 それはそれとして、今よくよく考えると、動かした後にデタッチするようにすれば、ハードウェア新しく作らなくて良かった気がしますね...