![]() The robotic arm is equipped with Arduino UNO board and a Bluetooth Low Energy shield, with whom receives new servos positions, and a “servo shield” which allows to uncouple Arduino UNO power supply from servos power supply, and so use high torque servos without draining current over the microcontroller’s limit. The Arduino UNO, on its side, does not have Bluetooth Low Energy communication, so we used an HC-05 module for this purpose. The Raspberry Pi 3 plays a fundamental role: it runs handle inputs from the human arms, translates it in servos’ positions and then send the new position to the robotic arm. We used to control Robot Arm made in Italy This process is repeated in an infinite loop. The value ‘f’ would be sent by the robotic glove (via Bluetooth) whereby the Robotic Arm would read this data and trigger a function to rotate the respective servo motor. Serial.print(state) // Prints out the value sentīased on the current ‘state’s value, ’ the servo Driver would send a signal to the respective Motor.įor example, if we bend our fingers. State = Serial.read() // Reads the data from the serial port Checks whether data is coming from the serial port Int response_time = 5 //Receiving values from the Robotic Glove interval The code is the same, with Servo’s being driven by a Servo Driver based on Bluetooth’s values. The Robotic Arm code can be seen as a series of servo motors working together to simulate human movements. And depending on the character given, we’ll use this to move the motor(s). If true, we’ll store the incoming data in the ‘state’ variable. In the loop() section, we’re constantly checking whether any data is coming from the robotic glove. Initialize the Serial Port at Baud Rate 4800 to start the Bluetooth communication Serial.begin(4800) // Initialise default communication rate of the Bluetooth module Minimum and maximum angle of servo motor Int servo_joint_L_parking_pos_i = servo_joint_L_parking_pos ![]() Keep track of the current value of the motor positions Degree of robot servo sensitivity - Intervals For the HCMODU0097 the default I2C addressĬonst int servo_joint_L_parking_pos = 60 * I2C slave address for the device/module. The following variables are used to find the previous/increment and get the Servo’s current position. In the code, we can start by adding this library and declaring the servo variables. This way, we can power multiple servo motors, all controlled by an Arduino. The Robotic Arm code makes use of the HCPCA9685 Library (for the Servo Driver). Important: The Robotic Arm will only be as accurate as the robotic Glove controls, So it’s worth getting this right. The following diagram is great to test the flex sensor and the Accelerometer. Arduino Nano – The microcontroller would perform as the brains of the Robotic Glove.Bluetooth (HC-05) Module – Sending data to Robotic Arm HC-05 Receiver.LED – The LED will light up when a human gesture control has been sent to the Arduino.Accelerometer (MPU6050 ) – We can control the Motor by mapping human gestures from X, Y, Z plane.Flex Sensor – Based on the bend of the finger, the current changes which we could use to send a signal to the Motor.The Robotic Glove consists of the following components: ![]() This ‘Robot Glove Exoskeleton’ design just blended well with the design of the Robotic Arm. ![]() However, you can use a standard Builder’s Glove for prototyping the Robotic Glove. In keeping true to the Robotic Arm’s aesthetics, you can print a 3D Printed Exoskeleton Gauntlet to use as your Robotic Glove. Robotic Glove – Fully Assembled with Flex Sensor And With enough gestures, the robotic arm comes to life! We can then send a specific value mapped of a gesture to the Robotic Arm to control a servo motor via Bluetooth. We are using these sensors to detect a change in a gesture.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |