南耿先生
高职计算机教师,死磕嵌入式与电子技术
展开
-
龙芯+RT-Thread+LVGL实战笔记(36)——密码锁完善
前两篇已经把密码锁的主要功能都实现了,本篇我们对其继续完善,加入一些声光效果,具体为:当输入密码正确时,RGB LED亮绿色灯光,蜂鸣器滴一声;当输入密码错误时,RGB LED亮黄色灯光,蜂鸣器滴、滴、滴响三声;如果连续输入3次错误密码,蜂鸣器持续报警且RGB LED红灯闪烁。原创 2024-06-11 20:52:56 · 493 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(35)——密码锁进阶
上一篇实现了密码锁的初步效果,本篇再接再厉,加入密码错误次数的限制,并且能够设置新的密码。同时,* 键和 # 键也派上了用场:执行完一次解锁,需要按 * 键进入下一次录入;设置完新密码,需要按 # 键来确认。为了实现上述功能,引入了状态机的机制,对密码锁的工作过程进行了有效的区分和判断。原创 2024-02-10 12:03:44 · 1007 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(34)——密码锁初步
接下来,针对“子任务7.3”,笔者打算用三篇文章来解读密码锁的实现过程。本文是第一步:先把密码锁 UI 界面准备好,可以实现4位密码的录入(带隐藏效果),可以比对密码并显示结果,暂不考虑错误次数、密码设置、声光提示。原创 2024-02-06 12:10:12 · 1022 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(33)——计算器完整效果
前两篇已经把计算器的UI界面和处理逻辑都准备好了,本篇就做个收尾,将准备好的代码整合到按钮的处理函数中,从而实现完整的录入和计算。原创 2024-01-29 14:18:55 · 629 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(32)——计算器运算处理
上一篇把计算器的UI界面准备好了,本篇我们来解决计算器背后的运算逻辑,其本质是将一个字符串类型的表达式转换成具有数学意义的运算式,这当中会用到逆波兰表达式的算法。因此,本文是纯算法篇,暂无可见的实际效果。原创 2024-01-29 11:49:32 · 462 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(31)——计算器UI界面准备
接下来,针对“子任务7.2”,笔者打算用三篇文章来解读计算器的实现过程。待计算器全部完成后,可以实现带优先级的四则运算的单次或连续运算,支持整型和浮点型数据,并将表达式和结果实时显示在屏幕上。此外,要求按钮按下时,该区域显示为高亮,且每次按下蜂鸣器发出一次滴声。这是第一篇,我们先把计算器的UI界面准备好,支持数字符号的录入和清除,暂时不考虑计算过程。原创 2024-01-25 17:02:46 · 759 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(30)——电子琴演奏
上一篇解决了单个音符的弹奏,本篇在此基础上加入乐曲演奏的功能,其核心的控制仍然是对定时的把控。我们把乐曲中每个音符的音调(频率)和节拍都存入一个数组里,然后在定时器里依次播放每个音符,就可以听到乐曲的旋律了。原创 2024-01-19 21:32:00 · 523 阅读 · 1 评论 -
龙芯+RT-Thread+LVGL实战笔记(29)——电子琴弹奏
上一篇把电子琴的界面和“子任务7.1”的程序框架搭好了,本篇就再接再厉,实现1~7七个音符的弹奏。其核心是使用龙芯的硬件定时器,对音符的频率和节拍进行精确定时。通过本例,相信你会对龙芯定时器的用法了解的更加深刻。原创 2024-01-08 21:08:16 · 1382 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(28)——电子琴准备工作
本篇我们切换到任务7,开始着手解决电子琴的任务,其本质仍然是使用硬件定时器,根据音符的频率和节拍来精确的定时。只是龙芯的硬件定时器用起来有点“别扭”,再与线程融合在一起,使不少学习者无从下手。本篇针对“子任务7.1”,先把电子琴的界面准备好,使用的仍然是LVGL的按钮矩阵。原创 2024-01-08 15:01:28 · 1452 阅读 · 2 评论 -
龙芯+RT-Thread+LVGL实战笔记(27)——超声波测距
上一篇已经准备好了超声波传感器的驱动文件和代码,这一篇我们把它们加到“子任务6.1”对应的线程里,在屏幕上实时显示被测物距离,每1s更新一次数值。原创 2023-12-27 10:33:36 · 1396 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(26)——准备超声波传感器驱动
本篇开始进入到任务6,首先要解决的是超声波测距的问题。按照循序渐进的原则,我们先分析一下龙芯板上的超声波传感器电路,然后编写对应的驱动文件。由于测距是依靠超声波发射和接收的时间差换算得到的,而这个时间差在几十us到几百us,因此需要用到龙芯的硬件定时器来实现(注:RT-Thread的软件定时器最小精度是1ms,无法满足测量需求)。从教程的覆盖面来说,这算是一个新的知识点吧。原创 2023-12-23 20:55:34 · 595 阅读 · 10 评论 -
龙芯+RT-Thread+LVGL实战笔记(25)——语音播报实时温度
本篇是小创语音模块的最后一个任务——播报实时温度,该效果加在前面“子任务4.1”里,识别的词条为“查询当前温度”,如当前温度为35.2℃,则播报效果为“好的,当前温度为三十五点二摄氏度”。原创 2023-12-17 13:51:36 · 859 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(24)——蜂鸣器也能用语音控制了
上一篇实现了用语音控制闪烁灯,这一篇我们再接再厉,把语音控制蜂鸣器的效果也加进来,一共4个词条的控制效果:打开蜂鸣器(嘀嘀嘀的普通鸣响)、关闭蜂鸣器(停止鸣响)、发出求救信号(3声短、3声长、3声短)、关闭求救信号(停止鸣响)。原创 2023-12-16 14:13:29 · 431 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(23)——语音控制闪烁灯
本篇针对的是小创语音模块的第三个任务——闪烁灯控制,我们不仅要识别出词条,还需要启动相关的硬件控制任务,感觉上好像难度上升了。其实不然,如果把闪烁灯看成一个子线程,只不过该线程的启动方式不再是通过点击按钮,而是改为了语音识别启动而已。原创 2023-12-13 23:28:03 · 786 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(22)——点击按钮播报文本
上一篇把语音识别到的词条显示在屏幕上,这一篇继续在上面增加功能。我们添加了一个“播报文本”的按钮,当点击该按钮的时候,会播报“我爱中华,技能强国”。原创 2023-12-13 16:34:36 · 588 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(21)——显示语音识别的词条
上一篇准备好了语音模块的驱动文件和代码,接下来就该在线程中调用它们了。这一篇我们针对“子任务5.1”,将识别到的词条显示在屏幕上。虽然前面我们烧写了十几个词条,但对于可显示的,仅就前4条来做演示,各位知道方法即可。原创 2023-12-09 15:16:51 · 647 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(20)——准备语音模块驱动
上一篇已经完成了小创语音模块的词条烧写,这一篇我们来编写该模块的驱动文件,主要是针对串口4(UART4)的读写操作。如果需要让它自动播报,那就是龙芯对串口4的写操作;如果需要它识别语音内容,则是龙芯对串口4的读操作。原创 2023-12-08 20:07:03 · 625 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(19)——小创语音模块登场
前面几篇把温度传感器和光照传感器的效果都实现了,接下来的几篇,我们都围绕小创语音模块,用它来做一些语音控制效果。本篇先简要介绍一下这个模块,并烧写几个自定义的词条。原创 2023-12-05 16:34:23 · 1095 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(18)——光照图表与折线
上一篇实现了光照的采集和显示,这一篇我们针对“子任务4.4”,把光照强度用图表和折线给呈现出来,并实时更新。该效果是通过LVGL 的图表对象(chart)和任务对象(task)来实现的,原创 2023-11-29 09:07:24 · 1060 阅读 · 7 评论 -
龙芯+RT-Thread+LVGL实战笔记(17)——光照显示与控制
上一篇已经准备好了光照传感器的驱动文件和代码,这一篇我们把它们加到“子任务4.3”对应的线程里,在屏幕上实时显示光照强度。此外,还设定了一个阈值(100 lux),低于此阈值的时候自动打开灯光(白光),高于此阈值时关闭灯光。原创 2023-11-26 17:13:51 · 835 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(16)——准备光照传感器驱动
前几篇把温度显示整明白了,这一篇我们来关注板子上的另外一类传感器——光照传感器BH1750,先解读一下电路和驱动文件,暂无具体效果。原创 2023-11-25 16:19:42 · 963 阅读 · 4 评论 -
龙芯+RT-Thread+LVGL实战笔记(15)——整上加热电阻
上一篇我们实现了温度的实时采集和显示,这一篇我们针对“子任务4.2”,把加热电阻加进来,可以通过单击按键对加热电阻进行开和关。加热电阻在一直通电的情况下,温度可以接近50度,大家在操作的时候注意别被烫着了。原创 2023-11-17 19:15:35 · 740 阅读 · 2 评论 -
龙芯+RT-Thread+LVGL实战笔记(14)——温度实时采集和显示
上一篇我们准备了LM35温度传感器的驱动文件和代码,这一篇我们针对“子任务4.1”,启动一个温度实时采集和显示的线程,每2s刷新一次。原创 2023-11-14 00:19:53 · 1799 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(13)——准备温度传感器驱动
前3篇我们完成了任务3下的3个子任务:全屏颜色显示、图像显示、滑杆控制LED,关注的都是屏幕显示效果。接下来,我们针对任务4,开始学习开发板上的几个传感器。本篇从温度传感器入手,准备其所需要的驱动文件,原创 2023-11-12 11:53:30 · 1119 阅读 · 1 评论 -
龙芯+RT-Thread+LVGL实战笔记(12)——滑杆改变LED亮度
上一篇我们实现了通过几个按钮来变换不同的图片显示,了解了LVGL中图片对象的编程要点。这一篇我们针对“子任务3.3”,部署一个滑杆,并且能够通过拖动滑块来改变LED灯的亮度。原创 2023-11-05 09:31:28 · 1325 阅读 · 2 评论 -
龙芯+RT-Thread+LVGL实战笔记(11)——图片显示
上一篇我们实现了比较简单的显示效果,将一个LVGL对象填充成指定颜色并全屏显示。这一篇,我们来学习LVGL当中最常用的组件之一——图片。搞定了图片显示,就可以应对绝大多数屏幕效果了。这里,我们针对“子任务3.2”准备了4张图片:蓝色三角形、绿色方形、红色五角星、龙芯LOGO,而且给每张图片都配了一个按钮,可以随意切换。原创 2023-10-20 20:00:05 · 1229 阅读 · 8 评论 -
龙芯+RT-Thread+LVGL实战笔记(10)——全屏颜色显示
前三篇我们实现了任务2下的三个子任务:2.1的工位号显示、2.2的年份和日期交替显示、2.3的倒计时多效果呈现,充分展示了利用RT-Thread定时器进行管理和控制。从这一篇开始,我们切换到任务3,开始屏幕上的几种基本显示效果。首先,当然从最简单的单一颜色显示开始,按下“子任务3.1”按钮,依次全屏显示红色、绿色、蓝色。原创 2023-10-04 16:01:00 · 982 阅读 · 1 评论 -
龙芯+RT-Thread+LVGL实战笔记(9)——数码管倒计时
上一篇我们针对“子任务2.2”,完成了数码管交替显示年份和日期,靠的是一个定时器每2ms刷新一位数码管实现的。这一篇我们继续利用这个定时器,针对“子任务2.3”实现数码管的倒计时显示,具体效果为:倒计时显示格式为:“-XX-”,XX为倒计时时间,单位为秒,倒计时时长不超过99秒。要求倒计时剩余5秒时,数码管以500ms频率闪烁显示,当倒计时结束后,数码管应显示“----”,同时开启蜂鸣器,以便提示倒计时已结束。原创 2023-09-22 20:31:13 · 898 阅读 · 1 评论 -
龙芯+RT-Thread+LVGL实战笔记(8)——加一个数码管动态显示
上一篇我们针对“子任务2.1”,完成了数码管显示工位号的静态效果,靠的是一个定时器每2ms刷新一位数码管实现的。这一篇我们继续利用这个定时器,实现数码管的动态显示,比如年份和日期交替显示。原创 2023-09-19 09:00:00 · 725 阅读 · 5 评论 -
龙芯+RT-Thread+LVGL实战笔记(7)——开始数码管显示
前三篇我们实现了任务1下的三个子任务:1.1的三色闪烁灯、1.2的呼吸灯、1.3的按键控制无源蜂鸣器,也初步展示了利用线程和定时器进行管理和调度。从这一篇开始,我们切换到任务2,开始数码管各种显示效果。首先,当然从最简单的静态显示开始,按下“子任务2.1”按钮,显示出工位编号。原创 2023-09-16 11:37:14 · 1518 阅读 · 5 评论 -
龙芯+RT-Thread+LVGL实战笔记(6)——按键中断控制蜂鸣器
上一篇我们通过一个软件定时器实现了“子任务1.2”的呼吸灯效果,这一篇我们针对“子任务1.3”,继续使用软件定时器,同时加入按键外部中断,实现控制无源蜂鸣器的效果。随着任务和硬件的增加,线程、定时器、标志之间的逻辑关联也越来越复杂。原创 2023-09-11 22:30:30 · 1771 阅读 · 2 评论 -
龙芯+RT-Thread+LVGL实战笔记(5)——用定时器搞定呼吸灯
上一篇我们通过一个二级子线程task1_thread和一个三级子线程rgb_blink_thread,搞定了“子任务1.1”的三色闪烁灯效果,也为任务和线程的规划构建了一个雏形。这一篇,我们延续这个套路,让“子任务1.2”呈现呼吸灯的效果。其利用的是RT-Thread中的软件定时器,除了线程,它也是一大利器。原创 2023-09-09 12:00:00 · 1272 阅读 · 3 评论 -
龙芯+RT-Thread+LVGL实战笔记(4)——开始第一个子任务
本篇开始把具体的硬件效果加进来了,就从最简单的“子任务1.1”开始。当点击“子任务1.1”这个按钮,可以实现RGB闪烁灯;当点击“退出”按钮,停止闪烁。原创 2023-09-05 21:00:00 · 1323 阅读 · 2 评论 -
龙芯+RT-Thread+LVGL实战笔记(3)——继续完善主界面UI
上一篇我们编写了主界面按钮及其对应的主线程,这一篇我们在此基础上添加一个二级按钮效果,按下某个主按钮,弹出对应的二级按钮。原创 2023-09-03 13:00:00 · 935 阅读 · 0 评论 -
龙芯+RT-Thread+LVGL实战笔记(2)——写第一个线程和GUI
上一篇我们完成了最基本的移植工作,这一篇我们在此基础上添加一个主按钮的GUI效果,并将其加入到创建的主线程当中。原创 2023-08-31 13:00:00 · 2025 阅读 · 7 评论 -
龙芯+RT-Thread+LVGL实战笔记(1)——从移植开始
在龙芯1B200嵌入式开发板上移植和配置RT-Thread和LVGL原创 2023-08-29 17:00:00 · 3148 阅读 · 37 评论