1背景 新年伊始,不期而至的新冠肺炎让一切工作和生活发生了巨大改变,到现在也不知道本篇评测报告的完成是因此提前还是推后。GD32VF103V_EVAL开发板单独引出了MCU可用的IO口,几乎具备了所有的MCU包含的功能,可以处理控制具备相应IO口的器件,比如机械手臂机器人。机械手臂机器人可以提高生产的自动化水平,减轻劳动强度,保证产品质量,实现安全生产,特别是在恶劣的工作环境中,机器人可以代替人进行工作,意义更为重大。以下内容将简要阐述GD32VF103V_EVAL开发板控制THIRS-1型机械臂的开发流程。 2硬件系统 THIRS-1型机械臂有两种工作模式,本地模式和遥控模式。这里选择采用遥控模式,用RS232串口接收控制字节,根据控制协议,控制机械臂上的舵机。GD32VF103V_EVAL开发板则根据5向按键的状态,确定舵机的工作状态,然后通过RS232串口,根据对应的控制协议,发送控制字节。因此将开发板的RS232串口与机械臂上的RS232串口相连即可完成硬件系统搭建,如图1所示。 图1硬件系统 3软件系统 3.1软件流程设计 根据GD32VF103V_EVAL开发板控制THIRS-1型机械臂的需求,软件流程图如图2所示。 图2软件流程图 3.2开发环境搭建 开发板的文档有中英文两种,方便国人阅读。开发板的开发环境使用的是芯来科技的NucleiStudioIDE,该IDE也是基于一个开源项目Eclipse,官方已经配置好了一切,无需用户再行设置。开发环境和相关手册可以到https://www.riscv-mcu.com/quickstart-quickstart-index-u-GD32VF103C-START.html下载。 NucleiStudioIDE是一个免安装的软件,下载后直接解压到某个目录下即可直接运行。需要注意的是,NucleiStudioIDE是基于Java环境运行的,所以需要安装JDK运行环境,并正确配置好系统环境变量。 3.3新建工程 C/C++Project,界面如图3所示。 图3新建C/C++工程 随后选择CManagedBuild选项,然后点击Next。在弹出的CProject对话框中,输入ProejctName,选择ProjectType为Executable项下的GigaDeviceRISC-VCProject,Toolchains为RISC-VCrossGCC,点击Next。在弹出的Projectsettings对话框中,选择MCU型号:GD32V103,点击Next。在弹出的Projectsettings对话框中,使用默认选项,点击Next。在弹出的SelectConfigurations对话框中,点击Selectall,点击Next。在弹出的GNURISC-VCrossToolchain对话框中,使用默认选项,点击Finish。 在点击Finish后需要稍等片刻,一个最小工程就创建完成,该工程可以下载到开发板实现LED流水灯功能,创建后工程目录结构如图4所示。 图4新建工程及main.c 开发板提供的例程如图5所示。 图5开发板例程 其中02_GPIO_Key_Polling_mode是针对5向按键的工程文件,04_USART_Printf是实现串口通信的工程文件,可以从两个工程中main.c中复制相关代码加以利用,实现图2所示的软件流程。 需要说明的是,如何修改串口通信的参数设置,例程02中有函数gd_eval_com_init,可以在gd_eval_com_init上右击,选择OpenDeclaration,即可打开串口设置的代码段,如图6所示。默认波特率为usart_baudrate_set(com,115200U);可以根据实际要求加以改变,其他设置根据通信协议无需更改。 图6打开串口通信设置 4测试 按照硬件系统设计要求实现硬件连接,根据软件流程完成程序编辑,编译并下载后,看到机械臂可以按照5向按键的操纵实现方位和俯仰的动作,如图7所示以及相关视频。 图7开发板控制机械臂 视频连接:https://kphshanghai.m.chenzhongtech.com/fw/photo/3x8y79bjnvikdd4?fid=1732745948&cc=share_wxms&groupName=E_2_181030224916592_G_1&appType=21&docId=34&photoId=3x8y79bjnvikdd4&shareId=119520801782&shareToken=X5dUOXkJlfQx_-9u3zlOQr0mM27w&userId=3xqqzrkiyhrg53s&shareType=2&et=×tamp=1580396001694 5总结 新建工程创建过程很简单,向导很清楚,容易上手。生成的工作目录划分清楚,代码清晰。不足的是首次创建的时间、编译的时间、下载的时间有点长,开发过程中有关函数原型说明等资料较少,网络搜索的结果也很少有帮助,对单片机以及c语言编程较熟悉的工程师来说能较快加以解决,但不太适合初学者的入门。之后如能有更多时间和精力,计划用开发板做一个简易的示波器或频谱仪。