Welcome to Self-balancing Robot Car repository
08.K210-Color line tracking
K210-Color line tracking
K210-Color line trackingHardware connectionControl principleMain codeProgram flow chartExperimental phenomenon
The tutorial mainly demonstrates the function of color line patrol (colored route) by combining the balance car with the K210 vision module.
xxxxxxxxxxThe tutorial only introduces the standard library project code
Hardware connection
| Peripherals | Development board |
|---|---|
| K210 vision module: VCC | 5V |
| K210 vision module: TXD | PA2 |
| K210 vision module: RXD | PA3 |
| K210 vision module: GND | GND |
Control principle
The K210 vision recognition module identifies the colored route on the tracking map, and sends the center coordinates of the identified route to the development board. The development board controls the balance car to patrol the line according to the center coordinate information.
K210 Vision Module

xxxxxxxxxxThe K210 Vision Module itself is a development board. For detailed usage, please refer to the module supporting tutorial
Download the program
Connect the SD card of the K210 Vision Module to the computer through a card reader, rename the program file to main.py and copy it to the SD card, then reinstall the SD card into the SD card slot of the K210 Vision Module.
xxxxxxxxxxThe K210 vision module and development board case codes are in the same folder: the folder name will distinguish the development board to which the code belongs
Color learning
After the color recognition program is started, the K210 vision recognition module will display a box on the screen. We need to align the box with the colored route to be patrolled for color learning (the box needs to be completely inside the color route); after the color learning is completed, the camera will recognize the colored route, and you can observe the recognition effect yourself.
Communication protocol
The K210 vision module program will automatically calculate the center coordinates of the recognized color route and send it to the development board for processing.
| Data header | Data (X represents X-axis data, Y represents Y-axis data: data occupies three characters) | Data tail | Example |
|---|---|---|---|
| $ | XXXYYY | # | $160120#: represents the center position (160, 120) |
| $ | XXXYYY | # | $080060#: represents the center position (80, 60) |
Main code
The tutorial mainly explains the code for implementing the K210 visual line patrol function. For detailed code, refer to the corresponding project file.
Turn_K210_PD
K210 visual line patrol PID implementation code. If the line patrol effect of the balance car is not good, modify the PID parameters of the app_line.c file. It is not recommended to modify the PID parameters of the pid_control.c file (the PID parameters of the pid_control.c file are subject to the parameters finally confirmed in the balance car parameter adjustment tutorial).
xint Turn_K210_PD(float gyro){int k210Turn = 0;float K210x_median_err = 0;K210x_median_err=K210_data.k210_X-K210_Minddle;k210Turn=K210x_median_err*K210_Trun_KP+gyro*K210_Trun_KD;return k210Turn;}
Set_track_speed
Set the patrol speed of the balancing car.
xxxxxxxxxxvoid Set_track_speed(void){Move_X = Track_Speed;}
Program flow chart
Briefly introduce the process of function implementation:

Experimental phenomenon
Software code
The BalancedCar_color_line.hex file generated by the project compilation is located in the OBJ folder of the BalancedCar_color_line project. Find the BalancedCar_color_line.hex file corresponding to the project and use the FlyMcu software to download the program to the development board.
xxxxxxxxxxThe corresponding functions can only be realized after both the K210 visual module and the development board download the programProduct supporting information source code path: Attachment → Source code summary → 5.Balanced_Car_Extended → 08.BalancedCar_color_line
Experimental phenomenon
After the program is started, press the KEY1 button according to the OLED prompt to start the color line patrol function of the balance car: OLED displays the program function name in real time (Start follow line!); K210 visual recognition module recognizes the color route and patrols the line; if the color route is not recognized, the balance car will keep moving forward.
The program has voltage detection. If the voltage is less than 9.6V, a low voltage alarm is triggered and the buzzer will sound.Common situations that trigger voltage alarms:1. The power switch of the development board is not turned on, and only the Type-C data cable is connected for power supply2. The battery pack voltage is lower than 9.6V and needs to be charged in time