My 10 year old 6th grade son is doing his first science fair project. He has chosen a very ambitious project and his teacher has put pressure on him to make it to state. He has designed an arm using four servos, wood, brackets, servo controller, lynxterm, lap top, battery pack, and custom grippers (as he is not allowed to use kits). The problem is that none of us are techies and he very much wants to be one. I think that the actual construction will go well, but I am worried about the connections and programming. We have been reading the servo manual and I can’t help him make heads or tails of it. Also, I need to know if or what kind of codes we need to know to use lynxterm. I’m overwhelmed, but he seems to think it’s going to be easy!! HA!! The basic plan - build an arm that he can move each servo (joint) independently with small movements to pick up a matchbox car and place it on a track. Any words of wisdom or calming advice. (I already have my brown bag next to me for hyperventilation! )
First off relax. This is easy, relatively speaking. Let him get it put together and when he’s ready to start to get it moving we can help him sort out the questions. 8)
Thanks, I’ll fold up my paper bag for now, but we’ll be back soon!! (Relatively speaking, huh?) For the research part, the servo controller basically sends the commands from the computer to the servos via pulses? What components make up the servo controller? He’s having trouble researching that bit of info and what he’s found - well, he just gets this blank stare. Thanks.
You’ve mentioned he’s using a servo controller so I’m assuming it’s the SSC-32. That device will make doing this project really easy. LynxTerm has 15 macros where he can enter the positions the servos will go to. Then it’s just a matter of clicking on the macros in the correct order. Each macro is a single line where the “code” is put to make the arm go to the position you want it to. The position range of each servo is (180°) 500 to 2500 where 500 is full CCW, 2500 is full CW, and 1500 is centered. A servo can be positioned anywhere within the 180°. For example.
#0 P1500 #1 P1500 #2 P1500 #3 P1500 T2000
Moves all 4 servos to their center position. The T2000 means it will take 2 seconds to complete the move.
#0 P2000 #1 P1500 #2 P1000 #3 P1500 T2000
This moves servo 0 to about 45° CW, Servo 1 and servo 3 do not move and servo 2 moves to about 45° CCW. This move also takes 2 seconds. Not rocket science eh?
Okay, that makes sense. So if you wanted to open and close the gripper independently you could use:
#3 P2500 T2000
to open and
#3 P500 T2000
to close?
Would it be best for him to set up a specific point to pick the car up from and another specific point to place the car down on, thus only dealing with two points and making it easier to program the arm where to move? He would end up with a start sequence (beginning position), open gripper, close gripper, an end position (where the track is), open and close and back to neutral.
Yes, we bought the servo controller from you guys (the one you mentioned) and four H645 (I think) servos from you guys, too. Along with a battery pack and charger and some brackets.
Yes that’s the idea. Now for some clarification. No two servos have the exact same position given the same pulses. There will be minor differences. So 500 and 2500 are on the extreme of the range. What I’m trying to get at is 548 or 2463 may be a servos limitations. You will need to find the correct values by experimentation. If he grasps LynxTerm well he can move on to purchase ($39.95) Visual Sequencer, (SEQ) which basically allows you to store a bunch of these position macros into a Sequence that can be played by clicking on one thing. Not necessary, but much more impressive.
Yes that is fine. Some actually define the positions then move the pick and place physical items to match the code, either way…
So with lynxterm, can the positions be saved, or do you have to put in the info each time you use it? I think I read somewhere that it had 15 Macros?
They are saved. 8)
Thanks, I’m feeling better already!!! I guess I’ll be back with more questions as they arise!!
You should be careful about sending servos to their endpoints or limits of travel. If you send a servo to a position it can not reach due to mechanical limitations it will sit there and try continuously until something fails. More often than not it is the servo that fails. What prompted me to make this post was your illustrating sending the gripper to the limits of rotation. If you try to fully close the gripper when you pick the car up and there is nothing squishy or providing mechanical relief it could damage the servo. My experience with science fair projects in the rather distant past was that smoke coming out of electronic gadgets (unexpectedly) was not a big point earner. Just something to keep in mind as you develop your sequences for the demonstration.
Great tip. I had thought about that and we will be playing with the servos and gripper designs to have them open and close only as much as absolutely necessary. Thanks for reminding me though, robot parts aren’t cheap and I’d hate to see my son’s face if there was smoke coming from his creation!
ok. We’re done with the research paper and now he’s ready to build. He has designed the base, arm and grippers. He is starting with the base. It is going to be a wooden box open on the bottom, so more like a platform. This is the logical place to start, yes? My husband wants to build the arm, program it, then build the base and attach it. I think we should build the base and attach the arm, then program it. I don’t think holding the arm on the table with your hand to see what it will do before putting it on a base will work. He says I’m helping my son to do it backwards. My son thinks he should build the base first, too. Any votes one way or the other?
Personally I would be inclined to pour the cellar and put down floor joists and subflooring before starting the walls, siding and roof, but then I’ve never been a big fan of pre-fab housing either. Generally speaking the shoulder joint bears the heaviest load for an arm and generally needs solid support in place to evaluate properly, but it is’t usually the most visually appealing or attention grabbing part of the design either.
So, I’m guessing your vote is for the BASE! Thanks.
Just my $0.02:
Many years ago, I set out to design and build a robot arm. I started with the base, and built up a substantial frame, added a motorized chain-driven turntable, upon which I placed a column for the arm, then an elbow, and a beam for the arm. It was about this point when I realized that the shoulder would no longer rotate properly because of the added weight. I redesigned the drive for the shoulder rotation, fitting it into the same base, with some added gearing and reduction stages. I added an extension mechanism for the arm, and once again found that not only was it harder for the shoulder to spin again, but that the elevation drive was stalling out as well, since it had to move additional weight that hadn’t been there before.
I never did finish the arm.
All of this was done before I really had a good grasp of really sound mechanical design, and I didn’t design the base rotation and arm elevation mechanisms with enough extra capacity to allow for the added mass of the components that they would be supporting. Still, were I to tackle the project again today (and I likely will - I still have the robust base and extension mechs), I would start at the gripper and work back towards the base, so that at each stage, I would know exactly how much mass I would need to be supporting with each joint and mechanism, and design accordingly.
The design is done and materials are ready. Servos are being used, grippers are designed and mostly built. He’s ready to do the final build, he just didn’t have a base. My husband didn’t want to help make the base until everything else was done, including programming. This is a very simple build, definitely not complex. Thanks for your thoughts, though.
If the design is finished then the order of build is probably not important.