ArduPilot · configuration
TFmini-S with ArduPilot I²C / UART / TTL / UART · Arduino: integration and configuration guide
Setup, connection, configuration and code guidance for TFmini-S with ArduPilot. The original files are available in Materials and downloads. Documented interface: I²C, UART / TTL, UART.
Applicable setup
TFmini-S · ArduPilot · I²C, UART / TTL, UART · Arduino
Original Chinese technical instructions
北醒(北京)光子科技有限公司
如何使用 6 台 TFmini-S 实现无人机避障 功能
Page1
北醒(北京)光子科技有限公司
TFmini-S
https://ai.benewake.com/en/products/tfmini-s/TFmini-S 与其他产品相比,具有成本低、体积小、功耗低、接口多等优势,能满足不同使用者的需 求。其最大检测距离为 12 米,FOV 为 2 度。TFmini-S 具有较强的抗干扰能力,可于室外强光下 工作。TFmini-S 激光雷达采用 UART(TTL)/I2C 通信接口,供电电压为 5V,平均功耗为 0.6w, 重量仅有 4.7g。
产品配置方法
为实现点阵的避障方式,我们需要单独设置每台雷达的 I2C 地址并切换到 I2C 通讯接口。配置指 令如下表所示:
Page2
北醒(北京)光子科技有限公司
使用串口转 USB 转接板将雷达与电脑连接,通过串口助手或者北醒上位机,发送配置指令更改
TFmini-S 的通讯接口,示例如下:①更改 I2C 地址
配置指令: 5A 05 0B ADDR SU
SU 代表校验和,ADDR 代表 I2C 地址。
将 TFmini-s 设置为地址 11(雷达默认 I2C 地址是 10),发送指令:5A 05 0B 11 7B 。更改 I2C 地址为 12、13、14、15 的指令如下:
5A 05 0B 12 7C
5A 05 0B 13 7D
5A 05 0B 14 7E
5A 05 0B 15 7F
②切换通讯接口为 I2C
配置指令: 5A 05 0A 01 6A
③保存设置
指令:5A 04 11 6F
Page3
北醒(北京)光子科技有限公司
通过 Arduino 检查配置结果
将 i2c_scanner. ino 程序加载到 Arduino 中,然后按照下方图片进行连接。
左侧图片:将每台 TFmini-S 进行 I2C 地址配置后用银色记号笔标记。右侧图片:将 TFmini-S 与开发板连接在一起,通过 5V 电源进行供电,同时将雷达的数据线连接到 Arduino 上。
如果配置成功,可以看到如下结果:
如何将 TFmini-S 的接口配置恢复为串口?
通过使用 Bud Ryerson 的软件库(https://github.com/budryerson/TFMini-Plus-I2C ), 我们通过 Arduino 设置 –TFmini-S 的参数。
下面是将雷达的接口切换为串口的代码:
Page4
北醒(北京)光子科技有限公司
#include <Wire.h> // Arduino standard I2C/Two-Wire Library
#include "printf.h" // Modified by to support Intel based Arduino
#include <TFMPI2C.h> // TFMini-Plus I2C Library v0.2.2
TFMPI2C tfmP; // Create a TFMini-Plus I2C object
void setup()
{
Wire.begin(); // Initialize two-wire interface
Serial.begin( 115200); // Initialize terminal serial port
printf_begin(); // Initialize printf library.
delay(20);
printf( "BACK to SERIAL: ");
if( tfmP.sendCommand( SET_UART_MODE, 0))
{
printf( "passed.\r\n");
}
else tfmP.printErrorStatus();
}
// = = = = = = = = = = MAIN LOOP = = = = = = = = = =
void loop()
{
}推荐使用 Arduino 进行 I2C 接口的测试和调试。在 ArduPilot 中使用的大部分数据库都基于
Arduino。
Page5
北醒(北京)光子科技有限公司
配置 ArduPilot
配置基于以下链接:
https://ardupilot.org/dev/docs/code-overview-object-avoidance.html
您可以配置多个雷达以便覆盖多个"扇区"(避障区域)。当前方案使用 5 个 TFmini-S 覆盖前向 180° 的避障区域,保留 1 个 TFmini-S 做后向的避障:
AVOIDANGLEMAX,1000AVOIDBEHAVE,0 AVOIDDISTMAX,1 AVOIDENABLE,2 AVOID_MARGIN,1
PRX_TYPE,4
RNGFND2ADDR,16 RNGFND2FUNCTION,0 RNGFND2GNDCLEAR,10 RNGFND2MAXCM,700 RNGFND2MINCM,10 RNGFND2OFFSET,0 RNGFND2ORIENT,4 RNGFND2PIN,-1 RNGFND2POSX,0 RNGFND2POSY,0 RNGFND2POSZ,0 RNGFND2_PWRRNG,0
Page6
北醒(北京)光子科技有限公司
RNGFND2RMETRIC,1 RNGFND2SCALING,3 RNGFND2STOPPIN,-1 RNGFND2_TYPE,25
RNGFND3ADDR,17 RNGFND3ORIENT,6 RNGFND3_PIN,-1
RNGFND4ADDR,18 RNGFND4ORIENT,7
RNGFND5ADDR,19 RNGFND5ORIENT,0
RNGFND6ADDR,20 RNGFND6ORIENT,1
RNGFND7ADDR,21 RNGFND7ORIENT,2
定高功能使用 TFmini Plus ,保持默认的串口接口与 SERIAL 3 相连接,配置如下: RNGFND1ADDR,0 RNGFND1GNDCLEAR,10 RNGFND1MAXCM,700 RNGFND1MINCM,20 RNGFND1ORIENT,25 RNGFND1TYPE,20
测试
静态测试:在 Flight Data 界面下,按 Ctrl-F 和按下 Proximity 按钮可以打开下图界面。将"PRX_TYPE" 参数设置为使能状态,界面可以显示雷达的距离数据。
Page7
北醒(北京)光子科技有限公司
将 RC7 设置为避障模式。
测试项目
1.起飞准备
2.定高飞行
3.启动避障动能
4.飞向墙体,观察无人机的反应
测试视频如下:
https://youtu.be/yRlFXSe8uFc
Page8
Use and verification
The technical content follows the readable source material. Confirm the product hardware revision, flight-stack or software version, and field safety boundary against the original material and current platform documentation.
Materials and downloads
- 北醒(北京)光子科技有限公司 · Chinese source (PDF)Complete inquiry to download
