“Controlling a robot with joysticks or a mobile application is a common practice. However, I like to challenge my students by exploring alternative ways to control robot arm movements, such as using simple hand gestures. In the provided video, it can be seen that waving a hand to the left or right will cause the robot arm to rotate counterclockwise or clockwise, respectively.
Supplies:
- MeArm V1.0 kit (acrylic parts)
- Servo motors MG90S x4
- 10cm Servo Male-Female Extension Wire
- micro:bit x2
- IO:bit V2.1 expansion board or any similar board that provides SVG connector with 5V supply for 4 servos
- AA 1.5Vx2 battery pack or power bank with micro USB cable
Controlling real robots can be a complex task, but I would like to encourage my students to program and control the MeArm robot arm using micro:bit. By connecting 4 servo motors to micro:bit pins, I can use the “servo write” block command to move a servo to any desired angle.
First, decide which pins will be used to control the servo motors.
Servo under the base - connect to P13
Servo on the left side - connect to P14
Servo on the right side - connect to P8
Servo at the grip - connect to P12
To enhance the mobility of the robot arm, I plan to utilize radio communication between two micro:bits. This will enable me to control the robot arm wirelessly. For the communication to work, both micro:bits must be configured to the same radio group. The radio group can be assigned any value between 0 to 255. In this project, the radio group is set to 1.
To make controlling the robot arm more interesting, I came up with an idea to use a simple gesture. For example,
Tilt micro:bit to the left - the robot arm rotates counterclockwise.
Tilt micro:bit to the right - the robot arm rotates clockwise.
Tilt micro:bit to the front - the robot arm moves forward.
Tilt micro:bit to the back - the robot arm moves backward.
while pressing button B and
Tilt micro:bit to the back - the grip moves up
Tilt micro:bit to the front - the grip moves down
To open or close the grip, just press button A.
The micro:bit uses an on-board accelerometer sensor to detect changes in its orientation, specifically the roll and pitch angles. With this feature, students can create programs that detect the direction in which the micro:bit board has been tilted. They can then use these programs to send commands to another micro:bit, to control the movement of a servo motor according to the user’s gesture.
The format of those commands is simple. for example, sending “Base” and the number of degrees the servo rotates - will cause the servo motor located at the base to rotate from its current angle, while plus and minus numbers determine the direction of rotation.
Here are 5 basic commands for controlling the robotic arm:
To rotate the base of the arm, use the command “Base +/- nnn” where “nnn” indicates the number of degrees you want to move the servo. A positive value will rotate it clockwise, while a negative value will rotate it counterclockwise.
If you want to move the arm forward or backward, use the command “Stretch +/- nnn”. This will rotate the servo on the right side of the arm.
To move the grip up or down, use the command “Level +/- nnn”. This will rotate the servo on the left side of the arm.
Finally, to toggle the state of the grip between open and closed, simply use the command “Grip 0”.”