Raspicam and motion


#1

I got this idea to use Raspicam and motion. Then capture image?

K1rpiacam.py runs with python2, others with python3.

My innovations comes from:

Motion detect: https://gist.github.com/FutureSharks/ab4c22b719cdd894e3b7ffe1f5b8fd91
https://motion-project.github.io/motion_build.html
http://kinograph.cc/

Raspberry pi community forums and countless others: Linux, and python, Adafruit (I use motorhat 2348, Adafruit-circuitpython-motorkit.)

Start DC1 and stepper.

While stepper is running, I use this:

K1rpiacam.py:

“”
#!/usr/bin/python

from picamera import PiCamera
import picamera.array
from time import sleep

threshold = 10 # How Much pixel changes
sensitivity = 100 # How many pixels change

def takeMotionImage(width, height):
with picamera.PiCamera() as camera:
time.sleep(1)
camera.resolution = (width, height)
with picamera.array.PiRGBArray(camera) as stream:
camera.exposure_mode = ‘auto’
camera.awb_mode = ‘auto’
camera.capture(stream, format=‘rgb’)
return stream.array

def scanMotion(width, height):
motionFound = False
data1 = takeMotionImage(width, height)
while not motionFound:
data2 = takeMotionImage(width, height)
diffCount = 0L;
for w in range(0, width):
for h in range(0, height):
# get the diff of the pixel. Conversion to int
# is required to avoid unsigned short overflow.
diff = abs(int(data1[h][w][1]) - int(data2[h][w][1]))
if diff > threshold:
diffCount += 1
if diffCount > sensitivity:
break;
if diffCount > sensitivity:
motionFound = True
else:
data2 = data1
return motionFound

def motionDetection():
print "Scanning for Motion threshold=%i sensitivity=%i… " % (threshold, sensitivity)
while True:
if scanMotion(224, 160):
print “Motion detected”

#if name == ‘main’:

try:

motionDetection()

finally:

print “Exiting Program”

from picamera import PiCamera
from time import sleep

camera = PiCamera()
camera.resolution = (1024,768)
camera.rotation = 180
camera.start_preview(alpha=200)

for i in range(15000):
sleep(1)
camera.capture(’/home/pi/RUIJX/image%04d.jpg’ % i)
camera.stop_preview()
“”

DC1mot1

“”
from adafruit_motorkit import MotorKit
import time

kit = MotorKit(address=0x61)

kit.motor1.throttle = -1
“”

Stepper motor:

“”
from adafruit_motor import stepper
from adafruit_motorkit import MotorKit
import time

kit = MotorKit(address=0x61)
#kit.stepper2.release()

while True:

print ("Double coil steps")
for i in range(20):
    kit.stepper2.onestep(style=stepper.DOUBLE)
time.sleep (1)

“”

To release DC1:

“”
from adafruit_motorkit import MotorKit
import time

kit = MotorKit(address=0x61)

kit.motor1.throttle = -1
“”

To release Stepper:
“”
“”“Simple test for using adafruit_motorkit with a stepper motor”""
from adafruit_motorkit import MotorKit

kit = MotorKit(address=0x61)

kit.stepper2.release()

“”
This seams to work, but as always, backlash got me. Stepper motor shaft was retired. Now I have to cerate something from inventory.

I use also 1. Nema 17 AC motor and one old inventory DC motor.

Raspberry pi 3B+, picamera
2 x 1 W Cool White LEDs, ADA518.

So the AC motor is pulling film and DC is pulsing and reel film to reel.

Thats it.