使用STM32让示波器显示图片及播放动画思路的经验分享

博主分享了如何使用STM32F407VE开发板通过DAC功能在示波器的XY模式下显示图形的过程。通过OpenCV处理图像,将像素坐标转换为电压值,然后由STM32不断输出到DAC,实现示波器上的动态图形显示。代码示例包括了图像到坐标数组的转换和STM32的DAC驱动程序。

到手了一块某夕夕上一百三入手的STM32F407VE的开发板,一个字,香!把玩时发现了DAC这个看起来就很有意思的功能,软件输出了正弦波三角波之后突然想起了示波器的XY模式,刚好这个芯片有一个DAC两路通道,于是便折腾了一下用XY模式显示图形,可以显示图形了要播放视频也就没什么难度了。特此记录分享

简单来说,示波器XY模式就是通道一的电压为X轴,通道二的电压为Y轴,在两个通道确定的一个点上显示,两通道快速扫描就可以画点成线从而显示一些简单图形,DAC可以把坐标数据转换成电压值给示波器,那么我们只要把图形的黑白像素转换为坐标然后让单片机不断用DAC输出坐标,示波器画点成线就显示出图形了

显示一个随手画的图形

 所以示波器显示图形的重难点其实是软件,如何将图形的边缘转换为坐标值让STM32去输出,只需要有那么一个坐标数组,STM32不断地把数组内容输出到DAC寄存器即可。这里就要用到前几天学习的OPENCV知识了,首先考虑最简单的黑白图片,只要将黑线也就是色值为0的像素点坐标输出为C语言数组的格式然后复制到keil里就行了。然而很多图片不是纯黑白的,可能存在灰度,我们就需要先把灰度图经过边缘检测变成黑白单色图再进行上一步操作。代码如下,写得有点复杂大概只能我自己看得懂如果要用建议安装好OPENCV后直接CV

import cv2

MAX_VALUE = 4000
MIN_VALUE = 0

VIDEO = 0
if VIDEO:
    fil = open('output.h','w')

def pic2xy(img):
    width = img.shape[1]
    heigth = img.shape[0]
    cv2.imshow('vid', i
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值