Skip to content

Commit e5c7299

Browse files
committed
update to 2.3.5
1 parent 23e1c8c commit e5c7299

152 files changed

Lines changed: 15290 additions & 6987 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/boards/index.md

Lines changed: 164 additions & 65 deletions
Large diffs are not rendered by default.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
layout: default
3+
title: 编写代码
4+
parent: 开始制作MINI
5+
description: "code"
6+
nav_order: 2
7+
permalink: /mini_code
8+
grand_parent: <span class="simple">Simple<span class="foc">FOC</span>Mini</span>
9+
grand_grand_parent: <span class="simple">Simple<span class="foc">FOC</span>开发板</span>
10+
toc: true
11+
---
12+
13+
14+
# 编写代码
15+
当你将所有[硬件连接好](mini_connect_hardware)之后:
16+
- 微控制器
17+
- 无刷直流电机
18+
- 位置传感器
19+
- 电源
20+
21+
我们就可以开始最令人兴奋的部分——编码了!
22+
23+
<span class="simple">Simple<span class="foc">FOC</span>Mini</span>完全受Arduino <span class="simple">Simple<span class="foc">FOC</span>库</span>支持,因此请确保你安装了最新版本的<span class="simple">Simple<span class="foc">FOC</span>库</span>。如果你还没有获取该库的版本,请按照[安装说明](installation)进行操作。
24+
25+
开始为Arduino <span class="simple">Simple<span class="foc">FOC</span>Mini</span>编码时,建议的步骤是:
26+
27+
- [测试传感器](#step-1-testing-the-sensor)
28+
- [测试电机](#step-2-testing-the-motor)
29+
- [电压运动控制](#step-3-voltage-motion-control)
30+
- [更复杂的控制策略](#step-4-more-complex-control-strategies)——位置和速度
31+
32+
你也可以参考我们的[入门指南](example_from_scratch)
33+
34+
## 步骤1. 测试传感器
35+
首先要确保你的传感器能正常工作。运行库中针对你的传感器的示例之一。你可以在以下路径找到库示例:
36+
```sh
37+
utils >
38+
sensor_test >
39+
encoder >
40+
- encoder_example
41+
- encoder_software_interrupts_example
42+
magnetic_sensors >
43+
- magnetic_sensor_i2c_example
44+
- magnetic_sensor_spi_example
45+
- magnetic_sensor_analog_example
46+
hall_sensors >
47+
- hall_sensor_example
48+
- hall_sensor_software_interrupts_example
49+
```
50+
51+
当你的传感器能读取到正确的值后,就可以继续测试电机和传感器的组合了。
52+
53+
<blockquote class="warning"> <p class="heading">更新示例引脚分配</p>
54+
测试传感器时,确保更新引脚分配。</blockquote>
55+
56+
## 步骤 2. 测试电机
57+
在运行 FOC 算法之前测试无刷直流电机,我们建议运行开环示例!
58+
```sh
59+
motion_control >
60+
open_loop_motor_control >
61+
- open_loop_position_example
62+
- open_loop_velocity_example
63+
```
64+
<blockquote class="warning"> <p class="heading">更新示例引脚分配</p>测试电机时,确保更新你在<a href="mini_connect_hardware">硬件配置</a>中选择的引脚分配。</blockquote>
65+
如果你不确定你的电机有多少极对数,请查看示例代码:
66+
67+
```sh
68+
utils >
69+
find_pole_pair_number >
70+
- encoder
71+
- magnetic_sensor
72+
```
73+
这段代码会估算你的电机的极对数。请多次运行这段代码以获得准确的估算结果。通常情况下,10 次中有 7 次能得到较好的读数。
74+
75+
76+
## 步骤 3. 电压运动控制
77+
当你的传感器正常工作,并且你知道了电机正确的极对数后,就可以开始使用 FOC 算法了。最佳做法是从电压控制的示例开始:
78+
```sh
79+
motion_control >
80+
torque_voltage_control >
81+
- encoder
82+
- magnetic_sensor
83+
- hall_sensors
84+
```
85+
86+
## 步骤 4. 更复杂的控制策略
87+
当你准备好使用电压进行转矩控制后,就可以继续学习位置和速度控制算法了。这些算法需要多花一点时间进行调优,但能让你获得很好的结果。你可以通过以下路径找到运动控制环路的库示例:
88+
89+
```sh
90+
motion_control >
91+
position_motion_control >
92+
- encoder
93+
- magnetic_sensor
94+
- hall_sensors
95+
torque_voltage_control >
96+
- encoder
97+
- magnetic_sensor
98+
- hall_sensors
99+
velocity_motion_control >
100+
- encoder
101+
- magnetic_sensor
102+
- hall_sensors
103+
```
104+
要了解更多关于SimpleFOCMini的可能项目,请访问 [示例项目](examples)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
layout: default
3+
title: 连接硬件
4+
parent: 开始制作MINI
5+
description: "Connecting SimpleFOCMini with your hardware."
6+
nav_order: 1
7+
permalink: /mini_connect_hardware
8+
grand_parent: <span class="simple">Simple<span class="foc">FOC</span>Mini</span>
9+
grand_grand_parent: <span class="simple">Simple<span class="foc">FOC</span> Boards</span>
10+
has_children: True
11+
has_toc: False
12+
---
13+
14+
# 硬件连接
15+
16+
<p>
17+
<img src="extras/Images/mini_gif_connection.gif" class="width50">
18+
</p>
19+
20+
将 <span class="simple">Simple<span class="foc">FOC</span>Mini</span> 连接到微控制器、无刷直流电机和电源非常简单。
21+
22+
<span class="simple">Simple<span class="foc">FOC</span>Mini</span> 开发板有两个版本,v1.0 和 v1.1。这两个版本功能相同,但引脚顺序不同。<br>它们很容易区分:
23+
- 你可以很容易地在开发板的丝印上看到版本标识。
24+
- v1.1 在排针的第一行有两个 GND 引脚,而 v1.0 在排针的第一行只有一个 GND 引脚。
25+
26+
<div class="image_icon width30" >
27+
<a href="mini_v1_connect_hardware" >
28+
<img src="extras/Images/miniv1.png" >
29+
<i class="fa fa-external-link-square fa-2x"></i>
30+
<p> <span class="simple">Simple<span class="foc">FOC</span>Mini</span> v1</p>
31+
</a>
32+
</div>
33+
<div class="image_icon width30" >
34+
<a href="mini_v11_connect_hardware" >
35+
<img src="extras/Images/miniv1.1.png" >
36+
<i class="fa fa-external-link-square fa-2x"></i>
37+
<p> <span class="simple">Simple<span class="foc">FOC</span>Mini</span> v1.1</p>
38+
</a>
39+
</div>
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
---
2+
layout: default
3+
title: Mini v1
4+
description: "Connecting SimpleFOCMini with your hardware."
5+
nav_order: 1
6+
permalink: /mini_v1_connect_hardware
7+
parent: 连接硬件
8+
grand_parent: 开始制作MINI
9+
grand_grand_parent: <span class="simple">Simple<span class="foc">FOC</span>Mini</span>
10+
grand_grand_grand_parent: <span class="simple">Simple<span class="foc">FOC</span> Boards</span>
11+
toc: true
12+
---
13+
14+
15+
16+
# 将硬件连接到 <span class="simple">Simple<span class="foc">FOC</span>Mini</span> v1
17+
18+
将 <span class="simple">Simple<span class="foc">FOC</span>Mini</span> 连接到微控制器、无刷直流电机和电源非常简单。
19+
20+
<p>
21+
<img src="extras/Images/mini_where.png" class="width40">
22+
</p>
23+
24+
## 微控制器
25+
- <span class="simple">Simple<span class="foc">FOC</span>Mini</span> 设计为独立的无刷直流驱动器,基本上可以与任何微控制器配合使用。
26+
- 该板有 10 个引脚用于连接微控制器
27+
28+
<p>
29+
<img src="extras/Images/mini_req_opt.png" class="width30">
30+
</p>
31+
32+
有 5 个引脚需要连接
33+
34+
| 引脚名称 | 描述 |
35+
| --- | --- |
36+
| GND | 接地(公共地) |
37+
| IN1 | PWM 输入相 1 |
38+
| IN2 | PWM 输入相 2 |
39+
| IN3 | PWM 输入相 3 |
40+
| EN | 驱动器使能 |
41+
42+
<blockquote class="warning"><p class="heading">注意:引脚顺序</p>
43+
<span class="simple">Simple<span class="foc">FOC</span>Mini</span> 的 v1.1 版本与 v1.0 版本相比,IN1、IN2、IN3 和 EN 的顺序有所改变。
44+
</blockquote>
45+
46+
使用 <span class="simple">Simple<span class="foc">FOC</span>Mini</span> 时必须连接这些引脚。3 个 PWM 引脚和使能引脚用于控制 DRV8313 驱动器,在 <span class="simple">Simple<span class="foc">FOC</span>库</span> 中,它们对应于 `BLDCDriver3PWM` 类的参数。公共接地引脚也非常重要,以确保驱动器芯片能正确读取所有 PWM 和使能引脚。一旦确定将哪些引脚用于 `INx``EN` 引脚,就可以在 Arduino 草图中将它们提供给 `BLDCDriver3PWM` 类。
47+
48+
```cpp
49+
BLDCDriver3PWM driver = BLDCDriver3PWM(IN1, IN2, IN3, EN);
50+
```
51+
52+
此外还有 5 个可选引脚。
53+
54+
引脚名称 | 描述
55+
--- | ---
56+
3.3V | 3.3V 输出 - **不是输入**
57+
GND | 接地
58+
nRT | 复位(低电平有效)
59+
nSP | 休眠(低电平有效)
60+
nFT | 故障输出(低电平有效)
61+
62+
SimpleFOCMini 基于 DRV8313 驱动器,该驱动器集成了 3.3V 稳压器,在某些应用中可能用于为传感器等供电。因此,SimpleFOCMini 的 3.3V 引脚可用作 3.3V 电源引脚,最大输出电流为 10mA。SimpleFOCMini 引脚上露出的两个 GND 引脚都连接到同一个地,因此您可以选择对您的应用更方便的那个。
63+
<blockquote class="warning"><p class="heading">注意:3.3V LDO 电源限制</p>DRV8313 带有 3.3V 稳压器,它连接到 <span class="simple">Simple<span class="foc">FOC</span>Mini</span> 的 3.3V 引脚。但是它的限制是 10mA,通常不足以给微控制器供电。但它可能足以给 LED 灯或某些位置传感器供电。</blockquote>
64+
65+
<br>
66+
引脚 nFT(故障)是 SimpleFOCMini 的低电平有效输出,可通过读取该引脚来验证 DRV8313 驱动器是否正常工作。如果该引脚为低电平,则表示 DRV8313 处于故障状态,无法驱动电机。然后,引脚 nRT(复位)也是低电平有效,可用于复位 DRV8313 驱动器以重新初始化其内部状态并退出故障状态,这不能通过简单地切换使能引脚来完成。最后,引脚 nSP(休眠)是低电平有效引脚,可将 DRV8313 置于低功耗休眠模式,消耗电流低于 1uA。
67+
68+
69+
## 无刷直流电机
70+
- 电机相 a、b 和 c 直接连接到电机端子连接器 M1、M2 和 M3
71+
72+
<blockquote class="warning"><p class="heading">注意:功率限制</p><span class="simple">Simple<span class="foc">FOC</span>Mini</span> 设计用于内部电阻高于 R>10 欧姆的云台电机。该板的绝对最大电流为 5A。请确保在您的项目中使用该板时,所使用的无刷直流电机符合这些限制。<br>如果您仍然想将此驱动器与电阻非常低(R < 1 欧姆)的无刷直流电机一起使用,请确保限制设置到板上的电压。<br>有关电机选择的更多信息,请访问 <a href="bldc_motors">无刷直流电机文档</a></blockquote>
73+
74+
## 电源
75+
- 电源电缆直接连接到端子引脚 `+``-`
76+
- 所需电源电压为 8V 至 35V。
77+
78+
79+
## 连接示意图示例
80+
81+
SimpleFOCMini 可以连接到任何微控制器 (MCU) 的引脚组合,只要确保 mini 的 GND 引脚连接到 MCU 的 GND 引脚,MCU 的 3 个具备 PWM 功能的引脚连接到 `IN1``IN2``IN3` 引脚,并且 MCU 的一个数字引脚连接到 EN 引脚。
82+
下图显示了 SimpleFOCMini 与 Nucleo 开发板的连接示例。
83+
84+
<img src="extras/Images/mini_connection_mucleo.png" class="width60">
85+
86+
<span class="simple">Simple<span class="foc">FOC</span>Mini</span> 可以直接插入 Nucleo 板的 Arduino 引脚座(从引脚 10 到 GND 引脚),这样可以减少所需的导线数量。有关此示例连接的更多信息,请参见 [此库示例](mini_example_nucleo)
87+
88+
--- | --- | --- | ---| --- | ---
89+
Mini 引脚 | EN | IN3 | IN2 | IN1 | GND
90+
Nucleo 引脚 | 10 | 11 | 12 | 13 | GND
91+
92+
```cpp
93+
BLDCDriver3PWM driver = BLDCDriver3PWM(13, 12, 11, 10);
94+
```
95+
96+
下图显示了 SimpleFOCMini 与 Arduino UNO 的连接示例。
97+
<img src="extras/Images/mini_connection_uno.png" class="width60">
98+
99+
<span class="simple">Simple<span class="foc">FOC</span>Mini</span> 可以直接插入 UNO 板的 Arduino 引脚座(从引脚 8 到 12 引脚,引脚 12 可作为 GND 引脚),这样可以减少所需的导线数量。有关此示例连接的更多信息,请参见 [此库示例](mini_example)
100+
101+
--- | --- | --- | ---| --- | ---
102+
Mini 引脚 | EN | IN3 | IN2 | IN1 | GND
103+
UNO 引脚 | 8 | 9 | 10 | 11 | 12
104+
105+
```cpp
106+
BLDCDriver3PWM driver = BLDCDriver3PWM(11, 10, 9, 8);
107+
```
108+
109+
下面显示了 Arduino UNO 与 SimpleFOCMini 连接的另一个示例
110+
<img src="extras/Images/mini_connection_uno2.png" class="width60">
111+
112+
--- | --- | --- | ---| --- | ---
113+
Mini 引脚 | EN | IN3 | IN2 | IN1 | GND
114+
UNO 引脚 | 4 | 5 | 6 | 9 | GND
115+
116+
```cpp
117+
BLDCDriver3PWM driver = BLDCDriver3PWM(9, 6, 5, 4);
118+
```
119+
120+
下图显示了 SimpleFOCMini 与 stm32 Bluepill 开发板的连接示例。
121+
<img src="extras/Images/mini_connection_bluepill.png" class="width60">
122+
123+
124+
--- | --- | --- | ---| --- | ---
125+
Mini 引脚 | EN | IN3 | IN2 | IN1 | GND
126+
Bluepill 引脚 | PB15 | PA8 | PA9 | PA10 | GND
127+
128+
```cpp
129+
BLDCDriver3PWM driver = BLDCDriver3PWM(PA10, PA9, PA8, PB15);
130+
```

0 commit comments

Comments
 (0)