Arduino Forum

Using Arduino => Project Guidance => Topic started by: Dave_Burrows on Feb 05, 2013, 01:36 am

Title: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 05, 2013, 01:36 am
I'm working on a prototype for a machine that splits the plies of commercial yarns. These yarns are reclaimed from hand-me-down, and thrift shop sweaters. A model of this machine can be seen here http://www.youtube.com/watch?v=AKRCNBwv4Pk (http://www.youtube.com/watch?v=AKRCNBwv4Pk), but I've made a fairly important change since the video was made. See this (http://www.meadowcroft-dyeworks.com/sliding.jpg) image.

The rod and sliding "hooks" replaced the screw eyes so as to distribute the yarn more evenly on the drum. When the yarn is even distributed, the operation works smoothly, and it didn't work well with the stationary screw eyes. At this point, I've decided that I want that distribution to happen automatically. The sliding hooks work as I hoped except they're a bit fiddly.

I am a newborn to both electronics, and Arduino. My question revolves around a joint mechanical / Arduino approach. I could use a little 12v. DC motor, and a reducing worm gear to turn a threaded rod on which these sliding hooks could ride. Alternatively, the worm gear might operate a rack directly under the rod, and the rack could be fixed to the sliding hooks. I would need for the Arduino program to reverse the rotation of the motor at specific intervals. Sometimes, 2 hooks will be used, so the motor controller would need to turn in one direction for a longer time than if 3 or 4 hooks would be used. What kind of sensor might make sense to help me accomplish that? Is this something I could accomplish, or would I be wiser to pay someone to do the eagle PCB layout, and Arduino programming?

If I've hastened through a point that needs clarification, please feel free to ask. I'll try to find a way to make it clearer.

Peace,

Dave
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 05, 2013, 03:18 am
It's very unclear how this works from the 3D animation. Where are the hooks you are talking about? If the movement itself is basically repetative, I would stick to mechanical means and just use an oscillating mechanism to move the hooks.

Or am I not understanding? Again, the most important bit is how the hooks work and I don't see any hooks in the video.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 05, 2013, 04:13 am
Right. Very sorry about the confusion. The vid was "pre-hook"...there were no hooks yet when that was made.

Quote
I've made a fairly important change since the video was made. See this (image) The rod and sliding "hooks" replaced the screw eyes so as to distribute the yarn more evenly on the drum.


On most spinning wheels, there is a gadget called a flyer. The flyer has two arms, one on either side of the bobbin. Traditionally, these arms have had screw hooks, or cup hooks fairly close together. Without the hooks, the newly spun yarn would pile up in one place, rather than evenly distributed throughout the whole of the bobbin. In the last 5 years or so, small, modified spring-like devices called sliding hooks began replacing the traditional hooks because they are faster, and distribute the yarn more evenly on the bobbin.

In the image, you'll see a metal rod with 4 of these sliding hooks attached. Neither the rod, nor the sliding hooks were in the vid. They replace the row of static screw eyes, and that's a marked improvement. However, every time I need to stop to slide the hooks, I'm not cranking. The cranking mechanism needs to remain a manual operation because one's hand can feel when something needs immediate attention.

In the video, for example, there is a yarn ball hanging from an inverted U at the top of which is a sealed bearing which allows it to rotate easily so as to keep the plied yarn's twist from accumulating. The yarn travels from there to a screw eye, and then is split into it's 4 plies by the other 4 screw eyes. From there, it is wound around the drum. Plies were breaking with this method, however, because the yarn didn't wind evenly around the drum. In some places, it was thicker than others, and where it was thicker, more yarn was needed to wrap around the total circumferance at each revolution of the drum. Sooner rather than later, that ply would break. That doesn't happen with the sliding hooks.

Yes; I have thought about a number of different mechanical mechanisms to move those sliding hooks back and forth. Little levers from model railroading which are used to switch tracks could also be used to switch the rotation of the motor. Place one at each end of the rod, and you have an endless looping of rotational changes of the motor. I haven't considered an oscillating mechanism, but it sounds intriguing. I'd like to hear more of your thinking with that.

There's something I find very satisfying, and rewarding about simple, basic mechanical devices. Cars, and household appliances like sewing machines worked beautifully before printed circuit boards. Quite a number of them are still in service. Jane & John Homeowner didn't need a degree in electrical engineering to service them, either. That said, I'm looking for practical applications to learn Arduino, and about electronics in general. This contraption seems like one of those practical applications.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: liuzengqiang on Feb 05, 2013, 04:15 am
If you can do the mechanics, the electrical part is easy enough. You use a DC motor driver shield so you can forward and reverse the rotation. Maybe have a home micro switch so the rotation won't drift (say left rotation always gets a bit more than right rotation and that difference adds up.) Totally doable once you are done building the mechanical parts.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 05, 2013, 04:39 am
When you say sliding hooks, you mean from side to side or they slide around the axle? Do they need to do this independently of each other? What exactly is the determination of when they need to slide and how much (the tension?)

I'm sure you understand exactly how this works, but to someone unfamiliar with the process you are going to have to explain it like you are talking to a toddler. lol

Once we understand what exactly you are attempting, we can help. I need to know 3 main things:

1. What determines when a hook needs to slide, and what do they do when the determination is made?
2. Are the hooks expected to move independently of each other?
3. Are we sliding side to side along the shaft or rotating around the shaft?
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: PeterH on Feb 05, 2013, 04:41 am
Depending on the scale of this device, you might well find that you can simply rip the drive mechanism and motor out of an inkjet printer and use it as-is, using an Arduino to replace the part of the printer that controlled it.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 05, 2013, 04:57 am
Quote
1. What determines when a hook needs to slide, and what do they do when the determination is made?
2. Are the hooks expected to move independently of each other?
3. Are we sliding side to side along the shaft or rotating around the shaft?


1. Ideally, they would slide very slowly but continually back and forth as the crank is turned. "As the crank is turned" suggests a purely mechanical device might be better suited. I mean, I might need to answer the phone, pour more coffee, take a leak, and forget to turn off that motor. When I move them manually, it's in response to certain visual cues; the yarn is getting deep in a particular slice of the drum, and the "V" shape of the split yarn starts to move towards the place where it's mounding more deeply.

2. As it is right now, yes, they move independently. Whether they are moved by purely mechanical means, or with the assistance of electronics, they would slide back and forth in unison. I anticipate a nearly perfect distribution of the yarn around the drum, and zero breakage.

3. They slide side to side.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 05, 2013, 05:05 am
Quote
rip the drive mechanism and motor out of an inkjet printer and use it as-is, using an Arduino to replace the part of the printer that controlled it.


I like that idea; thanks. I've also considered using the worm gear from a mechanical sewing machine, and also checking out the mechanism from a typewriter, either of the sort in which the entire carriage moves, or the sort in which the type head moves back and forth. The question I have about the typewriters is that they are designed to operate in one direction, from left to right. That's solved with the printer, though, since it operates in both directions, and I think I still have one around here somewhere.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 05, 2013, 05:43 am

Quote
1. What determines when a hook needs to slide, and what do they do when the determination is made?
2. Are the hooks expected to move independently of each other?
3. Are we sliding side to side along the shaft or rotating around the shaft?


1. Ideally, they would slide very slowly but continually back and forth as the crank is turned. "As the crank is turned" suggests a purely mechanical device might be better suited. I mean, I might need to answer the phone, pour more coffee, take a leak, and forget to turn off that motor. When I move them manually, it's in response to certain visual cues; the yarn is getting deep in a particular slice of the drum, and the "V" shape of the split yarn starts to move towards the place where it's mounding more deeply.

2. As it is right now, yes, they move independently. Whether they are moved by purely mechanical means, or with the assistance of electronics, they would slide back and forth in unison. I anticipate a nearly perfect distribution of the yarn around the drum, and zero breakage.

3. They slide side to side.


Ahhh! Now I understand. You want them to slide back and forth so that the yarn does not all accumulate in one spot on the spool. Duh! I should have realized that. Like a wire spooler or coil-winding machine.

Essentially, you want them to direct the yarn from one edge to the other creating a uniform layer. Actually, this makes mechanical means even more relevant. As you change the speed of the drum, you want to also increase the speed of the side to side movement. However, this will be in a ratio.

For every revolution of the drum, you want the yarn to move over one yarn width. When it reaches the end, you want it to do the same, but in reverse. This will distribute the yarn uniformly along the spool/drum. If the speed of the slides do not match the speed of the rotating spool, it will not distribute evenly. So you want these to work in unison.

So you need to determine the number of revolutions it takes to spool the yarn across one entire length. Controlling the tension will thin the yarn fibers out to make them a universal width. You want there to be tension so the yarn does not slip side to side and so it will be a constant width. A coil-winder uses a solenoid to provide this tension by rotating the axle that the eyelets are on. Too much tension, and it will break of course.

Once you determine how many revolutions it takes to spool an entire layer, you count the number of spirals. This will determine your gearing ratio.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 05, 2013, 05:46 am
But then, as the spool gets thicker, it will take more revolutions to wind the yarn, correct?
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 05, 2013, 06:37 am
Yes, you do have it now. Sorry it took so long to explain it coherently. There are several variables, and you named one of them; that as the yarn gets thicker on the drum, it takes more yarn to make a single revolution around the drum. However, unless the thickness of the yarn increases or decreases, precisely the same number of revolutions will be required to move from point A to point B on layer 1 as it will take to move from point B to point A on layer 8.

Another variable is the thickness of a single ply.  In GB, AU, NZ, and most if not all of Europe for that matter, ply has a specific meaning. So, the yarn we call "baby yarn", or "sock yarn" here in the states, is called "4 ply" in much of the rest of the world. We call it "worsted weight", most everyone else calls it "8 ply". Same word, same topic, but very different meaning. To further complicate things, there is no exacting standard. One mill might produce a worsted weight yarn that another mill down river a mile calls DK weight.

Folks in the US have invented a new wheel. It's called wraps per inch, or WPI. Ostensibly, it dares to set a standard. By wrapping a yarn around a ruler, and counting the wraps between any two inch marks, worshipers of the WPI standard can tell you in no uncertain terms what the weight of a yarn is.  Unless they're pissed, wrap a little more tightly than usual, and cram an extra couple of wraps in there, or unless the individual who did the wraps was your demure gramma who wraps considerably more loosely than the average fiber artist because she knows not to ever wind yarn too tightly lest you stretch the life out of it.

Because precision on that level is impossible, I wouldn't mind if there was a half a yarn width gap between revolutions, or if there were an overlap of half a yarn width or more. Consistency is the goal, and it's also a very good reason to mechanize that aspect. You hit on a very important point when you said,

Quote
As you change the speed of the drum, you want to also increase the speed of the side to side movement.


Exactly right. And since the crank that turns the drum needs to be done by hand to respond immediately when something is amiss, creating an electronic component may possibly be counter productive. I wish it were as simple as adding 2 more pulleys and a belt connected to the existing power train, but I don't think it is because of the direction change that is required.

Anyway, thanks; good thinking!
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 05, 2013, 01:33 pm
Bah! Direction change is no big deal. Ever look inside an old cassette deck or VCR? The motor always moves in just one direction for forward and reverse. You simply pop a gear over based on a clutch. A center driven gear spins in one direction. You connect a gear to the left side and it rotates in one direction, you move that gear away and mesh a gear on the other side and it rotates in the opposite direction. The cam that decides which gear is meshed is just controlled by the ends of the movement (when it reaches an end, it pushes a lever which disengages one gear and meshes the other.) You don't think a car engine actually rotates in the opposite direction when you put it in reverse, do you? ;)
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 05, 2013, 01:42 pm
I will look for a picture if that doesn't make sense. I can't draw worth a crap. But it is incredibly simple.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 06, 2013, 02:30 am
Well, first, I tore apart a laser printer, retained all the screws, PCBs, 2 motors, a bunch of gears, cams, rods, rollers, wires, springs, switches, and bits that moved that I don't know how to name. Next, I re-read these last two posts of yours. I brought the ritual to completion by wiggling my finger in front of my lips while humming softly. "Two more printers to go", I said, and then continued my autistic mannerisms by staring at nearby lights.

Several posts up, you said:

Quote
I'm sure you understand exactly how this works, but to someone unfamiliar with the process you are going to have to explain it like you are talking to a toddler. lol


I get the idea that you know how to do what I want to do, but after numerous Google searches, I'm not finding anything to help me catch up to you. It does make sense, just not enough to jump start the old engine. A photo, or drawing, or diagram would be great.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 06, 2013, 03:14 am
ok. I found a few good resources for this, but none of them make it as simple as you need it to be. So this is my attempt at drawing it:

http://www.flickr.com/photos/78906572@N05/8449613492/ (apparently I don't know how to embed an image)

Bascially, a gear connected to the driving gear will rotate in the opposite direction. So for one direction, you connect the driving gear directly to the output gear. To reverse direction, we move an idler gear in between the driven gear and the output gear. You do this with a simple pivot mechanism that just rotates enough to pop the idler gear in place. This lever is toggled by reaching the end points of your sliding mechanism.

So, by default, your output gear would be driving in the opposite direction of the driven gear. The idler gear makes the output gear travel in the same direction, reversing it.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: PeterH on Feb 06, 2013, 03:41 am
That makes sense for a simple mechanical solution, but given the presence of the microcontroller and quite likely a stepper motor I wouldn't have thought that a reverse gearing mechanism would be required.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 06, 2013, 04:00 am

That makes sense for a simple mechanical solution, but given the presence of the microcontroller and quite likely a stepper motor I wouldn't have thought that a reverse gearing mechanism would be required.


I am describing a purely mechanical solution which ensures that as he turns the spool at a variable speed, the sliding mechanism will stay in sync providing a uniform layer. He already has power from the crank which he mentioned he would leave to manual power anyway. Of course, if he is going to use the microcontroller, the reversing gear wouldn't be needed.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 06, 2013, 04:40 am
Hey, man; thanks for having taken the time to work that out on paper for me. I think I understand the concept, or at least I thought I did. In the gizmo I'm building, there are 2 identical gears each engaged with the other. The output gear turns clockwise which means the driven gear turns counterclockwise. The driven gear is fixed to the large pulley, and via a belt, turns the small pulley. As desired, both pulleys turn counterclockwise.

In your drawing, there is a point that confuses me. Your output gear rotates counterclockwise. As drawn, it is engaged with pulley A which turns clockwise. I'm with you to this point. Then pulley A the driven gear is engaged with pulley B, the idler gear, which appears in your drawing to also be turning clockwise...and visa versa when the lever is toggled, and the idler gear engages directly with the output gear. I guess what I'm unclear about is that before the toggle, both A & B are turning clockwise, and after the toggle, both A & B are still turning clockwise.

That said, I think I found enough in the way of gears, and shafts to attempt to make something work. I'll stick close by so you can help me understand better what confuses me now.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 06, 2013, 05:01 am
I missed the second image at first.  Is it some kind torque gaining, speed reducing doo-dad?

(http://farm9.staticflickr.com/8186/8383695913_fbc4a3f13f_c.jpg)


It looks like the upper larger gear is the driven gear, and the lower two are speed reducers? Or do I have that bass ackwards?
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 06, 2013, 11:15 am
That second picture is another project I am working on, sorry....

Did I mess up my drawing? lol

Idler gear A is always connected to driven gear, but in one direction, it just "idles" off to the side not touching anything. When you want to reverse direction, you pivot the idler gear into connection with the output gear C and the output gear will now rotate in the same direction as the driven gear.

Yep. I did mess up my drawing. The idler gear would would turn in the opposite direction of the driven gear, always. I just drew it wrong.

Here is a tutorial: http://www.societyofrobots.com/mechanics_gears.shtml#rotdirection

But the take away is that for each gear in a chain of gears, each one will move in the opposite direction of the one driving it. By introducing a gear in between the driven gear and output gear, the third one will move in the same direction as the first.

Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 06, 2013, 11:23 am
http://www.youtube.com/watch?v=3aobPgGzB-U

This type of transmission would be perfect, since it would always be in sync and would would not require any sort of lever at all, but it's construction would be more difficult which is why I didn't show it last night. Basically you would have the run in one direction on half the gear and the run in the other direction on the other, inner half. When it reached the end of the spool, it would just reverse the direction on its own.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 06, 2013, 07:31 pm
I've never seen a gear like this one before, and it's an interesting idea. The down side to using it is that, whether I was splitting a 4 ply into (2) x 2 ply yarns, a 6 ply into (3) x 2 ply yarns, or an 8 ply into (4) x 2 ply yarns, the yarns would always occupy the same real estate on the drum. I'd want to spread the yarns over almost all of the drum however many new plies the splitter makes. So, if I were making  (2) x 2 ply yarns, each of the 2 plies would be distributed over almost half of the drum, and so on.

I'm happy to keep posting here; it's a friendly, well informed place. But as I lean away from using any Arduino hardware, or software, I'm wondering if I might be veering off topic too much? I'm guessing that there must be a forum that's better suited for amateur mechanical engineering topics such as this one is becoming.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: jabbado on Feb 06, 2013, 11:29 pm
For a purely mechanical option, couldn't you use something similar to the level-winders on overhead and baitcasting fishing reels? I couldn't find a decent image to show you how it works. But the shaft is cut like this:

http://www.youtube.com/watch?v=v68WRtSdFGc

I'm sure you could use some adjustable (and removable) stops on the shaft to set the end-points for when the hooks need to change direction. And also add/remove them depending how many drums you're filling.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 06, 2013, 11:55 pm
ahh, yes, another great idea. Basically a spiral "screw" that your yarn would follow along with the groove. Pretty much a rotating "slide." I can see it working in one direction, trying to picture how it reverse, though. A double-helix perhaps?

As far as whether this discussion belongs here if you go purely mechanical, I am not sure. I am an old-school engineer that doesn't believe that a microcontroller is always the answer. You will find me suggesting mechanical methods all over, but not because I am anti-micro. I just think people way over-use stuff like the arduino to do things that really don't need it and tend to overcomplicate things.

I try to adhere to the KISS principles. You already have a crank providing driven rotation. You do not intend to motorize that. Adding a motor that needs to be synchronized to that crank requires sensors, limit switches, and other stuff as well as having to build mechanisms anyway....
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 12:00 am
Speaking of screws by the way... your hooks could be connected to bolts that fit on a threaded rod. As you rotate the rod, it will travel the nut up and down the length of the shaft. The mechanism I showed you would still handle the reversing of this threaded rod. To eliminate what they call 'backlash" which in your case would mostly happen when switching directions, the "nut" usually consists of inner ball bearings which roll inside the groves. Your pitch and rotation speed will determine how fast the movement moves up and down your roll. This application would not require a fine pitch.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 07, 2013, 05:45 pm
Hey, Jabbado;

That is a good idea. Like you, I also looked for the fishing reel part image to no avail. My dad had a ratcheting screwdriver when we were kids that operated by way of a shaft with the same, or very similar groves. I'm a sort of old fashioned fisherman. You know; bait the hook, hang a bob on the line, cast it out a little ways, and be vewy, vewy quiet.


Howdy, Retroplayer;

That threaded rod idea is one I've also been contemplating. Using your illustration labels with C being the output gear, A the idler, and B the driven gear, would you use the threaded rod as the axle for A, or B? The "hooks" are currently made from 18 gauge stainless wire, hardened by heating over a gas range, and quenched in water; I'll try 14 ga. or 16 ga. next, but it would be easy enough to add a loop or two to extend below the present rod to a threaded rod.

Your nuts...where might I find those, and by what name? I haven't had any luck with locating them, but they sound perfect. Since I don't want for either the steel rod the steel rod, nor the  threaded rod to move due to the hooks that connect them, I'm thinking of adding a 4th gear to the array. It will be below, and between A & B, and if I go this direction, the threaded rod will be it's axle, as well as the pivot point for A & B.

I haven't worked out yet what to make the trip levers from, nor how throwing the lever will move the bar that connects A & B. One step at a time. I appreciate the exchange of ideas. My thanks to both of you!

Oh, I almost forgot. Your comment about using the high tech approach when a low tech one would do just as well if not better is a wise one. I disassemble old sewing machines, re-plate (nickel) the parts that need it, sandblast the main casting, and repaint that with auto lacquer, reassemble, lube, and adjust tension, needle position, and generally just put things back in order again. I have 18 machines built from the late 50s to the late 70s. These machines are workhorses.

Beginning in the late 70s, the vast majority of machines were computerized. Rather than having exchangeable cams to make different stitch patterns, manufacturers offering dozens or even hundreds of stitches built in, and used electronics to accomplish the movement of the needles, and feed dogs. I haven't spoken to anyone who uses more than a couple of these no matter how many their machine can do. But if a component on a PCB goes, it often affects the whole machine, and it's rare that a user can isolate and repair the problem.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: laadams85 on Feb 07, 2013, 07:01 pm
This guy did what I think you are trying to do with all mechanical parts.
http://lifehacker.com/5962928/diy-bicycle+powered-machine-reclaims-yarn-from-sweaters (http://lifehacker.com/5962928/diy-bicycle+powered-machine-reclaims-yarn-from-sweaters)
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 07, 2013, 09:16 pm
Hey there;

Oh, that guy? His name is Goldberg; Rube was his grandfather.   :smiley-mr-green:  There are a couple of styles of swifts. The umbrella swift opens and closes like an umbrella, and the yarn wraps around the parts that cross. The Amish swift is like a large, wooden plus sign that sits on a table, and has a number of holes drilled part way into all four arms for pegs so as to accommodate varying sized skeins. Yarn can be wound onto or from either of these styles. There is also a weasel . It's a tall, narrow box on 4 short legs, and a wooden gear system inside. Attached to the front of the box is a hub with 6 or 8 spokes radiating from it, and each of these has a fixed dowel attached to the ends at 90 degree angles. One of the spokes has a dowel at about it's midway point, also at a 90 degree angle, and serves as a crank. The weasel is best for winding only, as it isn't adjustable like the other two. However the mechanism inside counts rotations and when some number is reached, "pop goes the weasel".

There are, of course, variations on all of these. The pedal-powered swift is not among them, and is a unique sort of device to be sure. It doesn't appear to be adjustable, occupies a considerable amount of floor space as compared to the other three, and is bound to make all passers by at the county fair's sheep to wool contest smile. With the exception of the steam, any of the other swifts will do the same thing. The in-line steamer is aimed at de-kinking the unraveled sweater yarn, I think. Some folk take a more pedestrian approach when they wash it.

The gadget I'm messing with isn't a swift. It's meant to split a 4 ply yarn into two 2 ply yarns, or four 1 ply yarns. The lady I'm making it for was my high school art teacher a whole bunch of years ago. She has struggled for years with a degenerative form of arthritis, and leaves her wheel chair only for moments at a time. The splitter I'm making is designed to sit between the arms of her chair on her lap. She has spent days hand splitting the yarn from a single sweater. There are at least two large improvements I still want to make, but she's down to about 3 hours now to split the plies of a sweater. I'd like to cut that in half again.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 09:35 pm
Yay! That makes me feel even better about offering help! :) Good on you helping this lady out.

I think I have some questions above to answer...
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 10:00 pm

Howdy, Retroplayer;

That threaded rod idea is one I've also been contemplating. Using your illustration labels with C being the output gear, A the idler, and B the driven gear, would you use the threaded rod as the axle for A, or B? The "hooks" are currently made from 18 gauge stainless wire, hardened by heating over a gas range, and quenched in water; I'll try 14 ga. or 16 ga. next, but it would be easy enough to add a loop or two to extend below the present rod to a threaded rod.

Your nuts...where might I find those, and by what name? I haven't had any luck with locating them, but they sound perfect. Since I don't want for either the steel rod the steel rod, nor the  threaded rod to move due to the hooks that connect them, I'm thinking of adding a 4th gear to the array. It will be below, and between A & B, and if I go this direction, the threaded rod will be it's axle, as well as the pivot point for A & B.

I haven't worked out yet what to make the trip levers from, nor how throwing the lever will move the bar that connects A & B. One step at a time. I appreciate the exchange of ideas. My thanks to both of you!


I assume that you are asking about the "nuts" I am talking about and not trying to comment on my sanity (either is valid)?  Geez... I forget what they are called. Let me look. Ahh... ball screws and ball nuts (that doesn't sound like a safe search at work) : http://www.roton.com/ballscrews-ballnuts-nav.aspx?line=Recirculating


http://cncmentor.com/blog/2011/06/28/ball-nut/ gives you an inside view of a complex one. It wouldn't be too difficult to make a simple one. You just need some way to "capture" the bearrings and they need to be the right size to fit within the threads. The reason this cutaway is using a deflector is because it is using a complete ring of bearrings and it needs a way to pop them into the track as it spirals. With just two or four bearrings offset, you don't need to do that. This isn't a great picture, but it does show what the bearring capture of something simpler would look like. http://www.heli-tek.com/ball-nuts.php

Hope that helps.

Well, let's see... your crank is rotating the spool and we want to synchronize with the spool. So I would tap a feed of the spool axel for the driven gear (you could even reverse my drawing, the important part is that when a gear spins, the gear meshed with it will spin in reverse. So, the only magic is putting a gear in-between to reverse it again.) You would never hook up anything to the idler axel (or it wouldn't be called an idler.) It is always just meshed with the driven gear. In one direction, it just spins freely -- idling, in the other, it meshes with the output gear. You can swap the input and output gear, it doesn't really matter. But I would put the threaded rod on the output gear in my drawing since that is fixed. The other two gears are going to be mounted on a pivoting mechanism. You simply toggle that mechanism up or down to change which gear meshes directly with the output shaft.

To trigger it when it reaches the endstops, I would put something on your nuts that trip the lever. I would run the lever all way along  below the rod. If you do it right, you could even adjust the endstops as desired for the different spool widths you talked about. I am envisioning two wedges that bump each other and create a quick motion... I will have to think on it some and draw something up.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 10:05 pm
BTW, it sounds like you appreciate mechanisms as much as I do. I always observe how machines work and am enchanted especially with automata. I am not a mechanical engineer (an electrical engineer actually), just lots and lots of observation.

I do have a cool book that I can recommend: Mechanisms and Mechanical Devices Sourcebook

Thousands of different mechanisms diagrammed and explained. Maybe I will find some pictures in my copy that will help.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: jabbado on Feb 07, 2013, 10:43 pm
This site is also good for viewing animations of many mechanisms:

http://www.mekanizmalar.com/
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 11:00 pm
Awesome site! And right on the first page is a "traverse roll used in yarn winding machines" lol! And THAT was the helix screw thingy I was talking about before. See how it reverses automatically?
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: jabbado on Feb 07, 2013, 11:06 pm
:)
I was hoping you'd see it.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 11:17 pm

:)
I was hoping you'd see it.


Saved the link to my favorites. Thanks for sharing it! I could picture that mechanism in my head because I have seen it before on coil-widing machines, but couldn't remember how it reversed direction.

The only limitation to it is that the OP mentions variable widths. This could be solved with a square shaft that he can slide on different lengths of these at different points depending on how many piles he is trying to make and how wide.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: jabbado on Feb 07, 2013, 11:43 pm

The only limitation to it is that the OP mentions variable widths. This could be solved with a square shaft that he can slide on different lengths of these at different points depending on how many piles he is trying to make and how wide.


I think it's can be simpler than that. Just have a long shaft with the spirals milled all along it. Then you put "stops" along the shaft where required. Bit hard for me to explain but if the stops are just either side of a "X" part of the spirals it basically turns that location into the end of the shaft and causes the cam follower to reverse at that point.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 11:49 pm
Yep. Great suggestion. I can see that. Stops that clamp on at different points.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: PeterH on Feb 07, 2013, 11:51 pm

I think it's can be simpler than that. Just have a long shaft with the spirals milled all along it. Then you put "stops" along the shaft where required. Bit hard for me to explain but if the stops are just either side of a "X" part of the spirals it basically turns that location into the end of the shaft and causes the cam follower to reverse at that point.


If you have spirals cut in both directions, there will be a cross-over every time they meet. How do you ensure that the follower keeps going across these rather than reversing?
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 07, 2013, 11:57 pm
If I am understanding him right, the stops have the < and > groove to them to redirect the follower into the other track.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: jabbado on Feb 08, 2013, 12:00 am

If I am understanding him right, the stops have the < and > groove to them to redirect the follower into the other track.
Yes.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: PeterH on Feb 08, 2013, 12:33 am

If I am understanding him right, the stops have the < and > groove to them to redirect the follower into the other track.


Yes, but it's not the ends I'm asking about - it's the crossing points in the middle. When the grooves cross what's to stop the follower from changing direction? At the end of the track there's only one option and the follower has to change direction. But at the intermediate crossing points, there are two options and nothing to prevent the follower from taking either of them.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 08, 2013, 12:36 am


If I am understanding him right, the stops have the < and > groove to them to redirect the follower into the other track.


Yes, but it's not the ends I'm asking about - it's the crossing points in the middle. When the grooves cross what's to stop the follower from changing direction? At the end of the track there's only one option and the follower has to change direction. But at the intermediate crossing points, there are two options and nothing to prevent the follower from taking either of them.


oh... the follower is long enough that it touches both sides even at the crossing points so it stays on the track it is on. And the tapers on the end of the follower are designed to allow it to flip angle at the ends. The shape of the follower is actually the most important part of the mechanism.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: PeterH on Feb 08, 2013, 12:51 am

oh... the follower is long enough that it touches both sides even at the crossing points so it stays on the track it is on. And the tapers on the end of the follower are designed to allow it to flip angle at the ends. The shape of the follower is actually the most important part of the mechanism.


I imagine something like that would be required, but I'm struggling to follow how that would enable you to adjust the end points i.e. have a spool that has a crossing point that can optionally be 'blocked off' to make the follower reverse at that point. If the shape of the groove and follower make it possible for the follower to reverse at that point, what prevents it from reversing even when the crossing is not 'blocked off' iyswim? It seems to me that for this to work, the turning points at the ends need to be a different shape to the crossing points in the middle. Maybe there's a devious way round that, but I can't figure it.
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Retroplayer on Feb 08, 2013, 12:58 am
I think I see what you are asking...

Because of the length and shape of the follower, it cannot follow the cross tracks. It requires the leading edge of the follower to bump against an edge to toggle it in the other direction. The end stops provide this edge that bumps it and toggles it. Notice the taper on the edges. They touch nothing at all while following the track until they hit the end points.

Or am I still not understanding your concern?
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: jabbado on Feb 08, 2013, 01:17 am
I just pulled my baitcasting reel apart and the cam follower looks like this (crap pic):

(http://db.tt/28ANaPzv)
Title: Re: Arduino, and Mechanical Movement of Objects - a Newbie Question
Post by: Dave_Burrows on Feb 10, 2013, 12:43 pm
You folks are awesome-fantastic-brilliant-and-generous! Thanks for all these ideas. The one I think is most elegant is also probably the lease accessible to me, that being the rod with spiraling, machined grooves. In addition to finding someone to do the machining at a price I could afford, that one poses another thing to figure out. Splitting even one ball of yarn creates a couple of grams of lint. Lint, and grease don't play well together; they make a sticky mess.

I'm leaning toward some variation of the threaded rod. Parts are cheap, and ubiquitous, If I mess up, or make some revision, I'll still have more to have at it again. The threaded rod  presents the same grease/lint issue, and I haven't resolved that.

I don't know if you noticed, but in the video, there's a dangling gadget that looks like a toilet paper holder holding a ball of yarn, and it's rotating. It rotates to remove some varying amount of twist in the yarn, but I've been stopping to spin it manually every 15 or 20 seconds. There's now a little 12v. DC motor up there. One problem is that I need a 4" or larger pulley above the yarn ball holder, but I'm wondering if there's a way to edit the sketch so that I can adjust it as needed more easily than I can now. It seems to reach maximum RPMs well before the potentiometer reaches it's extreme. That sketch follows.

Code: [Select]
#include <EEPROM.h>

// Maurice Ribble
// 2-4-2010
// http://www.glacialwanderer.com/hobbyrobotics
// Open Source, licensed under a Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by-sa/3.0/)
// Compiled with Arduino Software 0017 (http://arduino.cc)

// This program reads an input potentiometer and uses that value to set a motor controller's direction and speed.

// REVISIONS:
// Initial Version

// Frequency for updating motor
#define UPDATE_HZ   100

// Define digital/analog pins
#define BUTTON_PIN        2
#define MOTOR_ENABLE_PIN  3
#define MOTOR_IN1_PIN     4
#define MOTOR_IN2_PIN     5

#define DIAL_APIN         0

// Positions that different data is stored in eeprom
#define EEPROM_DIAL_LOW  0
#define EEPROM_DIAL_MID  1
#define EEPROM_DIAL_HIGH 2

enum { BUTTON_PRESSED=0, BUTTON_NOT_PRESSED=1 };

// Globals
unsigned long g_dialLow;
unsigned long g_dialMid;
unsigned long g_dialHigh;

void setup()
{
  int button;

  //Serial.begin(9600); // open hw serial for debugging

  pinMode(BUTTON_PIN, INPUT);
  pinMode(MOTOR_ENABLE_PIN, OUTPUT);
  pinMode(MOTOR_IN1_PIN, OUTPUT);
  pinMode(MOTOR_IN2_PIN, OUTPUT);

  // Default values 
  digitalWrite(MOTOR_ENABLE_PIN, LOW);
  digitalWrite(MOTOR_IN1_PIN, LOW);
  digitalWrite(MOTOR_IN2_PIN, LOW);

  button = digitalRead(BUTTON_PIN);

  // If the button is pressed during startup enter a special mode to set the min, max and mid dial readings
  // Should only need to do this once (unless you change the the potentiometer is changed)
  if (button == BUTTON_PRESSED)
  {
    waitTillAllButtonsReleased();                   // debounce
    g_dialLow = analogRead(DIAL_APIN);              // save low speed position
   
    button = digitalRead(BUTTON_PIN);               // wait for button to be pressed again
    while(button == BUTTON_NOT_PRESSED)
    {
       button = digitalRead(BUTTON_PIN);
    }
   
    waitTillAllButtonsReleased();                   // debounce
    g_dialHigh = analogRead(DIAL_APIN);             // save high speed position
   
    button = digitalRead(BUTTON_PIN);               // wait for button to be pressed again
    while(button == BUTTON_NOT_PRESSED)
    {
       button = digitalRead(BUTTON_PIN);
    }
   
    waitTillAllButtonsReleased();                   // debounce
    g_dialMid = analogRead(DIAL_APIN);              // save middle speed position

    eepromWriteInt(EEPROM_DIAL_LOW, g_dialLow);    // save dial position references to eeprom
    eepromWriteInt(EEPROM_DIAL_MID, g_dialMid);
    eepromWriteInt(EEPROM_DIAL_HIGH, g_dialHigh);
  }
  else
  {
    g_dialLow  = eepromReadInt(EEPROM_DIAL_LOW, 0, 1023);  // read dial position references from eeprom
    g_dialMid  = eepromReadInt(EEPROM_DIAL_MID, 0, 1023);
    g_dialHigh = eepromReadInt(EEPROM_DIAL_HIGH, 0, 1023);
  }
}

void loop()
{
  unsigned long dialVal = analogRead(DIAL_APIN);
  long percentOn;
  unsigned long usTotal = 0;
  unsigned long usOn = 0;
  unsigned long usOff = 0;
  int forward;

  if (g_dialHigh > g_dialLow)
  {
    if (dialVal >= g_dialMid)
    {
      forward = 0;
      percentOn = 100*(dialVal-g_dialMid)/(g_dialHigh-g_dialMid);
    }
    else
    {
      forward = 1;
      percentOn = 100*(g_dialMid-dialVal)/(g_dialMid-g_dialLow);
    }
  }
  else // g_dialHigh < g_dialLow
  {
    if (dialVal <= g_dialMid)
    {
      forward = 0;
      percentOn = 100*(g_dialMid-dialVal)/(g_dialMid-g_dialHigh);
    }
    else
    {
      forward = 1;
      percentOn = 100*(dialVal-g_dialMid)/(g_dialLow-g_dialMid);
    }
  }
 
  if (percentOn <= 5)  // Turn motors off when they are close to off
  {
    percentOn = 0;
  }
  else if (percentOn >= 95)  // Turn motors full on when they are close to full on
  {
    percentOn = 100;
  }

  usTotal = 1000000/UPDATE_HZ;
  usOn = usTotal*percentOn/100;
  usOff = usTotal - usOn;

  if (forward)
  {
    digitalWrite(MOTOR_IN1_PIN, HIGH);
    digitalWrite(MOTOR_IN2_PIN, LOW);
  }
  else
  {
    digitalWrite(MOTOR_IN1_PIN, LOW);
    digitalWrite(MOTOR_IN2_PIN, HIGH);
  }

  if (usOn)
  {
    unsigned int msOn = usOn/1000;
    usOn %= 1000;
    digitalWrite(MOTOR_ENABLE_PIN, HIGH);
    if (msOn)
      delay(msOn);
    if (usOn)
      delayMicroseconds(usOn);
  }

  if (usOff)
  {
    unsigned int msOff = usOff/1000;
    usOff %=1000;
    digitalWrite(MOTOR_ENABLE_PIN, LOW);
    if (msOff)
      delay(msOff);
    if (usOff)
      delayMicroseconds(usOff);
  }
}

////////////////////////////////////////////////////////////////////////////////
// Helper functions
////////////////////////////////////////////////////////////////////////////////

// Writes an integer to eeprom
void eepromWriteInt(int addr, int val)
{
  addr *= 2;  // int is 2 bytes
  EEPROM.write(addr+1, val&0xFF);
  val /= 256;
  EEPROM.write(addr+0, val&0xFF);
}

// Reads an integer from eeprom
int eepromReadInt(int addr, int minVal, int maxVal)
{
  int val;

  addr *= 2;  // int is 2 bytes
  val = EEPROM.read(addr+0);
  val *= 256;
  val |= EEPROM.read(addr+1);
  val = constrain(val, minVal, maxVal);
  return val;
}

// Wait for all the current button presses to end (handles debouncing buttons)
void waitTillAllButtonsReleased()
{
  while(1)
  {
    int i;
    int button;

    // Need to sample many times to makes sure the button isn't currently bouncing
    for(i=0; i<100; ++i)
    {
      button  = digitalRead(BUTTON_PIN);
      delayMicroseconds(10);
    }

    if (button == BUTTON_NOT_PRESSED)
    {
      break;
    }
  }
}



I've harvested a lot of plastic gears, several stepper motors, and other cool toys. There has been discussion about a lever toggling the direction of rotation of the shaft that will move the "hooks". Right now, I'm imagining something that will be better illustrated than described with words. I'll post that sometime this afternoon.

You all gave me so much food for thought. I am very grateful.