菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
118
0

你们要的练手项目来了

原创
05/13 14:22
阅读数 34408

  最近有越来越多做电气的小伙伴开始学习C#来做上位机开发,很多人在学习一段时间后,都有这种感觉,似乎学到了很多知识,但是不知道怎么应用,因此我找了一个真实的上位机小项目,让大家来练练手。这篇文章主要对这个项目案例及开发过程做个整体介绍。

PS:文末提供完整录播视频及源码

1. 项目案例介绍

        很多人对单片机有一种特殊的情怀,总是感觉单片机很神秘或很复杂。单片机简称MCU,即Micro Control Unit,是将CPU、存储器(RAM和ROM)、多种IO接口等集成在一块芯片上,形成一个芯片级计算机,可以这么说,在我们的生活和工作中,单片机无处不在。

        单片机MCU的使用分为两种,一种是单片机开发,就是嵌入式开发,一般采用C语言编程,另一种是单片机应用,比如和单片机进行通信控制,而作为上位机开发人员,我们更多偏向于后者,上位机按照既定的协议对单片机实现控制。控制系统的使用者是操作人员,他们不可能去直接操作单片机,因此上位机的职责是将单片机和操作人员联系起来,通过UI界面给操作人员提供展示和控制,再将指令传递给单片机来执行动作,最终形成一套完整的控制系统。

        本案例是一个基于单片机的串口通信案例,主要是通过上位机来实现对电机的速度控制,并显示电机实时速度。调速模式会有多种,包括电机正转、电机反转、电机正反转、双向混沌、单向混沌五种模式。

2. MCU协议分析

针对五种调速模式的描述如下所示:

调速模式调速说明
电机正转 发送一个大于0的速度给单片机
电机反转 发送一个小于0的速度给单片机
电机正反转 发送一个速度正负值及换速时间给单片机
单向混沌 随机或手动生成N个的随机正数,定时发送给单片机
双向混沌 随机或手动生成N个随机自然数,定时发送给单片机

从上面的描述,我们可以看出,调速的本质都是发送报文给单片机,不同的调速模式影响的是发送的数值和发送的频率,因此上位机和单片机之间必须要约定协议,协议如下所示:

功能命令协议格式备注
电机正转 S+速度值+; 速度值必须为正数,如S+40;
电机正转 S+速度值+; 速度值必须为负数,如S-40;
电机正反转 T+时间+S+速度值+; 时间为换速时间,如T5+-40;
单向混沌 S+速度值+; 速度值为正数,生成随机数,定时发送
双向混沌 S+速度值+; 速度值为自然数,生成随机数,定时发送
速度反馈 V+速度值+; 返回的速度值,如V+40;
速度清零 S+速度值+; 速度值设为0,即S+0;或者S-0;

协议规定:单片机与上位机之间的通信格式为:波特率9600,数据位8,停止位1,校验位无,设定速度范围为10-300rpm,反馈速度范围为0-1000rpm,换算时间范围为1-10秒,通信编码格式为ASCII。

上位机开发功能要求:

  • 与单片机之间的连接提示及断开提示
  • 可以自由选择通讯端口
  • 调试模式可以随时调整
  • 混沌模式随机数支持自动生成和人为输入/复制粘贴
  • 支持换速时间快速设置
  • 支持实时速度显示并可控
  • 支持实时数据写入并可控
  • 支持发送命令可存储、可追溯
  • 软件打开时保持上次关闭时的状态

3. 上位机界面设计

根据开发功能要求,整体设计界面如下图所示:

 

 当选择双向混沌或者单向混沌时,会弹出混沌值设置界面,支持自动生成及手动输入,如下图所示:

 

 

4. 粉丝福利

        这个项目整体来说难度不是很大,但是很具有代表性,非常适合上位机初学者来练手。很多初学者学习最大的问题就是手头没有实际项目,大家可以把这个当做一个实际项目来练手。

        为了感谢大家一直以来的支持,我们已经将这部分的视频整理好,免费赠送给大家学习,需要视频及源码的小伙伴,赶紧联系助教老师领取吧!

名额有限,先到先得,活动仅限当天。如添加不上,请+:xiketang789

录播视频大纲如下:

 

发表评论

0/200
118 点赞
0 评论
收藏