”WinForm上位机+OV7670摄像头+STM32+蓝牙“图像采集系统(二)PC-MCU蓝牙通信及WinForm上位机开发

本文介绍了一种基于WinForm的图像采集系统,通过STM32和OV7670摄像头获取图像,经蓝牙串口传输至PC。图像处理简化为灰度图像,降低数据量。使用HC05蓝牙模块进行串口通信,WinForm程序接收数据并实时显示图像,同时能保存为.bmp文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇Blog谈了一下stm32驱动ov7670进行图像采集,这一篇谈一下后续的几个步骤:


1、图像处理

因为对图像质量要求不高,而且串口蓝牙通信速度局限于波特率。所以决定只传输灰度图像,简单地用了RGB565三个分量取高四位的均值。将两个像素拼接在一起,放在一个unsigned char变量里,前一像素的4位灰度值放在高四位,后一像素放在低四位。 这样就只需要传输320 * 240 / 2 = 38400个byte就可以了。


2、图像传输

用的经典蓝牙模块(hc05或hc06),很简单的串口程序,不再赘述。


3、图像显示


先来一张效果图!




如上图:是通过C#开发的WinForm程序,功能就是接受串口送来的像素灰度值,刷新出图片显示在右侧,并保存.bmp格式的图片到电脑


1)首先,将电脑蓝牙打开,连接MCU侧的经典蓝牙模块,在控制面板中打开蓝牙,并添加设备。在设备管理器中确保Bluetooth驱动已安装(上方红框)。

其实PC内置的蓝牙,对PC而言也就是一个串口设备,跟一般的232串口并无区别。所以可以在端口里可以看到两个COM口(下方红框),在上位机中打开COM26(因机而异)即可。

注:有的PC蓝牙打不开,可以百度一下如何打开,记得要去官网下载蓝牙驱动程序并安装



2)Winform程序


打开高逼格的VS2015



新建Windows窗体程序




通过左侧的工具箱,添加各种空间。通过右侧的属性窗口,更改属性值,最终的布局如下图:




网上类似的上位机程序应该有很多,下面附上我的程序,一部分也是参照网友的程序修改的,得于网络,馈于网络:

用到的东西应该也就  串口类SerialPort 、 线程Thread 、 Bitmap类 三样东西,相对简单。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace MyCom
{
    public partial class Form1 : Form
    {
        SerialPort sp = null;   //声明一个串口类
        bool isOpen = false;    //打开串口标志位
      
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值