These archived design requirements are from v1 using an ESP32 microcontroller before I acquired ESP32-C3 microcontrollers.
- The laser should move in a random pattern. Might be harder in a
no_stdenvironment. - The laser pattern should be configurable in scale and position. Potentiometers?
- The laser will be controlled with 2 servos via PWM signals.
I have several Arduino Nano (AVR) and ESP32 boards on hand so those are the top contenders for this project:
| Feature | Arduino Nano | ESP32 |
|---|---|---|
| Rust Development Experience | x | ? |
no_std and std Environments |
x | ✓ |
| PWM Control Pins | 6 | 16 |
| Analog Input Pins | 6 | 15 |
| Size | Smaller | Medium |
I will move forward with the ESP32-WROOM-32 (Xtensa architecture) boards that I have. This will allow me to evaluate the ESP32 Rust development experience with the option of a hosted std environment should it be necessary.
| Detail | Value |
|---|---|
| Microcontroller Target | ESP32 |
| Architecture | Xtensa |
| Chip | ESP32-D0WDQ6 |
- 1 x ESP32-WROOM-32 (Xtensa architecture)
- 1 x 3.3V Laser diode
- 2 x SG90 servo motor to position the laser
- 2 x 10kΩ potentiometer to control the servo X and Y range
- 1 x Latching button to preview the laser area
- 1 x Toggle switch to control power
- 1 x USB-C Female connector to connect power
- 1 x 3D printed case
