Welcome to STM32-BoardCar repository
4. Ultrasonic obstacle avoidance (servo gimbal version)
Ultrasonic obstacle avoidance (servo gimbal version)
Ultrasonic obstacle avoidance (servo gimbal version)1. Software-Hardware2. Brief principle1. Hardware schematic diagram2. Physical connection diagram3. Control principle3. Main functions4. Experimental Phenomenon
This tutorial is a comprehensive experiment combining multiple peripherals. You can first understand a single peripheral before performing this experiment.
1. Software-Hardware
STM32F103CubeIDE
STM32 Robot Development Board
9G servo gimbal, 310 motor*4: external
Type-C data cable or ST-Link
Download programs or simulate the development board
2. Brief principle
1. Hardware schematic diagram

2. Physical connection diagram
- 9G servo gimbal installation
When installing, you need to pay attention to the color of the wiring silk screen and the servo interface

Note: The 9G servo gimbal and the ultrasonic interface on the development board are connected through a male-to-female DuPont cable
| Ultrasonic module | STM32 development board |
|---|---|
| VCC | VCC |
| Trig | Trig |
| Echo | Echo |
| GND | GND |
Note: Refer to the color of the servo wire for servo wiring. This experiment requires connecting 5V and GND jumper caps
| Steering gear | Development board |
|---|---|
| VCC(red) | 5V |
| SIG(yellow) | S1 |
| GND(brown) | GND |
- Ultrasonic servo gimbal calibration
When installing, be sure to center the servo before installing;
The [ultrasonic_servo_calibrating.hex] file is provided under the tutorial folder for calibration. After burning this program, the servo will rotate to 90°. At this time, install the connecting plate of the ultrasonic and servo gimbal (the actual picture is as shown below) to the servo. The ultrasonic installation needs to be facing straight ahead (it will have no effect if it is slightly off).

- Motor Wiring



xxxxxxxxxxFor battery pack assembly, please see [5. Smart Car Experiment: Car Line Patrol]
3. Control principle
Through the ultrasonic module of the 9G servo gimbal, the distance of the object in front is obtained, the servo controls the distance to the left and right and the front, and the car is controlled to move forward, backward, turn left, and stop based on the distance.
xxxxxxxxxxThe ultrasonic module can obtain the distance of the obstacle in front, and we use this distance to determine the position of the obstacle on the car:When there is an obstacle directly in front of the car, the servo of the 9G servo gimbal will rotate to the left and right sides, and finally the distance to the left and right sides of the car is obtained. We control the car to turn left or right based on this distance. As for this initial The angle and the angle of rotation on the left and right sides can be modified by modifying the code.
- Program flow chart

| Module | Function |
|---|---|
| Ultrasonic module | External information collection: Obtaining the distance to obstacles |
| Steering gear | Control the steering of the ultrasonic module |
| Motor | Motion Control |
3. Main functions
This tutorial does not use PID to control the movement of the car
xxxxxxxxxxThe functions introduced before will not be introduced again!
Function: Ultrasonic_servo_avoidance
| Function prototype | void Ultrasonic_servo_avoidance(uint16_t distance) |
|---|---|
| Function description | Ultrasonic following |
| Input parameters | distance: maximum obstacle avoidance distance |
| Return value | None |
xxxxxxxxxxFor the underlying driver, you can refer to the tutorials in Chapter 3 and Chapter 4.For the application layer, you can read the source code in the project file yourself
4. Experimental Phenomenon
After successfully downloading the program, press the RESET button on the development board to observe the effect of the car!
xxxxxxxxxxFor program download, please refer to [2. Development environment construction and use: program download and simulation]
Phenomenon:
Obstacles: The car stops first and then judges the distance to the left and right, and then turns left and right according to the distance.
No obstacles: Car moves forward
For specific judgment, you can refer to the flow chart or code.
You can see the experimental phenomenon [Ultrasonic obstacle avoidance (servo gimbal version)_Experimental phenomenon.mp4]