Raspberry Pi2 で、サーボを使って、物体追跡をする。このサイトを見て、
Raspberry Pi サーボモーターとOpen CVで物体追跡カメラ(Meanshift)
ArduinoとAdafruit 16-channel Servo Driverでサーボモーター多数制御
ブツを揃える、
これらを Amazon で Getした。この Qiita のサイトとは異なるブツだが、とりあえず安かったので買ってみた。
カメラは手持ちのヤツを使う。
◆サーボモータを動かす
i2c を有効にする
$ sudo apt-get install i2c-tools
$ sudo raspi-conifig
> 5. interfacing options
> P5 I2C
以下のように結線する。サーバを動かすために、Servo Driver基板中央に別途電源をつなぐ(6Vまでらしい)
RaspPi2 16ch Servo Driver (PCA9685)
-------------------------------------------------------------
3.3V○ ○ GND
I2C SDA○ ○
I2C SCL○ ○ SCL
○ ○ SDA
GND○ ○ VCC
○ ○
結線して、servo_test.py を動かすとちゃんと動いた。
# いかん! サーボモータが、動作電圧:4.8V(~5V) なので、乾電池は3つにしておこう。
PCA9685 16-channel 12bit PWM Fm + I2C-bus LED controller
◆カメラを動かす
$ sudo apt-get install libopencv-dev python-opencv
USBカメラと OpenCV で画像を表示させるサンプルプログラムはググると沢山でてくる。
ただ、最近のサンプルでないと遠回りする。
結局、
import cv2.cv や CaptureFromCAM ではなく、以下に落ち着いた。(ターミナル上で、ctrl + c で終了)
これを camera.py に保存して、実行
【追記 4/22】
自分の環境で、TightVNCで Raspiを動かしていた。 2行目の namedWindow で以下が出てこけた。
GdkGLExt-WARNING **: Window system doesn't support OpenGL.
で、ググったら、対処方法があったので試してみた。
$ sudo apt-get install libgl1-mesa-dri
$ sudo reboot
で、これでもダメで、workaround(1) として
$ sudo apt-get install guvcview
をした。workaround(2) は、VNC をTightvnc をやめて、X11vnc 変えるとできるらしい。がやってない。
workaround(3) は、元に戻して、VNCやめて Raspi にモニター直結したら、もちろんOK。
Raspberry Pi サーボモーターとOpen CVで物体追跡カメラ(Meanshift)
ArduinoとAdafruit 16-channel Servo Driverでサーボモーター多数制御
ブツを揃える、
これらを Amazon で Getした。この Qiita のサイトとは異なるブツだが、とりあえず安かったので買ってみた。
カメラは手持ちのヤツを使う。
◆サーボモータを動かす
i2c を有効にする
$ sudo apt-get install i2c-tools
$ sudo raspi-conifig
> 5. interfacing options
> P5 I2C
以下のように結線する。サーバを動かすために、Servo Driver基板中央に別途電源をつなぐ(6Vまでらしい)
RaspPi2 16ch Servo Driver (PCA9685)
-------------------------------------------------------------
3.3V○ ○ GND
I2C SDA○ ○
I2C SCL○ ○ SCL
○ ○ SDA
GND○ ○ VCC
○ ○

結線して、servo_test.py を動かすとちゃんと動いた。
# いかん! サーボモータが、動作電圧:4.8V(~5V) なので、乾電池は3つにしておこう。
PCA9685 16-channel 12bit PWM Fm + I2C-bus LED controller
◆カメラを動かす
$ sudo apt-get install libopencv-dev python-opencv
USBカメラと OpenCV で画像を表示させるサンプルプログラムはググると沢山でてくる。
ただ、最近のサンプルでないと遠回りする。
結局、
import cv2.cv や CaptureFromCAM ではなく、以下に落ち着いた。(ターミナル上で、ctrl + c で終了)
これを camera.py に保存して、実行
import cv2
cv2.namedWindow("monitor")
vc=cv2.VideoCapture(0)
if vc.isOpened():
rval, frame = vc.read()
else:
rval = False
while rval:
cv2.imshow("monitor", frame)
rval, frame = vc.read()
key = cv2.waitKey(10)
if key == 27:
break
cv2.destroyWindow("monitor")
【追記 4/22】
自分の環境で、TightVNCで Raspiを動かしていた。 2行目の namedWindow で以下が出てこけた。
GdkGLExt-WARNING **: Window system doesn't support OpenGL.
で、ググったら、対処方法があったので試してみた。
$ sudo apt-get install libgl1-mesa-dri
$ sudo reboot
で、これでもダメで、workaround(1) として
$ sudo apt-get install guvcview
をした。workaround(2) は、VNC をTightvnc をやめて、X11vnc 変えるとできるらしい。がやってない。
workaround(3) は、元に戻して、VNCやめて Raspi にモニター直結したら、もちろんOK。
コメント