Assignment: DC Motor: Actuation Assignment 1
Collaborators:
Description
I wanted to make something active and interesting using the motor. I decided to try to actuate a cheap spider ring. I tried using cork, using rubber bands, using posterboard, but nothing worked quite right. The problem was that the motor did not have sufficient torque, so by the time I cranked it up high enough to overcome rotational inertia and get the spiders moving, they would end up spinning wildly then getting tangled up in the motor.
In the end, I realized that my best option was not to use the full rotational functionality of the motor, but to allow partial rotation and gravity to counteract each other and provide a sort of jerky motion to the system. In order to do this, I needed a relatively large inertial problem for the motor and the proper code. I settled on a piece of cork (to transfer most of the rotational force of the motor) attached to a coffee stirrer, that acted as the rail on which I hung my spiders. After that, it was just a matter of finding the proper amount of motor output to use and the delays to incorporate.
Components Used
Images and Video
DC Motor connection (software controls actuation, so there is no input device)
An overview of the setup
A closeup of the motor setup.
Spider-ring puppet show - DC Motor in action
A video of the system in action.
Arduino Code
/*
* Make a DC motor sporadically rotate an object
* with non-trivial rotation inertia. Designed
* for an array of plastic spiders hanging from
* string for Lab assignment 6.
*
* Seth Horrigan
*/
int motorPin = 9; // select the pin for the Motor
void setup() {
Serial.begin(9600);
}
void loop() {
//Write between 75 and 125 to DC Motor
analogWrite(motorPin, 100);
//Turn the motor on for 100-250 ms
delay(150 + random(200));
analogWrite(motorPin, 0);
//Turn the motor off for 100-2600 ms
delay(100 + random(2500));
}