# 反馈舵机

我们为2024年3月之后生产的舵机引入了位置反馈功能。该功能利用相同的PWM信号线返回舵机的实际位置，为机器人开辟了新的控制接口。

该功能从2024年5月在所有带有标签或激光标记的舵机上实现。如果标签缺失，它们可能仍然具备该功能。然而，该功能仅适用于基于ESP32主控芯片的BiBoard主板（不包括NyBoard主板）。

如果您想检查是否具备此功能，需要先升级机器人的固件。然后在Arduino的[串口监视器](https://docs.petoi.com/chinese/arduino-ide/chuan-kou-jian-shi-qi#da-kai-chuan-kou-jian-shi-qi)或移动应用的[创建自定义命令](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#zi-ding-yi-ming-ling-dong-zuo)中发送串口命令“**f**”。如果在您转动动舵机时，串口监视器界面中持续打印变化的数值，那么它们是位置反馈。数值表的列数对应于具有反馈的舵机的数量。

为了执行以下功能，所有舵机必须全部是反馈舵电机：

### 自动校准关节舵机

* 串口监视器\
  在串口监视器中[发送串口指令](https://docs.petoi.com/chinese/arduino-ide/chuan-kou-jian-shi-qi#da-kai-chuan-kou-jian-shi-qi)“**c16**”。机器人将进入休息姿态。将机器人身体在桌面上按压平整，将头转向正前方，并在串口监视器中发送任意英文字符。机器人将自动设置所有关节的校准值。
* 手机app\
  [创建](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#chuang-jian-dan-ge-ming-ling)一个名为“**自动校准**”（可自定义）的命令按钮，并使用代码：“`c16`”。点击此按钮，机器人将进入其休息姿势。将机器人到桌子上按压平整，并将其头部转正前方。创建一个名为“**退出**”（可自定义）的命令按钮，并使用代码：“`d`”。点击此按钮，机器人将自动设置其所有关节的校准值。

{% embed url="<https://www.bilibili.com/video/BV1zW7JzJEdW/>" %}

自动校准后，部分关节的角度与标准位置可能仍然存在一些偏差，需要进一步精细校准，但这样已节省了大量时间。

### 运动跟随

* 串口监视器\
  在串口监视器中[发送串口指令](https://docs.petoi.com/chinese/arduino-ide/chuan-kou-jian-shi-qi#da-kai-chuan-kou-jian-shi-qi)“fF”，然后慢慢拖动其中一条腿。其他腿会跟随其运动。
* 手机app\
  [创建](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#chuang-jian-dan-ge-ming-ling)一个名为“**跟随**”（可自定义）的命令按钮，并使用代码：“`fF`”。点击此按钮后，慢慢拖动其中一条腿。其他腿会跟随其运动。\
  创建一个名为“**退出**”（可自定义）的移动应用程序命令，并使用代码：“`d`”。点击此按钮，可以退出此模式。

{% embed url="<https://www.bilibili.com/video/BV1Cn7HzFELb/>" %}

### 通过直接扭转关节学习新技能

* 串口监视器\
  在串口监视器中[发送串口指令](https://docs.petoi.com/chinese/arduino-ide/chuan-kou-jian-shi-qi#da-kai-chuan-kou-jian-shi-qi)“**`fl`**”，表示学习新动作。先将腿部移动到起始位置，保持机器人稳定大约2秒钟。机器人将倒计时，听到蜂鸣器发出轻微地哔哔声表示开始录制。然后你可以旋转各关节舵机，它不会记录微小动作，您可以在过程中间稍做暂停。录制124帧后，如果您在串口监视器中输入任意英文字符或停止移动超过2秒钟，它将停止录制。发送串口指令“`fr`”，表示回放所教动作。\
  \&#xNAN;**{反馈舵机学习技能动作演示视频}**
* 手机app\
  [创建](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#chuang-jian-dan-ge-ming-ling)一个名为“**开始学习**”（可自定义）的命令按钮，并使用代码：“`fl`”，点击此按钮后，机器人会倒计时，然后发出轻微的哔哔声，表示机器人开始学习新的动作。将机器人的关节（比如：腿）移动到您想要的起始位置，然后保持机器人稳定大约2秒钟，它不会记录小的动作，所以你可以在中间暂停。124帧后，如果您在串行监视器中输入任何字符或停止移动它超过2秒，它将停止录制。创建一个名为“**执行**”（可自定义）的命令按钮，并使用代码：“`fr`” ，点击此按钮后，机器人会执行所教的动作。
* 该技能也将打印在[串口监视器](https://docs.petoi.com/chinese/arduino-ide/chuan-kou-jian-shi-qi#da-kai-chuan-kou-jian-shi-qi)中（如下图所示），并且您可以将其导入到[技能创作坊](https://docs.petoi.com/chinese/zhuo-mian-ying-yong/ji-neng-chuang-zuo-fang#dao-ru-dong-zuo)和[手机应用](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#dao-ru-ben-di-chuang-zuo-de-ji-neng-ji-neng-chuang-zuo-fang)中。

<figure><img src="https://docs.petoi.com/~gitbook/image?url=https%3A%2F%2F1565080149-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MQ6a951Q6Jn1Zzt5Ajr-887967055%252Fuploads%252FhJLDjV69fPNOjQ3qhh3S%252Fimage.png%3Falt%3Dmedia%26token%3D3a70f065-5739-474d-a1fe-943bf450460d&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=7ed88513&#x26;sv=2" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.bilibili.com/video/BV1RR7EzuEAD/>" %}

如果您想基于反馈舵机编写新的应用程序，请参&#x8003;***`OpenCatEsp32/src/espServo.h`***&#x4E2D;的源代码。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.petoi.com/chinese/api/chuan-kou-xie-yi/fan-kui-duo-ji.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
