newrudeman

[Shenzhen University Electric Competition] Simple motion capture gloves

 
Overview

This project won the first prize in the 2020 Shenzhen University Electronic Design Competition

Title: Simple motion capture glove design (microcontroller embedded control)

  • Design and make a simple motion capture glove to capture the motion of human finger joints.

1. Basic parts:

  • Design and make a motion capture glove (for both left and right hands). The hardware device on the glove can be fixed on the glove body. It is lightweight and can work for a long time.
  • Motion capture gloves must have a calibration function, that is, they must be placed on a tabletop before wearing to correct sensor errors. The motion capture gloves can detect the bending of at least two joints of each finger in real time and can transmit the data to the computer through a wireless module.
  • Design a computer-side computer program for displaying three-dimensional movements of human hands, which can communicate wirelessly with motion capture gloves, and convert the data sent by the gloves into synchronized human hand movement states in the program.

2. Play part:

  • In addition to detecting the bending of finger joints, the motion capture gloves can also detect the movement of the human hand and forearm in space, and display it in the host computer program.

3. Special instructions

  • Sensors on the gloves can use micro-inertial measurement units, bend sensors, etc. to detect joints.

 

2020 Shenzhen University Electronic Design Competition Final Report

1. demand analysis

  • The topic requires the production of a simple motion capture glove, which requires the recognition of at least two joints for each finger, and the corresponding 3D model can be displayed through the host computer.
  • The structure of human fingers is relatively complex and consists of multiple joints. Therefore, multiple sensors need to be placed at key locations on the hand to collect movement information of each finger and joint.
  • We can think of the handle as a model with multiple vectors connected end to end. Take a finger as an example as shown below.
image.png
  • Vector A and vector B are two vectors of fixed length. They are connected end to end and represent two finger joints. The point where AB is connected is the finger joint.
  • If you need to know the state of two vectors in space, there are two ideas:
    • Know the angle α and angle γ;
    • Know the angle α and β.
  • Starting from one of the above two ideas, the position of the two vectors in space can be determined through an algorithm. To construct a hand model in the same way, all that needs to be done is to add vectors and connection relationships, and extend it to three dimensions.

2. Plan selection and demonstration

Solution 1: Based on stm32 as the main control, using multiple bending sensors.

  • Multiple bending sensors are used to collect the bending degree between finger knuckles and convert it into the relative angle between the knuckles (i.e., the β angle in the above figure).
  • Advantages: Program and circuit design are convenient.
  • Disadvantages: The bending sensor is expensive and is too expensive to make into a glove. A bending sensor can only identify the rotation of one rotation axis. Some joints of the hand can rotate in two directions. This part of the rotation needs to be identified by adding a bending sensor.

Option 2: Based on stm32 as the main control, using multiple MPU6050 sensors.

  • Multiple MPU6050s are used to collect the angle between each finger knuckle and the world coordinate, and the motion model of the hand is restored through conversion and data processing.
  • Advantages: Each MPU6050 can identify angle changes on three rotation axes, so it can respond to hand movements more accurately, and the cost is lower than using bending sensors.
  • Disadvantages: There are many circuit boards, there are some difficulties in wiring, and the program design is slightly more complicated than the other two solutions.

Option 3: Based on stm32 as the main control, multiple potentiometers are used to identify the finger angle:

  • Multiple potentiometers are linked to the finger joints, and the partial voltage value is obtained through the ADC and then converted into an angle to restore the motion model of the hand.
  • Advantages: low price, simple circuit, simple programming
  • Disadvantages: The gloves have a complex design and structure and are easily damaged.

After comprehensive consideration, option 2 is adopted as the sensor solution. Other functional implementation plans are as follows:

1. Wireless communication: The Bluetooth serial port module is used to realize the communication between the microcontroller and the PC, which is convenient and fast.
2. The PC side uses unity3d to develop a host computer. The PC side calls the serial port API to obtain the microcontroller data, and then reflects it to the model.

3. System architecture and function description

System block diagram.png
 
The project system architecture is shown in the figure above. The microcontroller obtains the Euler angle of each finger by collecting the MPU6050, and sends it to the PC through the Bluetooth serial port according to a certain protocol. The PC obtains the Euler angle of each finger by parsing the data packet, converts and reflects it. on the 3D model.
 
Host computer.png
 
The host computer based on Unity3D is as shown above, which can display the current movement of the glove in real time.

4. Theoretical analysis and calculation

Two MPU6050s are arranged on each finger, one is arranged on the palm, and one is arranged on the forearm. A total of twelve MPU6050s are used.
 
Euler angles in 12 sets of world coordinates can be obtained from these sensors. In the program designed by the host computer, the end knuckle will rotate as a whole by following the previous knuckle, and then rotate relative to the previous knuckle. Therefore, it is necessary to convert the Euler angle in world coordinates into the relative rotation angle between the knuckles before transmitting it to the host computer.
  • Import legend:
image.png
 
The angles obtained by MPU6050 are γ and α. To obtain the size of β, according to the geometric relationship, you only need to subtract them, that is:
 
image.png
 
The symbol in the final value represents the direction of rotation, so by extending this example to three-dimensional coordinates, the formula can be obtained. The angle of each knuckle relative to the previous knuckle is:
 
image.png
 
 
Among them, △ represents the relative rotation angle with the previous knuckle, measure represents the Euler angle measured by the current knuckle, and up represents the Euler angle measured by the previous knuckle.

5. Circuit diagram and PCB

  • Power circuit:
This work uses two power supply methods, one is powered by the data line, and the other is powered by the battery. The picture below shows the charging circuit using TC4056. The battery can be charged using the data cable. There is also a charging indicator light and a fully charged indicator light. The battery uses 3.7V lithium battery.
 
image.png
 
Use the USB_micro interface as the charging and powering interface. The following figure shows a voltage reduction circuit using ME6219C33's 5V to reduce 3.3V.
 
image.png
 
Since the design is mainly powered by the battery, and the battery's voltage of 4.2V (or lower) may cause the ME6219C33 to not work properly and output a voltage of 3.3V, so the battery voltage needs to be raised to 5V first to make the buck circuit work stably. , to ensure that the circuit works normally. The picture below shows the switching power supply boost circuit of BL8531.
 
image.png
  • Main control chip circuit:
The main control chip uses STM32F103C8T6. The following three pictures show the minimum system circuit of the chip. (Including clock circuit, BOOT circuit, filter circuit, reset circuit, programming circuit, main chip circuit)
 
image.png image.png image.png
  • Electricity measurement circuit:
Since the board is relatively small, the required power measurement accuracy does not need to be very high. We only need to know whether the battery needs to be charged, so we chose a simple resistor divider circuit and used the ADC function of the chip to measure the battery voltage in order to know when the battery should be charged. Charge.
 
image.png
  • LED circuit: This work has a power indicator light, a power indicator light (lights up when the battery needs charging), and two spare indicator lights.
image.png
  • Bluetooth circuit: The gloves need to exchange data with the computer. This work chooses the Bluetooth module HC08 to transmit data. The following is part of the Bluetooth circuit.
image.png
  • Six-axis circuit:
The hand posture is calculated using the six axes on the main control board (located on the back of the hand) and the six axes on the fingers and wrist.
 
There are two small six-axis modules on each finger, which can detect and calculate the posture and movement of the upper and lower joints of the finger. The IIC interfaces of the two modules are shared and then connected to the six-axis interface on the main control board. The main control uses different addresses to determine which module it is, so as to clarify which module's data it is. The address of the upper joint (and wrist) is 1101001, and the address of the lower joint is 1101000.
  • The picture below shows the six-axis circuit of the wrist and upper joints.
image.png
  • The picture below shows the six-axis circuit of the lower joint.
image.png
  • The picture below shows the six axes on the main control.
image.png
  • The picture below shows the six-axis interface.
image.png

6. Debugging and test results

After the design is completed, the actual production is carried out.
  • The first step: first weld the microcontroller main control board and test its hardware circuit to test whether the voltage of each module is normal, whether the boost and buck chips, power management chips, etc. are working properly. The test results are normal.
  • Step 2: Program a simple routine for the microcontroller and test whether the microcontroller can work normally. The test results are normal.
  • Step 3: Use the microcontroller to read the MPU6050 on the main control board and test whether it is working normally. The test result is normal.
  • Step 4: Weld the MPU6050 small modules on each finger, test the hardware for short circuit and open circuit, and test whether the microcontroller can be used to communicate with it normally. All MPU6050 tests are normal.
  • Step 5: Test and configure the Bluetooth communication chip. The test is normal.
At this point, all hardware testing is completed and the software debugging phase is entered.
  • The first step: read the data of all MPU6050 modules, package it and send it to the PC host computer through Bluetooth.
  • Step 2: Use Unity3D to write a program on the PC host computer, call the serial port API provided by the .NET framework to read and analyze the data, and map the data to the 3D model.
  • Step 3: Optimize the program.
Finally, the circuit board is assembled onto the glove to complete the design.
 
The final test results are: the upper function can recognize the movement of two joints on the five fingers of the glove, as well as the movement of the forearm and palm in space, with a static calibration function. The gloves transmit data wirelessly and have power management to charge and discharge.
 
The following are circuit and actual pictures:
Actual picture 1.png

Actual picture 2.png Actual picture 3.png Actual picture 4.png
 
 

7. Demo video

 
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-05-08 15:29:24

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号