538|1

1

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第2期】 任务提交 [复制链接]

 

视频链接https://training.eeworld.com.cn/video/37926

 

一、介绍

很高兴能够参加这次活动,这次活动使用的是Adafruit ESP32-S3 TFT Feather开发板,搭载ESP32-S3,包含蓝牙,wifi,还有一块tft高清屏幕。开发工具是Vscode和Thonny。

这次活动我做了以下四个任务

  • 任务1:控制屏幕显示中文
  • 任务2:网络功能使用
  • 任务3:控制WS2812B
  • 任务4分任务1:日历&时钟

我在七月份在bilibili上通过up主“忙碌的死龙”了解到了这次的活动。

二、任务详情

1、开发环境搭建

在观看直播之后我打算使用Vscode来完成项目,但是Vscode一直无法激活插件,中间我卸载重装两次,到处查资料也没有解决问题。包括使用浏览器在线编程也无法打开。最后只能使用Thonny来完成任务。

 

好在这个开发板不需要烧录,只需要将执行的代码保存到CIRCUITPY盘根目录中的code.py文件中,所以使用Thonny除了无法在线更新库文件和代码补全功能以外还是非常方便的。至于代码中的错误完全可以在开发板的屏幕上面查看。

2、任务一:显示中文

 

由于我刚刚开始接触python,没有完整的先学习过python,以前也没有做过什么项目,所以这次活动大部分代码都是在理解的基础上面借鉴而来。

屏幕显示中文需要添加board库,board库是Python中用于控制单片机开发板的一个库,可以用来读写各种传感器、执行控制操作等。以下是board库的一些用法:

  1. 导入board库:

Import board

  1. 获取板子上的GPIO引脚

Pin = board.A1

  1. 初始化GPIO引脚

Import digiaalio

button = digitalio.DigitalInOut(pin)

button.direction = digitalio.Direction.INPUT

button.pull = digitalio.Pull.UP

  1. 读取GPIO引脚状态

Button.value

  1. 控制板子上的LED灯

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

led,value = True #点亮led

led.value = False #熄灭led

还需要导入adafruit_display_text库中的label, wrap_text_to_lines和adafruit_bitmap_font库中的bitmap_font和displayio库

最开始需要初始化需要显示的字符串,然后根据屏幕的旋转角度确定每行显示的字符数

然后将字符串按每行字符数拆分,并添加换行符,初始化显示屏,加载字体和设置颜色

3、任务二:连接网络

(1)、连接wifi

 

连接wifi需要先导入os和wifi库,读取wifi名称,通过setting.toml文件里面的wifi名称和密码自动连接。

2)打开热点

 

热点和wifi的使用方法相同。

4、任务三:控制WS2812B

 

导入board内置库

导入time内置库

从digitalio内置库导入DigitalInOut, Direction, Pull

导入neopixel内置库

从adafruit_led_animation.animation.blink库导入Blink

从adafruit_led_animation.color库导入五种颜色定义

初始化像素灯引脚

设置像素灯数量,这样分开写方便以后修改代码,例如外接ws2812灯带或者矩阵

初始化像素灯

初始化blink动态效果

初始化btn按钮对象

设置btn引脚为输入

设置btn引脚为上拉

定义led_color变量,用于五种颜色切换

在程序保存到单片机中上电开机以后通过按下boot按键切换LE6D的颜色并且在屏幕上显示目前的颜色

  1. 任务四:日历&时钟

 

 

 

 

由于我不会使用python与网络相结合,所以这次代码主要是和官方的例程来完成,在单片机上电以后会先去读取到setting.toml文件里面的wifi名称和密码连接wifi之后会自动打开指定的网页读取相应的日期和天气情况。

三、心得体会

我这是第一次这么投入的学习ESP32-S3开发板,这个开发版的开发当时可以使用micropython,c语言c++,circuitpython,在这几种开发方式中最方便的当属circuitpython,不需要搭建繁琐的开发环境,这个语言只需要有一个能够编辑python的编译器即可,使用方法简单,难度低,非常适合入门。对于一些物联网开发新手来说非常友好。唯一的劣势就是部分库函数只发布于github上面,对于我来说使用起来并不是很方便,有很多库函数无法查看,只能去寻找教学视频,很难自己去翻阅库函数

 

源码包https://download.eeworld.com.cn/detail/eew_9QATv7/629872

最新回复

楼主辛苦了,感谢楼主提供的这么好技术分享,顶起来   详情 回复 发表于 2023-11-18 21:25
点赞 关注
 
 

回复
举报

740

帖子

4

TA的资源

纯净的硅(高级)

沙发
 

楼主辛苦了,感谢楼主提供的这么好技术分享,顶起来

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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