IWR1443BOOST开箱测试:https://bbs.eeworld.com.cn/thread-1101610-1-1.html
SDK及例程下载:https://bbs.eeworld.com.cn/thread-1102315-1-1.html
XWR14XX 数据路径:https://bbs.eeworld.com.cn/forum.php?mod=post&action=newthread&fid=154
IWR1443 BOOST 的CLI命令:https://bbs.eeworld.com.cn/thread-1104699-1-1.html
一、mmWave检测结果
out_of_box_demo例程的数据处理放在 void MmwDemo_dataPathTask(UArg arg0, UArg arg1) 函数中。其中包含了1D FFT数据处理、2D FFT数据处理、距离偏差测量、CFAR处理、角度估算、数据通过DAT_port输出等。数据处理完后会存储在MmwDemo_DataPathObj(结构体位置 C:\ti\mmwave_sdk_02_01_00_04\packages\ti\demo\xwr14xx\mmw)结构体中,我们就可以在该结构体当中找到需要的数据进行处理。
二、人体位置信息
新建人体位置信息结构体,用于存储检测范围内人体数量及坐标。
#define MY_MAX_OBJ_OUT 100
/*用于存储检测到的人体的坐标*/
typedef struct my_detectedObj_t
{
int32_t x; /*单位毫米*/
int32_t y; /*单位毫米*/
} my_detectedObj;
typedef struct My_DataPathObj_t
{
/*检测到的人体数量*/
uint32_t my_numObjOut;
/*输出人体位置数组*/
my_detectedObj objOut[MY_MAX_OBJ_OUT];
} My_DataPathObj;
三、人体位置检测
在main.c文件,加入自定义头文件
结构体初始化
定义打印信息缓存
新建信息处理函数
其中,int32_t My_DataProcess(MmwDemo_DataPathObj *obj)函数用于把SDK中结构体MmwDemo_DataPathObj的数据通过算法得到人体数量及位置信息,这里就不体现源函数了。当检测范围内有检测到人体是,返回 0,否则为其他值。
在void MmwDemo_dataPathTask(UArg arg0, UArg arg1)函数中,注释掉原数据发送函数MmwDemo_transmitProcessedOutput(gMmwMCB.loggingUartHandle,dataPathObj);,加入自定义的函数My_transmitProcessedOutput(gCLI.cfg.cliUartHandle,dataPathObj);
由于原数据发送函数是通过DATA_port串口输出,注释掉后,DATA_port将不会输出数据。新增的数据数据发送函数由CFG_port串口输出。
重新编译工程并烧入程序。通过串口调试助手就可以查看到检测的信息。
至此,就可以通过mmwave来进行人体位置轨迹跟踪,外接的MCU就可以通过串口接收的信息进行相关的处理。
毫米波mmwave来进行人体位置轨迹跟踪
谢谢分享
这么神奇人体位置都能检测,如果要是有什么动物靠近呢,不会出错吧。
引用: alan000345 发表于 2019-12-27 09:00
这么神奇人体位置都能检测,如果要是有什么动物靠近呢,不会出错吧。
引用: a736015 发表于 2019-12-27 10:22 这个只能靠算法去实现了。有看过ti的一个在线培训,介绍区分人体和植物的。
这样啊,ti还是比较厉害的。
TI培训发起的评测吗?弱弱问一下怎么参加这个评测??
,我想不用mmwave visualizer发送指令,应该怎么用matlab发指令,用串口助手获取数据。能否提供一个帖子,谢谢
新手,真的不太懂,非常需要帮助,有偿,加Q1142291205
请问,这些函数应该是TI的原始文件里就有的吧?难道要自己编写?还有串口获得的数据是什么数据?获得这些数据有啥用?还有就是这些数据在外面处理后(比如python分类)怎么输出分类的结果?