Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Raspi用カメラに合わせた自前首振りカメラをつくる

専用カメラとかいうブルジョワ的な箱が売ってますが、あえて自前で作ってみようかと

実際のところ

必要なもの

今回使ったのは以下の通り

  • RasPi3
  • RasPi公式外箱(黒)
  • RasPi専用カメラ
  • ジャンパ線(オス-メス)×3
  • サーボ:RB-90

微型RCサーボRB90

微型RCサーボRB90

外装

箱の加工

薄い箱なのでピンバイスでも余裕で加工できます。
短辺にRB-90付属の一文字型サーボホーンを取り付けします。
カメラ穴は口径をはかってドリルでゴリゴリ。
好みでスリ鉢状の削りを入れました。
……表面処理は気が向いたらやります。

裏側はカメラのリボンケーブルを引っ張り出す横穴加工。
表面処理は(ry

配線

配線はこんな感じ。
カメラのリボンケーブルとジャンパ線を接続。
RB90はオレンジ、赤、茶の順に信号、電源(5V)、グランドとなっています。
信号線はPWMを使う関係からWiringPiのピン番号に合わせて1番

外箱も加工



スクリプト

wiringpiとpythonの合わせ技でいけます。
いかにPWMの規格を理解していないか白状するようなダメコードですが……動きますから(迫真

import wiringpi
import sys

OUTPUT = 1
PIN_TO_PWM = 1

# 6dgree ~= 1, 45dgree ~= 10, 90degree ~= 15, 135dgree =~=20, 180dgree ~= 30
MAXSIZE = 30
target = int(sys.argv[1])

wiringpi.wiringPiSetup()
wiringpi.pinMode(PIN_TO_PWM,OUTPUT)
wiringpi.softPwmCreate(PIN_TO_PWM,0,MAXSIZE) # Setup PWM using Pin, Initial Value and Range parameters

print(target)

wiringpi.softPwmWrite(PIN_TO_PWM,15) # Change PWM duty cycle
wiringpi.delay(1000)
print("center")

for b in range(15,target):
  wiringpi.softPwmWrite(PIN_TO_PWM,b) # Change PWM duty cycle
  wiringpi.delay(20)
print("coming the place")

コマンドはこんな感じで叩きます。

$ sudo python3 ./servo.py 12

参考もと