资料介绍
描述
硬件构建
这个怎么运作
HuskyLens 是一款人工智能机器视觉传感器,用于检测和跟踪线路。赫斯基镜头的数据为我们提供了是否检测到线条的详细视图。如果检测到,则提取 (x, y)。有了这些数据,CH32V307 开发板就被编程为使用电机驱动器屏蔽来控制电机。这篇博客解释了使用 CH32V307 开发板和 HuskyLens 制作基于视觉的线追随者。
基本硬件组件
CH32V307开发板
成套工具
CH32V307V-EVT-R1
CH32V307V-EVT-R1 是一款基于 WCH CH32V307 RISC-V 微控制器的开发板,具有以太网端口、USB Type-C 端口和八个可通过接头访问的 UART 接口。
WCH 设计的 RISC-V4F 32 位 RISC-V 内核高达 144MHz,支持单周期乘法和硬件除法,以及硬件浮点单元 (FPU)。它具有高达 64KB 的 SRAM 内存,可存储高达 256KB 的 Flash。
该开发板具有网络 - 千兆以太网 MAC、10 Mbps PHY、USB - 1x USB 2.0 OTG 全速接口、1x USB 2.0 主机/设备接口,内置 480 Mbps PHY、8x USART、2x CAN 接口、2 线调试接口, SDIO, FSMC 内存接口, DVP 数字视频接口, 80x GPIO 端口, 16 个外部中断, 2x I2C, 3x SPI, 2x I1S, 2x 12-bit DAC, 2-unit 16-channel 12-bit ADC, 16 -通道 TouchKey,10 个定时器,2 个通用 DMA 控制器,总共 18 个通道,4 个放大器。
CH32V307 具有电源管理功能,可提供以下封装:LQFP64M 和 LQFP100。
这是开发板的很多规格。
赫斯基镜头
HuskyLens 是一款易于使用的 AI 机器视觉传感器。具备人脸识别、物体追踪、物体识别、线路追踪、颜色识别、标签(二维码)识别等多种功能。
您可以从https://www.dfrobot.com/product-1989.html购买赫斯基镜头?
赫斯基镜头
第 1 步:开始使用 CH32V307
首先,我们使用此链接下载 MounRiver Studio (MRS) 。
新建Mounriver工程,选择CH32V307 [RISC-V]系列,模板类型选择RT-Thread ,点击finish。
设置 RT-Thread Studio
在开发 Mounriver IDE 时,我遇到了正式支持 WCH 板和其他开发板的 RT-Thread Studio。出于这个原因,我以后将在这个项目中使用RT-Thread Studio 。
首先,从这里下载 IDE并将其安装在您的 PC 上。
打开RT-Thread SDK Manager,在WCH平台下安装CH32V307V-R1。这可能需要一些时间。
安装后,创建一个新项目。将文件命名为 LFR,选择 Board CH32v307V-R1和 RT-thread 为最新。单击完成按钮。
我们编写了一个基本程序来切换内置 LED。
GPIO_ResetBits(GPIOA,GPIO_Pin_0); while(1) { GPIO_SetBits(GPIOA,GPIO_Pin_0); rt_thread_mdelay(500); GPIO_ResetBits(GPIOA,GPIO_Pin_0); rt_thread_mdelay(500); }
1 / 2 • LED1 关闭
第 2 步:连接 HuskyLens
使用 K-Flash将固件更新到HUSKYLENSWithModelV0.4.9Class.kfpkg 。
安装 HUSKYLENS 库
首先,首先下载并安装 HUKYLENS 库。
将“HUSKYLENS”复制到我们的项目目录下如下图
连接图
CH32V307 USART3 引脚为 PB10 和 PB11。这些用于与 HuskyLens 通信。如图所示,L293D 电机驱动器屏蔽连接到 Arduino 接头。
CH32V307 -> 赫斯基镜头
Vcc -> Vcc
接地 -> 接地
USART3_Tx(PB10) -> RX
USART3_Rx(PB11) -> TX
如上所述进行连接。
与赫斯基镜头接口
HuskyLens 协议设置 您需要设置 HuskyLens 的协议类型。协议应为“序列号 115200”。当然也可以采用Auto Detect协议,简单易用。
您可以在下面找到用于与 Huskylens 交互的示例代码。
int main(void) { for(char s=0; sUSART2 */ { USART_SendData(USART3, TxBuffer[TxCnt++]); while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); /* waiting for sending finish */ } Delay_Ms(100); while(!Rxfinish); /* waiting for receiving int finish */ printf("RxBuffer:%s\r\n", RxBuffer); while(1) { while(TxCnt < TxSize) /* USART3--->USART2 */ { USART_SendData(USART3, TxBuffer[TxCnt++]); while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET) ; } Delay_Ms(1000); } }
回复
while (!huskylens.begin(USART3)) { printf("Begin failed!\n"); printf("1.Please recheck the "Protocol Type" in HUSKYLENS (General Settings>>Protocol Type>>Serial 9600)\n"); printf("2.Please recheck the connection.\n"); Delay_Ms(1000); } Delay_Ms(100); while(1) { if (!huskylens.request()) printf("Fail to request data from HUSKYLENS, recheck the connection!"); else if(!huskylens.isLearned()) printf("Nothing learned, press learn button on HUSKYLENS to learn one!"); else if(!huskylens.available()) printf("No block or arrow appears on the screen!"); else { printf("###########"); while(huskylens.available()) { HUSKYLENSResult result = huskylens.read(); printResult(result); } } } void printResult(HUSKYLENSResult result){ if (result.command == COMMAND_RETURN_BLOCK){ Serial.println(String()+F("Block:xCenter=")+result.xCenter+F(",yCenter=")+result.yCenter+F(",width=")+result.width+F(",height=")+result.height+F(",ID=")+result.ID); } else if (result.command == COMMAND_RETURN_ARROW){ Serial.println(String()+F("Arrow:xOrigin=")+result.xOrigin+F(",yOrigin=")+result.yOrigin+F(",xTarget=")+result.xTarget+F(",yTarget=")+result.yTarget+F(",ID=")+result.ID); } else{ Serial.println("Object unknown!"); } }
操作与设置
向左或向右拨动功能键,直到屏幕顶部显示“线路跟踪”字样。
长按功能键进入线跟踪功能的参数设置。
向右或向左拨动功能键,直到选中“学习多个”,然后短按功能键,向左拨动关闭“学习多个”开关,即进度条上的方形图标转动向左转。然后短按功能键即可完成此参数。
您也可以通过设置“LED 开关”来打开 LED。这在黑暗的环境中非常有用。
向左拨功能键,直到选中“保存并返回”,短按功能键保存参数,参数自动返回。
线学习:建议在 HuskyLens 的视野范围内,保持内联学习,没有交叉线。将“+”符号指向该行。然后 HuskyLens 会自动检测线条,屏幕上会出现一个白色箭头。此时,短按“学习键”即可完成学习过程。屏幕上会出现一个蓝色的路线方向箭头。
火车
线预测:当 HuskyLens 检测到已学习的线时,屏幕上会自动出现一个蓝色箭头。箭头的方向表示线的预测方向。
预测
现在设备已准备好进行线路检测。
线检测 - 图像
第 3 步:连接电机驱动器
由于 CH32V307 板具有 Arduino 兼容接头,因此我购买了一个 L293D 双电机驱动器扩展板,可以轻松插入开发板。
CH32V307板+电机驱动
我们为电机 1 和电机 2 分配和配置 PWM 引脚,其中引脚 PA8 和 PA0 分配给电机 1,引脚 PB6 和 PB8 分配给电机 2。
电机测试使用以下代码完成。
/* * Pin PA8 and PA0 - Motor 1 * Pin PB6 and PB8 - Motor 2 */ u8 speed = 100; // -255 to +255 int main(void) { USART_Printf_Init(115200); printf("Speed Control"); TIM1_PWMOut_Init( 100, 48000-1, speed, speed); // fwd delay(5000); TIM1_PWMOut_Init( 100, 48000-1, -speed, -speed); // rev while(1); }
第 4 步:框图
完整的连接可以按照框图完成,看起来像这样。
框图
第 5 步:外壳设计
我花了 4 美元从当地商店买了一个标准的机器人底盘。我们在底盘的左右两侧安装了 BO 电机和一个用于平衡重量的滚珠脚轮。
带 BO 电机和车轮的底盘
接下来,我们用给定的 L 夹安装赫斯基镜头,它会像这样转动。
HuskyLens - 线跟随器
现在我们将 CH32V307 和电机驱动器添加到机箱中。我有 2 个锂离子电池来运行这个机器人。这些电池串联以提供 7.4V。这也可以用锂聚合物电池代替。
第6步:让我们看看它是否有效
最后,是时候运行机器人了。我运行 HuskyLens 传感器并连续打印计算出的速度,这就是我得到的。
线检测 - 图像
虽然它不是一个完美的线路跟随器,但通过校准 PID 常数,我们可以实现更平滑的运行。
如果您在构建此项目时遇到任何问题,请随时问我。请建议您希望我接下来做的新项目。
如果它真的对您有帮助,请竖起大拇指,并关注我的频道以获取有趣的项目。:)
- CH32V303_305_307 数据手册 1次下载
- SLG59M307V 数据表
- SLG59M307V 数据表
- 兆易创新GD32F307VG-mbed开发板电路原理图
- ASEMI桥式整流器KBP301-KBP307产品手册 7次下载
- CH32V307EVT 应用例程
- IMX307LQR-C图像传感器芯片规格书 67次下载
- RISC-V IDE MounRiver Studio V1.51更新点介绍
- FR301-THRU-FR307-DO-201AD规格 0次下载
- RISC-V MCU应用开发教程之CH32V103
- CH341A编程器软件V1.4相关资料下载 15次下载
- 电压跟随器的应用电路 58次下载
- 科普什么是电压跟随器
- 基于V_I转换电路的精密电流跟随器设计 162次下载
- 新视线V系列说明书
- 电压跟随器的特点和应用 853次阅读
- 射极跟随器的特性与应用 1491次阅读
- 什么是电压跟随器?它有什么作用? 2640次阅读
- 后备数据寄存器概述及读写操作 1160次阅读
- 电压跟随器的用途是什么 3701次阅读
- 电压跟随器设计以及仿真验证 9017次阅读
- 基于沁恒CH32V307的8串口服务器设计方案 5114次阅读
- 射极跟随器的作用是什么 1w次阅读
- 源极跟随器的特点_源极跟随器的电路 3.3w次阅读
- 嵌智捷科技:自动跟随系统轻松实现前后双向智能跟随 6371次阅读
- 射极跟随器有什么性能和特点 7.9w次阅读
- 电压跟随器主要用途在哪里 6.7w次阅读
- AD转换器输入之前接一个电压跟随器是为什么 1.8w次阅读
- 电压跟随器是什么?电压跟随器的特点和作用以及电路特点解析,如何计算? 8.9w次阅读
- EyeTech视线跟踪技术如何成为主流? 1821次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多