Thingiverse
Rock tumbler with timer by Spretrep
by Thingiverse
Last crawled date: 3 years ago
Rock tumbler with timer
I was thinking of printing JT3D's Affordable rock tumbler but wanted a little more control so I decided to build one based on an Arduino.
The main thing is the stepper motor and using it's rpm and steps/revolution to get an approximation for how long it will run.
Assembly
You should be able to put it together by just looking at the pictures. One thing I decided to do is put bearings in the right side wheels and let them move freely. The drive side is fixed and the bearings sit in the frame.
There's a replacement stl included for the right side of the frame if you decide to go that way.
Barrel insert
The insert for the barrel is 153mm wide. I bought some anti-slip mat that I hot glued to the inside and then just put some glue on the edges and forced it in. I use a bunch of nails and rivets as my polishing media.
Arduino wiring
I used an arduino uno and a perma-proto board to mount the electronics on.
My power adapter is 9V 2A so there's a voltage regulator between the power cord and motor to get it down to 4.83V.
I couldn't find the correct representations for the components so you'll have to check each part for how to connect them.
Code
#include
#include
#include
const int potPin = A0;
Button startButton(3);
const int steps = 200;
const int rpm = 80;
Stepper stepper(steps, 4, 5, 6, 7);
U8GLIB_SSD1306_64X48 oled(U8G_I2C_OPT_NONE);
enum status { stopped, started};
status tumblerStatus;
long stepsLeft;
void setup() {
stepper.setSpeed(rpm);
startButton.begin();
tumblerStatus = stopped;
stepsLeft = 0;
}
void loop()
{
oled.firstPage();
if (tumblerStatus == stopped) {
do {
drawStartPage();
} while (oled.nextPage());
}
if (startButton.released() || (tumblerStatus == started && stepsLeft > 0)) {
if (tumblerStatus == stopped) {
stepsLeft = getTotalSteps();
}
if (stepsLeft > 0 && tumblerStatus == started) {
// just move a quarter to not block listening for button presses
int stepDistance = steps / 4;
stepper.step(stepDistance);
stepsLeft = stepsLeft - stepDistance;
}
tumblerStatus = started;
}
// Stop if start button is pressed again
if (startButton.released() && tumblerStatus == started) {
stop();
}
}
void stop() {
stepsLeft = 0;
tumblerStatus = stopped;
}
// Convert to total steps for the hours set
unsigned long getTotalSteps() {
unsigned long potValue = getHoursToRun();
unsigned long stepsToRun = potValue * 60 * steps * rpm;
return stepsToRun;
}
long getHoursToRun() {
unsigned long potValue = analogRead(potPin);
unsigned long value = map(potValue, 0, 1023, 1, 24);
return value;
}
void drawStartPage() {
oled.setFont(u8g_font_04b_03);
drawLine("Rock Tumbler", 8);
drawLine("v1.0", 16);
oled.setFont(u8g_font_helvB08);
drawLine("Run for", 28);
char time[5];
sprintf(time, "%dh", getHoursToRun());
oled.setFont(u8g_font_helvB12);
drawLine(time, 44);
}
void drawLine(char text[], int line) {
int x = (oled.getWidth() - oled.getStrWidth(text)) / 2;
oled.drawStr(x, line, text);
}
Hardware
I've put what I used in parenthesis
Arduino + wires (Arduino Uno rev. 3)
64x48 oled (OLED Shield for WeMos D1 mini)
Stepper Motor driver (Adafruit TB6612)
Perma-proto board (Adafruit Perma-Proto Half-sized, 82mm x 55mm)
Voltage regulator (Luxorparts, 4.5-28 V to 0.8-20 V. Based on MP1584)
Power Adapter (9V, 2A)
Button
Potentiometer
Power switch
8mm Threaded rods
8mm Nuts, lock nuts, lock washers
Bearings, 22mm x 7mm M8
O-rings for the wheels
Video
https://youtu.be/vNP2_rVvvXg
I was thinking of printing JT3D's Affordable rock tumbler but wanted a little more control so I decided to build one based on an Arduino.
The main thing is the stepper motor and using it's rpm and steps/revolution to get an approximation for how long it will run.
Assembly
You should be able to put it together by just looking at the pictures. One thing I decided to do is put bearings in the right side wheels and let them move freely. The drive side is fixed and the bearings sit in the frame.
There's a replacement stl included for the right side of the frame if you decide to go that way.
Barrel insert
The insert for the barrel is 153mm wide. I bought some anti-slip mat that I hot glued to the inside and then just put some glue on the edges and forced it in. I use a bunch of nails and rivets as my polishing media.
Arduino wiring
I used an arduino uno and a perma-proto board to mount the electronics on.
My power adapter is 9V 2A so there's a voltage regulator between the power cord and motor to get it down to 4.83V.
I couldn't find the correct representations for the components so you'll have to check each part for how to connect them.
Code
#include
#include
#include
const int potPin = A0;
Button startButton(3);
const int steps = 200;
const int rpm = 80;
Stepper stepper(steps, 4, 5, 6, 7);
U8GLIB_SSD1306_64X48 oled(U8G_I2C_OPT_NONE);
enum status { stopped, started};
status tumblerStatus;
long stepsLeft;
void setup() {
stepper.setSpeed(rpm);
startButton.begin();
tumblerStatus = stopped;
stepsLeft = 0;
}
void loop()
{
oled.firstPage();
if (tumblerStatus == stopped) {
do {
drawStartPage();
} while (oled.nextPage());
}
if (startButton.released() || (tumblerStatus == started && stepsLeft > 0)) {
if (tumblerStatus == stopped) {
stepsLeft = getTotalSteps();
}
if (stepsLeft > 0 && tumblerStatus == started) {
// just move a quarter to not block listening for button presses
int stepDistance = steps / 4;
stepper.step(stepDistance);
stepsLeft = stepsLeft - stepDistance;
}
tumblerStatus = started;
}
// Stop if start button is pressed again
if (startButton.released() && tumblerStatus == started) {
stop();
}
}
void stop() {
stepsLeft = 0;
tumblerStatus = stopped;
}
// Convert to total steps for the hours set
unsigned long getTotalSteps() {
unsigned long potValue = getHoursToRun();
unsigned long stepsToRun = potValue * 60 * steps * rpm;
return stepsToRun;
}
long getHoursToRun() {
unsigned long potValue = analogRead(potPin);
unsigned long value = map(potValue, 0, 1023, 1, 24);
return value;
}
void drawStartPage() {
oled.setFont(u8g_font_04b_03);
drawLine("Rock Tumbler", 8);
drawLine("v1.0", 16);
oled.setFont(u8g_font_helvB08);
drawLine("Run for", 28);
char time[5];
sprintf(time, "%dh", getHoursToRun());
oled.setFont(u8g_font_helvB12);
drawLine(time, 44);
}
void drawLine(char text[], int line) {
int x = (oled.getWidth() - oled.getStrWidth(text)) / 2;
oled.drawStr(x, line, text);
}
Hardware
I've put what I used in parenthesis
Arduino + wires (Arduino Uno rev. 3)
64x48 oled (OLED Shield for WeMos D1 mini)
Stepper Motor driver (Adafruit TB6612)
Perma-proto board (Adafruit Perma-Proto Half-sized, 82mm x 55mm)
Voltage regulator (Luxorparts, 4.5-28 V to 0.8-20 V. Based on MP1584)
Power Adapter (9V, 2A)
Button
Potentiometer
Power switch
8mm Threaded rods
8mm Nuts, lock nuts, lock washers
Bearings, 22mm x 7mm M8
O-rings for the wheels
Video
https://youtu.be/vNP2_rVvvXg
Similar models
thingiverse
free
Automatic fish feeding device by pepperl
...step(3500); //how much
}
if(currentmillis < previousmillis){ //overflow check
previousmillis=currentmillis;
}
}
thingiverse
free
Password keeper digispark by me by Andrusevich
...ter -2]); // pc achrome_1
hold = 1;
single = 0;//
}
}
lastreading = reading;
}
///////////////////////////code end
thingiverse
free
Mini Diffrential IR sensor for Anet A8 by nhnam
...ne z_min_probe_endstop_inverting false
'#define x_probe_offset_from_extruder -28
'#define y_probe_offset_from_extruder 0
thingiverse
free
Const West Bracelet by TheAks999
...const west bracelet by theaks999
thingiverse
const int i = 0; is better than int const i = 0;
thingiverse
free
West Const Bracelet by TheAks999
...west const bracelet by theaks999
thingiverse
const int i = 0; is better than int const i = 0;
thingiverse
free
East Const Bracelet by TheAks999
...east const bracelet by theaks999
thingiverse
int const i = 0; is better than const int i = 0;
thingiverse
free
Egg Turner by djgizmo35
.../ turn it off
previousmillis = currentmillis; // remember the time
digitalwrite(relaypin, high); // update the actual relay
}
}
thingiverse
free
Arduino Robot Avoid Obstacles by Paolo_Buono
...);
delay(4000);
case 4:
serial.println("left 4sec");
servoleft.write(60);
servoright.write(90);
delay(4000);
break;
}
}
thingiverse
free
Arduino Automatic Chicken Coop Door by BasementCreations
.../optional
}
}
if you have any questions
basementcreationsemail@gmail.com
https://cults3d.com/en/users/basementcreations/creations
thingiverse
free
3D printed induction motor controller with arduino by robogio
...write(b, high);
digitalwrite(c, high);
digitalwrite(d, low);
digitalwrite(e, high);
digitalwrite(f, low);
delaymicroseconds(t);
}
Spretrep
thingiverse
free
Magnetic cable holder by Spretrep
...rse
a magnetic cable holder that fits 5x3mm round magnets. the cap is made for a cable that is 3mm in diameter (iphone charger).
thingiverse
free
Stereographic projection light stand by Spretrep
... that the light source is located at the north pole.
i've attached the freecad file so you can modify the diameter if needed.
thingiverse
free
DVD/Blu-ray display stand by Spretrep
...d 14,5mm included for the thicker and thinner cases.
i've also included the freecad file if you need to change any parameters
thingiverse
free
Airbrush spray booth Noctua fan adapter by Spretrep
...n the flat, but the original fan is really loud. this is an adapter to fit a 13mm thinner noctua fan instead of the original one.
thingiverse
free
Omegon SkyFi tripod case by Spretrep
... already there. the clip does need supports though.
hardware
you'll need two m3 nuts and bolts to attach the clip to the case
thingiverse
free
Evolve Carbon GT front fenders by Spretrep
...ile so you can change it to fit yours. i printed them in abs and they do warp a little so you may have to use a raft and/or brim.
thingiverse
free
Celestron 6SE Starsense & finder adapter by Spretrep
...s with the celestron 6se in the shoe you can download an adapter here
you'll need a 3mm nut and bolt to secure the scope shoe
thingiverse
free
Kitty Candy Cannon by Spretrep
...r the cannon hinge)
10 x aa batteries
glue
https://www.youtube.com/watch?v=i9lzmgxk5mehttps://www.youtube.com/watch?v=qlniyxcdkl8
thingiverse
free
Biltema Pegboard Hook EXT
...to short for some of my tools. thanks to spretrep for the original design...
Tumbler
archibase_planet
free
Tumbler
...tumbler
archibase planet
tumbler
tumbler - 3d model (*.gsm+*.3ds) for interior 3d visualization.
3d_ocean
$65
TUMBLER
...tumbler
3docean
3d 3d beautiful car full detailed high poly tumbler
full detailed 3d model of the “tumbler”. ready for render!
turbosquid
$1
Tumbler A
...free 3d model ceramic tumbler a for download as fbx and blend on turbosquid: 3d models for games, architecture, videos. (1193044)
turbosquid
$1
Tumbler
...y free 3d model ceramic tumbler for download as fbx and blend on turbosquid: 3d models for games, architecture, videos. (1192366)
turbosquid
$15
Tumbler A
...free 3d model tumbler a for download as ma, max, obj, and fbx on turbosquid: 3d models for games, architecture, videos. (1298726)
turbosquid
$3
tumbler
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$3
Tumbler
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$1
tumbler
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$1
tumbler
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
archive3d
free
Tumbler 3D Model
...ler 3d model
archive3d
tumbler
tumbler - 3d model (*.gsm+*.3ds) for interior 3d visualization.
Timer
turbosquid
$5
timer
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
free
Timer
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
design_connected
$9
Two Timer
...two timer
designconnected
established & sons two timer computer generated 3d model. designed by industrial facility.
3d_export
free
sand timer
...sand timer
3dexport
turbosquid
$3
Timer Ball
...lty free 3d model timer ball for download as ma, obj, and fbx on turbosquid: 3d models for games, architecture, videos. (1525312)
turbosquid
$15
Bomb with Timer
... model bomb with timer for download as max, obj, c4d, and fbx on turbosquid: 3d models for games, architecture, videos. (1273930)
turbosquid
$59
Timer Bomb
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$15
oven timer
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$9
Kitchen Timer
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$7
Eggs Timer
...odel eggs timer for download as 3ds, obj, fbx, blend, and dae on turbosquid: 3d models for games, architecture, videos. (1455294)
Rock
3d_export
$5
Rock
...rock
3dexport
simple rock.
3d_export
$5
Rock
...rock
3dexport
20 rock
3d_ocean
$5
Rock
...rock
3docean
game ready low poly old stone rock
rock,low poly,
3d_export
$6
Rock
...rock
3dexport
rock 3d model
3d_ocean
$5
Rock
...rock
3docean
game rock low polygon old rock rock stone
2048*2048 texture. 90 polygon low poly. obj,blend,fbx , format
3d_ocean
$2
Rock
...rock
3docean
cliff crag organic rock stone
this is a rock 3d model. it works in horizontal and vertical position, too.
3ddd
$1
rock on
...rock on
3ddd
кресло качалка
кресло valdichenti rock on
3d_export
$5
the rock
...the rock
3dexport
the rock 3d model good quality for animation
design_connected
$27
On The Rocks
...on the rocks
designconnected
edra on the rocks computer generated 3d model. designed by binfaré, francesco.
design_connected
$13
Rock
...rock
designconnected
foscarini rock computer generated 3d model. designed by diesel creative team.