The Recreational Output System for Interactive Exercise, or ROSIE, is a tennis ball launcher designed for individuals suffering from rheumatoid arthritis. This program is used to control the onboard ESP32 which controls the motors, ball spin, and handles the connection to the app (see ROSIE-Control-Panel).
- PlatformIO installed in VS Code
- ESP32 (or any microcontroller) connected via USB to upload the program
The recommended way to install is from source:
git clone --recursive https://github.com/KennyC3200/ROSIE
Then open the project in VS Code with PlatformIO, build the project, and then upload it to the ESP32 via USB.
The default pinout for the ESP32 (I used this ESP32 model, but any microcontroller can work):
| Pin | GPIO | Description |
|---|---|---|
| PWM | 4 | Motor 1 PWM |
| L_EN | 16 | Motor 1 left enable |
| R_EN | 17 | Motor 1 right enable |
| PWM | 14 | Motor 2 PWM |
| L_EN | 26 | Motor 2 left enable |
| R_EN | 27 | Motor 2 right enable |
| Switch | 33 | On/off switch (INPUT_PULLUP) |
The pinout can be changed in the code.
| Name | UUID | Properties | Description |
|---|---|---|---|
| motor_speed_percent | 7e77c276-... | READ, WRITE_NR, NOTIFY | Motor speed (0%-100%) |
| motor_1_RPM | 76bd9c05-... | READ, NOTIFY | Motor 1 RPM |
| motor_2_RPM | d7bc8ea0-... | READ, NOTIFY | Motor 2 RPM |
| ball_spin | 775c47cf-... | READ, WRITE_NR, NOTIFY | Ball spin enabled ("1") or disabled ("0") |
All the values can be found in the code as well.
