Python code

code.py
boot.py
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import board
import time
from adafruit_circuitplayground import cp
# Turn only NeoPixel #1 green.
cp.pixels[1] = (0, 255, 0)
# Define the number of light readings taken per sample.
NUM_OVERSAMPLE = 10
# Define the number of samples taken to calculate the average.
NUM_SAMPLES = 20
# Initialise samples.
samples = [0] * NUM_SAMPLES
while True:
# Cycle through a range of NUM_SAMPLES values.
for s in range(NUM_SAMPLES):
# The NUM_OVERSAMPLE number of light readings is taken really fast.
oversample = 0
# Sum up all the oversamples (light readings taken per sample).
for o in range(NUM_OVERSAMPLE):
oversample += cp.light
# Calculate the average of the oversamples and save the value.
samples[s] = oversample / NUM_OVERSAMPLE
# Calculate the average of the samples.
# When the next sample comes along, we drop the oldest one and
# recompute the average of the NUM_SAMPLES most recent values.
mean = sum(samples) / len(samples)
# Subtract the average of the samples from the sampled value
# * to center the light readings around zero, or
# * to remove the DC bias, i.e., the mean value of the waveform.
pulse = samples[s] - mean
# Depending on the switch, write to
# * the serial console (if True, i.e. left), or to
# * the CircuitPython storage (if False, i.e. right).
if cp.switch:
print( (pulse, ) )
else:
f = open("pulse.csv", "a")
f.write(repr(pulse) + "\n")
f.close()
# Allow a slight delay between the readings.
time.sleep(0.025)
import board import time from adafruit_circuitplayground import cp # Turn only NeoPixel #1 green. cp.pixels[1] = (0, 255, 0) # Define the number of light readings taken per sample. NUM_OVERSAMPLE = 10 # Define the number of samples taken to calculate the average. NUM_SAMPLES = 20 # Initialise samples. samples = [0] * NUM_SAMPLES while True: # Cycle through a range of NUM_SAMPLES values. for s in range(NUM_SAMPLES): # The NUM_OVERSAMPLE number of light readings is taken really fast. oversample = 0 # Sum up all the oversamples (light readings taken per sample). for o in range(NUM_OVERSAMPLE): oversample += cp.light # Calculate the average of the oversamples and save the value. samples[s] = oversample / NUM_OVERSAMPLE # Calculate the average of the samples. # When the next sample comes along, we drop the oldest one and # recompute the average of the NUM_SAMPLES most recent values. mean = sum(samples) / len(samples) # Subtract the average of the samples from the sampled value # * to center the light readings around zero, or # * to remove the DC bias, i.e., the mean value of the waveform. pulse = samples[s] - mean # Depending on the switch, write to # * the serial console (if True, i.e. left), or to # * the CircuitPython storage (if False, i.e. right). if cp.switch: print( (pulse, ) ) else: f = open("pulse.csv", "a") f.write(repr(pulse) + "\n") f.close() # Allow a slight delay between the readings. time.sleep(0.025)
import storage
from adafruit_circuitplayground import cp
storage.remount("/", readonly=cp.switch)
import storage from adafruit_circuitplayground import cp storage.remount("/", readonly=cp.switch)
import board
import time

from adafruit_circuitplayground import cp

# Turn only NeoPixel #1 green.
cp.pixels[1] = (0, 255, 0)

# Define the number of light readings taken per sample.
NUM_OVERSAMPLE = 10

# Define the number of samples taken to calculate the average.
NUM_SAMPLES = 20

# Initialise samples.
samples = [0] * NUM_SAMPLES

while True:
    # Cycle through a range of NUM_SAMPLES values.
    for s in range(NUM_SAMPLES):
        # The NUM_OVERSAMPLE number of light readings is taken really fast.
        oversample = 0
        
        # Sum up all the oversamples (light readings taken per sample).
        for o in range(NUM_OVERSAMPLE):
            oversample += cp.light

        # Calculate the average of the oversamples and save the value.
        samples[s] = oversample / NUM_OVERSAMPLE

        # Calculate the average of the samples.
        # When the next sample comes along, we drop the oldest one and
        # recompute the average of the NUM_SAMPLES most recent values.
        mean = sum(samples) / len(samples)

        # Subtract the average of the samples from the sampled value
        # * to center the light readings around zero, or 
        # * to remove the DC bias, i.e., the mean value of the waveform.
        pulse = samples[s] - mean
        
        # Depending on the switch, write to
        # * the serial console (if True, i.e. left), or to
        # * the CircuitPython storage (if False, i.e. right).
        if cp.switch:
            print( (pulse, ) )
        else:
            f = open("pulse.csv", "a")
            f.write(repr(pulse) + "\n")
            f.close()

        # Allow a slight delay between the readings.
        time.sleep(0.025)
import storage

from adafruit_circuitplayground import cp

storage.remount("/", readonly=cp.switch)