Raspberry Pi と Arduino で作る360度回転リモートワークカメラ(2) ハードウェア製作編

この記事は [WESEEK Advent Calendar 2020](https://qiita.com/advent-calendar/2020/weseek) 15日目の記事です。

## はじめに

[前回の記事](https://qiita.com/Aqutam/items/481e5e945cfe9e1aa4ab)で紹介したリモートワークカメラの、製作する過程や工夫した点などについて説明したいと思います。

## 構成

[前回の記事](https://qiita.com/Aqutam/items/481e5e945cfe9e1aa4ab)にも書きましたが、リモートワークカメラの構成は下記のようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/e5543ab3-9d40-982e-173c-48351f8da11d.png)

まず、Raspberry Pi は、 Xbox One コントローラーの入力から制御コマンドを組み立て、 Arduino に送る処理と、 Webカメラの映像を Google Meet へ流す処理をしています。

Arduino は、 Raspberry Pi から送られてきたコマンドを処理し、モータードライバ L6470 へSPI経由でコマンドを送り、モーターを駆動しています。モータードライバは、物理的な限界に関わらず有効なコマンドを受け付けてしまい、脱調する恐れがあるので、 Arduino 側で回転速度の制限を入れています。また、現時点では実装されていませんが、原点復帰など、機械原点の管理なども担う予定です。今はまだ機能が少ないので、Arduino を入れているメリットはあまりありません。 

## スリップリングで何回転してもコードが絡まないようにする

このリモートワークカメラは、動画のように何回転してもコードが絡まらず、電力や信号を伝達できるようになっています。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">モーター回してみた！<br>軸が曲がっちゃってるのと、プーリーがセンターからずれてしまって、だいぶガタガタしてる。 <a href="https://t.co/OCUDNnU55w">pic.twitter.com/OCUDNnU55w</a></p>&mdash; たむーん (@Aqutam) <a href="https://twitter.com/Aqutam/status/1327441684116869121?ref_src=twsrc%5Etfw">November 14, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

それを実現しているのが、スリップリングという部品です。（[参考](http://www.hikari-slipring.co.jp/publics/index/43/)）

![img_4625.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/7a3658d6-a536-1722-b902-45ecfa4c369d.jpeg)

[ツバメ無線 SRG-42-14GC](https://www.tbm-japan.com/product/index.html) を使いました。14極の信号を伝達させることが可能です。
この部品だけで1万円弱しました。カメラの総材料費の1/5も占めています。
調べた中でもツバメ無線製のスリップリングは安い方で、全体的にこの部品は高いようです。

リモートワークカメラでは、このスリップリングを介してUSB信号を伝達しており、回転板に取り付けた Web カメラの映像を、下部に固定した Raspberry Pi に入力できるようにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/677b486d-0741-1424-4851-13803014667e.png)

## 軸のDカット加工

ツバメ無線のスリップリングの軸を差し込む部分は、円ではなくD字になっています。このままでは軸を差し込むことができないため、1辺を平らに削ります。

ディスクグラインダーで削りました。

![IMG_4667.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/0c589bf1-dad5-0d92-54e7-d6e4f8ee9f18.jpeg)
![IMG_4657.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/e42e981d-583b-0ac2-aebb-90bf29c5e023.jpeg)
スリップリングに軸を差し込むことができました。

![IMG_4659.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/b2dda0a8-7034-3dbf-f720-37de4ecbea3b.jpeg)

## タイミングベルトで軸とステッピングモーターの負荷を軽減させる

モーターの軸を直接回転板に取り付けると軸に負担がかかると考え、タイミングベルト・プーリーをクッション目的で挟みました。急な転換で負荷がかかっても、ベルトが多少たわむことで、負荷が軽減できていると思います。おそらく。

また、タイミングベルト・プーリーを導入したことで、ブレの吸収もできました。
回転板に取り付けている軸径が φ5 なのですが、購入したタイミングプーリーの軸径が φ4.5 だったため、ボール盤で拡張を行いました。その際に加工に失敗し、軸の中心が少々ずれてしまいました。ですが、タイミングベルトが多少たわむことでブレをあまり気にすることなく回転させることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/e1d51c7b-3c7d-fadd-5f17-f768047a6287.png)

## ステッピングモーターの発熱問題

搭載しているステッピングモーターの定格電圧は 12V ですが、これでは回転板を回転させることができず、脱調を起こしてしまいました。
解決策としては下記が考えられると思います。

1. 回転板側のタイミングプーリーの歯数をステッピングモーター側より大きくする（機械的解決）
2. ステッピングモーターに加える電圧・電流を大きくする（電気的解決）

[こちら](https://strawberry-linux.com/catalog/items?code=12026) のサイトでも、定格の2倍の電圧をかけるとトルクが増すとの記載があったので、今回は 2 を採用し、 24V の電圧で駆動するようにしました。

2倍の電圧にしたことでトルクが増し、回転板を回転させることができるようになったのですが、今度はステッピングモーターが非常に発熱するようになりました。ステッピングモーターの表面温度が 100℃ 以上になると、コードの被覆が溶けてしまう可能性があるため、冷却する必要があります。そこで、ファンを取り付け強制空冷させるようにしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24506/4d326efd-b3b2-91f2-09f1-b2ea220cd81c.png)

ファンを選ぶ際、冷却はできるが静音であることにはこだわりました。PC用のファンで最近人気の noctua の 60mm のファンを採用しました。このファンは羽の端に3本の溝がついているのですが、これによって気流を増加させかつ低騒音になるのだそうです。実際、非常に静かです。（[参考](https://noctua.at/en/flow-acceleration-channels)）

![](https://noctua.at/pub/media/wysiwyg/images/technologies_new/flow_acceleration_channels_comparison_1.png)

## 最後に

※この記事は [WESEEK Tips wiki](https://tips.weseek.co.jp/) に 2020/12/15 に投稿された記事の転載です。
Tips wiki では、IT企業の技術的な情報やプロジェクトの情報を公開可能な範囲で公開してます。