Skip to content

Instantly share code, notes, and snippets.

@tannewt
Created December 15, 2017 23:09
Show Gist options
  • Save tannewt/6c404c8e76d06a87fa4b43f923632e1d to your computer and use it in GitHub Desktop.
Save tannewt/6c404c8e76d06a87fa4b43f923632e1d to your computer and use it in GitHub Desktop.
import time
import pulseio
import board
import adafruit_irremote
from adafruit_circuitplayground.express import cpx
pulsein = pulseio.PulseIn(board.REMOTEIN, maxlen=120, idle_state=True)
decoder = adafruit_irremote.GenericDecode()
# size must match what you are decoding! for NEC use 4
received_code = bytearray(4)
# IR Remote Mapping
'''
1: [255, 2, 247, 8]
2: [255, 2, 119, 136]
3: [255, 2, 183, 72]
4: [255, 2, 215, 40]
5: [255, 2, 87, 168]
6: [255, 2, 151, 104]
7: [255, 2, 231, 24]
8: [255, 2, 103, 152]
9: [255, 2, 167, 88]
0: [255, 2, 207, 48]
^ : [255, 2, 95, 160]
v : [255, 2, 79, 176]
> : [255, 2, 175, 80]
< : [255, 2, 239, 16]
Enter: [255, 2, 111, 144]
Setup: [255, 2, 223, 32]
Stop/Mode: [255, 2, 159, 96]
Back: [255, 2, 143, 112]
Vol - : [255, 2, 255, 0]
Vol + : [255, 2, 191, 64]
Play/Pause: [255, 2, 127, 128]
'''
pixel_bright = 0.02
RED = (255, 0, 0)
GREEN = (0, 255, 0)
WHITE = (85, 85, 85)
BLUE = (0, 0, 255)
PINK = (128, 0, 128)
YELLOW = (148, 108, 0)
PURPLE = (200, 0, 55)
TEAL = (0, 200, 100)
BLACK = (0, 0, 0)
last_command = None
while True:
cpx.red_led = False
try:
pulses = decoder.read_pulses(pulsein)
except MemoryError as e:
print("Memory error: ", e)
continue
cpx.red_led = True
print("Heard", len(pulses), "Pulses:", pulses)
command = None
try:
code = decoder.decode_bits(pulses, debug=False)
if len(code) > 3:
command = code[2]
print("Decoded:", code)
except adafruit_irremote.IRNECRepeatException: # unusual short code!
print("NEC repeat!")
command = last_command
except adafruit_irremote.IRDecodeException as e: # failed to decode
print("Failed to decode:", e)
except MemoryError as e:
print("Memory error: ", e)
if not command:
continue
last_command = command
print("----------------------------")
cpx.red_led = False
if command in (95, 79, 111):
if command == 95: # up
pixel_bright = .1
elif command == 79: # down
pixel_bright = -0.1
elif command == 111: # down
pixel_bright = -0.2
new_brightness = cpx.pixels.brightness + pixel_bright
new_brightness = max(0, min(1.0, new_brightness))
cpx.pixels.brightness = new_brightness
cpx.pixels.show()
elif command == 247: # 1
cpx.pixels.fill(RED)
elif command == 119: # 2
cpx.pixels.fill(GREEN)
elif command == 183: # 3
cpx.pixels.fill(WHITE)
elif command == 215: # 4
cpx.pixels.fill(BLUE)
elif command == 87: # 5
cpx.pixels.fill(PINK)
elif command == 151: # 6
cpx.pixels.fill(YELLOW)
elif command == 231: # 7
cpx.pixels.fill(PURPLE)
elif command == 103: # 8
cpx.pixels.fill(TEAL)
elif command == 207:
cpx.pixels.fill(BLACK)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment