So I want to program something that will simply push a button, but controllable over ethernet. I'm new to robotics so I don't know where to start. What's the best way to control an actuator over a network connection?
-
$\begingroup$ For the mechanical actuators on this application, a small list can be found on this question. $\endgroup$– Diego C NascimentoJan 9, 2014 at 0:37
-
$\begingroup$ This question is broad and solicits an opinion, so I'm voting to close it. How much force is needed (e.g. will a solenoid work, a servo, or do you need a hydraulic ram)? Are you defining "best" as "most reliable", "easiest for the user" or "simplest controller"? Do you need feedback that the command was received? And so on. $\endgroup$– IanMay 31, 2016 at 18:21
4 Answers
First, let's consider what actuator you need to physically push a button. One straight forward solution is to use a RC-Servo motor. An RC-Servo motor is a high torque (DC motor with gearbox) actuator which can be instructed to rotate at a specific angle. It is controlled through a PWM signal. So you need to figure out the duty cycle of the PWM signal to do the desired movement and push the button you want.
Secondly we need a controller that:
- is able to generate a PWM signal
- communicate through the Internet
First thing that comes to my mind is to use a Raspberry Pi. Of course it is a huge overkill to use it just for pushing a button but in the process you will learn a lot of interesting things about setting up Raspberry Pi. You can setup a minimal web-server using python in less that 5 minutes. Arduino with an Ethernet shield as DaemonMaker suggested is also a great setup.
-
$\begingroup$ For future reference, because of the misuse of the term servo, here on robotics we try to make the distinction between hobby rcservos and industrial servomotors, reserving the servos tag for servos which don't clearly fall into either of these other categories. As such, it is a good idea to be clear which type of servo you are talking about in answers too. $\endgroup$ Jan 9, 2014 at 0:11
-
$\begingroup$ Also, remember that comments are here to help improve questions and answers and they are ephemeral. If they start to distract from the answer (such as the comments being longer than the answer, as is the case here) then they are likely to be tidied up (deleted) at any time. $\endgroup$ Jan 9, 2014 at 0:12
One approach would be to use and Arduino with an ethernet shield. There are plenty of examples online for both of these devices. From there you would just need to create a GUI and the build your robot to push the button.
Are you talking about something similar to this setup? If so, the code in this thread could be helpful, as well as the video found here.
What I focused on was first getting Arduino to work as a Web-server (a bit like this), then including hyperlinks in the Arduino-generated page that would then allow me to control the actuator.
You can use an Ethernet-enabled microcontroller as someone mentioned above. The board can be used as the interface between the network and the mechanism that you will be using to push the button.
For the mechanism you can use a servo motor or a pneumatic that releases with less force(you can control this by adjusting the inputs to the pneumatics manually). Any thing you use will have to have a control or a drive circuitry that triggers the mechanism.
You will have to write a code block for the conversion of the frame received via the Ethernet to a control signal understandable by the control circuitry.
-
$\begingroup$ Welcome to Robotics, KunalKapadia. As it stands, your answer is pretty generic - use a microcontroller that has Ethernet, "write a code block" to convert Ethernet data, and then trigger an actuator. I think that much is clear. Could you maybe elaborate on how to create, send, and parse an Ethernet frame? As you mentioned, OP doesn't seem especially concerned with the specifics of the mechanism, but more with how to interface to it. $\endgroup$– Chuck ♦May 31, 2016 at 15:31