Socially Anxious Drawing Machine (SADMachine) // ONGOING BUILD

by basedsquid_ in Circuits > Arduino

210 Views, 0 Favorites, 0 Comments

Socially Anxious Drawing Machine (SADMachine) // ONGOING BUILD

IMG_20221031_131738.jpg

A goofy little build I created for a class. This Instructable will be updated as I continue to expand upon it.

The (hopeful) description:

The SAD Machine reads distance data and uses it to determine the upper and lower bounds of a random number generator. This random number generator determines the angle of the machine's arm, which is suspended above a slowly rotating platform. A hole at the end of the arm allows you to insert tools that will mark up whatever material is placed on the platform.

As of right now, this machine does absolutely nothing except go absolutely hog wild whenever anything gets too close. My plan is to eventually expand it into a drawing machine that works kind of like a record player - a rotating dais powered by a DC motor holds material as the jitter machine makes random scratches on it using a set of interchangeable "drawing" tools attached to a servo arm.

This Instructable is where I'm going to document my slow descent into madness as I eventually get just as anxious as the machine while trying to figure out how to make it work.

// LATEST UPDATE: DEC 5th, 2022 //

Supplies

As of the latest update, this is what the supply list looks like:

HARDWARE //

  • Breadboards x2
  • Arduino UNO x2
  • High torque servo motor
  • HC-SR04 Distance sensor
  • MDF + Plywood // I used a CNC router to cut and mill any material thicker than 1/4", and a laser cutter for all materials 1/4" and thinner.
  • Base: 3/4" x 12" x 24"
  • Platform: 3/4" x 12" x 24"
  • Arm: 1/2" and 1/4" plywood
  • Wire (1/16" thick...I don't know what gauge that is)
  • Wood glue
  • Data cables x2
  • Jumper wires (Female to male, male to male)
  • Lazy susan/ball bearing thing? No clue what these are actually called
  • DC motor
  • 3D printer + PLA filament
  • Servo base: PLA
  • Wheel: PLA+Plasti-Dip spray paint (Seriously, just get a DC motor wheel for this part. Way easier than waiting 5 HOURS for the printed wheel to be usable.)
  • 9V batteries x2 (Or something equivalent) + connectors

SOFTWARE //

  • Arduino IDE
  • Windows 3D Builder (because I cannot for the life of me figure out Blender or Rhino)
  • your 3d slicer of choice. I used Cura
  • Carbide Create and Carbide Motion

The Circuit

20221031_142101.jpg

This circuitry looks horrendous so I'm going to try my best to explain the pinouts.

Distance Sensor:

  • VCC -> 3.3V pin on the Arduino
  • Trig (Output) and Echo (Input) -> Any of the digital (PWM) pins
  • GND -> One of the GND pins on the Arduino

Servo motor:

  • Power (red wire) -> 5V pin
  • Ground (typically black or brown) -> The other GND pin on the Arduino
  • Signal (yellow or orange) -> One of the PWM pins

This can be done without a breadboard to make it less confusing - I used a breadboard to allow more freedom of movement for the distance sensor so that I could test it.

The Arm

20221031_135900.jpg
20221031_135851.jpg
image_2022-10-31_141850775.png

Creating Jitter

rng.png

Distance Activation

image_2022-10-31_141426264.png

Turning Distance Into Jitter

Screenshot_20221121_013650.png

Here I used Desmos Graphing Calculator and a whole lot of guesswork to create a function to determine the amount of jitter based on distance readings. The arm rotates between 0 and 270 degrees, and the smaller the distance reading gets, the greater the upper and lower bounds of the random number generators. The function works nicely on the foamcore model I made, so it's time to scale up.

The Spinning Platform

image_2022-12-05_095825477.png

To make the platform spin, I wrote a really simple piece of code to control the speed of the DC motor.

I SCALED UP TOO HARD

image_2022-11-21_133839020.png
Screenshot_20221121_013737.png
Screenshot_20221121_013758.png

I wanted to make the Jitter Machine large enough to eventually draw larger marks on material.

The parts I ended up using:

  • High torque servo motor off of Amazon
  • CNC milled 11" diameter plate and base for the rotating platform - 3/4" MDF
  • CNC milled arm for the servo motor
  • 3D printed base for the arm. I ended up drilling a 1/4" hole in one side to allow the wires connected to the servo to pass through.
  • DC motor and L239D chip

Though all the parts worked in the small scale model, I ran into a problem pretty quickly: The plate was so heavy it prevented the DC motor from rotating.

11.21.22 // NEVER MIND: Scale Smarter, Not Harder

image_2022-12-05_100053318.png

After some feedback from my classmates, I acquired some more parts and changed the layout of the machine: the platform is now connected to a lazy susan/ball bearing platform thing, and the DC motor now spins the platform from the side instead of being attached in the center using a small wheel that spins against the side of the top plate. I made a small wheel in 3D Builder out of a torus and two cylinders, printed it in PLA and gave it a few coats of Plasti-Dip. The hole in the center was too small, so I used a 1/16" drill bit to widen it. The shaft of the DC motor is just under 1/16" thick, so the wheel fit snugly and was light enough to allow the motor to spin.

You F@#ked Up a Perfectly Good Drawing Machine Is What You Did. Look at It, It's Got Anxiety

One of my friends also suggested adding an upper limit to the jitter function - when the machine cannot detect objects within a certain range, it enters Maximum Jitter Mode. There's not really any purpose here except to add relatability to the machine - it gets anxious when people or objects are too close, but it'll also get anxious when no one's around.

12.05.22 // Putting It All Together

Screenshot_20221205_094410.png

I milled out a platform to hold the whole thing together when it runs. The large pocket cut in the center allows the platform to slide in and out under the arm so that materials can be exchanged. The smaller pocket was supposed to hold the base of the arm, but ended up being unnecessary.