Adabox 007 Gemma MO

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
crazytechkid
 
Posts: 9
Joined: Sun Apr 08, 2018 11:13 pm

Adabox 007 Gemma MO

Post by crazytechkid »

i got adabox 7 with the gemma mo i'm trying to do the project with the noisemaker but it wont work. the gemma doesn't reboot . here is the code

Code: Select all

# Annoy-O-Matic Sound Prank Device
# choose from a variety of sounds and timings to drive your victim bonkers
import pulseio
import board
import time

piezo = pulseio.PWMOut(board.D0, duty_cycle=0, frequency=440,
                       variable_frequency=True)

# pick the mode here:
#  1 = beep
#  2 = doorbell
#  3 = ringtone
#  4 = crickets
#  5 = teen tone
#  6 = demo mode
annoy_mode = 3

# set general parameters here
interval = 10  # seconds before next annoyance. Default 300 (5 minutes)

# set beep details here
frequency = 5000  # pitch of the beep in Hz.              Default 5000
length = 0.2  # length (duration) of the beep in seconds. Default 0.2
rest = 0.05  # seconds between beep repeats.              Default 0.05

# set beep/cricket details here
repeat = 3  # number of times to repeat the beep/cricket. Default 3

# set ringtone details here
ringtone = 3  # song choices: 1 = Nokia, 2 = iPhone, 3 = Rickroll
ringtone_tempo = 2.0  # suggested Nokia 0.9 , iPhone 1.3 , Rickroll 2.0


def annoy_beep(frequency, length, repeat, rest, interval):
    for r in range(repeat):
        piezo.frequency = frequency  # 2600 is a nice choice
        piezo.duty_cycle = 65536//2  # on 50%
        time.sleep(length)  # sound on
        piezo.duty_cycle = 0  # off
        time.sleep(rest)
    time.sleep(interval)  # wait time until next beep

def annoy_doorbell(interval):
    piezo.frequency = 740
    piezo.duty_cycle = 65536//2
    time.sleep(0.85)
    piezo.duty_cycle = 0
    time.sleep(0.05)
    piezo.frequency = 588
    piezo.duty_cycle = 65536//2
    time.sleep(1.25)
    piezo.duty_cycle = 0
    time.sleep(interval)

def annoy_ringtone(ringtone, tempo, interval):
    # ringtone 1: Nokia
    # ringtone 2: Apple iPhone
    # ringtone 3: Rick Astley Never Gonna Give You Up

    # tempo is length of whole note in seconds, e.g. 1.5
    # set up time signature
    whole_note = tempo  # adjust this to change tempo of everything
    dotted_whole_note = whole_note * 1.5
    # these notes are fractions of the whole note
    half_note = whole_note / 2
    dotted_half_note = half_note * 1.5
    quarter_note = whole_note / 4
    dotted_quarter_note = quarter_note * 1.5
    eighth_note = whole_note / 8
    dotted_eighth_note = eighth_note * 1.5
    sixteenth_note = whole_note / 16

    # set up note values
    A2 = 110
    As2 = 117  # 's' stands for sharp: A#2
    Bb2 = 117
    B2 = 123

    C3 = 131
    Cs3 = 139
    Db3 = 139
    D3 = 147
    Ds3 = 156
    Eb3 = 156
    E3 = 165
    F3 = 175
    Fs3 = 185
    Gb3 = 185
    G3 = 196
    Gs3 = 208
    Ab3 = 208
    A3 = 220
    As3 = 233
    Bb3 = 233
    B3 = 247

    C4 = 262
    Cs4 = 277
    Db4 = 277
    D4 = 294
    Ds4 = 311
    Eb4 = 311
    E4 = 330
    F4 = 349
    Fs4 = 370
    Gb4 = 370
    G4 = 392
    Gs4 = 415
    Ab4 = 415
    A4 = 440
    As4 = 466
    Bb4 = 466
    B4 = 494

    C5 = 523
    Cs5 = 554
    Db5 = 554
    D5 = 587
    Ds5 = 622
    Eb5 = 622
    E5 = 659
    F5 = 698
    Fs5 = 740
    Gb5 = 740
    G5 = 784
    Gs5 = 831
    Ab5 = 831
    A5 = 880
    As5 = 932
    Bb5 = 932
    B5 = 987

    # here's another way to express the note pitch, double the previous octave
    C6 = C5 * 2
    Cs6 = Cs5 * 2
    Db6 = Db5 * 2
    D6 = D5  * 2
    Ds6 = Ds5 * 2
    Eb6 = Eb5 * 2
    E6 = E5 * 2
    F6 = F5 * 2
    Fs6 = Fs5 * 2
    Gb6 = Gb5 * 2
    G6 = G5 * 2
    Gs6 = Gs5 * 2
    Ab6 = Ab5 * 2
    A6 = A5 * 2
    As6 = As5 * 2
    Bb6 = Bb5 * 2
    B6 = B5 * 2

    if ringtone == 1:
        # Nokia
        nokia_ringtone = [[E6, eighth_note], [D6, eighth_note],
                          [Fs5, quarter_note], [Gs5, quarter_note],
                          [Cs6, eighth_note], [B5, eighth_note],
                          [D5, quarter_note], [E5, quarter_note],
                          [B5, eighth_note], [A5, eighth_note],
                          [Cs5, quarter_note], [E5, quarter_note],
                          [A5, whole_note]]

        for n in range(len(nokia_ringtone)):
            piezo.frequency = (nokia_ringtone[n][0])
            piezo.duty_cycle = 65536//2  # on 50%
            time.sleep(nokia_ringtone[n][1])  # note duration
            piezo.duty_cycle = 0  # off
            time.sleep(0.01)

    if ringtone == 2:
        # iPhone Marimba
        iPhone_ringtone = [[B4, eighth_note], [G4, eighth_note],
                           [D5, eighth_note], [G4, eighth_note],
                           [D5, eighth_note], [E5, eighth_note],
                           [D5, eighth_note], [G4, eighth_note],
                           [E5, eighth_note], [D5, eighth_note],
                           [G4, eighth_note], [D5, eighth_note]]

        for n in range(len(iPhone_ringtone)):
            piezo.frequency = (iPhone_ringtone[n][0])
            piezo.duty_cycle = 65536//2  # on 50%
            time.sleep(iPhone_ringtone[n][1])  # note duration
            piezo.duty_cycle = 0  # off
            time.sleep(0.01)

    if ringtone == 3:
        # Rickroll
        rick_ringtone =   [[A3, sixteenth_note], [B3, sixteenth_note],
                           [D4, sixteenth_note], [B3, sixteenth_note],
                           [Fs4, dotted_eighth_note], [Fs4, sixteenth_note],
                           [Fs4, eighth_note], [E4, eighth_note],
                           [E4, quarter_note],
                           [A3, sixteenth_note], [B3, sixteenth_note],
                           [Cs4, sixteenth_note], [A3, sixteenth_note],
                           [E4, dotted_eighth_note], [E4, sixteenth_note],
                           [E4, eighth_note], [D4, eighth_note],
                           [D4, sixteenth_note], [Cs4, sixteenth_note],
                           [B3, eighth_note]]

        for n in range(len(rick_ringtone)):
            piezo.frequency = (rick_ringtone[n][0])
            piezo.duty_cycle = 65536//2  # on 50%
            time.sleep(rick_ringtone[n][1])  # note duration
            piezo.duty_cycle = 0  # off
            time.sleep(0.035)

    time.sleep(interval)

def annoy_crickets(repeat, interval):
    for i in range(repeat):
        for r in range(6):
            piezo.frequency = 8000  # 2600 is a nice choice
            piezo.duty_cycle = 65536//2  # on 50%
            time.sleep(0.02)  # sound on
            piezo.duty_cycle = 0  # off
            time.sleep(0.05)
        time.sleep(0.2)
    time.sleep(interval)  # wait time until next beep

def annoy_teen_tone(interval):
    piezo.frequency = 17400
    piezo.duty_cycle = 65536//2  # on 50%
    time.sleep(10)
    piezo.duty_cycle = 0
    time.sleep(interval)

while True:
    if annoy_mode is 1:
        annoy_beep(frequency, length, repeat, rest, interval)
    elif annoy_mode is 2:
        annoy_doorbell(interval)
    elif annoy_mode is 3:
        annoy_ringtone(ringtone, ringtone_tempo, interval)
    elif annoy_mode is 4:
        annoy_crickets(repeat, interval)
    elif annoy_mode is 5:
        annoy_teen_tone(interval)
    elif annoy_mode is 6:
        annoy_beep(5000, 0.2, 2, 0.05, 3)
        annoy_doorbell(3)
        annoy_ringtone(1, 0.9, 3)
        annoy_ringtone(2, 1.3, 3)
        annoy_ringtone(3, 2.0, 3)
        annoy_crickets(3, 3)
        annoy_teen_tone(6)

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Adabox 007 Gemma MO

Post by adafruit_support_mike »

Does the red LED pulse when you double-click the reset button?

User avatar
crazytechkid
 
Posts: 9
Joined: Sun Apr 08, 2018 11:13 pm

Re: Adabox 007 Gemma MO

Post by crazytechkid »

yes it does and also the reset button popped off
Attachments
IMG_2160 (1).jpg
IMG_2160 (1).jpg (561.28 KiB) Viewed 347 times

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Adabox 007 Gemma MO

Post by adafruit_support_mike »

Well, that counts as a component failure on its own.

Send a note containing a link to this thread and your order number to [email protected]. The folks there will get you another Gemma M0.

Locked
Please be positive and constructive with your questions and comments.

Return to “AdaBox! Show us what you made!”