Ejemplo n.º 1
0
"""
'tone_demo.py'.

=================================================
a short piezo song using tone()
"""
import time
import board
import simpleio


while True:
    for f in (262, 294, 330, 349, 392, 440, 494, 523):
        simpleio.tone(board.A0, f, 0.25)
    time.sleep(1)
# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries
#
# SPDX-License-Identifier: MIT

"""CircuitPython Essentials PWM piezo simpleio example"""
import time
import board
import simpleio

while True:
    for f in (262, 294, 330, 349, 392, 440, 494, 523):
        # For the M0 boards:
        simpleio.tone(board.A2, f, 0.25)  # on for 1/4 second
        # For the M4 boards:
        # simpleio.tone(board.A1, f, 0.25)  # on for 1/4 second
        time.sleep(0.05)  # pause between notes
    time.sleep(0.5)
Ejemplo n.º 3
0
 def tick(self):
     """Make tick sound via piezo."""
     tone(self._piezo, 256, duration=0.030)
Ejemplo n.º 4
0
 if not btn1.value:  # button 1 pressed
     start = True
 # Check button 2 (GP21)
 elif not btn2.value:  # button 2 pressed
     start = False
 
 if start:
     # Move motors at 50% speed
     motor1.throttle = 0.8  # motor1.throttle = 1 or -1 for full speed
     motor2.throttle = 0.8  
     distancel = vl53l.range
     distancep = vl53p.range
     #print("Rangel: {0}mm".format(distancel))
     #print("Rangep: {0}mm".format(distancep))
     if distancel < 150 or distancep < 150:
         simpleio.tone(piezo, 450, 0.1)
         
         # Move motors at 50% speed
         motor1.throttle = -0.5  # motor1.throttle = 1 or -1 for full speed
         motor2.throttle = -0.5   
         time.sleep(0.5)
     
         # Move motors at 50% speed
         if distancel <= distancep:
             motor1.throttle = 0.5  # motor1.throttle = 1 or -1 for full speed
             motor2.throttle = -0.5
         else:
             motor1.throttle = -0.5  # motor1.throttle = 1 or -1 for full speed
             motor2.throttle = 0.5              
         turn_time = randint(2,4)/10
         time.sleep(turn_time)
Ejemplo n.º 5
0
"""
import time
import board
from simpleio import tone

NOTES = "ccdcfeccdcgf "
BEATS = [1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 4]
TONES = {
    "c": 263,
    "d": 293,
    "e": 329,
    "f": 349,
    "g": 391,
    "a": 440,
    "b": 493,
    "C": 523
}
TEMPO = 300

# play the notes!
for i, item in enumerate(NOTES):
    tempodelay = 60 / TEMPO
    note = NOTES[i]
    beat = BEATS[i]
    print(note, end="")
    if note == " ":
        time.sleep(beat * tempodelay)
    else:
        tone(board.D9, TONES[note], beat * tempodelay)
    time.sleep(tempodelay / 2)
Ejemplo n.º 6
0
    # uncomment this line to see the values of the pot
    # print((ss.analog_read(pot),))
    # time.sleep(0.25)

    # maps the range of the pot to the range of the servo
    angle = map_range(ss.analog_read(pot), 0, 1023, 180, 0)

    # sets the servo equal to the relative position on the pot
    crickit.servo_1.angle = angle

    # Light sensor + DC motor

    # uncomment to see values of light
    # print(light_in.value)
    # time.sleep(0.5)

    # reads the on-board light sensor and graphs the brighness with NeoPixels
    # light value remaped to motor speed
    peak = map_range(light_in.value, 3000, 62000, 0, 1)

    # DC motor
    crickit.dc_motor_1.throttle = peak  # full speed forward

    # hit both buttons to trigger noise
    if not ss.digital_read(BUTTON_1) and not ss.digital_read(BUTTON_2):
        print("Buttons 1 and 2 pressed")
        for f in (262, 294, 330, 349, 392, 440, 494, 523):
            tone(board.A0, f, 0.25)
            time.sleep(SLEEP_DELAY)
Ejemplo n.º 7
0
 def alarm(self):
     self.buzzer = simpleio.tone(self.b1, 440, duration=1.0)
     return self.buzzer
Ejemplo n.º 8
0
time.sleep(2)

motion = 0

while True:
    pir_value = pir.value
    #reads sensors and reports to serial monitor
    light = photocell.value
    voltage = analog_voltage(photocell)*1000
    print('Photoresistor value: {0} voltage: {1}mV'.format(light, voltage))
    print("Temperature: ", am.temperature*1.8 + 32)
    print("Humidity: ", am.relative_humidity)
    if pir.value == 0:
        if not old_value:
            print("Motion Detected!")
            simpleio.tone(buzzer, 262, duration=0.5)
            time.sleep(3)
            motion = 1
    if pir.value == 0:
        if not old_value:
            print("Motion Ended")
            motion = 0

    #defining fields. variables will be added to API write feed request at the end. more fields can be added if needed
    field1 = '&field1='
    field2 = '&field2='
    field3 = '&field3='
    field4 = '&field4='

    #defines what is going to be sent to field. data1 follows '&field1='. more data can be added if needed
    data1 = str(voltage)
Ejemplo n.º 9
0
    stemma_connected = False
    print("Stemma device disconnected")
    time.sleep(3)

# Analog input on VOLTAGE_MONITOR
v_plus = AnalogIn(board.VOLTAGE_MONITOR)

# Motor controller outputs
motor_out_1 = DigitalInOut(board.MOTOR_OUT_1)
motor_out_1.direction = Direction.OUTPUT
motor_out_2 = DigitalInOut(board.MOTOR_OUT_2)
motor_out_2.direction = Direction.OUTPUT

# Piezo speaker outputs
piezo = board.PIEZO
tone(piezo, 880, duration=0.3)  # A5

# Sensor input with pullup on SENSOR_IN
sensor = DigitalInOut(board.SENSOR_IN)
sensor.direction = Direction.INPUT
sensor.pull = Pull.UP


######################### HELPERS ##############################

# Helper to convert analog input to voltage
def getVoltage(pin):
    return 2 * (pin.value * 3.3) / 65536

# Helper to give us a nice color swirl
def wheel(pos):
def play_tone(freq=440, duration=0.01):
    tone(board.A0, freq, duration)
    return
Ejemplo n.º 11
0
    def set_datetime(self, xst_datetime):
        """Manual input of time using a rotary encoder."""
        self._xst_datetime = xst_datetime
        self._display.colon = False

        if self._sel_sw.value:  # Select switch not pressed
            # return datetime, sound flag, and "no change" flag
            return self._xst_datetime, self._sound, False
        tone(self._piezo, 784, duration=0.300)  # G5 piezo
        while not self._sel_sw.value:  # Wait until switch is released
            pass

        self.show(self._xst_datetime, date=True)
        time.sleep(0.5)

        self._param_val_list[0] = self._xst_datetime.tm_mon
        self._param_val_list[1] = self._xst_datetime.tm_mday
        self._param_val_list[2] = self._xst_datetime.tm_year
        self._param_val_list[3] = self._xst_datetime.tm_hour
        self._param_val_list[4] = self._xst_datetime.tm_min
        if self._sound:
            self._param_val_list[5] = 1
        else:
            self._param_val_list[5] = 0
        self._param_index = 0  # Reset index of parameter list
        self._enc.position = 0  # Reset encoder position value
        self._changed = False  # Reset edit change flag

        # Select parameter to change
        self._t0 = time.monotonic()  # Start the timeout clock
        # While select switch not pressed
        while self._sel_sw.value and time.monotonic() - self._t0 < 10:
            self._t0 = time.monotonic()  # Start the timeout clock
            # While select switch not pressed
            while self._sel_sw.value and time.monotonic() - self._t0 < 10:
                self._param_index = self._enc.position
                self._param_index = max(0, min(7, self._param_index))
                if self._enc.position != self._param_index:
                    self._t0 = time.monotonic()  # Start the timeout clock
                self._enc.position = self._param_index

                ### Display parameter prompt
                self._param_text(self._param_index)
                time.sleep(0.15)

            # Select switch pressed
            tone(self._piezo, 880, duration=0.3)  # A5 piezo
            while not self._sel_sw.value:  # Wait for switch to release
                pass

            if self._param_index == 7:  # EXIT was selected
                self._t0 = 0  # Force process to skip value section

            # Adjust parameter value
            while self._sel_sw.value and time.monotonic(
            ) - self._t0 < 5:  # Select switch not pressed
                self._changed = False

                # Parameter edits and actions
                self._t0 = time.monotonic()  # Start the timeout clock
                self._enc.position = self._param_val_list[self._param_index]
                # While select switch not pressed
                while self._sel_sw.value and time.monotonic() - self._t0 < 10:
                    self._param_value = self._enc.position
                    self._min = self._param_list[self._param_index][1]  # Min
                    self._max = self._param_list[self._param_index][2]  # Max
                    self._param_value = max(self._min,
                                            min(self._max, self._param_value))
                    if self._enc.position != self._param_value:
                        self._t0 = time.monotonic()  # Start the timeout clock
                    self._enc.position = self._param_value

                    # Display parameter prompt
                    if self._param_index == 0:  # Month value
                        self._display.print("{:02d}  ".format(
                            self._param_value))
                        self._changed = True
                    if self._param_index == 2:  # 4-digit year vallue
                        self._display.print("{:04d}".format(self._param_value))
                        self._changed = True
                    if self._param_index in [1, 3, 4]:
                        self._display.print("  {:02d}".format(
                            self._param_value))
                        self._changed = True
                    if self._param_index == 5:  # Sound effects flag
                        if self._param_value == 1:
                            self._display.print("   1")
                        else:
                            self._display.print("   0")
                    if self._param_index == 6:  # Display _brightness
                        self._brightness = self._param_value / 10
                        self._display.brightness = self._brightness
                        self._display.print("  {:02d}".format(
                            self._param_value))
                    time.sleep(0.2)
                    self._param_val_list[self._param_index] = self._param_value
                self._enc.position = self._param_index + 1  # Move to next param
                time.sleep(0.2)

            # Select switch pressed
            tone(self._piezo, 880, duration=0.3)  # A5 piezo
            while not self._sel_sw.value:  # Wait for select switch release
                pass
        time.sleep(0.2)

        # Exit setup process
        if not self._sel_sw.value:  # Select switch pressed
            pass
        while not self._sel_sw.value:  # Wait for select switch release
            pass
        self._sound = self._param_val_list[5]

        # Structured time: (year, mon, date, hour, min, sec, wday, yday, isdst)
        self._xst_datetime = time.struct_time(
            (self._param_val_list[2], self._param_val_list[0],
             self._param_val_list[1], self._param_val_list[3],
             self._param_val_list[4], 1, -1, -1, -1))
        # Fix weekday and yearday structured time errors
        self._xst_datetime = time.localtime(time.mktime(self._xst_datetime))

        if self._changed:
            self._display.marquee("-   ", delay=0.2, loop=False)
            self.show(self._xst_datetime, date=True)

        tone(self._piezo, 784, duration=0.3)  # G5 piezo

        # return with new datetime, sound flag, and "time was changed" flag
        return self._xst_datetime, self._sound, self._changed
Ejemplo n.º 12
0
"""
'tone_demo.py'.

=================================================
a short piezo song using tone()
"""
import time
import board
import simpleio

while True:
    for f in (262, 294, 330, 349, 392, 440, 494, 523):
        simpleio.tone(board.A0, f, 0.25)
    time.sleep(1)