LED_Effect/Led_effect.py

51 lines
1.6 KiB
Python
Raw Normal View History

2024-08-09 01:28:53 -07:00
import numpy as np
import serial
import struct
# Hàm gửi dữ liệu qua cổng serial
def send_data(data):
num_rows = data.shape[0]
num_cols = data.shape[1]
# Chuyển mảng thành chuỗi byte
data_bytes = data.tobytes()
# Đóng gói kích thước và dữ liệu
header = struct.pack('<II', num_rows, num_cols) # <II cho hai số nguyên không dấu 32-bit
data_to_send = header + data_bytes
# Mở cổng serial
ser = serial.Serial('/dev/ttyUSB0', 115200) # Thay 'COM3' bằng cổng serial của bạn
# Gửi dữ liệu
ser.write(data_to_send)
# Đóng cổng serial
ser.close()
print("sending : ",data_to_send)
# Hàm scale tọa độ
def scaled_image(coords, h_new, w_new):
coords[:, 0] = (coords[:, 0] * w_new).astype(float) # Scale x
coords[:, 1] = (coords[:, 1] * h_new).astype(float) # Scale y
return coords
# Tạo test case
def create_test_case(n):
data = np.random.rand(n, 2).astype(np.float32) # Tạo tọa độ ngẫu nhiên
return data
# Hàm chính để test
def main():
for n in range(11): # Test với n từ 0 đến 10
data = create_test_case(n)
print(f"Original data (n={n}):")
print(data)
#h_old, w_old = 1080, 1920 # Kích thước ban đầu của ảnh
h_new, w_new = 64, 64 # Kích thước mới của ảnh
scaled_data = scaled_image(data.copy(),h_new, w_new)
print(f"Scaled data (n={n}):")
print(scaled_data)
# Gửi dữ liệu qua cổng serial
send_data(scaled_data)
if __name__ == "__main__":
main()