「ラズパイ」と「スプレッドシート」で全自動水耕栽培器をつくって女の子にTwitterで実況しながら栽培してもらう:⑦各種機能編 ~植物の高さを計測する~
ギアとモーターは男のロマン
第七回目ともなると冒頭に書くことが思い浮かばなくなってくる。「HAGUKUMU」の設計解説ブログはもうちょっと続くことになるだろうが。いきなり本題に入った場合は何も思い浮かばなかったんだろうなと考えてほしい。
さて、今回はギアとモーターとセンサーを駆使しながら物体の高さを図る機能を実装していくよ。
どうやって高さを図るの?
お答えします。
仕組みは上図のとおりである。ギアとモーターによって上下運動することでセンサーを動かす。光センサーによって、センサーは物体が存在するかどうかを識別することができるので、物体が識別されている状態が続く間はモーターが上に移動し、最終的に物体が識別されなくなるまで稼働させる。モーターが動いた時間を距離に換算することで高さが図れるといった次第である。
材料を用意しよう
高さを図るために必要な部材は以下のとおりである。
- 適当な木材(今回は幅70×長さ600mm、厚さ5mmくらいのバルサ材を使用)
- ミニ四駆PRO MSシャーシ用ハイスピードギヤ
- 360°連続回転サーボ(ローテーションサーボ) SG90-HV
- タミヤ(TAMIYA)/OP-1798/TA07 ローフリクションドライブベルト
- フォトリフレクタ(反射タイプ)LBR-127HLD
作る前に注意しておくこと
サーボモーターとギヤを取り付けることは口径が合わない関係ため、取り付けることはできない。しかし、ハンドドリルのような工具を使ってあげれば穴のサイズを合わせることができるので取り付けが可能になる。
1枚目:ドリルで穴のサイズを調節してあげれば...。
2枚目:サイズの合わない者同士を合わせることができる。
作ってみよう
サーボモーターとギヤとベルトの取り付け
とりあえず無理やり、板にサーボモーターとギヤ、ベルトを取り付け、稼働テストをしてみる。
精度は悪そうだが、その辺はギアとか調節すればなんとかなりそうだ。
改良版のテスト
調整の結果精度が上がったぞい。
光センサーのテスト
こんな感じの配線をする。この辺の記事を読んでいけば実装できると思う。
ちなみに黒いジャンパワイヤがGNDです。
んでもって、テストをしてみる。
どうやらうまくいったようなので、次はギヤとモーターとセンサーを組み合わせて高さを計測してみる。
高さを計測する
以下が実装に際して使用したソースコードである。
言い訳するわけではないが、時間がなかったのでリファクタリングなどは一切行っていないのでお見苦しいコードである。許して。
main.py
distance.py
servo.py
稼働テスト
動いたのでよかった('ω')
次回はラズパイから画像をアップロードする方法について話していく。
それではごきげんよう。