本次参加2022年嵌入式大赛,在此进行代码开源,使用时,可以直接参考user里面的文件。 项目如下:主控板为赤兔CH32V307VCT6,车体为麦克纳木轮+亚克力底板,电机驱动为l298n,电机就是普通的小黄电机1:120,上位机采用英伟达jetson nano b01,深度相机采用Intel realsense 双目语眼跟踪相机T265。上位机通过ROS订阅话题,将话题内容串口发送给开发板,此处发送t265内部slam处理后的空间坐标信息。开发板根据内部串口中断程序作出判断,根据当前坐标向指定坐标行进。
1.lcd程序 赤兔ch32v307的使用其实stm32的使用类似基本时可以直接拉来使用的。入门可以前往b站搜索,有一个up做了很多期关于赤兔开发板的介绍。 在user文件夹里面添加lcd.c,lcd.h,font.h文件,原处的cs接口出错了,已经进行修改,可以直接在程序中使用,驱动lcd屏幕。 在串口调试过程中,可以将串口内容打印在屏幕上,以便调试。 运行效果如下,可以参考一下,USART_Printf_Init(115200);那个必须要有,具体为什么暂时没清楚,有大佬可以告知。 使用时参数设置如下,可以参照lcd.c文件的内容,进行修改。 lcd_show_num(90,140,90,20,24); lcd_show_num(150,140,150,20,24); x y num len size (备注:size只有16 24 32三种大小,屏幕大小为240*240,len这里设为20)
2.串口函数 在main.c中串口函数定义与中断的使用已经写明。 此处强烈建议使用USART2,板载买来的时候跳线帽已经接好,而且程序例程也很多,方便开发。如果想使用usart1或别的话,需要改跳线帽。 ch32v307板子串口函数类似于stm32与openmv通信,调试时可以先用单片机代替上位机试通信。 提交的代码当中,我在openmv中写的发送内容为data=bytearray([0x41 ,0x43 ,cx ,cy,0x44]),其中0x41和0x43为包头,0x44为包尾,cx,cy为上位机中t265的数据。 上位机发送函数,网上有很多,也可以自己写,这里不过多阐述。先判断包头是否正确,将数据存入数组当中保存,保存后判断包尾是否正确,如果包尾也正确,那就保存数据,否则这个数组清零,重新开始接收。
3.Delay程序 debug.c里面已经写好了,可以直接使用非常方便。
1. 整体效果图 2. 电路连接 如图所示,电机交叉连接,需要保证斜向两个电机转的方向一致。这样四个电机便分为两对,每对电机并联出两根线到l298n处,具体麦克纳木轮的使用可以再CSDN里面搜一下,非常多。这样就可以通过控制GPIO的引脚高低电平,控制电机正反转。不同的正反转可以控制小车的前后左右移动。main.c里面已经写好了函数,可以直接使用。 3. 上位机接线 通过usb to ttl的tx和rx接到板子上的usart2上,注意GND也接上。 在运行过程当中,可以打开reaalsense——viewer查看里程计信息和imu数据
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。