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 — To make it through a tough business cycle, layoffs should be a last resort
Wearables — EVA foam is like fondant
Electronics — I touched my circuit, and now it glitches!
Python for Microcontrollers — Python on Microcontrollers Newsletter: 300 CircuitPython Libraries, Python Turns 30! #Python #Adafruit #CircuitPython @micropython @ThePSF
Adafruit IoT Monthly — Upcycling Smartphones, AI Freezer, and more!
Microsoft MakeCode — MakeCode Arcade Turns One!
EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey
New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 2/24/2021 Featuring TPS62827 3.3V Buck Converter Breakout – 3.3V Output 2 Amp Max (Video)
Sorry, the comment form is closed at this time.