Projet : ShowBox
Posted on 8 février 2017
in Python, Raspberry
Ce projet a pour objectif de mettre en application l’utilisation de PI Camera et d’un moteur à pas sur Raspberry.
Ce projet a pour objectif de construire une plateforme qui doit permettre de prendre en photos sur 360 dégres les pièces imprimées en 3D.
Pour ça vous avez besoin:
Le code python ci après permet de prendre photos et video en 360 de votre pièce.
# !/usr/bin/python
# Import required libraries
import sys, os
import time
import RPi.GPIO as GPIO
import datetime as dt
import picamera
# VARIABLES ET CONSTANTE
# Use BCM GPIO references
GPIO.setmode(GPIO.BCM)
# Define GPIO signals to use
StepPins = [17, 27, 22, 12]
# Set all pins as output
for pin in StepPins:
print "Setup pins" + str(pin)
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, False)
# Define advanced sequence
# as shown in manufacturers datasheet
Seq = [[1, 0, 0, 1],
[1, 0, 0, 0],
[1, 1, 0, 0],
[0, 1, 0, 0],
[0, 1, 1, 0],
[0, 0, 1, 0],
[0, 0, 1, 1],
[0, 0, 0, 1]]
StepCount = len(Seq)
StepDir = 2 # Set to 1 or 2 for clockwise
# Set to -1 or -2 for anti-clockwise
# if __name__ == '__main__':
RACINE = "/home/pi/dev/"
# paramtre CAM
camera = picamera.PiCamera()
camera.resolution = (1024, 768)
# camera.framerate = 24
camera.rotation = 180
camera.brightness = 60
# Creation du repertoire
sousRepertoire = dt.datetime.now().strftime('%Y%m%d%H%M%S')
RACINE=""
leRepertoire = RACINE + sousRepertoire+"/"
print leRepertoire
os.mkdir(leRepertoire, 0755)
# Read wait time from command line
if len(sys.argv) > 1:
WaitTime = int(sys.argv[1]) / float(1000)
else:
WaitTime = 10 / float(1000)
# Initialise variables
StepCounter = 0
# Start main loop
myStep = 0
while myStep < 2000:
myStep += 1
# print StepCounter,
#print Seq[StepCounter]
# Affectation sequence
for pin in range(0, 4):
xpin = StepPins[pin] # Get GPIO
if Seq[StepCounter][pin] != 0:
# print " Enable GPIO %i" %(xpin)
GPIO.output(xpin, True)
else:
GPIO.output(xpin, False)
StepCounter += StepDir
# If we reach the end of the sequence
# start again
if (StepCounter >= StepCount):
StepCounter = 0
if (StepCounter < 0):
StepCounter = StepCount + StepDir
# Photo
if (myStep % 20 == 0):
filename = dt.datetime.now().strftime('%Y%m%d-%H.%M.%S')
filename = leRepertoire + filename + ".jpg"
print filename
heureName = dt.datetime.now().strftime('%d-%m-%Y-%Hh%Mmn%Ss')
camera.annotate_text = heureName
camera.capture(filename)
# Wait before moving on
time.sleep(WaitTime)
commande="ffmpeg -r 5 -pattern_type glob -i './"
commande=commande+leRepertoire+"*.jpg' -c:v copy output.avi"
os.system(commande)
Keep working ,impressive job! egkbgdbcekec