That is my first project on robotics. The idea came from an ST sensortile development tool. This IoT gadget can do a lot but the feature that interests me is reporting its dynamic 3D angles: yaw, pitch and roll. I am trying to use this to control the arm. See the link for the detail.
Step 1First, the 3D printing file is downloaded from Thingiverse.
In fact, I reduced one DOF simply due to my designed controlled by MEMS sensor. Then some low cost servo motor made in China is all you need from the web. The MG90s I got from the web are very cheap and of good quality.
It is so easy to use the Arduino Nano board and servo library to drive the arm for a simple pick-up movement. It only took me an hour to code the movement for a UART input interface to take commands from serial port which is for the later Bluetooth module to communicate.
Step 2That was simple. Motion for this is just an array of positions which are the angles of all the servos in the moment. Arduino servo and Serial library are neat and easily implemented. Now the UI is typing commands to the serial monitor in Arduino IDE.
Next step is to add a Sensor User Interface. To get your robot arm to learn from your motion, you have to learn how to do it first. After some calibrations and practice, the result:
The small plastic box (a watch?) is ST SensorTile. It transmits the current yaw, pitch to my BT LE module which in turn sending commands to Arduino Nano to control servos.
Step 3That means the Bluetooth module needs to be in Client Mode (like your cell phone). SensorTile is in Server mode (your wearable). I am using ST Bluenrg-1 based module which can be Client and Server or both. So my next step is to write an Android app to connect to BT LE Module to incorporate more axis of motion into the arm. Right now the robot arm has 4 servo, in which 3 are shoulder, arm and forearm, and 1 is the gripper. SensorTile can output 3-axis data but while I am holding it in the hand, only 2-axis of data is useful and my robot arm does not have a wrist servo.
Comments