Inputs / Outputs

If Arduinos and Raspberry Pis have made it very easy to work with discrete components such as push buttons and LEDs, it cannot be ignored that a robot arm, being an industrial machine, operates with differing standards than the usual 5V or 3.3V logic signals found in common microcontrollers. Industrial components operate at 24V and the robot controller will most often operate at that voltage level. This means that precautions should be taken to interface any sort of easily found electronic components since care should be taken not to potentially damage them by the difference in voltage, or worse damage internal electronics of the robot. One easy way to reduce these sorts of risks is to use standard industrial components for simple devices like buttons and lights, which can be easily found via electronics resellers and will operate directly with 24V. The safest way to interface any microcontrollers such as an Arduino or Raspberry Pi will be to galvanically isolate the robot controller from the microcontroller with relays so that any wiring mistake cannot lead to physical damage of the robot.

Once an input device is connected to the robot controller, its state is directly accessible as a boolean value (on/off) and can be used in a user program, for example it makes it easy to wait for a push button to be pressed before continuing a program. Similarly for an output device, a command will toggle the state of an output at a chosen time, so that a physical action can be commanded alongside the robot movement, like turning on a light, making a sound with a buzzer, or turning on a motor.