RasberryPi로 원격 조작이 가능한 카메라를 만들어 봤습니다.
13920 단어 Python3카메라 제어RasberryPI
자기 소개
Fusic에서 PHPer를 하는 나가사키입니다.
올해는 PHP 이외에 예전에 사온 인테리어 랩베리피로 뭔가를 해보자!나는 이렇게 의욕이 충만한 경솔한 일을 쓰고 싶다.
구체적으로 한 일
랩베리피(이하 랩피) + 카메라 모듈 + 카메라 고정대에서 SSH를 통해 랩피에 들어가 파이톤이 쓴 프로그램을 실행하고 키보드를 이용해 카메라 고정대를 이동시켜 촬영할 수 있도록 한다.
준비물
랩베리피(이하 랩피) + 카메라 모듈 + 카메라 고정대에서 SSH를 통해 랩피에 들어가 파이톤이 쓴 프로그램을 실행하고 키보드를 이용해 카메라 고정대를 이동시켜 촬영할 수 있도록 한다.
준비물
설치까지의 프로세스
※ 라스피 설치와 SSH 연결을 전제로 합니다.
1. 카메라와 카메라 고정대를 랩피에 설치한다.
2. PiCamera를 설치하고 파이톤으로 촬영한다.
3. 피모니를 설치하고 파이톤으로 카메라 고정대를 이동한다.
4. 키보드 입력을 배워보자
5. 코드 만들기
inputkey.py
import fcntl
import termios
import sys
import os
def getkey():
fno = sys.stdin.fileno()
#stdinの端末属性を取得
attr_old = termios.tcgetattr(fno)
# stdinのエコー無効、カノニカルモード無効
attr = termios.tcgetattr(fno)
attr[3] = attr[3] & ~termios.ECHO & ~termios.ICANON # & ~termios.ISIG
termios.tcsetattr(fno, termios.TCSADRAIN, attr)
# stdinをNONBLOCKに設定
fcntl_old = fcntl.fcntl(fno, fcntl.F_GETFL)
fcntl.fcntl(fno, fcntl.F_SETFL, fcntl_old | os.O_NONBLOCK)
chr = 0
try:
# キーを取得
c = sys.stdin.read(1)
if len(c):
while len(c):
chr = (chr << 8) + ord(c)
c = sys.stdin.read(1)
finally:
# stdinを元に戻す
fcntl.fcntl(fno, fcntl.F_SETFL, fcntl_old)
termios.tcsetattr(fno, termios.TCSANOW, attr_old)
return chr
camera.pyfrom pantilthat import *
import time
import picamera
import requests
import inputkey
# カメラの設定
camera = picamera.PiCamera()
camera.hflip = True
camera.vflip = True
camera.resolution = (320, 240)
angle_pan = 0
angle_til = 0
while True:
val_pan = 0
val_til = 0
# key取得
key = inputkey.getkey()
# keyOFFはスルー
if key == 0:
time.sleep(0.01)
continue
# key処理
if key == 10: # enter
break;
elif key == 97: # a
time.sleep(1) # カメラのブレ防止
camera.capture('image.jpg')
with open("image.jpg",'rb') as f:
param = {
'token':'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'channels':'xxxxxxxx',
}
r = requests.post('https://slack.com/api/files.upload', params = param, files = {'file':f})
elif key == 1792833: # 上
if angle_til > -90:
val_til = -0.5
elif key == 1792834: # 下
if angle_til < 90:
val_til = 0.5
elif key == 1792835: # 右
if angle_pan > -90:
val_pan = -0.5
elif key == 1792836: # 左
if angle_pan < 90:
val_pan = 0.5
# else:
# print(key) # key何押したかデバッグ用
# カメラ動作
angle_pan += val_pan
angle_til += val_til
pan(angle_pan)
tilt(angle_til)
time.sleep(0.01)
quit()
6. 실행해 보자
$ python3 camera.py
그리고 위아래 좌우 커서 키보드에서 카메라를 이동하고 T, A 키로 눌러라!슬랙에 업로드!!!(·재난 12610;·)و ̑̑ < 좋아!
참고 문장
총결산
최후
Reference
이 문제에 관하여(RasberryPi로 원격 조작이 가능한 카메라를 만들어 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tsukabo/items/b8f7037f487836ddecb7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)