cleanup: Remove unused python files from src
Remove python files that are not referenced directly or indirectly by main.py. Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
This commit is contained in:
@@ -1,58 +0,0 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
|
||||||
# Copyright (c) 2024 Matthias Blankertz <matthias@blankertz.org>
|
|
||||||
|
|
||||||
# Run with mpremote.py run src/led_test.py
|
|
||||||
|
|
||||||
from machine import Pin
|
|
||||||
from math import pi, sin, pow
|
|
||||||
from micropython import const
|
|
||||||
from rp2_neopixel import NeoPixel
|
|
||||||
from time import sleep, ticks_ms
|
|
||||||
import asyncio
|
|
||||||
|
|
||||||
pin = Pin.board.GP16
|
|
||||||
leds = const(10)
|
|
||||||
brightness = 0.5
|
|
||||||
|
|
||||||
np = NeoPixel(pin, leds)
|
|
||||||
|
|
||||||
# test fill and write
|
|
||||||
|
|
||||||
print("LEDs should now turn red")
|
|
||||||
np.fill((255, 0, 0))
|
|
||||||
np.write()
|
|
||||||
sleep(1)
|
|
||||||
|
|
||||||
print("LEDs should now turn green")
|
|
||||||
np.fill((0, 255, 0))
|
|
||||||
np.write()
|
|
||||||
sleep(1)
|
|
||||||
|
|
||||||
print("LEDs should now turn blue")
|
|
||||||
np.fill((0, 0, 255))
|
|
||||||
np.write()
|
|
||||||
sleep(1)
|
|
||||||
|
|
||||||
|
|
||||||
# test async
|
|
||||||
def gamma(value, X=2.2):
|
|
||||||
return min(max(int(brightness * pow(value / 255.0, X) * 255.0 + 0.5), 0), 255)
|
|
||||||
|
|
||||||
|
|
||||||
async def rainbow(np, period=10):
|
|
||||||
count = 0.0
|
|
||||||
while True:
|
|
||||||
for i in range(leds):
|
|
||||||
ofs = (count + i) % leds
|
|
||||||
np[i] = (gamma((sin(ofs / leds * 2 * pi) + 1) * 127),
|
|
||||||
gamma((sin(ofs / leds * 2 * pi + 2/3*pi) + 1) * 127),
|
|
||||||
gamma((sin(ofs / leds * 2 * pi + 4/3*pi) + 1) * 127))
|
|
||||||
count += 0.2
|
|
||||||
before = ticks_ms()
|
|
||||||
await np.async_write()
|
|
||||||
now = ticks_ms()
|
|
||||||
if before + 20 > now:
|
|
||||||
await asyncio.sleep_ms(20 - (now - before))
|
|
||||||
|
|
||||||
print("LEDs should now start rainbowing")
|
|
||||||
asyncio.run(rainbow(np))
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
from mfrc522 import MFRC522
|
|
||||||
import asyncio
|
|
||||||
import time
|
|
||||||
|
|
||||||
delay_sum = 0
|
|
||||||
delay_count = 0
|
|
||||||
max_delay = 0
|
|
||||||
|
|
||||||
|
|
||||||
async def latency_test():
|
|
||||||
global delay_sum
|
|
||||||
global delay_count
|
|
||||||
global max_delay
|
|
||||||
global min_delay
|
|
||||||
min_delay = 0xffffffff
|
|
||||||
await asyncio.sleep_ms(1)
|
|
||||||
while True:
|
|
||||||
for _ in range(2000):
|
|
||||||
before = time.ticks_us()
|
|
||||||
await asyncio.sleep(0)
|
|
||||||
after = time.ticks_us()
|
|
||||||
delay = after - before
|
|
||||||
delay_sum += delay
|
|
||||||
delay_count += 1
|
|
||||||
if delay > max_delay:
|
|
||||||
max_delay = delay
|
|
||||||
if delay < min_delay:
|
|
||||||
min_delay = delay
|
|
||||||
await asyncio.sleep_ms(1)
|
|
||||||
print(f"delay (min / max / avg) [µs]: ({min_delay} / {max_delay} / {delay/delay_sum})")
|
|
||||||
|
|
||||||
|
|
||||||
def uid_to_string(uid: list):
|
|
||||||
return '0x' + ''.join(f'{i:02x}' for i in uid)
|
|
||||||
|
|
||||||
|
|
||||||
async def get_tag_uid(reader: MFRC522, poll_interval_ms: int = 50) -> list:
|
|
||||||
'''
|
|
||||||
The maximum measured delay with poll_interval_ms=50 and a reader with tocard_retries=5 is
|
|
||||||
15.9 ms:
|
|
||||||
delay (min / max / avg) [µs]: (360 / 15945 / 1.892923e-06)
|
|
||||||
|
|
||||||
The maximum measured delay dropped to 11.6 ms by setting tocard_retries=1:
|
|
||||||
delay (min / max / avg) [µs]: (368 / 11696 / 6.204211e-06)
|
|
||||||
'''
|
|
||||||
while True:
|
|
||||||
reader.init()
|
|
||||||
|
|
||||||
# For now we omit the tag type
|
|
||||||
(stat, _) = reader.request(reader.REQIDL)
|
|
||||||
if stat == reader.OK:
|
|
||||||
(stat, uid) = reader.SelectTagSN()
|
|
||||||
if stat == reader.OK:
|
|
||||||
print(f"uid={uid_to_string(uid)}")
|
|
||||||
|
|
||||||
await asyncio.sleep_ms(poll_interval_ms)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
reader = MFRC522(spi_id=1, sck=10, miso=12, mosi=11, cs=13, rst=9, tocard_retries=1)
|
|
||||||
|
|
||||||
print("")
|
|
||||||
print("Please place card on reader")
|
|
||||||
print("")
|
|
||||||
|
|
||||||
asyncio.create_task(get_tag_uid(reader))
|
|
||||||
asyncio.create_task(latency_test())
|
|
||||||
|
|
||||||
asyncio.get_event_loop().run_forever()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
|
||||||
# Copyright (c) 2024-2025 Matthias Blankertz <matthias@blankertz.org>
|
|
||||||
|
|
||||||
import aiorepl
|
|
||||||
import asyncio
|
|
||||||
import machine
|
|
||||||
import micropython
|
|
||||||
import os
|
|
||||||
import time
|
|
||||||
from machine import Pin
|
|
||||||
from math import pi, sin, pow
|
|
||||||
from micropython import const
|
|
||||||
|
|
||||||
# Own modules
|
|
||||||
from audiocore import Audiocore
|
|
||||||
from mp3player import MP3Player
|
|
||||||
from rp2_neopixel import NeoPixel
|
|
||||||
from rp2_sd import SDCard
|
|
||||||
|
|
||||||
micropython.alloc_emergency_exception_buf(100)
|
|
||||||
|
|
||||||
leds = const(10)
|
|
||||||
brightness = 0.5
|
|
||||||
|
|
||||||
|
|
||||||
def gamma(value, X=2.2):
|
|
||||||
return min(max(int(brightness * pow(value / 255.0, X) * 255.0 + 0.5), 0), 255)
|
|
||||||
|
|
||||||
|
|
||||||
async def rainbow(np, period=10):
|
|
||||||
count = 0.0
|
|
||||||
while True:
|
|
||||||
for i in range(leds):
|
|
||||||
ofs = (count + i) % leds
|
|
||||||
np[i] = (gamma((sin(ofs / leds * 2 * pi) + 1) * 127),
|
|
||||||
gamma((sin(ofs / leds * 2 * pi + 2/3*pi) + 1) * 127),
|
|
||||||
gamma((sin(ofs / leds * 2 * pi + 4/3*pi) + 1) * 127))
|
|
||||||
count += 0.2
|
|
||||||
before = time.ticks_ms()
|
|
||||||
await np.async_write()
|
|
||||||
now = time.ticks_ms()
|
|
||||||
if before + 20 > now:
|
|
||||||
await asyncio.sleep_ms(20 - (now - before))
|
|
||||||
|
|
||||||
|
|
||||||
# Set 8 mA drive strength and fast slew rate
|
|
||||||
machine.mem32[0x4001c004 + 6*4] = 0x67
|
|
||||||
machine.mem32[0x4001c004 + 7*4] = 0x67
|
|
||||||
machine.mem32[0x4001c004 + 8*4] = 0x67
|
|
||||||
|
|
||||||
|
|
||||||
def list_sd():
|
|
||||||
try:
|
|
||||||
sd = SDCard(mosi=Pin(3), miso=Pin(4), sck=Pin(2), ss=Pin(5), baudrate=15000000)
|
|
||||||
except OSError:
|
|
||||||
for i in range(leds):
|
|
||||||
np[i] = (255, 0, 0)
|
|
||||||
np.write()
|
|
||||||
return
|
|
||||||
try:
|
|
||||||
os.mount(sd, '/sd')
|
|
||||||
print(os.listdir(b'/sd'))
|
|
||||||
except OSError as ex:
|
|
||||||
print(f"{ex}")
|
|
||||||
|
|
||||||
|
|
||||||
delay_sum = 0
|
|
||||||
delay_count = 0
|
|
||||||
max_delay = 0
|
|
||||||
|
|
||||||
|
|
||||||
async def latency_test():
|
|
||||||
global delay_sum
|
|
||||||
global delay_count
|
|
||||||
global max_delay
|
|
||||||
await asyncio.sleep_ms(1)
|
|
||||||
while True:
|
|
||||||
for _ in range(2000):
|
|
||||||
before = time.ticks_us()
|
|
||||||
await asyncio.sleep(0)
|
|
||||||
after = time.ticks_us()
|
|
||||||
delay = after - before
|
|
||||||
delay_sum += delay
|
|
||||||
delay_count += 1
|
|
||||||
if delay > max_delay:
|
|
||||||
max_delay = delay
|
|
||||||
await asyncio.sleep_ms(1)
|
|
||||||
print(f"Max delay {max_delay} us, average {delay/delay_sum} us")
|
|
||||||
|
|
||||||
pin = Pin.board.GP16
|
|
||||||
np = NeoPixel(pin, leds)
|
|
||||||
|
|
||||||
# Test SD card
|
|
||||||
list_sd()
|
|
||||||
|
|
||||||
# Test NeoPixel
|
|
||||||
asyncio.create_task(rainbow(np))
|
|
||||||
|
|
||||||
# Test audio
|
|
||||||
audioctx = Audiocore(Pin(8), Pin(6))
|
|
||||||
|
|
||||||
player = MP3Player(audioctx)
|
|
||||||
|
|
||||||
# high prio for proc 1
|
|
||||||
machine.mem32[0x40030000 + 0x00] = 0x10
|
|
||||||
|
|
||||||
testfiles = [b'/sd/' + name for name in os.listdir(b'/sd') if name.endswith(b'mp3')]
|
|
||||||
player.set_playlist(testfiles)
|
|
||||||
asyncio.create_task(player.task())
|
|
||||||
|
|
||||||
|
|
||||||
asyncio.create_task(aiorepl.task({'player': player}))
|
|
||||||
asyncio.get_event_loop().run_forever()
|
|
||||||
Reference in New Issue
Block a user