1. 上位机的作用
在嵌入式项目开发中,无论是单片机项目、嵌入式Linux项目、FPGA项目,上位机始终是一个很重要的部分,主要用于:
- 数据显示(波形、温度等)
- 用户控制(LED,继电器等)
- 文件传输(图像、音频等)
下位机(单片机)与 上位机之间进行数据通信有四种主要方式:
- 串口
主要适用于下位机和上位机在一起的系统,使用USB转串口与PC相连,也可以使用无线透传串口模组,将串口信号转化为射频信号传输;
- USB
速度相较于串口大幅提升,适合于工控设备传输文件(比如3D打印机、激光切割机等),但是对下位机要求较高,需要支持USB协议;
- 网络
一方面适用于物联网项目,一方面适用于嵌入式Linux系统(已经移植支持了网络);
- 蓝牙
不多用。
2. 常用上位机开发方式
上位机软软件开发主要包括以下两种:
Windows上位机(基于串口通信)
- WinForm或者WPF(C#)
在Windows上,最早用VB语言开发,后来由于C 的发展,采用MFC开发,再后来微软发布了基于.NET框架的面向对象语言C#,更加稳定安全,再配合微软强大的VS进行开发,效率奇高;
c#和Java的语法类似,WPF相较于WinFormden优势在于,可以使用xml语言编写更加炫酷的界面;
- Qt(C )
一方面可以跨平台运行,另一方面,对于嵌入式Linux中已经熟练掌握Qt开发的开发者,使用Qt再来开发上位机非常方便;
- Labview
有着更加丰富好看的数据显示控件和逼真的交互控件,并且可以图形化开发;
- Matlab
多适合于需要上位机进行信号处理的项目,比如本身掌握Matlab中基本信号处理的科研人员,只需要使用下位机(Arduino)来读取ADC的数据并发送到PC进行处理,还可以进行图像处理,语音信号处理等;
Android上位机(基于网络通信)
- 使用Java或者kotlin编写(APP)
利用Android Studio开发,多适用于物联网项目的数据显示和控制;
- 使用XML CSS JavaScript编写(小程序)
微信提供了开发工具,多适用于物联网项目的数据显示和控制,相对APP比较轻量级,并且开发方式和网页开发类似。
3. 教程概况
目前作者已经出的教程有:
3.1. C#上位机开发教程
地址:https://blog.csdn.net/mculover666/category_8632945.html
3.2. IoT App开发
这个系列教程由作者和B站up主“阿正啷个哩个啷”联合出品,有文字教程和视频教程,非常简单粗暴,没有Java基础也能开发:
- 文字教程:
地址:https://blog.csdn.net/mculover666/category_9780817.html
- bilibili视频教程:
地址:https://space.bilibili.com/265908761/video
3.3. Matlab上位机开发
从本篇文章开发,我将带领大家一起掌握如何通过 Matlab 开发上位机,目前计划的有以下这些,敬请期待:
- Matlab上位机开发(二)Hello,World
- Matlab上位机开发(三)波形显示(幅度和频率可调节)
- Matlab上位机开发(四)Matlab调用自带摄像头或者USB摄像头并显示
- Matlab上位机开发(五)Mtalab串口通信
希望本系列教程可以给你带来帮助~