Close
0%
0%

Light-Painting Robot

A 3 DOF robot capable of light-painting on a plane

Similar projects worth following

This robot arm moves a light bar to create a light painting. It consists of three DOFs. The first DOF is at the base of the robot. The base is comprises a capstan drive, planetary gearbox, and brushless outrunner. The BLDC is controlled via an Odrive S1 and uses the onboard encoder. The second DOF is at the "elbow." It is controlled by a NEMA 17 stepper motor and timing belt pulley. The elbow joint has an absolute encoder on its live axle, but it is limited in its rotation due to the wire routing. The third DOF is the "wrist." This wrist can continuously spin a high-density individually addressable RGB strip. Specifically, it uses a WS21812B LED strip with 144 LEDs/meter. It is also controlled by a NEMA 17 stepper motor and timing belt pulley. The stepper motors are both cooled by small fans, and they are driven using a DM542T driver at 3200 microsteps. This robot is supplied with 24V 18.8A power supply. The Odrive and stepper drivers are run off 24V, the fans are run off 12V, and the rest of the electronics use 5V. This robot uses a Raspberry Pi 4 B+ with 4GB of ram. The arm kinematics are still being refined, but we have successfully drawn a rectangle. The code takes a series of points and smoothly interpolates the arm between the points. We also created a small simulation to test the arm kinematics before running it on the robot. Notably, this project does not use ROS.Finally, we developed software to process images and create a series of points for the arm to plot. These points are grouped as continuous loops and are assigned colors.

  • 1 × Raspberry Pi We used a Raspberry Pi 4 B+
  • 1 × ODrive We used an ODrive S1
  • 2 × Stepper motors We used two NEMA 17s; one had 13Ncm of torque and the other had 70Ncm
  • 1 × 100 KV brushless outrunner
  • 2 × Stepper drivers We used DM542T

View all 12 components

  • Another Base + Electronics Box

    Katie03/30/2025 at 01:16 0 comments

    Electronics Update:

    I designed and printed a new box for the electronics. It was made of two 3d-printed halves, which I plastic-welded together. I then added some Bondo and spray paint to make the box look cohesive. I also added some connectors to easily detach the electronics from the robot arm.

    Base Update:

    I mounted the robot to a 3/4" piece of MDF. I added some 1/2" bolts on the corners to prop the piece up and make room for the mounting screw heads/ends.

  • New base

    Katie03/20/2025 at 05:08 0 comments

    We completely revamped the base. Notably, I added a 3D-printed planetary gearbox to the base motor. This helped provide the base with more torque and overall improved the smoothness of the base DOF. I also designed and printed a scaffolding for the electronics, but we will continue to improve that area. 

  • Adding the Base DOF

    Katie02/26/2025 at 02:19 0 comments

    Hardware Updates:

    - Rewired the robot

    - Added all the encoders

    - Increased density of LEDs in the light bar 

    - Added the base motor; connnected Raspberry Pi to the Odrive

    - Added cooling for the steppers using heatsinks and fans 

    Software Updates:

    - Created a simple simulation to test the kinematics of the arm as it moves to a prescribed set of points

    Current Challenges:

    - We're having difficulty get the arm to move smoothly

  • Clifford the big red dog??

    Carolyn02/01/2025 at 09:15 0 comments

    Trying to get better edge detection by 1) converting the image to grayscale and 2) bumping the contrast before feeding it into the HED model.

    Progress:

  • Initial Log

    Katie02/01/2025 at 01:21 0 comments

    To start creating our robot, we first determined our size, speed, and resolution requirements. Then, we calculated the predicted torque on each joint to decide on our motors and CADed our robot. The robot consists of three main components: the wrist, elbow, and base. The wrist and elbow joints are driven by a NEMA 17 and timing belt pulleys. The base is driven by a BLDC using a capstan drive. After completing the design, we 3D-printed and assembled the mechanical components of the robot. We temporarily wired and programmed the elbow and wrist joints of the robot to create some preliminary photos. 

View all 5 project logs

  • 1
    Order and print stuff

    *We will add all our project .STEP files soon*

  • 2
    Assemble

    Assemble all the pieces as shown in the CAD. You will only need some pliers, screw drivers, and wrenches. The only part that requires cutting are the small threaded rods for the base axle, the elbow axle, and the carbon fiber tubes. We used a hack saw to cut things, but it might be helpful to have a dremel. 

  • 3
    Electronics

    Wire everything up! Don't forget an E-Stop! 

View all 4 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates