LoginSignup
1
1

More than 3 years have passed since last update.

全身3Dスキャン / リアルアバター 制作用撮影システムキット - プログラム編 - Raspberry Pi 使用 -

Last updated at Posted at 2019-06-18

随時更新中。
本記事執筆開始時のビジョンはこちら https://note.mu/happyocean/n/n5f322b181706 ぜひ読んでください。

筆者は職業ソフトウェアエンジニアではありませんので、間違いやこうやったほうがいいよ、というのはお知らせください。

****現在は、下記ではなく、Node.jsベースのコードをRaspberry Pi(クライアント)とMac(サーバー)に使用しています。*****

=============================================
●写真を撮る。

picture.py
import time
import picamera

with picamera.PiCamera() as camera:
 camera.resolution = (3280, 2464)
 camera.rotation = 90 #カメラの向きによります。基本的には、縦使いが、より多くのピクセルで人物をカバーできるので良い。
 camera.sharpness = 100
 camera.start_preview()
 # Camera warm-up time
 time.sleep(7)
 camera.capture('1.jpg')

●複数のRaspberry Pi に同時接続・写真撮影プログラムの実行は 現状 fabric を 利用。但しvesion2系と1系で違うので適用注意。

fabfile.py
from fabric.api import run
from fabric.api import env
from fabric.api import parallel
from fabric.api import get

env.hosts = ["192.168.1.1", "192.168.1.2","192.168.1.3", #・・・・・
"192.168.1.96"]

env.user = "xxxxx" #Raspberry Pi ユーザー名
env.password = "yyyyy" #パスワード ファイル内にパスワードをそのまま書くのは推奨しません。回避は別途

@parallel #同時に走らせます。これが無いと、IPアドレスの順番に一つづつ実行されていきます。

def go_fab():
    run("python picture.py")

実行は、fabfileのあるディレクトリへ移動して

fab go_fab

fabfile.py の時は上記で実施できる。

ファイルが別の名称の時は下記で実行。

fab -f xxxx.py yyyy()

●Raspberry Piから写真をコントロールサーバーへ移動

goget.py
from fabric.api import run
from fabric.api import env
from fabric.api import parallel
from fabric.api import get

env.hosts = ["192.168.1.1", "192.168.1.2","192.168.1.3", #・・・・・
"192.168.1.96"]

env.user = "xxxxx" #Raspberry Pi ユーザー名
env.password = "yyyyy" #パスワード ファイル内にパスワードをそのまま書くのは推奨しません。回避は別途

#@parallel をするとネットワークの輻輳でかえって遅くなる場合があります。
#ルーターを複数分けるなどすることで対応もできますが、コストパフォーマンスの優れた方法を模索中です。有線LANで組むともちろん早いです。

def go_get():
    host_string=env.host
    get('/home/pi/1.jpg', host_string + '-1.jpg') #仮にファイル名称にIPアドレスを付与してますが、この辺りはお好みで。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1