This is a nice example of what you can actually do with AVIL!
As you probably know MeArm is a "pocket size industrial robot" launched on Kickstarter in 2015.
As far as I know it comes in different flavour and versions but in every cases you basically have the Arm (mechanics and servos), and Arduino to control it.
It's a very nice product that really reply in a "desktop size" an industrial robot but, in the examples I was able to find in internet, it's usually controlled using the "raw" Arduino servo library in a regular sketch to move it manually (reading input values from a joystick or from some pc-based software) or to make some movements (without any speed control!) between positions "hard-coded" in the sketch itself.
In few words we have a nice "pocket size industrial robot" but we are completely missing a "pocket size industrial robot controller" that gives us the possibility to:
- move manually the robot.
- save the current position of the robot as a persistent variable.
- create (several) programs to manage the robot's movement/gripper.
- control digital I/O's to interface the robot with the external environment.
The functions we need to realize the controller are just six!
- a function to get an input key without waiting for an "Enter" (getKey).
- a function to manage the robot's manual movements (manCmd).
- a function to save on file the current position of the robot with a given name (teachPos).
- a function to move all the robot servo's at the same at a specific position with some kind of speed control (movej).
- two functions to open and close the gripper.
This functions are already included in the repository, to enable them you just have to uncomment de MEARM directive in the compot.h file within the library.
This will disable the user's input/output on ethernet (if enabled) so you can connect your pc to the "shell" only using the serial connection.