feat: Initialize backend with NestJS framework and serial communication

- Added package.json for backend dependencies and scripts.
- Implemented basic AppController and AppService with a simple "Hello World!" endpoint.
- Created SerialModule for handling serial communication with the Pico.
- Developed SerialController and SerialService to manage serial ports and commands.
- Implemented event streaming for serial data.
- Added Jest tests for AppController and e2e tests for the application.
- Set up TypeScript configuration for the backend.
- Created frontend SendBox component for sending commands to the backend.
- Established Pico firmware for controlling a stepper motor via serial commands.
- Documented project structure and usage in README files.
This commit is contained in:
2025-08-27 22:11:33 +02:00
parent bd41ffbe79
commit d607308b1d
32 changed files with 11622 additions and 165 deletions

View File

@@ -0,0 +1,35 @@
# Pico Serial Motor Control Integration
This project enables a Raspberry Pi Pico to be controlled via serial commands from a TypeScript backend. The Pico firmware parses commands received over serial and controls a stepper motor accordingly, while also sending log/status messages back.
## Serial Commands Supported
- `STEP <steps> <direction>`: Move the motor by the specified number of steps. Direction: 1 for forward, 0 for reverse.
- `SPEED <delay_us>`: Set the motor speed (delay in microseconds between steps).
- `LOG <message>`: Print a log message to serial.
## Firmware Files
- `src/main.cpp`: Main firmware logic, serial command parsing, motor control, logging.
- `src/ULN2003Stepper.h`, `src/Stepper.h`: Stepper motor driver classes.
## How to Extend
- Add new serial commands by updating the parser in `main.cpp`.
- Implement additional motor features or logging as needed.
- Ensure any new global variables are only defined in one source file, and declared as `extern` elsewhere.
## TypeScript Backend
- Use a library like `serialport` to communicate with the Pico.
- Send commands as plain text terminated by `\n`.
- Read and process log/status messages from serial.
## Example Serial Session
```
SPEED 3000
STEP 4096 1
LOG Motor moved
```
## Build & Upload
Use PlatformIO to build and upload the firmware to the Pico.
---
This README is intended for another developer or Copilot to implement further changes or features.