Go to file
CalisJI 5787b71940 Update README 2024-08-23 09:48:23 +07:00
.vscode initial 2024-08-20 14:02:42 +07:00
img Update README 2024-08-23 09:41:32 +07:00
include add new 2024-08-09 10:52:23 +07:00
lib add new 2024-08-09 10:52:23 +07:00
src Update 2024-08-21 16:37:46 +07:00
test add new 2024-08-09 10:52:23 +07:00
.gitignore complete the logic for Game 2024-08-13 22:17:22 +07:00
README.md Update README 2024-08-23 09:48:23 +07:00
platformio.ini full function game 2024-08-16 17:01:10 +07:00

README.md

Project display object's point on matrix

Using UART to communicate with each other

Host machine running human detection connect to ESP32 via UART using TypeC cable. They communicate realtime with each other

Pinout ESP32-S3

Hardware

  • ESP32-S3 N8R2 Dual Type-C: ESP32-S3 N8R2 Dual Type-C

  • Pinout

#define R1_PIN 4
#define G1_PIN 5
#define B1_PIN 6
#define R2_PIN 7
#define G2_PIN 15
#define B2_PIN 16
#define A_PIN 18
#define B_PIN 8 // Changed from library default
#define C_PIN 3
#define D_PIN 42
#define E_PIN 39 // required for 1/32 scan panels, like 64x64px. Any available pin would do, i.e. IO32
#define LAT_PIN 40
#define OE_PIN 2
#define CLK_PIN 41

Data input example Serial Port

import numpy as np
import serial
import struct

# Tạo mảng NumPy
n = 2
data = np.random.rand(n, 3).astype(np.float32)
# Kích thước của mảng
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
print(data)
# Gửi dữ liệu
ser.write(data_to_send)

# Đóng cổng serial
ser.close()

Testing Game

import numpy as np
import serial
import struct

# Tạo mảng NumPy
n = 2
# Kích thước của mảng

num_rows = 1
num_cols = 0

data = np.array([[60, 120,1]]).astype(np.float32)
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/ttyACM0', 115200*2)  # Thay 'COM3' bằng cổng serial của bạn
print(data)
# Gửi dữ liệu
ser.write(data_to_send)

# Đóng cổng serial
ser.close()

Data frame format

# Game Hung Vat
x = 60 # X coordinate
y = 120 # Y coordinate (no action)
z = 1 # action (no action)
data = np.array([[60, 120,1]]).astype(np.float32)

# Game Stick Man
x = 60 # X coordinate
y = 120 # Y coordinate (no action)
z = 1 # 1: right shield; 2 left shield; 0 none sheild
data = np.array([[60, 120,1]]).astype(np.float32)

#Game Space Invaders

x = 60 # X coordinate
y = 120 # Y coordinate (no action)
z = 1 # 1: fire bullet; 0 none fire
data = np.array([[60, 120,1]]).astype(np.float32)