add COMMANDS, add pin info for OLT remote
This commit is contained in:
parent
85ca755700
commit
a15e7214b7
@ -1,3 +1,4 @@
|
||||
# OpenLaserTag remote box
|
||||
|
||||
Box Z62, 2xAA:
|
||||
|
||||
@ -19,5 +20,14 @@ pin3 GND
|
||||
IR TX TSAL6200
|
||||
|
||||
|
||||
### Pi Pico pin:
|
||||
|
||||
Pi Pico pin:
|
||||
pin 16 - IR RX
|
||||
pin 17 - IR TX
|
||||
pin 18 - button 3
|
||||
pin 19 - button
|
||||
pin 20 - button
|
||||
pin 21 - button
|
||||
pin 22 - Red LED
|
||||
pin 26 - Green LED
|
||||
pin 27 - Blue LED
|
52
main.py
52
main.py
@ -62,6 +62,11 @@ import primitives.queue as queue
|
||||
from primitives import Switch, Pushbutton
|
||||
from rgb import RGB
|
||||
|
||||
#### OLT Commands ####
|
||||
LAST_BYTE = (0xE8)
|
||||
COMMANDS = [['NewGame', 0x83, 0x05],
|
||||
['AdminKill', 0x83, 0x00]]
|
||||
|
||||
#### Logging ####
|
||||
import logging
|
||||
global logger
|
||||
@ -114,7 +119,31 @@ async def start_game_comand(btn, rgb, ir_tx):
|
||||
logger.debug("Start game button released")
|
||||
await rgb.set_red()
|
||||
|
||||
async def olt_command(cmd, btn, rgb, ir_tx, tx1, tx2, tx3):
|
||||
logger.debug(f"Init OLT game command {cmd} on button {btn}")
|
||||
await rgb.set_red()
|
||||
btn.press_func(None)
|
||||
btn.release_func(None)
|
||||
|
||||
while True:
|
||||
btn.press.clear()
|
||||
btn.release.clear()
|
||||
await btn.press.wait()
|
||||
logger.debug("Command button pressed")
|
||||
await rgb.set_green()
|
||||
# IR TX send
|
||||
logger.debug("Command IR TX transmit")
|
||||
asyncio.create_task(ir_tx.transmit(tx1, tx2, tx3, False))
|
||||
#loop = asyncio.get_running_loop()
|
||||
#loop.set_exception_handler(exception_handler)
|
||||
await asyncio.sleep_ms(50)
|
||||
await btn.release.wait()
|
||||
logger.debug("Command button released")
|
||||
await rgb.set_red()
|
||||
|
||||
|
||||
|
||||
|
||||
### main ###
|
||||
async def main(proto):
|
||||
|
||||
@ -148,13 +177,28 @@ async def main(proto):
|
||||
|
||||
### Buttons ###
|
||||
logger.debug("Button init")
|
||||
pin1 = machine.Pin(20, machine.Pin.IN, machine.Pin.PULL_UP) # Button 1 on membrane switch
|
||||
btn1 = Pushbutton(pin1)
|
||||
pin2 = machine.Pin(21, machine.Pin.IN, machine.Pin.PULL_UP) # Button 2 on membrane switch
|
||||
btn2 = Pushbutton(pin2)
|
||||
pin3 = machine.Pin(18, machine.Pin.IN, machine.Pin.PULL_UP) # Button 3 on membrane switch
|
||||
btn3 = Pushbutton(pin3)
|
||||
pin4 = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP) # Button 4 on membrane switch
|
||||
btn4 = Pushbutton(pin4)
|
||||
|
||||
COMMANDS[0].append(btn1)
|
||||
COMMANDS[1].append(btn2)
|
||||
#COMMANDS[2].append(btn3)
|
||||
#COMMANDS[3].append(btn4)
|
||||
|
||||
btn3.release_func(None)
|
||||
btn3.double_func(None)
|
||||
btn3.long_func(None)
|
||||
asyncio.create_task(start_game_comand(btn3, rgb1, ir_tx))
|
||||
#btn3.release_func(None)
|
||||
#btn3.double_func(None)
|
||||
#btn3.long_func(None)
|
||||
for command, tx1, tx2, btn in COMMANDS:
|
||||
logger.debug(f"command: {command} btn: {btn} tx1: {tx1} tx2: {tx2}")
|
||||
asyncio.create_task(olt_command(command, btn, rgb1, ir_tx, tx1, tx2, LAST_BYTE))
|
||||
|
||||
#asyncio.create_task(start_game_comand(btn3, rgb1, ir_tx))
|
||||
|
||||
### Main loop ###
|
||||
while True:
|
||||
|
Loading…
Reference in New Issue
Block a user