1059|6

69

帖子

4

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第2期】四个任务汇报帖子 [复制链接]

 

大家好,我是尘世间一个小小单片机工程师,工作多年还是玩本地东西,完全跟不上时代。

 

刚好遇到得捷电子这个活动,兴高采烈参加,奈何工作和家庭都很繁忙,最近终于是把自己搞病了,在家不用带孩子做家务的情况下,开始做这个任务(也不知道是该高兴还是说该悲哀)

 

实力有限,时间有限,所以这次几个任务做得不是特别满意,搞懂了一些地方,有些东西至今还不懂。

 

一、首先说一下开发环境和硬件配置、软件配置

 

这次拿到的开发板是Adafruit ESP32-S3 TFT Feather,板子非常小巧,自带TFT液晶屏,按键,RGB,LED,自带串口,circuit python更是不需要开发环境,直接写代码就可以了,这个实在惊艳到我。

小巧的开发板,还没有我的苹果12雷布斯加强版宽呢,顺便给我的老婆孩子表个白

 

拿到板子只要下载circuit python固件就可以了,下载方式也很简单,快速按rst按键两次进入UF2模式,在把circuit python固件放到发现的U盘即可,固件在下面链接下载,用US固件就好,中文拼音固件真的只是拼音。

    Feather ESP32-S3 TFT Download (circuitpython.org)

 

开发环境用vscode + Espressif IDF插件 + PlatformIO插件 + Pymakr插件 + circuitpython插件,用下来感觉是挺方便的。可以很简单安装对应的包,只需要在vscode用ctrl + shift + p,输入circuit python:Show Available Libraries,然后输入需要的包名,有的话直接点击就会下载对应的包到板子里。

 

装上插件之后,vscode更是可以连接板子的串口,进行在线调试,当然circuit python本来也可以通过WiFi链接网络串口,这种无线调试是我一直听说,感觉十分有用的功能。

 

二、任务1:控制屏幕显示中文

任务1最难的地方是创建想要的bdf字库,芯片资源有限,字库里的字不能那么多,如果真的要最精简就需要逐个字逐个字的选择。生成步骤如下

    1、选择需要的ttf字体文件,用FontForge打开
    2、逐一勾选需要使用的字符字形,然后编辑菜单中反选(Edit->Select->Invert)
    3、编码菜单中分离并移除反选后的字形(Detach & Remove)
    4、元素菜单中,设置字体属性取消垂直尺寸(Element->Font info->General->Vertical)
    5、元素菜单中,可用位图设置75DPI对应的像素大小(Element->Bitmap Available)
    6、元素菜单中,可用位图设置75DPI对应的像素大小(Element->Regengrate)
    7、文件菜单中,生成字体文件(File->Generate Fonts)
    8、生成类型:No Outline Font->BDF
    9、BDF文件可以在CircuitPython中直接使用,也可以转换为pcf格式,更小更快

 

然后程序就是调用库函数了,LCD显示原理大概就是一个Group对象是一个页面,上面可以显示不同的图像(文字),文字的位置,大小,内容之类的都可以动态更改。

 

我的程序就在要求之上加了个滚动效果,具体可以看我上传的代码

 

三、任务2:网络功能使用

 

网络功能是esp32最基础的功能,而wifi更能更是有内部库(wifi)可以调用。ap功能只需要定义ssid和password,然后调用

wifi.radio.start_ap(ssid , password)即可。

而连接wifi只需要调用wifi.radio.connect(ssid , password)就可以连接上路由器。

然后通过pool = socketpool.SocketPool(wifi.radio)函数创建套接字,

requests = adafruit_requests.Session(pool, ssl.create_default_context())创建一个request

然后用response = requests.get(JSON_TIME_URL)就可以获取链接的返回值,通过response.json()可以拿到返回的json字典。

我在网上找了两个时间戳的api,分别是淘宝的http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp1和拼多多的http://api.pinduoduo.com/api/server/_stm,程序里两个都做了解析,具体可以参考代码。

 

四、任务3:控制WS2812B

WS2812B是一款控制RGB的芯片,我之前也没用过,第一次通过调用官方库,直接使用,感觉非常方便,只需要给出(R , G , B)的值就可以控制1600万色还是很神奇的。程序做了一个简单的控制效果。个人觉得没什么好说的,跟单片机差不多

 

五、任务4:日历&时钟

由于我的时间有限,所以第四个任务只做了一个,之前没看清楚,所以外设也没买到。日历时钟就很简单了,我添加了心知天气的api,增加了天气显示,心知天气的api使用可以参考以下链接

查看你的 API 密钥 | 心知天气文档 (seniverse.com)

具体还是要去官网注册一下,获得一个私钥,才可以获得天气数据。

代码就是综合了第一个任务还有第二个任务。

 

以下是我的项目短视频:

【得捷电子Follow me第2期】 项目汇报-【得捷电子Follow me第2期】 项目汇报-EEWORLD大学堂

这个链接是我的项目代码:

【得捷电子Follow me第2期】四个任务的程序源码-嵌入式开发相关资料下载-EEWORLD下载中心

 

六、活动心得体会

 

这次活动是我第一次参加,特别感谢主办方,对于国内的软件开发,我觉得需要很多这样子的活动。作为一个工程师,感觉平时实在是有些闭门造车了,国内的开源环境自我感觉一般般吧,现在的社区做得越来越封闭,有这些活动可以把大家聚在一起,互相学习进步。或许短期看不出什么,我觉得长期是对中国科研有利的。

 

个人一点点小意见,活动很好,也很详尽,就是我一个小白,不知道这些库要怎么用,库里面有什么api,怎么让自己知道自己要用什么库。迷迷茫茫,懵懵懂懂的,不过经过这个活动之后,我也会行动起来,多活跃在网络上,学习进步。

 

最后的最后,我个人还遇到一些小问题,就是我的vscode打开circuit python板子的U盘后,一直报错"G:\code.py"正在替代 stdlib 模块"code"

 

最新回复

在vscode的配置文件settings.json中设置:   "python.analysis.diagnosticSeverityOverrides" : { "reportShadowedImports": "none" }   详情 回复 发表于 2023-10-22 14:27
点赞 关注
 
 

回复
举报

1704

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

显示中文,想要的bdf字库,芯片资源有限,字库里的字不能那么多,确实这个很烧脑

 
 
 

回复

6483

帖子

9

TA的资源

版主

板凳
 

字库只能用一些小一点的,效果其实也不错  

个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

69

帖子

4

TA的资源

一粒金砂(中级)

4
 
火辣西米秀 发表于 2023-10-16 07:34 显示中文,想要的bdf字库,芯片资源有限,字库里的字不能那么多,确实这个很烧脑

是的,挑到眼花,得找一个自动生成的工具才靠谱,太费时间了。而且我确实发现bdf字库加载好慢,还是需要转成pcf才靠谱一些

 
 
 

回复

10

帖子

1

TA的资源

一粒金砂(中级)

5
 
报错"G:\code.py"正在替代 stdlib 模块"code"  这个问题解决了没呀,俺也是一直报错,不,是警告

点评

在vscode的配置文件settings.json中设置:   "python.analysis.diagnosticSeverityOverrides" : { "reportShadowedImports": "none" }  详情 回复 发表于 2023-10-22 14:27
 
 
 

回复

329

帖子

5

TA的资源

纯净的硅(中级)

6
 
手下败酱 发表于 2023-10-17 19:55 报错"G:\code.py"正在替代 stdlib 模块"code" 这个问题解决了没呀,俺也是一直报错,不,是警告

在vscode的配置文件settings.json中设置:

 

"python.analysis.diagnosticSeverityOverrides" : { "reportShadowedImports": "none" }

点评

实测可行呀,具体操作可以参考消除VSCode Pylance的 reportMissingImports 黄线警告_无法解析导入“tinymce.models”pylancereportmissingimports_哪吒_的博客-CSDN博客  详情 回复 发表于 2023-10-25 15:29
 
 
 

回复

69

帖子

4

TA的资源

一粒金砂(中级)

7
 
HonestQiao 发表于 2023-10-22 14:27 在vscode的配置文件settings.json中设置:   "python.analysis.diagnosticSeverityOverride ...

实测可行呀,具体操作可以参考消除VSCode Pylance的 reportMissingImports 黄线警告_无法解析导入“tinymce.models”pylancereportmissingimports_哪吒_的博客-CSDN博客

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表