今回はraspberry piで動く監視カメラを作ってみます。
LogicoolのUSBカメラにサーボモーターをくっつけて左右に振れる様にしてみたいと思います。
raspberry piでウェブカメラを使う方法はいろいろありますが今回はgucviewとfswebcamをつかってみました。
まずはUSBに接続されていることをlsusbコマンドで確認します。
Logicoolなどメーカーが確認できればOKです。
そして次にguvcviewをインストールします。
sudo apt install guvcview
インストールできればgucviewコマンドで起動します。
カメラは問題なく動きました。続いてサーボモーターでカメラを左右に動かしたいと思います。
raspberry piとはサーボモーター配線を赤をVCC、茶をGND、オレンジをGPIOへそれぞれつなぎます。今回はGPIO17を使用しました。
そしてpythonでサーボモーターを動かすプログラムを書きます。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
from tkinter import *
tk = Tk()
gp_out = 17
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50)
servo.start(0.0)
def hello():
servo.start(0.0)
servo.ChangeDutyCycle(1.5)
time.sleep(0.5)
servo.start(0.0)
def hello2():
servo.start(0.0)
servo.ChangeDutyCycle(12.5)
time.sleep(0.5)
servo.start(0.0)
def hello3():
servo.start(0.0)
servo.ChangeDutyCycle(6.5)
time.sleep(0.5)
servo.start(0.0)
btn =Button(tk, text="right", command=hello)
btn.pack()
btn =Button(tk, text="left", command=hello2)
btn.pack()
btn =Button(tk, text="center", command=hello3)
btn.pack()
これを実行すると
こんなボタンがでてきます。
rightを押すと
冒頭の写真の状態になります。
leftを押すと
逆を向きます。centerで
rightとleftの真ん中ぐらいに来ます。
これでカメラをサーボモータで動かすことができたのですが、監視カメラということでリモートデスクトップでの動作に挑戦してみます。
ラズパイのIPアドレスを調べて遠隔でログインしてみます。
残念ながらguVcviewでのストリーミングはできませんでしたが、サーボモーターは問題なく遠隔操作できました。
とりあえずfswebcamを使って静止画の撮影を試みてみました。
sudo apt install fswebcam
でダウンロードし
fswebcam test.jpg
コマンドで静止画を保存します。
うまくいきました。リモートデスクトップでも動作が安定しています。
今回はraspberry piでUSBカメラをサーボモーターを使い動かしてみました。
pythonも勉強中ですが、ブラウザからいろいろできそうなので今後も頑張ってみたいと思います。
→自走式カメラは
こちら