import logging
import re
import datetime
import os
from pixels import pixels
import time
class RecordException(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return f"RecordException {self.msg}"
def dbg(lmsg):
logging.info(lmsg)
def dbgDeprecated(*args, quiet = True):
if not quiet:
for arg in args:
print(arg, end = '')
print("")
def record(basename='', hours = 1, minute_chunks = 15, dry_run = False):
duration_secs = minute_chunks * 60
num_recordings = int((hours * 60)/minute_chunks)
dbg(f"number of recordings : {num_recordings} chunk size: {minute_chunks} mins total: {hours} hrs")
for chunk in range(num_recordings):
format = 'S32_LE'
rate = 16000
file = re.sub('[- :.]','_',str(datetime.datetime.now())) + '.wav'
fullpath = f"/mnt/usb1/recordings/{basename}_{file}"
cmd = f"arecord -q -d {duration_secs} -f {format} -r {rate} {fullpath}"
dbg(f"Recording {chunk} {cmd}")
if not dry_run:
v = os.system(cmd)
dbg(f"Chunk completed {v}")
if (v != 0):
raise RecordException("Record Failure")
dbg("Completed")
logname = '/mnt/usb1/recordings/recordlog.log'
logging.basicConfig(filename=logname,
filemode='a',
format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
datefmt='%H:%M:%S',
level=logging.DEBUG)
dbg("Starting Recording...")
lights = False
if lights:
pixels.wakeup()
try:
record(basename='frontroom', hours = 24*30, minute_chunks = 15, dry_run = False)
except RecordException as e:
dbg(f"Oh No! {e}")
pixels.off()
time.sleep(1)
Sunday, 11 September 2022
Recorder.py
Thursday, 1 September 2022
Byron Warning System
import machine
import time
from ubitstring import Bits
def wavebit(pin, v, dly):
pin.value(1 if v else 0)
time.sleep_us(dly)
def xmit(data,gpio_pin = 16,delay_us = 160):
pin = machine.Pin(gpio_pin, machine.Pin.OUT)
for b in data:
for bit in range(8):
# wavebit(pin, b & 128 != 0, delay_us)
pin.value(1 if (b & 128 != 0) else 0)
time.sleep_us(delay_us)
b<<=1
byron = "bec3e43e41e79041043079e43e41f0001041e4107df61f61f61f7d86186083efb0fb0f8000c30fb0c3efb0fb079079f61861861f7d87d87c0006187d861f7d87d87d87df60860860f3c83c83c0006187d861f7d87d87c83ef20c30c30fbec3ec3e00030c3ec30fbec3e41e41e7d86186187df61f20f0000820f20c"
bitstring = Bits(hex=(byron*4))
#print(bitstring)
formatted = bitstring.tobytes()
while True:
#print("Transmitting..")
xmit(formatted)
time.sleep(5)
Subscribe to:
Posts (Atom)