Introduction: Proximity Activated Kinetic Sculpture
This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com)
Hi, I'd like to give you a little information about what's exactly going on in the attached picture. This is a fully 3-D printed Kinetic Sculpture with 1 Degree of Freedom that I sketched on Solid Works for the MAKE COURSE , a class I attended this past semester [ Fall 2015 ] as a Technical Elective which aims to showcase the versatility of Open-Source Hardware Projects like that of the Arduino micro-controller.I utilized an Arguino-Mega 2560 micro-controller to make this an interactive sculpture that grabs the attention of those around it by sparking their curiosity with its movement. A Ultrasonic Proximity Sensor is placed along the front side of this piece. Through the use of running data averages and conditional statements in the programming of the control system, the Arduino Micro-controller actives a Stepper Motor whenever a viewer gets within a specified distance [cm] from the sensor with great precision and accurary. The resulting motion is that of two concentric, rotating rings within the outer stationary ring. A total of ten spur gears are used to transmit the force required to rotate these rings.
The movement of this piece is similar to that of a Gyroscope or an Armillary Sphere, but please note that both of those objects serve a different purpose and work on different principles.
Step 1: Required Materials
---------> Parts <-------
A zipped file is attached with the appropriate STL files. These are the files used to 3D-Print the parts you need.
You will find the part files distributed within appropriate assembly folders.
---------> Control System Components <-------
- Arduino (Uno or Mega2560)
- Motor Shield
- Nema 17 Stepper Motor w/ 5mm shaft
- Metal Wheel Gear 5mm Shaft Coupler (14 Teeth)
- Ultrasonic Proximity Sensor
- External Power Supply
- (7-12) Volts
- 2 Amps
---------> Assembly <------------
- Brass Tap Inserts
- Suggestion: http://www.mcmaster.com/#93365a130/=10685eh
- Machine Screws with matching threads
- Suggestion: # 6 - 32 from Home Depot , Lowes or even Ace Hardware
- Soldering Iron ( For the Brass Tap Inserts )
- Tap Drill of maching thread ( suggestion #6-32)
- Typical Flathead Screwdriver
Attachments
Step 2: Placing the Brass Tap Inserts
Brass Tap Inserts are a tremendous help when it comes to joining two or more separate pieces of plastic together. By using a Soldering Iron, and the Brass Insert can be heated and then slowly pushed up against a clearance hole on the 3-D printed pin. Plastic has a lower melting temperature than Brass and as a result, the plastic will begin to soften, allowing for the insert of the Brass Tap. Make sure than the Tap is placed concentric to the clearance hole, and is facing flat onto the surface of the pin. Remove the Soldering iron as soon as the Brass Tap is inserted, once the plastic cools down it will harden and form a very strong union with the exterior threads of the Brass Tap.
Note: In the event that deformed plastic enters the internal threads of the Brass Tap while its being inserted, it will obstruct the threading. A Tap Drill of the same thread classification (#6-32), can be used to remove this excess material.
Each of the components printed out have clearance holes that allow for the placement of these Brass Taps to be Inserted. Refer back to the photo of all the laid out parts to see how many inserts go into each part and where they are placed.
Step 3: Gear Assemblies
There will be 6 Pin-To-Gear Assemblies.
The attached video shows where the Brass Tap inserts should be placed. It also depicts the order in which the spacers and gears should be placed onto the pins.
There will be 2 Output Shafts and Gears with Hubs Assemblies.
The attached video shows where the Brass Tap inserts should be placed. It also depicts the order in which the spacers and gears should be placed onto the shafts.
Note: The spacer, which is the last component that is added to the Shaft assembly should be placed BETWEEN rings.
Step 4: Stationary Ring, Gear and Base Assembly
The attached videos demonstrate how to assemble the base and the outer stationary ring together. Please watch them as you need to assist with the following instructions:
The "base" is regarded as the lid for the box. This piece has a total of 5 holes that align to holes on the outer ring, this is the largest of the three rings. This ring is designed to be part of the frame, it will be joined by 5 machine screws in order to maintain the sculpture.
Begin by aligning the holes of the base with that of the outer ring. Once aligned, two 1.125'' #6-32 Machine Screws can be placed through the horizontal holes where the brass tap inserts are installed in the base and out the Outer Stationary Ring. From this point, three additional 0.5'' #6-32 Machine Screws can be placed directly downward into the ring and through the base.
The stationary gear is distinguished by a custom hub that has two additional sockets and small inner diameter. There is a shaft that can be placed at the top of the Base and through the Outer ring and into the Stationary Gear. By simply running the Stationary gear through this shaft and aligning the sockets to match both 1.125'' #6-32 Machine Screws, the gear will be set in place and only a small spacer is needed to be inserted behind the gear.
Step 5: Assembly of Sculpture
Please refer to the above photos to help you with the following instructions:
Recommendation: The use of lubricant like WD-40 is crucial to the success in removing friction between parts.
Beginning with the outer stationary ring, two pin-gear assemblies can be installed as depicted by the second picture.This is simply done by placing the pin into the sockets of the outer ring and then running a 0.375" or 0.5" #6-32 Machine Screw through the clearance hole and into the threads of the brass tap insert. Make sure to adjust the hold, if you screw too tightly, it will limit how freely the gear can rotate about the pin. Leave the installation of the third pin-gear assembly that is closest to the base for last. It will simplify the process later on.
The same process can be utilized for the smaller gear-pin-assemblies found on the Secondary Ring.
Please note that there is a spacer used for the first output shaft that is placed onto the Secondary Ring. In order to successfully install this, the Ring must be placed inside of the Stationary Ring, supported by the shaft of the Stationary Gear and THEN the spacer can be aligned with the hole from which the Output Shaft runs from the Stationary Ring into that of the Secondary Ring. This spacer ensures that the Secondary Ring is concentric to that Stationary Ring and that the Output Shaft of the Stationary Ring doesn't slide out of alignment.
The same process can be utilized for the smaller output-shaft-gear assembly found on the Secondary Ring.
---------------> Motor Installation<------------
The Geared Shaft Coupler should come with a small screw that can be installed utilizing a small hex key. Place the Coupler on the top of the motor shaft and tighten it until the couple is fixed and supported to the motor shaft. Now, in order to install the motor to the base, you'll have to run the shaft through the allocated cutout on the bottom of the base. At this point, the majority of the sculpture is assembled so handling may be difficult; however, once the motor is through, you can slide the 3-D printed gear with the couple cut-out into alignment and press-fit it into the shaft's coupler. Hold the motor pressed against the bottom side of the Base and then install 4 M3 screws through and into the Motor's threaded holes to secure the motor into place while it runs.
Step 6: Arduino Code
#define echoPin 6 // This is the echo pin
#define triggerPin 7 // This is the trigger pin
#include
int RPM=120; // Establishes the Revolutions - Per - Minute of Motor
int Detection=15; // Defines the distance at which the motor will activate
int stride=50; // Sets the number of steps the Stepper Motor will take
const int stepsPerRevolution = 200; // The number of steps required for the motor's shaft to make a full revolution.
int i=0; //index to populate the Data Array
int j=1; //index for shifting of data values and calculating running average
int dataset=10; // Length of running data array
int limit =(dataset-1); //offset for indexing
int Full=0; // Used to establish processing modes.
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 11, 12, 13); // Instance of Stepper Class
int DataCollection[10]={0,0,0,0,0,0,0,0,0,0}; // Empty Data Array where values will be collected
void setup() {
// MOTOR
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
// PROXIMITY SENSOR
Serial.begin(115200);//start serial communication
pinMode(echoPin, INPUT);
pinMode(triggerPin, OUTPUT);
}
void loop() {
//PROXIMITY SENSOR
digitalWrite(triggerPin, HIGH); // make a 10usec pulse
delayMicroseconds(10); // DO NOT CHANGE THIS, key to maintain rate at which data is collected
digitalWrite(triggerPin, LOW);
int distance = pulseIn(echoPin,HIGH); // Data collection
distance= abs(distance/58); // Frequency converted to units of distance [cm]
if (Full==1){ // Data Processing once Data Array is filled with Data points
DataCollection[0]=distance; // New Data Value is placed on the first cell of array
int Save=DataCollection[0]; // Variable Place-Holder of new Data Value
for (j=1;j
int Hold = DataCollection[j];
DataCollection[j]=Save; // Variable Place-Holder of previous Data Value
Save=Hold; // Transfer of Value between Place-Holder Variables
}
int Sum=0; // Variable for Computing Data Array Average
for (j=0;j<=limit;j++){ // For Loop for Creating Sum of Data Values
Sum=Sum+DataCollection[j];
}
int Average=Sum/dataset; // Calculates Average of current Data Array
Serial.print("The average distance is : "); //Displays readings
Serial.print((Average),DEC);// send the measurement to the serial monitor //Displays readings
Serial.println(" cm");
if ( Average <= Detection){
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
myStepper.setSpeed(RPM);
myStepper.step(stride);
} else if(Average > Detection){
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
}
if (Full==0){
DataCollection[i]=distance;
i++;
if(i==dataset){
Full=1;
}
}
}
Step 7: Painting ( Optional )
If you have successfully followed this instructable this far, your control system should be functional and all parts should be assembled with adequate clearances. All that I have left to present is that which I chose to do with my original model. The concept behind this sculpture which really caught my attention was that of duality (think Ying and Yang). As mentioned earlier, this is a 1 Degree of Freedom Mechanism. This means that there is one input force and one output motion. A great deal of time and consideration was allocated to designing geometries that would allow for the transmission of torque throughout the sculpture, clearances to facilitate movement where needed and the placement of mechanical joints to maintain stability despite the rotation of the internal rings. Where the duality is made is with the use of "Action Painting", a technique made popular by Jackson Pollock in the 1930's. This technique highlights is the use of a canvas, or object as a means of inciting the imagination of the viewer. What I mean by this is that although you may not be able to look at an Action Painting and derive any figures or structure from it, you can imagine the movement required to make each one of those lines, curves and splotches . That's what the art is,the motion. The paint itself serves as a fossil or a ticket stub that you keep from when you go see one of your favorite musicians or films.
All that you need is a variety of different paint colors (acrylic works just fine). You can lay down a large sheet of paper onto the floor. A Bottle of water if you want to dilute the paint a little, some sticks or dry brushes and even a couple of helping hands from your friend or family. I had my sister, my cousin and a friend come help splatter paint on mine and it was a fun experience to be able to share.
Note: Any paint that gets on the floor (if its tile), you can easily remove with water and a towel.
Thank you for your time and let me know if you have any questions!