After looking around at a bunch of table tennis robots out there to help me practice, I decided to make it a fun project with my wife to build one of our own with a feature-set that was similar to or better than what was already out there. It's been a long on-and-off development cycle, but it's finally to the point of being usable. It utilizes a dual-wheel ball thrower with vertical, horizontal, and rotational servos. It is currently controlled by an Arduino Mega 2560 microcontroller, but I have plans to change that to a Teensy 2.0. Drills are created on a PC using a simple Java application and then saved to an SD card. The Arduino displays available drills on an LCD interface and a standard TV remote is used to select the drill and start/stop it. Power is provided by a standard ATX computer power supply (both 5V and 12V).

I had originally started this project with the intention of making everything hand-made using off-the-shelf parts from the local Home Depot/Lowes, but it quickly became apparent that anything made would not be easy to reproduce so that was idea was scrapped. We then went the route of home fabrication with a 3D printer and purchased a Reprap Prusa Mendel from Makergear to help make any parts that we modeled on the computer. This has been absolutely essential to making this design work :-) So, there will be some parts obtained at a local Home Depot/Lowes and some purchased online. All-in-all, the total Bill of Materials comes to about $230 without shipping. BoM is attached below (as both a PDF and XLSX).

Summary of construction
I will break this out into three main components: frame/ball path (including PVC and custom parts), electronics, and software. To complete this project you will require basic hand tools, a wood saw, a drill, measuring tape, stapler and staple gun, a 3D printer (or printing service), soldering iron, multimeter, and a PC with a USB port (and an SD card reader/writer if you want to use customized drills). While not necessary, I found it much easier to utilize a custom PCB to mount all the electronic components (LCD/SD/resistors/servo leads/etc) - to do so, you'll either need a laser printer and chemicals to do etching, a CNC mill for PCB milling, or utilize a PCB creation service.

Some notes
1) The larger the throwing wheel, the slower it needs to spin since as the wheel gets larger, the linear speed at the outside diameter will increase while the angular speed remains the same. This being said, a larger wheel allows for better granularity of speed as well as quieter operation (lower motor RPM). The downside is that the throwing head needs to be a bit larger.
2) If you throw a ball with absolutely no spin (in table tennis this is a dead ball, in other sports it may be known as a knuckle ball) it will fly very erratically and be incredibly inconsistent. Rather than throw deadspin balls, I found it was better to throw a _very_ light backspin ball so it would fly consistently and be almost dead once it hit the table.
3) With the speed controllers I have selected, if the motor is spinning and is stopped for any reason (too much load, reversed without stopping first, someone held the motor, etc) they will not spin the motor again until they are brought back to neutral (0) throttle. I think this is a safety feature to prevent overloading of the speed controller if the motor is stuck or dead.
4) Due to the nature of FDM (fused deposition modeling - a method of 3D printing), the parts can sometimes be weak along the printed axis. As an example, let's say you printed a cup as if it were placed vertically on a table. If you were to pull the top and bottom in opposite directions, they would come apart quite easily along a layer seam. With this in mind, it can be beneficial to lightly coat certain stress points with plastic cement (hobby glue) to help increase strength. Such places to coat would be hinge tabs, screw holes, etc.

Video overview

Topspin test

Backspin test

Step 1: Robot Construction

The main frame assembly is simply some 2x4, 1x2, plywood, and brackets/screws, so it's pretty simple to put together. Here are some generic notes about the assembly:
1) The pieces of 1x2 that the ball trays attach to are slanted downwards at about a 2-3 degree angle to help the balls roll towards the opening.
2) The pieces of 1x2 that mount the agitator servo only have a single screw per piece so that they can pivot upwards in case of some stubborn balls. There is a screw going into the main frame piece just beneath the 1x2 to prevent the 1x2 from drooping too far down.
I have attached the stl files (and reference images) for the printed parts as a zip to this step. Other than that, please follow the detailed images for assembling the robot! Feel free to ask any questions if you need clarification.

Step 2: Assembly Diagrams

On this step I have all of the assembly images. I also attached a zip of the PDF files which can be zoomed in a bit more if needed. Please let me know if you need clarification anywhere!

Step 3: Electronics

At the heart of the electronics is ATX power supply. We will be using two voltages from this power supply: 5V and 12V. A standard ATX has several molex connectors (usually the whitish 4-pin connectors) that have both the 12V (yellow) and 5V (red) feeds. The 12V feed is used to power the Arduino and the main ball throwing motors, and the 5V feed is used to power the servos. A note on getting an ATX power supply to actually power on: computers tell the power supply to operate by connecting the green wire in the large 20(or 24)-pin connector to ground - you can do the same with a paperclip by bridging the green wire to a black wire.

At the moment I am using an Arduino Mega 2560 to control the robot, but I have plans to port that over to a Teensy 2.0 since it is considerably cheaper, has a smaller footprint, and I can still use the Arduino IDE.

There are five servos used in this robot. Two high-torque servos are used for the ball feed/vertical positioning, and three moderately torqued servos are used for rotation/horizontal positioning/ball agitation. The servo for ball agitation needs to be modified to be a continuous rotation servo: http://www.acroname.com/robotics/info/ideas/continuous/continuous.html  Alternatively, you can just purchase a servo that is already continuous rotation (such as a Parallax 900-00008), but they cost a bit more.

The motors that I chose are hexTronik DT700 brushless outrunner motors. I went with brushless motors because of longevity requirements, and as a bonus these are quieter and more efficient than most brushed motors. The speed controllers are HobbyKing SS Series 25-30A brushless ESC and are controllable via the standard Arduino servo library. Finally, since these speed controllers are not reversible, I have two DPDT relays (TE Connectivity RTE24005F) to reverse the motors for excellent spin :-)

These items are nice to have, but not strictly necessary to get a ball-flingin' robot :-) The LCD is a standard 16x2 character that is well used in the Arduino community. The SD card is pretty well standardized, and I chose a pre-assembled module so I didn't need to purchase any additional resistors/mounts/etc. The IR sensor is great to control the robot remotely with a standard TV remote - you don't need to program it, just press any three buttons when the robot is powering up to let it know what you want to use for up/down/enter! Finally, the custom PCB is not really necessary, but it sure makes assembly easier!

Most of the effort here is in connecting the devices to the Arduino for operation, so it's easier to show you the layout that I generated in CADSoft Eagle. I have also attached the Eagle project file if you wish to make the board yourself and/or get more clarification on where things are connected. The large areas of blue are ground planes. Again, I'd like to note that this is for the Arduino Mega 2560 and I will eventually modify this for the Teensy 2.0. As for other connections that need to be made that are not displayed here:

1) 12V output from power supply goes to Arduino power input (I used a power plug from Radio Shack) and to the speed controllers.
2) 5V output from power supply goes to 5V input on board (for servo use). It is important that you do not try to use the Arduino 5V output to power the servos as it cannot handle the load the servos will require.
3) Brushless motors and speed controllers have three leads. One lead from the speed controller goes directly to the motor. The other two go to the input for the relay - we do this so we can reverse the direction of the motor. See image below for more information. We control the relay with the circuit shown on the board (see here) - the 5V along the top side of the board near the 1N4004 goes to the relay input and the two empty holes just below the 1N4004 go to the relay ground. There are two motors, so we need two relays and two control circuits (note the two transistors/resistors/diodes on the board). For more info on DPDT relays, please read the Wikipedia article for lots of info :-)
4) The LCD that I used was the same one used by Adafruit. A potentiometer is required to adjust contrast on this particular model, but I placed that close to the LCD so I only needed 8 wires (CAT5 ethernet cabling) to connect the Arduino to the LCD.
5) The SD card module that I used already had resistors in place, and you can even use a MicroSD module if you wish. However, if you have a plain old SD slot that you want to use, please be sure to use the proper wiring/circuitry to prevent damage to the SD card!

Step 4: Software

The software section will be split into two parts: the Arduino/Teensy software and the Java application to design the drills to be stored on the SD card. I still have a bit of work to do for the all-in-one control software (conversion to Teensy), so for the time being I will post the Arduino code that I have for testing the robot. It's pretty simplistic, but it works! :-)

Full program coming soon. Attached below is a testing application.

Drill Designer
Coming soon!
<p>Very cool I'm starting table Tennis can anyone give me any tips about a good ball robot I'm 12 so my mom would say no on this project but it's a little to much.</p>
<p>ATTENTION! STOP! </p><p>If you are planning to build this I have to warn you this instructable is not complete and suffers large amount of calculation mistakes - you will end up fixing broken items hundreds of time if you dont correct them </p><p>1) Vertical hinge design is VERY BAD unless you print it with metal with a professional printer it will last only few minutes before it falls apart <br>2) Diameter of the convoys (Female tubing to hold PVCS) is VERY thick you will end up with clogged balls almost every few minutes DON'T use the design here </p><p>3) The pomp mechanism is very poorly designed - it will cause the servo to fail very fast </p><p>4) DON'T use any of the retainers rings use a spring or you will end up disassembling clogged balls </p><p>5) This design DOES not perform well with 4 mm balls - get smaller ones </p><p>6) There is no drill designer software provided - code to use SD and infr-red remote is missing so be prepared to do it yourself </p><p>7) some designs deserve a credit - such as the flange ! but then it was a 1:1 copy from other machines! </p><p>all in all useless instructables - if any body had any lasting success with it please let me know I will buy you an IPA! </p>
<p>Hi,</p><p>I actually build one. But..</p><p>1. Same, I encounter the same problem, I just put some epoxy, and it's ok now.</p><p>2. Same problem, but I just sand the inside. Maybe its the 3D print quality problem. But it still works.</p><p>3. at first I use the piston design same as tbkdan, but since its (feed) speed is limited, I switch to rotary feed using a stepper motor salvage from old old printer. Now, I can feed the ball at max of 2 ball per second.</p><p>4. I also encounter problem with retainer ring, so I use a thin nylon string.</p><p>5. 40 mm balls is ok</p><p>6. I do my own programming. I also use a 4x20 LCD screen. </p><p>7. for me unit, the timing belt seems always slip with the pulley. therefore I re-design it into gear.</p>
<p>Loved your post and Gear - boy you just made my day :-) this is fabulous are you using ABS or PLA ? your feeder looks really tough - do you mind sharing the design for the gear and the feeder <br>I added a bluetooth - removed the relay with a cheap arduino complatible opto isolated board - yet I am unhappy with the agitator - do you get consistent feed? </p>
<p>Hi,</p><p>Link for from onedrive file : </p><p><a href="http://1drv.ms/1QM7Y8k" rel="nofollow">http://1drv.ms/1QM7Y8k</a></p><p>contains : (all in google sketchup format) 2 gear file; 1 spiral feeder, 1 rotation (you need to print it 2x, and sandwich the bigger gear). I use PLA.</p><p>You need to draw &amp; print a base for the spiral to connect it to the stepper motor. Since i'm using recycled stepper, I tried several stepper, smaller one doesn't have enough torque. I'm now using a NEMA17, and the feed is consistent, it has enough torque. I don't know how many amp it is rated, but the height of the stepper is approx. 1.75inch. </p>
<p>Hello,</p><p>The onedrive link has expired, could you reup a new set of files. if you have the whole project in sketchup that would be awesome! I would love to print out the gear files and i want to modify the bearing to use 6mm airsoft BB bearings.</p>
<p>Here is the new link:</p><p>https://1drv.ms/f/s!Ar1MGreB5hIIgZ5BHfefZ8t3pW9PTw</p>
<p>&iexcl;Hi <a href="https://www.instructables.com/member/alvinchua" rel="nofollow">alvinchua</a>!</p><p>I'm desing my own robopong and your desing looks terrific. I tried to see the files in the new link you shared but the folder is empty. &iquest;Can you share it again please?<br><br>&iexcl;Thanks!</p>
<p>here is the new link:</p><p>https://drive.google.com/open?id=0B-ALudYVQA1oYXBtTzFkU19iMlk</p>
<p>Can you share your drill designer and other codes as well? Those would be very helpful for people like me who sucks at coding. </p>
<p>Thanks a lot this is truly amazing</p>
<p>Note : when using stepper motor as ball feed instead of piston type, the feed speed cannot go beyond 2 ball per second, because the gravity fall of ball cannot catch up with the speed.</p>
Sorry I haven't been able to respond to comments recently, just been too busy with other things. That said, I felt this one and the other one deserved a response.<br><br>1) I acknowledge this in the notes on the first page, item number 4. I coated the parts in plastic cement and have been using them without issue for over two years. It's even survived several trips in a car without issue.<br>2) I'm not sure which parts you're talking about, but with all the parts I've printed off my calibrated RepRap Prusa I don't have any clogging issues.<br>3) Could you elaborate on this? My feed servo has not failed after many hours of use.<br>4) Might be related to #2; is your MakerBot calibrated?<br>5) I've been practicing with 40mm. However, I don't know how it behaves with the new 40+ plastic balls; I assume it probably won't fare well :-)<br>6) Haven't had time to clean mine up and don't want to release it as is. I know :-(<br>7) I'm not sure which flange you talk about.<br><br>As I mentioned above, I've used this robot for many many hours and it has served me well.
<p>Please would you be so kind and upload the NEW code with DRILLS ? Thank you very much</p>
<p>Thanks for the response - I am going to respond to this post as I think it deserves some clarification </p><p>1) Not really useful for me: looking at your print it seems your printer suffers from lash backs as layers are really shifted (visible layer separation) yes you might benefit from some structural help on the surface with a glue but internally your glue wont penetrate so irrelevant to elbow issues </p><p>2) I have clogging issues on both hinges - my balls were getting stuck at joints so I ended up grinding for 1.5 mm and removing one totally and using outside hinges (made from scrap metal) </p><p>3) the feed servo circular to linear placement caused the issue- I am surprised your model has not failed yet ! how many hours did you put on it so far? mine used to get really hot until I changed the feed speed. I am playing really fast and it burnt it - it also could be Hobby kings inferior quality servos I am buying them from another supplier now (locally) </p><p>4) It is not a very precise machine I have to admit - I think I get 200 micron accuracy only </p><p>5) nope even with my in consistent cheap 40mm I do get occasional clogging - in my next revision I will add more distance or make the hinges not too thick </p><p>6) so far I have to say in code the feeder has a bug that avoid people to test their project yours does not work here is how to fix it </p><p>void feed(){<br>// servoFeed.writeMicroseconds( map(5,0,180,SERVO_PULSE_ZERO,SERVO_PULSE_180) );<br>// delay(600);//Wait for the servo to finish pushing the ball up before we retract<br>// servoFeed.writeMicroseconds( map(0,0,180,SERVO_PULSE_ZERO,SERVO_PULSE_180) );</p><p> servoFeed.write(16); // Example: move forward<br> delay(600); // Wait 2000 milliseconds (2 seconds)<br> servoFeed.write(160);<br> delay(600);<br>}</p><p>also I=on your other post you made 5V 20A comment vs. 110 V 200 A <br>I know that - and 5V servos wont add up to that - but the 12volt will and it is not easy to find a power supply with more than 3 AMP for the 12 volt rail - it certainly made my PS unhappy as it shuts sown due to heat occasionally </p><p>also the flange used for the head is using a measly servo to do the vertical up down movement - not being familiar with internals of the servo it burnt two of servos trying to hold it in the middle position for more than 20 seconds (can I sue you for this ;-) people should note for lifting such a heavy head using a servo link is not enough - I noticed pinkponk used a sprint which is wise but still not enough - can you come up with a 3D model to change it to a linear actuation? if you are good and fast perhaps a contious servo with a threaded rod lifting it without making the servo to reach temperature of the sun </p><p>all in all thanks for sharing this if it wasn't for the errors in this design I would have not learned so much about servos, ESCs and Solid Work <br></p>
<p>Hi </p><p>If you want a good working robot you should have a very good 3D printer. I drawn again all the 3D parts on my own and corect tolerances to my 3D printer so the quality of my robot is very good. The programe code from tbkdan's is for testing only!!! If you are not good at programing you have a big problem (like me). I did a lot of learning for the programing an somehaw (a lot of nights not sleeping) to manage to write code for remote control, but its not perfect. </p>
<p>I am great at programming that is what I do for a living so that part is piece of cake I am not using IR - I am using my Kinect and it changes the drill based on my response! <br></p><p>Problems in this instructable are plenty, fist the servo elbows they all broke after 40 or 50 use ! then I realised this is really bad design I screwed them directly to the PVC so center of the pressure is not the 1/4&quot; right angle tab! <br></p><p>then the sizes are off - I have a decent (maker bot pro) 3D printer - unfortunately from STL it is a lot of work to fix the tolerance I thought it will be right on the spot so I ended up grinding for hours (why could he just have told us this issue we didn't need to) </p><p>I thought if somebody else is plannign to do it he or she should know this is not designed properly and avoid mistakes I made </p>
<p>also you really don't need a high speed copter motor to throw the balls such as waste of my money - in 100% it is so fast that no human being can catch it ! it will leave a mark on your hand if the ball at that speed hits you seriously a decent cheap DC motor would do. </p><p>then you don't need to use a servo for the agitator ! seriously ! I even had to open the $10 servo and make it continuous what a waste of money just get a low speed DC motor </p><p>then for the pump - really ? why do I need servo there? just add a circular to saw wheel and use a cheap motor - arduino already has PWM so again cheap DC motor so far you have saved $50 </p><p>then on the Power supply - boy you really dont need to draw 20A - this motors are so high power that my power supply is screaming under their load</p><p>then lets talk about the hinges - why on earth do we need to have a female tubing - just make the make bigger screw it on the PVC </p><p>then on the head up down mechanisem - seriously ? this is already one pound head you want it to move with a servo like this - I am sure mine will only last a week </p><p>I am sorry I have to be harsh here - he could have saved us since he already built it - I think mine probably will last a week under the normal 3 hours use am adding to it - I am throwing it out and will start from scratch just have to learn solid works abit better</p>
<p>I originally did this with a cheap DC motor for the throwing wheels (which is why the motor mount tabs are removable) but then realized that these motors will eventually burn out (brushes wear down). So, I decided to go with brushless motors. Yes, the outrunners are more than are necessary, but at the time they were the cheapest brushless motors out there that fit the bill.</p><p>The benefit of servos is that they do not need external motor drivers. Just plug them into the Arduino and give them a separate +5V power feed off of the power supply, good to go. If you have a DC motor that spins slow enough (or is geared down), you could use that as the agitator, but most likely you'll need a motor driver which adds to the cost more than the cheap servo. I happened to have a continuous rotation servo handy, which is why I used it in my project. It's also easy to specifically control the rotation speed, but a motor driver would do the same.</p><p>The pump (feed) servo is used to serve a single ball at a time at a specific time, with a specific start and stop position. First, I'm not sure how you plan on doing this so precisely with a DC motor. A stepper motor, maybe, but not a DC motor. Second, you cannot run a powerful enough DC motor directly off of the Arduino. The pins do NOT put out enough power to drive anything substantial and should only be used as signal control mechanism to control the external motor drivers that actually power the motors.</p><p>Have you measured the power load? I haven't but I doubt the PSU is really loaded. Keep in mind that 20A @ 5V is not the same as 20A @ 110V.</p><p>I used female tubing so there wasn't any &quot;slack&quot; in the ball path that could result in jams or misfeeds.</p><p>As I mentioned in my other reply, I haven't had any issues with longevity or failures. That's why I specced the feed and vertical servos to be (relatively) beefy. </p><p>I know it's not the best design out there, but it was meant to be relatively inexpensive, printable on a consumer 3D printer, and have the more advanced features of a $1000+ robot. If you take out the sidespin rotation portion, this gets less expensive and complex (especially the head portion), but it was one of my requirements. By all means, use some of the ideas here and make your own! :-)</p>
<p>Glad you are finally back! every body was looking forward to get some answers from you.</p><p>I am going to write a response but so far I have a big concern; my vertical servo is getting too hot - how is yours taking the load? it seems at 90 degree servo is in high current mode and has to work hard to keep head in position. </p><p>sofar: removed both retainers replaced thenwith springs, removed female tubing </p><p>also you test program does not work at all. so far I didn't hit 30K of code so it is replaced with Arduino UNO </p>
<p>Yes you are right on some points. If I would do another one, I would do a lot of changes to design to. (Im great at designing 3D, I do it for a living :) ) But I have no energy to do it again, because the program code drain all of my energy :). Would you be so kind and help me to correct my program code?? If you are good at it, it will probably take you about 5-10minutes. This is my problem:</p><p>case SELECT_BUTTON: for (int i=0; i &lt;= 20; i++){ delay(Speed); feed();} break;</p><p>When I press SELECT_BUTTON the robot starts to feed the ball. (20times),</p><p>The correct code I would like to have is:</p><p>When I press SELECT_BUTTON the robot starts feeding the ball, </p><p>When I press SELECT_BUTTON again the robot stops feeding the ball.</p><p>I can send yo the whole code if you need it.</p><p>Thanks</p>
<p>Of course! I will certainly do that for you that is not even 10 min if you want send me the code otherwise you can set a variable to read the ir state and toggle it when read again so ach time it will become 0 or 1 (simply multiple by -1 and check if it is positive (it will change every time you press) </p><p>alternatively send me the code </p>
<p>For those who want to control the robot using an Android device via Bluetooth, you can use the application I created: <a href="https://github.com/thiagolr/robotita" rel="nofollow">https://github.com/thiagolr/robotita</a></p><p>Enjoy!</p>
<p>Dear thiagolr,</p><p>I want to build this robot with your great upgrade :) It looks realy cool with android, and I want to ask you somethink, that if you be so kind and create some program with drills e.g. some drill with 6 ball e.g. 1topspin 2sidespin 3backspin 4another sidespin etc. It would be really great. Thank you very much for reading this. Best regards</p>
<p>Hi,<br><br>Thank for this very good robot specification.<br><br>I would like build this robot. But the page for the wheels that is in Excel file doesn't exist anymore.<br>Can you tell me what wheel you have used ?<br><br>Thank ;-)</p>
<p>yes , rods are missing in the design - go to frys they sell the joint and the rod really cheap - what ever you do dont buy from hobbyking - they are really low quality</p>
<p>Does anyone know the &quot;tie rod&quot; specification besides its length? Can you please give me the link where you bought it? Or a more specific name/type/kind?</p>
<p>Hello!</p><p>I hope this will help you </p><p><a href="http://mibomodeli.si/trgovina/Accessories/Ball-joints" rel="nofollow">http://mibomodeli.si/trgovina/Accessories/Ball-joi...</a></p><p><a href="http://www.hobbyking.com/hobbyking/store/__34332__Servo_Tie_Rod_A3015_2pcs_.html" rel="nofollow">http://www.hobbyking.com/hobbyking/store/__34332__...</a></p><p>The length you should measure</p>
<p>Thanks! =)</p>
<p>Can anyone help me out with this specification? This is the only thing missing, currently the robot is working without the vertical/horizontal control.</p>
<p><a href="http://www.amazon.com/Neewer-Brushless-External-2-3Lipo-4-10NiMh/dp/B00P0CCW90/ref=sr_1_78?ie=UTF8&qid=1444449232&sr=8-78&keywords=10%2C000+rpm+motor" rel="nofollow">http://www.amazon.com/Neewer-Brushless-External-2-...</a></p><p>replacement for the DT700 much better quality and much cheaper and comes with ESC</p>
<p>not that I am against Singapore or China - it will also take few weeks for item to arrive even though they fasly declare they have a warehouse in US now </p>
<p>not that I am against Singapore or China - it will also take few weeks for item to arrive even though they fasly declare they have a warehouse in US now </p>
<p>Update! my driver brushless motors failed - I can safely declare now that every thing from Hobby King is crap - I will comeup with a list from Amazon or Ebay most parts are available online DONTBUY from Hobbyking they are in Singapore and China and quality is just crap</p>
<p>Hi all,</p><p>As I said on the other message, I finally started to work on this project. I won't use the LCD and IR, I will make it controllable by an Android device using bluetooth.</p><p>The current status is:<br>- all required parts printed<br>- all electronics purchased<br>- no wood/pvc work done yet<br>- bluetooth connected to arduino and receiving commands from android phone<br>- servo movements controlled by the android phone</p><p>Next steps:<br>- connect the motors and control them with the android phone<br>- invert the motors using DPDT relays with the android phone</p><p>I will release all the source code when it is done here:<br><a href="https://github.com/thiagolr/robotita" rel="nofollow">https://github.com/thiagolr/robotita</a></p><p>Thiago</p>
<p>Hi, can you please share the Autodesk Inventor files? I need to do some small modifications on the printed parts! Thanks!</p>
<p>did you get the cad files? if so can you share pls</p>
<p>No, he didn't send it to me! =(</p><p>I finally started to work on this project, I have all the printed parts, motors and servos, but I still need the wood/pvc parts.</p>
<p>How did you center ?balance the feeder wheels - mine is wiggly in low speed </p>
Nice project! <br /> <br />How do you control the spin (top/back/side) of the ball ? <br /> <br />
The two motors spin independently of each other (and in both directions) so I control the motor speed and direction to obtain the spin that I want. The entire motor assembly rotates to provide side-spin.
Could you elaborate a bit more on how you use motor speed/direction to influence the spin of the ball?<br><br>For instance, with counter rotating wheels, how and to what extent can you control the amount of top/back spin?<br><br>Also, what kind of effect does changing the spin direction of the top motor have. And the bottom motor?
Dear tdkdan <br> <br>Hope you are doing fine <br> <br>First of all this is great Great Project done...... <br> <br>I came across your project when i was searching home made TT project .I am also TT player :) <br> <br>I would really appreciate if you help me to understand Arduino alittle bit.I am newbie for Arduino.(I was inspired by your project though) <br> <br>I was very simple question.I understand that you have created Sketch for Arduino and uploaded in it.Test it ,Works fine.....Proto type done. <br> <br>How do you implement in practical life ? Suppose if you need to take this robot to club, whether this Robot will still work with Arduino board with same setup or you have to create your own Circuit Board ,mount all components and use it <br> <br>Thank you in Advance <br> <br>Regards <br>Shail363 <br> <br> <br>
In practical use, I have a different sketch that takes drill files from an SD card that state where the ball needs to be with what spin and spins the motors/moves the servos appropriately to get the ball where it needs to be - just like a 2040. It's not ready for prime time and I haven't had much time to work on it over the summer, but hopefully with Fall/Winter coming up I'll be able to invest more time in polishing it off. :-)
Dear TDKDAN <br> <br>Thank you very much for prompt reply. <br> <br>My question is slightly different and is verrrry basic.It is related to ARDUINO BOARD itself.Apologies if that was not clear to you.I will try to make very clear. <br> <br>Consider that your final sketch is ready and uploaded in ARDUINO BOARD and you take drills from SD Card. <br> <br>Q1) Whether ACTUAL ARDUINO BOARD is installed in the robot that is shown in the video ? (i was thinking ARDUINO BOARD is only used for prototype and cannot be used independent of Computer.Corrrct me if I am wrong) <br> <br>Q2) Whether ARDUINO BOARD will react to program stored in it wihout DEPENDING on COMPUTER ? <br> <br>Q3) When progam is uploaded in Arduino and Power is Switchd off then whether same program is accesable when it is switched on ? <br> <br> <br>Regards <br> <br>shail363
The Arduino is installed and running in that video. In the pictures above, you can see it attached to the board just in front of the power supply (with a custom shield on top of it). In the sketch that I have (the unfinished one) the Arduino is completely independent of any computer and draws the power from the ATX power supply. Once you turn on the power supply, the Arduino powers up and starts the sketch, showing the IR remote initialization on the LCD. Please let me know if you need any clarification :-)
Dear TDKDAN <br> <br>Wow... That great... <br> <br>Controlling 4 Servos, 2 Brushless motors ,SD card, IR and LCD on just one Arduino Mega.After hooking up all these components,whether Arduino Board is capable of taking the load for continous usage without over heating? <br> <br>For SD card and LCD have you used any shield ? <br> <br>For how many hours continuoulsy you have operated it? <br> <br>Whether Arduino board can handle daily practise of 2-3 hours? <br> <br>Thanks in advance
I don't think I'm taxing the Arduino very much - servos and motors are all PWM controlled via the PWM library, IR is just receiving data every so often, LCD is just sending data every so often.. not a whole lot to it. I actually have plans to change it over to a Teensy 2.0 for cost and size issues, but again... time :-) I've used it continuously for 40 minutes straight without issue, and combined probably about 10 hours of actual (non-testing) usage. The SD card and LCD are wired directly into my custom shield that I posted on this project.
Dear TDKDAN <br>Thats great. <br>If 4-5 Servos are operated togther.,whether they are not noisy ? <br>If yes then what alternative you will suggest for this ? <br> <br>Cheers
I guess it depends on your definition of noisy :-) I definitely hear them, but it doesn't bother me in my basement. There are probably quieter servos out there, but I was more concerned about keeping price down than noise. Perhaps the servos could be wrapped in some noise-deadening foam?

About This Instructable




More by tbkdan:Homemade table tennis robot for ~$230 
Add instructable to: