# BLDC FOC Control

## Overview

The **bldc_foc** project contains the speed control and position control of DC brushless motors.
- Use the **FOC** control algorithm

## Configurations

- This program uses the **BLM57050-1000** brushless motor of "Leisai Intelligence", please refer to the [Leisai Intelligence](https://leisai.com/) website for the specific parameters of the motor.

- Board settings refer to the development board documentation [Motor Pin](lab_board_motor_ctrl_pin) related content

## Running the demo

The motor runs at a speed of 20r/s.
The following data can be configured by serial console ：

`speed` float, range +40~-40, unit r/s

`pos` int, (-4000, +4000) corresponds to (-360, +360) degrees

`mode` bool, 1- Speed mode 0- Position mode

- Speed mode

	Enter the correct speed parameters with serial console.

- Position mode

	Set the position of the motor's shaft, then the motor's shaft will be locked at the specified position

```console
Mode selection:
0. Location mode.
1. Speed mode.
Enter mode code:
1
Speed mode, motor run, speed is: 20.000000.
Input speed:
10.5

Speed mode, motor run, speed is: 10.500000.
Input speed:

```

```{warning}

- After the motor is powered on, it will first perform the "alignment" action. If the motor is disturbed at this time, it will produce a jitter.

- Pay attention to the current size, when abnormalities occur, please cut off the power at any time

- When entering values for speed and position, a line break is required as an end-of-entry flag

```
