Skip to content

A random laser pointer for my overly energetic cat. Embedded Rust.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

noahbaculi/random-laser-pointer

Repository files navigation

Random Laser Pointer

Design Requirements

Random laser pointer station. Embedded Rust

  • Laser moves randomly.
  • Configurable x and y area of laser movement.
  • Simple USB-C connector for power and programming.

Hardware

  • 1 x ESP32 C3 SuperMini
  • 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 for power and programming
  • 1 x 3D printed case

ESP32 C3 SuperMini Pinout

Wiring

Wiring Diagram

Development Environment

This project is built in a no_std environment utilizing the esp-hal crate.

cargo install espup
espup install
  • Source environment variables in each shell or in shell profile:
. $HOME/export-esp.sh

Resources

Development Environment

cargo install espup
espup install

Final Product

Future work

  • Add 'programmer' support for an external module with a little screen and joystick that can be plugged into the main station to program key settings:
    • Speed
    • Bounding box
  • Design ergonomic enclosure for programmer
  • Upgrade to bigger, more robust, servos
  • Redesign main enclosure with wall mounting keyholes
  • Take final product image

About

A random laser pointer for my overly energetic cat. Embedded Rust.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages