【Raspberry Pi】YoutubeLiveのコメントで動く2軸カメラマウント【Python】

DaPjASSVMAAdZiv

ものづくり趣味。八重樫です。

毎年、京都旅行をするのですが、その際に自宅で留守番している猫の様子をYoutubeLiveで見るようにしているのですが、カメラの画角でカバーしきれない事が多々あるので、「じゃあ動かせばいいんじゃない?」というわけで作りました。


Raspberry Piのセットアップ。

以前、MakerFaireTokyoで買ったものの放置していたRaspberryPi3B+を使います。
RaspberryPiのセットアップについては、ググって下さい。

で、OSですがRASPBIAN STRETCH WITH DESKTOPをインストールしました。
母艦(?)にはWindows7Proを使っているのですが、イメージを焼いてのインストールでは上手くいかなかったので、NOOBSでインストールしました。
キーボード、マウス、モニターが用意出来る場合はNOOBSでさっくりインストールしちゃった方が楽です。

余談ですが、RaspberryPi用にPFU Happy Hacking Keyboard Lite2を購入しました。
普段使っているFILCO Majestouch2と比べると、やはり硬めの打鍵感でガチガチといった具合。
HHKBにはファンクションキーがないという事で、仕事で使うにはちょっとなーと思っていたので、良い機会でした。
実際に使ってみると、Fn+数字でもそこまで不便って事はない。コンパクトなので、Raspberry Piで使うには良いかと。


2軸カメラマウント

AmazonでSG90サーボ用 2軸 カメラマウントが593円(購入時)だったので購入しました。
ついでに、HiLetgo PCA9685 16チャンネル 12-ビット PWM Servo モーター ドライバー IIC モジュール も。
このPCA9685ボードは、Adafruitのものと互換性があり、Adafruitのライブラリがそのまま使えます。
どちらもAliexpressでも購入できますが、Amazonでも十分に安いです。のんびり待てる方はAliexpressでも良いかと。

上記の2軸カメラマウントを組み立てて、Webカメラをなんか上手いこと取り付けます。
Webカメラは安かったのでLogicool C270mを購入。

こんな感じ。
DaPjASSVMAAdZiv

カメラマウントの底面には1/4インチのナットをエポキシボンドで貼り付け、3脚マウントで使用出来るようにしています。


プログラミング

ググれば作例がある物の組み合わせなので、ソースコードは掲載しません。(あの表示のやり方わからんし)

Pythonで書きました。
最初、Go言語で書いていたのですが、Raspberry Piにはデバッガーが対応していなかったので、途中からPythonに乗り換えました。

YoutubeLiveのコメントは、YouTube Live Streaming APIは未だ対応していないようなので、YouTube Data API (v3)を使いました。
コメントは「pageToken」と「nextPageToken」の比較で最新のコメントを取得出来るようなのですが、どうにも上手くいかなかったのでコメント日時を比較しました。
そうして取得したコメントに「@up」や「@down」のようなコマンドが含まれていたら、サーボを動かすといった感じです。

サーボは、AdafruitのPCA9685ライブラリをそのまま使用。
少しづつ動かしながら、角度の限界を探って、それ以上には動かないよう書きましょう。無理をし過ぎるとサーボのギヤが割れます。


実際にやってみる。

実際にYoutubeLiveをやった際のアーカイブです。

埋め込みプレイヤーだとコメントが見えませんが、実際に視聴者の方のコメントを受信して動いています。
ひとまず、完成。


今まで自分の作品は作りきりの物が多く、一度作った物はそれっきりでした。
今回は、後々の拡張性(カメラのスイッチング等)を意識して作ってみました。
また、この作品でRaspberryPi、Go言語、Python、YoutubeAPIといった物を使う事ができたので、今後違う物を作る事にも役立てられそうです。

測量ではあまり役立つ技術ではありませんが、こういったものづくりに関してのご相談もある程度はのれるかも知れません。
何かあればお気軽にお問い合わせ下さい。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>