"""
scopul lecției de azi
=====================
2024-05-13
----------
behaviour:
MaIn MoDeS!!!11!1
000. Dasimplamp.
----------------
A) default:
rotary encoder +/- 1 --> *brightness*
B) i click and release button:
--> go into channel tuning mode:
a) RED.
q: do i get visual feedback?
a1: da: rama se schimbă / doar câteva leduri
a2: montăm un led rgb, și îl aprindem / facem flash în culoarea canalului curent
rotary encoder +/- 1 --> red channel
B+) i click and release button again:
--> the same, b) GREEN.
B++) c) BLUE.
B+++) Ionuț votează default (brightness); Darius votează brightness = mod
diferit față de tuning mode; Robert votează brightness mod separat: dacă ții
apăsat pe buton și dai de rotenc.
> now Darius has question:
> how do we switch from Main Mode 000 to 001?
> now Ionuț has answer:
> We DoN'T kNoW rIghtNoWdAmmIt!!?!?11
> (dar am putea să facem long press. sau double click.
> sau să mai punem un buton (zice RObeRt!))
> (sau zice DaRiUs: țînem buton apăsat și dăm de rotary encoderu,
> și.... avem..... ceva feedback vizual... direct pe matrice ... flash bang.)
001. Somethinglamp.
-------------------
00x. Mode #ț:
> 1 hour later:
> Darius sayz:
> da' dacă lăsăm doar modu' default, și orice altceva ai acces doar de pe telefon?
> Ionuț sayz:
> N U !
"""
# what we like so far, in terms of libraries that is:
# https://github.com/miketeachman/micropython-rotary
#
# aand
# https://github.com/TTitanUA/micropython_rotary_encoder
#
# we like v.2 lib, because it does much stuff!
import uasyncio as asyncio
from machine import Pin
#from time import sleep_ms
from rotary_encoder import RotaryEncoderEvent
from rotary_encoder_rp2 import RotaryEncoderRP2
encoder = RotaryEncoderRP2(
pin_clk=Pin(16, Pin.IN, Pin.PULL_DOWN),
pin_dt=Pin(17, Pin.IN, Pin.PULL_DOWN),
)
def left():
print("goin' left")
def right():
print("goin' right")
encoder.on(RotaryEncoderEvent.TURN_LEFT, left)
encoder.on(RotaryEncoderEvent.TURN_RIGHT, right)
asyncio.run(
encoder.async_tick()
)
"""
def hit1(btn):
print('hit that 1', btn)
def hit2(btn):
print('hit that 2', btn)
btn1.irq(hit1, Pin.IRQ_FALLING)
btn2.irq(hit2, Pin.IRQ_FALLING)
"""