44 lines
1 KiB
Python
Executable file
44 lines
1 KiB
Python
Executable file
# SPDX-FileCopyrightText: 2020 Carter Nelson for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
import time
|
|
import math
|
|
import os
|
|
import RPi.GPIO as GPIO
|
|
import simpleaudio as sa
|
|
import picamera
|
|
|
|
camera = picamera.PiCamera()
|
|
camera.resolution = (1920, 1080)
|
|
VIDEO_LENGTH = 10
|
|
|
|
BUTTON = 4
|
|
GPIO.setmode(GPIO.BCM)
|
|
GPIO.setup(BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
|
|
|
SIN_LENGTH = 500
|
|
SIN_AMPLITUDE = 127
|
|
SIN_OFFSET = 128
|
|
DELTA_PI = 2 * math.pi / SIN_LENGTH
|
|
sine_wave = bytes([
|
|
int(SIN_OFFSET + SIN_AMPLITUDE * math.sin(DELTA_PI * i)) for i in range(SIN_LENGTH)
|
|
])
|
|
|
|
def play_tone(length):
|
|
play_back = sa.play_buffer(sine_wave*length, 2, 2, 44100)
|
|
play_back.wait_done()
|
|
|
|
run_number = int(input("Enter run number:"))
|
|
|
|
print("Press button when ready.")
|
|
while GPIO.input(BUTTON):
|
|
pass
|
|
|
|
play_tone(100)
|
|
camera.start_recording("run_{:03d}.h264".format(run_number))
|
|
camera.wait_recording(VIDEO_LENGTH)
|
|
camera.stop_recording()
|
|
play_tone(100)
|
|
|
|
err = os.system("MP4Box -add run_{0:03d}.h264 run_{0:03d}.mp4".format(run_number))
|