import gc import pulseio gc.collect() import adafruit_irremote gc.collect() from adafruit_motor import motor gc.collect() from adafruit_seesaw.seesaw import Seesaw gc.collect() from adafruit_seesaw.pwmout import PWMOut gc.collect() import neopixel gc.collect() import audioio gc.collect() from busio import I2C import board import time print("Blimp!") # Create Infrared reader pulsein = pulseio.PulseIn(board.REMOTEIN, maxlen=100, idle_state=True) decoder = adafruit_irremote.GenericDecode() REMOTE_FORWARD = [255, 2, 175, 80] REMOTE_BACKWARD = [255, 2, 239, 16] REMOTE_PAUSE = [255, 2, 127, 128] # Create seesaw object seesaw = Seesaw(I2C(board.SCL, board.SDA)) # Create one motor on seesaw PWM pins 22 & 23 motor_a = motor.DCMotor(PWMOut(seesaw, 22), PWMOut(seesaw, 23)) motor_a.throttle = 0 # Neopix!@ pixels = neopixel.NeoPixel(board.NEOPIXEL, 10) # audio file a = audioio.AudioOut(board.A0) def play_audio(wavfile): f = open(wavfile, "rb") wav = audioio.WaveFile(f) a.play(wav) while a.playing: pass f.close() gc.collect() play_audio("overview.wav") t = time.monotonic() while True: command = None # assume no remote commands came in if len(pulsein) > 25: # check in any IR data came in pulses = decoder.read_pulses(pulsein) try: code = decoder.decode_bits(pulses, debug=False) if code in (REMOTE_FORWARD, REMOTE_BACKWARD, REMOTE_PAUSE): # we only listen to a few different codes command = code else: continue # on any failure, lets just restart except: continue if command: if code == REMOTE_FORWARD: play_audio("fan_forward.wav") motor_a.throttle = 1 # full speed forward pixels.fill((255,0,0)) elif code == REMOTE_BACKWARD: play_audio("fan_backward.wav") motor_a.throttle = -1 # full speed backward pixels.fill((0,0,255)) elif code == REMOTE_PAUSE: motor_a.throttle = 0 # stop motor play_audio("fan_stopped.wav") pixels.fill((0,0,0)) time.sleep(0.5) # play yayayay every 3 seconds if (time.monotonic() - t > 3) and motor_a.throttle != 0: t = time.monotonic() play_audio("yayyayyay.wav")
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.
Join us every Wednesday night at 8pm ET for Ask an Engineer!
Maker Business — Savannah tells the story of the supply chain crisis in the U.S.
Wearables — Feathers from leather
Electronics — Get Oriented!
Python for Microcontrollers — Python on Microcontrollers Newsletter: Events, Projects, and much more! #Python #Adafruit #CircuitPython @micropython @ThePSF
Adafruit IoT Monthly — No-Code IoT with WipperSnapper, Beaming Internet across the Congo, and more!
Microsoft MakeCode — MakeCode Thank You!
EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey
New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — JP’s Product Pick of the Week 10/19/21 DRV2506L Haptic Motor Controller @adafruit @johnedgarpark #adafruit #newproductpick
Sorry, the comment form is closed at this time.