12-27-2012, 10:14 AM | #101 | |
I wanna be Dave Join Date: Nov 2010 Location: 07456 N. NJ USofA
Posts: 8,314
| Re: Shop Holmes Quote:
Partly due to noise, partly burning contacts. We had 5 extruders with anywhere from 2 to 8 temp zones on them. They worked well, were quiet, didn't "bang" the electrical panel everything was mounted to. These were controlled/driven by Barber-Coleman "self tuning" digital temp controllers (IIRC, they were AT-580's??). Last I used them was ~19 years ago, so there may be better stuff today. | |
Sponsored Links | |
12-27-2012, 11:15 AM | #102 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
A mercury contactor would be a good choice for the power stage. The two reasons I chose SSR instead was cost factor and precision. Cost is over twice as much. The make and release time is substantial compared the work time, so the very short duration of "ON" is almost too fast for the MC to function! It could create some issues where the heat has to be tuned to the minimum ON time, and there is less precision with heat control as compared with ON time. The MC is a great choice for capacitive discharge machines though. Hacked out a little code in the arduino compiler format to mimic ladder logic controls on the brazing machine. I will probably rewrite it with more functions to keep the loop simple and ensure the function completes. Right now there is some ambiguity that would cause it to default into the HOME function when travelling between limit switches, but the tool head reciprocates with rotational input so it would naturally hit Hlimit or Llimit. I don't like relying on the reciprocal motion to define machine state though. For those that like to read code, feel free to comment. I still need to store the footpedal input into a variable so there is no problems with holding down too long or too short. I want to build the program synchronous so it has very specific behavior depending on the states of input. It has been about four years since I built any logic so my brain is rusty on the little tricks. Code: int footswitchPin = 1; // footswitch connected to digital pin 1 int HlimitPin = 2; // high limit switch NO connected to pin 2 int LlimitPin = 3; // low limit switch NO connected to pin 3 int motorPin = 4; // motor control output connected to pin 4 int powerPin = 5; // transformer control output connected to pin 5 int resetPin = 6; // reset button connected to pin 6 int motorvar = 0; // variable for storage of motor state //digitalRead shortcuts int footswitch = digitalRead(footswitchPin); int Hlimit = digitalRead(HlimitPin); int Llimit = digitalRead(LlimitPin); int reset = digitalRead(resetPin); int power = digitalRead(powerPin); // set variable functions void setup() { pinMode(footswitchPin, INPUT); // sets footswitchPin as input pinMode(HlimitPin, INPUT); // sets HlimitPin as input pinMode(LlimitPin, INPUT); // sets LlimitPin as input pinMode(resetPin, INPUT); // sets reset as input pinMode(motorPin, OUTPUT); // sets motorPin as output pinMode(powerPin, OUTPUT); // sets powerPin as output } // home position function int home() { if (Hlimit != HIGH) { digitalWrite (motorPin, HIGH); } else { digitalWrite (motorPin, LOW); } } //main loop void loop() { // footswitch OFF if (reset == HIGH) { digitalWrite (powerPin, LOW); delay (250); home(); } if (power == LOW && footswitch == LOW && Llimit == LOW && Hlimit == LOW) { home(); } if (footswitch == LOW && Hlimit == HIGH) { digitalWrite (motorPin, LOW); digitalWrite (powerPin, LOW); } if (footswitch == LOW && Llimit == HIGH) { digitalWrite (powerPin, LOW); digitalWrite (motorPin, LOW); } //footswitch ON if (footswitch == HIGH && Hlimit == HIGH) { digitalWrite (motorPin, HIGH); } if (footswitch == HIGH && Llimit == HIGH) { digitalWrite (powerPin, HIGH); delay (1000); digitalWrite (powerPin, LOW); home(); } } |
12-28-2012, 09:38 AM | #103 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
Coders abound in here Changed it up so there are two functions, and IF statements that call to the functions. There are also IF functions as safety nets to ensure proper outputs at all times. All time delays are just thrown in for placement, nothing has been timed and tested yet. Im still thinking it will kick back into high() mode before routines are finished, so some refinement is needed. Code: int footswitchPin = 1; // footswitch connected to digital pin 1 int HlimitPin = 2; // high limit switch NO connected to pin 2 int LlimitPin = 3; // low limit switch NO connected to pin 3 int motorPin = 4; // motor control output connected to pin 4 int powerPin = 5; // transformer control output connected to pin 5 int resetPin = 6; // reset button connected to pin 6 int motorvar = 0; // variable for storage of motor state //digitalRead shortcuts int footswitch = digitalRead(footswitchPin); int Hlimit = digitalRead(HlimitPin); int Llimit = digitalRead(LlimitPin); int reset = digitalRead(resetPin); int power = digitalRead(powerPin); // set variable functions void setup() { pinMode(footswitchPin, INPUT); // sets footswitchPin as input pinMode(HlimitPin, INPUT); // sets HlimitPin as input pinMode(LlimitPin, INPUT); // sets LlimitPin as input pinMode(resetPin, INPUT); // sets reset as input pinMode(motorPin, OUTPUT); // sets motorPin as output pinMode(powerPin, OUTPUT); // sets powerPin as output } // home position function int high() { if (Hlimit != HIGH) { digitalWrite (motorPin, HIGH); } else { digitalWrite (motorPin, LOW); } } // low position function int low() { if (Llimit != HIGH) { digitalWrite (motorPin, HIGH); } else { digitalWrite (motorPin, LOW); digitalWrite (powerPin, HIGH); delay (250); digitalWrite (powerPin, LOW); delay (100); high (); } } //main loop void loop() { // footswitch OFF if (reset == HIGH) { digitalWrite (powerPin, LOW); delay (250); high(); } if (power == LOW && footswitch == LOW && Llimit == LOW && Hlimit == LOW) { high(); } if (footswitch == LOW && Hlimit == HIGH) { digitalWrite (motorPin, LOW); digitalWrite (powerPin, LOW); } if (footswitch == LOW && Llimit == HIGH) { digitalWrite (powerPin, LOW); digitalWrite (motorPin, LOW); } //footswitch ON if (footswitch == HIGH && Hlimit == HIGH) { low(); } if (footswitch == HIGH && Llimit == HIGH) { low(); } } Last edited by JohnRobHolmes; 12-28-2012 at 09:47 AM. |
12-29-2012, 10:26 PM | #104 | |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
Whacked away at coding a bit more so we can get the machine running tip top ASAP. I should have all machine states covered now, and with while statements it can't get out of the function until a parameter is true. Notice the reset button is thrown into low, high, and powerloop functions to ensure it is always available to jam the machine back into high state. Quote:
Last little bits are to debounce the inputs with software and possibly decouple inputs with opto isolation. I'll either write a debounce routine that stores the input state and counts down 50ms of unchanged state to execute, or make an array and trigger "true" when it sums greater than X. All this late night learning just so I can avoid using PLC boxes | |
12-30-2012, 10:44 AM | #105 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
Since my wife is working this weekend I work too. Hacked out the debouncer code this morning. I didn't want to use the debounce header available for the aruduino compiler, as I didn't understand the concept fully. I also dislike the idea of using delays for debouncing. So I made my own debouncer that waits for MAX number of consistent inputs before changing state of the switch. It is set to three right now, unlikely to be triggered by noise. If I have issues with with electrical interference I will install an RC filter on the switches too. In the future it could be easier to use an array to store the information, I'll look into that down the road. Seems ready to go now, I should have the hardware to complete the project within a few days. I'm considering rebuilding the machine head at the same time, but it may have to wait until a few other projects are done. Code: int footswitchPin = 1; // footswitch connected to digital pin 1 int HlimitPin = 2; // high limit switch NO connected to pin 2 int LlimitPin = 3; // low limit switch NO connected to pin 3 int motorPin = 4; // motor control output connected to pin 4 int powerPin = 5; // transformer control output connected to pin 5 int resetPin = 6; // reset button connected to pin 6 int FS=0; // footswitch debouncing storage integer int HL=0; // Highlimit switch debouncing storage integer int LL=0; // Lowlimit switch debouncing storage integer int RS=0; // Reset switch debouncing storage integer #define MAX 3 // debounce max number bool footswitchD; // footswitch debounced state bool HlimitD; // high limit switch debounced state bool LlimitD; // low limit switch debounced state bool resetD; // reset switch debounced state[/b] //digitalRead shortcuts int footswitch = digitalRead(footswitchD); int Hlimit = digitalRead(HlimitD); int Llimit = digitalRead(LlimitD); int reset = digitalRead(resetD); int power = digitalRead(powerPin); // set variable functions pinMode(footswitchPin, INPUT); // sets footswitchPin as input pinMode(HlimitPin, INPUT); // sets HlimitPin as input pinMode(LlimitPin, INPUT); // sets LlimitPin as input pinMode(resetPin, INPUT); // sets reset as input pinMode(motorPin, OUTPUT); // sets motorPin as output pinMode(powerPin, OUTPUT); // sets powerPin as output //Debounce code if (FS <=0){FS=0;} if (FS >= MAX){FS= MAX;} if (footswitchPin = 0){--FS;} else {++FS;} if (FS=0){digitalWrite (footswitchD,LOW);} if (FS=MAX){digitalWrite (footswitchD, HIGH);} if (HL <=0){HL=0;} if (HL >= MAX){HL= MAX;} if (HlimitPin = 0){--HL;} else {++HL;} if (HL=0){digitalWrite (HlimitD,LOW);} if (HL=MAX){digitalWrite (HlimitD, HIGH);} if (LL <=0){LL=0;} if (LL >= MAX){LL= MAX;} if (footswitchPin = 0){--LL;} else {++LL;} if (LL=0){digitalWrite (LlimitD,LOW);} if (LL=MAX){digitalWrite (LlimitD, HIGH);} if (RS <=0){RS=0;} if (RS >= MAX){RS= MAX;} if (resetPin = 0){--RS;} else {++RS;} if (RS=0){digitalWrite (resetD,LOW);} if (RS=MAX){digitalWrite (resetD, HIGH);} |
12-30-2012, 10:46 AM | #106 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
Side note, this is basically the same language (C++) used to program motor controller ICs. Plenty of code already out there for very fancy motor controllers exist, they would just need some hacking to adapt for our needs. You now know my two year goal ;)
|
06-10-2013, 04:07 PM | #107 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
We have been plugging away at the shop here, took over the next bay in the building and have been setting up as fast as possible. We now have 1000sq feet dedicated to HH, with another 600sq feet of flex space between myself and Voltriders. Right now we are finishing up a new blast cabinet (6x4x4 foot!) and just got some fresh power routed. We have a 50a 110v section and a 50a 220v line with dedicated 20a fuse for the compressor. We made it big enough to blast bike frames, but I built it for motor production. As you can see, I have moved most of my extra bikes into the third bay for short term storage. We had a big water damage problem at my house and I had to clear room while the carpets got ripped out. I'm under 20 bikes now, I swear! Another little project is my adjustable power supply. It runs on 20 to 29v from my main power supply, and we can adjust the output from .1v to 29v via the gold trim knob. It also features a heads up display with amp meter for very precise and quick measurements. I can power my chargers, break in motors, power other power supplies, and have a generally useful tool that is compact and easy to use. Next up, we are building a CNC laser etcher. Already have the parts and have built a hand-held torch. Now I just need to machine the heatsink for the laser emitter. |
06-10-2013, 04:14 PM | #108 |
I wanna be Dave Join Date: Jun 2008 Location: Sin City
Posts: 3,628
| Re: Shop Holmes
Looks like your moving right along.... But I dont think I believe the 20 bikes.... are you counting pieces and unassembled also? |
06-10-2013, 08:25 PM | #109 |
Rock Crawler Join Date: Oct 2012 Location: Casper
Posts: 620
| Re: Shop Holmes
i want my next set of cans laser etched!
|
08-05-2013, 01:02 PM | #110 | |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes Quote:
Got a hitachi miter saw for the shop this weekend and built a baby gate from cedar and deck spindles. Matches the house and was about the same price as buying a crappy pine gate, including labor. I'm typically bad at woodworking, but this was easy so I couldn't screw up! Thinking about trying my hand at woodworking as a hobby when my son is older. | |
08-05-2013, 03:57 PM | #111 |
PapaGriz Yo Join Date: Apr 2004 Location: In the garage building the wife a crawler
Posts: 13,137
| Re: Shop Holmes
Looks good. Much better than I can do with wood. |
08-05-2013, 08:02 PM | #112 |
Rock Crawler Join Date: Oct 2012 Location: Casper
Posts: 620
| Re: Shop Holmes
I know a few people that could use that gate!!
|
08-08-2013, 06:56 AM | #113 |
I wanna be Dave Join Date: Nov 2010 Location: 07456 N. NJ USofA
Posts: 8,314
| Re: Shop Holmes |
08-08-2013, 07:11 AM | #114 |
I wanna be Dave Join Date: May 2007 Location: Fairfield ME
Posts: 3,886
| Re: Shop Holmes
John, have you thought about doing a video on hand winding motors? Every time I'm at radio shack I have the impulse to buy some wire and give it a shot. I have held back so far...
|
08-08-2013, 08:47 AM | #115 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
I use a power winder, so it wouldn't be a ton of help to the average joe. What we could do is show how to build a hand crank winder and go over the parts that make an armature quality. It has taken me a few thousand armatures to really get good at winding, its like any other sport where practice makes perfect. I'm still pushing to start regular videos, just need to finish training another laborer so my media employee can get enough time. The gate will be getting a lower strike plate and hidden metal frame to stiffen it up. As it sits there is flex if pushed hard. The lower strike plate will avoid it bowing into the stairs and the frame will keep it from breaking if my kid decides to run into it. Steel will be used on the strike plate to avoid stress fractures over the years, and aluminum on the frame to keep the gate light and fast swinging. Brock is just rolling around now so there is plenty of time before he is walking. Bonus points on the gate: My dog is one of those "interested" types that gets in the way when I'm working in the basement shop. Hammering a nail? She wants to help! Digging a hole, she joins in and digs! If you all notice, she manages to get into almost every pic I take at home. Whatever I am looking at/ doing/ working on- she has to be right there. Now I can easily keep her upstairs while I finish out the wreck of a home basement that the business caused. It put me 5 years behind in my house! As the biz kept growing I kept moving my music area and home theater around to make space, and ended up with nothing usable as a result. I can get out those power tools without worrying about Gretal sneaking up and getting into trouble, yeee haw! |
10-10-2013, 07:44 PM | #116 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
Big rearrange again. Volt riders went downtown, I took the middle bay for HH, and the third bay had empty space. So we moved in a half pipe for the winter... |
10-11-2013, 08:38 AM | #117 |
I wanna be Dave Join Date: Jun 2008 Location: Sin City
Posts: 3,628
| Re: Shop Holmes
I want a halfpipe in my workshop......
|
10-30-2013, 10:41 PM | #118 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
I never wanted a half pipe in my shop, but it happened and it was the best thing ever! I get to warm up on it in the morning, have a few minutes of pump during lunch, and spend a few minutes on it at the end of the day. I went from no skating skills, to bonking the coping and getting ollies in a few weeks. Biking on it is pretty difficult. I can air out about a foot, but the workout is so taxing that I can only ride 2 or 3 days a week. But all of this is merely for one goal- be in shape when snow skating season hits. Missouri doesn't keep snow, so I must be ready at a moments notice for when the chance comes! It has really gotten me into shape. Honestly, I don't know if I will be able to let it leave in the spring, it is too dang fun and my body is thanking me for being active again |
10-30-2013, 10:44 PM | #119 |
owner, Holmes Hobbies LLC Join Date: Nov 2004 Location: Volt up! Gear down!
Posts: 20,290
| Re: Shop Holmes
Some shots of how the shop is coming back together. Shown are the main work benches and production areas. The bootyfab exhaust works quite well above the soldering station. edit: I seem to have a bike wheel problem, they are sneaking into my shop photos everywhere! Last edited by JohnRobHolmes; 10-30-2013 at 10:47 PM. |
11-01-2013, 08:10 PM | #120 |
RCC Addict Join Date: Jul 2006 Location: Pasadena
Posts: 1,118
| Re: Shop Holmes
Spoke...n like a true madman.
|
Shop Holmes - Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Where to shop???????? | KNIFE | Newbie General | 21 | 08-11-2010 02:08 PM |
Who wants a shop near Kc | blazin396 | Missouri | 6 | 07-23-2010 11:47 AM |
Where to shop | Jigsisme | Losi Mini-Rock Crawler | 10 | 09-03-2009 11:02 AM |
who knows this Shop | ecodriver | Tamiya Clod Buster | 0 | 01-03-2008 12:49 PM |
| |