社区首页
技术讨论创新帖
全部新帖
资料区
社区活动
联系管理员
★ 社区积分制度
★ 新手必读
★ 申请版主★
请
登录
后使用快捷导航
没有帐号?
注册
首页
|
电子技术
|
嵌入式
模拟电子
单片机
电源管理
传感器
半导体
电子应用
|
工业控制
物联网
汽车电子
网络通信
医疗电子
手机便携
测试测量
安防电子
家用电子
机器人
新能源
电子头条
|
社区
|
论坛
测评
博客
大学堂
|
下载
|
下载中心
电路图
精品文集
电路图
|
参考设计
|
Datasheet
|
活动
|
直播
datasheet
datasheet
文章
搜索
登录
注册
中文
En
论坛
切换旧版
电子工程世界-论坛
»
论坛
›
专业技术中心
›
DigiKey得捷技术专区
›
【得捷电子Follow Me第二期】 +任务汇总
返回列表
发新帖
回复
阅
612
|
回
0
imtaotie
当前离线
一粒金砂(中级)
最后登录
2024-11-27
在线时间
4 小时
威望
9分
芯积分
15分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
imtaotie
2
帖子
0
TA的资源
一粒金砂(中级)
+ 好友
私信
楼主
发表于2023-11-14 05:40
只看该作者
【得捷电子Follow Me第二期】 +任务汇总
[复制链接]
非常感谢得捷电子和`EEWORLD`举办的Follow me 开发板挑战活动,在完成任务的过程中我了解了非常多的嵌入式知识。虽然中途遇到了开发板延迟到货的问题,但是EEWORLD的工作人员也第一时间提出了解决措施,在交流群里也积极地回答参与者的各种疑问,非常值得点赞!最后感谢各位大佬的教程,让我少走了许多弯路,更高效地完成了挑战~ ### 代码上传 本次任务的代码均打包到了下面的地址。 ### 视频上传 演示视频更新:[https://training.eeworld.com.cn/video/38577](https://training.eeworld.com.cn/video/38577 "https://training.eeworld.com.cn/video/38577") 任务总结视频如下:
### 准备工作 本次任务使用的开发板是Adafruit ESP32-S3 TFT Feather,它的主要规格有主控为EPS32-S3(4MB闪存和2MB PSRAM),带有一块240*350像素的彩色TFT屏幕,开发板还有一颗多彩LED([NeoPixel ](https://learn.adafruit.com/circuitpython-essentials/circuitpython-neopixel))。搭配上Adafruit 官方的`CircuitPython`固件,这块开发板可以轻松上手实现所需要的功能和效果。 1. 刷`Circule Python `固件 - 开发板到手时,需要刷`CircuitPython`固件,在[Feather ESP32-S3 TFT Download (circuitpython.org)](https://circuitpython.org/board/adafruit_feather_esp32s3_tft/)下载我们这块开发板的`CircuitPython`固件,下载`.UF2`格式的固件即可(UF2介绍可参考[UF2 Bootloader 详细信息 |Adafruit Hallowing M4 系列 |Adafruit 学习系统](https://learn.adafruit.com/adafruit-hallowing-m4/uf2-bootloader-details))。 - 下载好固件后,使用Type-c线将开发板连接电脑,双击开发板上的`RST`按键,即可进入`DFU`模式: ![DFU模式](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/DFU%E6%A8%A1%E5%BC%8F.jpg) - 进入`DFU`模式后,可以在电脑的磁盘中看到一个U盘: ![image-20231113221221526](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231113221221526.png) - 将之前下载的`.UF2`格式固件直接复制到U盘的根目录下,开发板会自动刷写固件,完成后便开发板会重启到`CircuitPython`固件中,开发板会变成一个另外的U盘盘符,在根目录下,`code.py`是运行的主函数,后续任务的代码就是写到这个文件里。`\lib`目录是库的存放位置,将作业所需的库拷贝此目录下。 ![image-20231113222151231](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231113222151231.png) 2. 配置工作 - 准备要用到的库 准备好下面的库,放到开发板的`\lib`目录下![image-20231114032759238](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114032759238.png) - 配置`settings.toml`,连接wifi的配置这个文件里,可以提前配置好: ```toml CIRCUITPY_WIFI_SSID = "yahaha" #wifi名称 CIRCUITPY_WIFI_PASSWORD = "linkzelda" #密码 CIRCUITPY_WEB_API_PASSWORD = "l1l1l1l1" #网页编辑器密码(暂时用不到) CIRCUITPY_WEB_API_PORT = 80 ``` 完成任务准备工作后,就可以开始任务了。 ### 任务1 控制屏幕显示中文 > 任务要求:完成屏幕的控制,并且能显示中文 - 中文的字库需要自己制作,所以我在GitHub上找了一些开源的`BDF`格式的点阵字库,再通过https://adafruit.github.io/web-bdftopcf/这个网页生成PCF格式字体。将制作好的字库放到开发板的`\font`文件夹下:![](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114033602453.png) - code.py的代码如下: ```python import board # 导入displayio库(内置的) import displayio # 导入外部库adafruit_imageload import adafruit_imageload # 导入外部库adafruit_display_text里的lable from adafruit_display_text import label # 导入外部库adafruit_bitmap_font里的lable from adafruit_bitmap_font import bitmap_font #使用设备自带的屏幕设备,创建显示内容 display = board.DISPLAY font = bitmap_font.load_font("/font/fusion_pixel.pcf") text_group = displayio.Group() text = "往事越千年,魏武挥鞭,\n\n东临碣石有遗篇。\n\n萧瑟秋风今又是,\n\n换了人间。" #设置字体内容,颜色,位置,行距,缩放比例 text_area = label.Label(font, text=text, color=0xfffccc,x=0,y=30,line_spacing=0.5,scale=2) #显示内容 text_group.append(text_area) display.show(text_group) while True: pass ``` - 完成,效果如下图: ![image-20231114034328399](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114034328399.png) ### 任务2 网络功能使用 > 任务要求:完成网络功能的使用,能够创建热点和连接wifi #### 创建热点 - 调用`wifi.radio.start_ap`即可快速完成热点创建。 - `code.py`代码如下: ```python #导入所需要的模块 import board import displayio import wifi from adafruit_display_text import label from adafruit_bitmap_font import bitmap_font #创建热点 wifi.radio.start_ap("followme2", "12345678") #使用设备自带的屏幕设备,创建显示内容 screen = board.DISPLAY text = displayio.Group() font = bitmap_font.load_font("/font/fusion_pixel.pcf") #设置具体需要显示的内容 text_1 = "开发板热点信息" content_1 = label.Label(font, text=text_1, x=10, y= 30, color=0xffffff, scale=2) text.append(content_1) text_2 = "SSID:followme2" content_2 = label.Label(font, text=text_2, x=10, y= 60, color=0xffffff, scale=2) text.append(content_2) text_3 = "密码:12345678" content_3 = label.Label(font, text=text_3, x=10, y= 90, color=0xffffff, scale=2) text.append(content_3) #调用显示并维持 screen.show(text) while True: pass ``` - 效果如下: ![image-20231114035014778](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114035014778.png) #### 连接热点 - 调用`wifi.radio.connect`函数连接热点 - `code.py`代码如下: ```python #导入所需模块 import os import board import displayio import wifi from adafruit_display_text import label from adafruit_bitmap_font import bitmap_font #设置需连接的wifi wifi_ssid = 'yahaha' wifi_password = 'linkzelda' #连接wifi wifi.radio.connect(wifi_ssid,wifi_password) #使用设备自带的屏幕设备,创建显示内容 screen = board.DISPLAY text = displayio.Group() font = bitmap_font.load_font("/font/fusion_pixel.pcf") #如果连接上wifi,就在屏幕上显示IP地址信息并保持 if wifi.radio.connected: text_0 = "Conneted" text_1 = f"ssid:{wifi_ssid}" text_2 = f"password:{wifi_password}" text_3 = "您的IP地址为:" text_4 = str(wifi.radio.ipv4_address) else: f"error" content_0 = label.Label(font, text=text_0,x=10, y=20, color=0x21d86d, scale=3) text.append(content_0) content_1 = label.Label(font, text=text_1,x=10, y=60, color=0xffffff, scale=2) text.append(content_1) content_2 = label.Label(font, text=text_2,x=10, y=80, color=0xffffff, scale=2) text.append(content_2) content_3 = label.Label(font, text=text_3,x=10, y=100, color=0xffffff, scale=2) text.append(content_3) content_4 = label.Label(font, text=text_4,x=10, y=120, color=0xffffff, scale=2) text.append(content_4) screen.show(text) while True: pass ``` - 效果如下图 ![image-20231114035445545](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114035445545.png) 这就完成了任务2。 ### 任务3 控制WS2812B > 任务要求:使用按键控制板载`NeoPixel LED` 的显示和颜色切换 - 设置好灯珠的数量以及亮度,对板载LED进行初始化后,读取按键按下,切换不同的灯珠颜色。 - `code.py`代码如下: ```python #导入所需要的模块 import board import time import displayio from digitalio import DigitalInOut, Direction, Pull import neopixel from adafruit_led_animation.animation.blink import Blink #导入需要的颜色代码 from adafruit_led_animation.color import JADE, BLACK, ORANGE, GOLD, OLD_LACE,RED from adafruit_display_text import label from adafruit_bitmap_font import bitmap_font #使用板载灯珠,设置灯珠的个数 pixel_pin = board.NEOPIXEL num_pixels = 1 led_color = 0 # 初始化像素灯 pixels = neopixel.NeoPixel( pixel_pin, num_pixels, brightness=0.2, auto_write=False, pixel_order=neopixel.GRB ) blink = Blink(pixels, speed=0.5, color=RED) #初始化按键 btn = DigitalInOut(board.BOOT0) btn.direction = Direction.INPUT btn.pull = Pull.UP #使用设备自带的屏幕设备,创建显示内容 screen = board.DISPLAY text = displayio.Group() font = bitmap_font.load_font("/font/fusion_pixel.pcf") text_0 = "红色" text_color = RED #当检测到按键按下时,记录按键按下次数,并对其进行取模,根据取模结果控制LED发光颜色 while True: if not btn.value: if led_color % 5 == 0: text_color = JADE blink = Blink(pixels, speed=1, color=text_color) text_0 ="绿色" elif led_color % 5 == 1: text_color = ORANGE blink = Blink(pixels, speed=1, color=text_color) text_0 ="橙色" elif led_color % 5 == 2: text_color = GOLD blink = Blink(pixels, speed=1, color=text_color) text_0 ="金色" elif led_color % 5 == 3: text_color = OLD_LACE blink = Blink(pixels, speed=1, color=text_color) text_0 ="粉色" elif led_color % 5 == 4: text_color = RED blink = Blink(pixels, speed=1, color=text_color) text_0 ="红色" led_color = led_color + 1 else: pass #每次显示前新建图像,可以实现类似清屏功能 text = displayio.Group() content_0 = label.Label(font, text=text_0,x=10, y=50, color = text_color, scale=3) text.append(content_0) screen.show(text) #刷屏屏幕,保证可以显示 screen.refresh() time.sleep(0.1) # sleep for debounce # 执行led闪烁动态效果 blink.animate() ``` - 实现效果如下图 ![image-20231114040729947](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114040729947.png) ![image-20231114040939463](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114040939463.png) ### 任务4 任务1:日历&时钟 > 任务要求:完成一个可以通过互联网更新的万年历时钟,并显示当地的天气信息 - 将开发板连上接通互联网的wifi,让开发板通过互联网的天气接口获得`json`格式的天气和时间信息,并显示在屏幕上 - `code.py`代码如下: ```python ```python #导入所需要的模块 import os import board import displayio import wifi from adafruit_display_text import label from adafruit_bitmap_font import bitmap_font import socketpool import adafruit_requests import ssl #使用设备自带的屏幕设备,创建显示内容 screen = board.DISPLAY contents = displayio.Group() font = bitmap_font.load_font("/font/fusion_pixel.pcf") #设置获取天气和时间的API地址 weather_url = "http://t.weather.sojson.com/api/weather/city/101250101" #连接wifi wifi_ssid = 'yahaha' wifi_password = 'linkzelda' wifi.radio.connect(wifi_ssid,wifi_password) #从API获取json文件 pool = socketpool.SocketPool(wifi.radio) requests = adafruit_requests.Session(pool, ssl.create_default_context()) weather_data = requests.get(weather_url).json() time_data = weather_data['time'] #解析json文件中需要显示的内容 text_1 = time_data text_2 = weather_data['data']['forecast'][0]['week'] text_3 = weather_data['cityInfo']['city'] + '天气' text_4 = '温度:' + weather_data['data']['wendu'] + '摄氏度' text_5 = '湿度:' + weather_data['data']['shidu'] text_6 = weather_data['data']['forecast'][0]['notice'] #设置显示格式 content_1 = label.Label(font, text=text_1, color=0xffffff, scale=2) content_1.x = 10 content_1.y = 15 contents.append(content_1) content_2 = label.Label(font, text=text_2, color=0xffffff, scale=2) content_2.x = 10 content_2.y = 40 contents.append(content_2) content_3 = label.Label(font, text=text_3, color=0xffffff, scale=2) content_3.x = 100 content_3.y = 40 contents.append(content_3) content_4 = label.Label(font, text=text_4, color=0xffffff, scale=2) content_4.x = 10 content_4.y = 65 contents.append(content_4) content_5 = label.Label(font, text=text_5, color=0xffffff, scale=2) content_5.x = 10 content_5.y = 90 contents.append(content_5) content_6 = label.Label(font, text=text_6, color=0xffffff, scale=2) content_6.x = 10 content_6.y = 115 contents.append(content_6) #调用显示 screen.show(contents) while True: pass ``` - 效果如下: ![image-20231114041749430](https://taotie-pic.oss-cn-guangzhou.aliyuncs.com/picture/image-20231114041749430.png)
此帖出自
DigiKey得捷技术专区论坛
点赞
关注
(0)
回复
分享
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
举报
提升卡
变色卡
千斤顶
返回列表
发新帖
回复
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
活动
更多>>
有奖直播 | TI 助力机器人电机控制系统设计
DigiKey 应用探索站 | 无线技术盛宴第二趴
有奖直播 | ADI 超低功耗 MCU MAX326xx 系列介绍
走近 AI 重磅新品 STM32N6,解锁在 MCU 部署高性能、节能型边缘 AI!答题有好礼~还有开发板等你拿!
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
安世半导体智能工业应用探索站,闯关赢好礼!
24年年终盘点来啦!精选强推:原创、测评、拆解、视频、资料
PI 电源小课堂:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
开源项目
更多>>
大道至简 书法(PCB版本)
MAP9001NLG220V12W,MAP9001 高压交流 LED 驱动器演示板
带有集成电感器的 EP5348UI 400mA 同步降压稳压器的典型应用
2019年H题:模拟电磁曲射炮
FPV机架 - 3寸 - 18650改
xl6019E1
ESP8266 便携式WIFI杀手 最小系统版 二合一供电
5V充放电模块IP5407
TB62269FTG 时钟输入控制、2 相双极型步进电机驱动器评估板
STM32平衡车
随便看看
得捷电子 Follow me 第二期汇总贴
任务汇报视频https://trainingcomvideo/38391写在最前,本人是大一的一名学生,在刷B站时看到了龙哥的视频,对此颇有兴趣,等板子等了2个月,在10月初,板子终于到了,后来断断续续也把必做任务都完成了,选做任务由于学业太过繁忙,没有做。也感谢EEworld社 ...
得捷电子 Follow me 第二期汇总贴
这是一个汇总帖——很高兴这次能参加这次的DigiKey联合EEWORLD发起的Followme活动,我是一名大三的在校学生本打算在暑假和开学期间多充实一下自己,可惜过了国庆节才收到货。但是好事不怕晚!先做一个简单介绍:[localvideo]2bfd5e0fca34df53b5ab28 ...
ProfiNet转EtherNet/IP实战:西门子S7-1500 PLC赋能新能源电池容量测试精准通信
[i=s]本帖最后由捷米特于2025-2-815:42编辑[/i]ProfiNet转EtherNet/IP实现西门子S7-1500PLC与新能源电池容量测试仪连接通讯的配置案例[attach]885706[/attach]一、案例背景·在某新能源汽车电池生产线上,需要将采用EtherNet/IP协议的电池检测设备与采 ...
【NUCLEO-U083RE开发板测评】02 RTC测试
颁奖:下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新
DIY立式铣床,雕刻机
做了块支持MicroPython的板,晒一下
DCDC降压芯片容易损坏会是什么原因
空间微波成像雷达的发展现状与未来
用IP2002器件支持GPRS的GPS系统实现
查找数据手册?
搜索
EEWorld Datasheet 技术支持
热门标签
源代码
单片机
放大器
TI
ST
电源
分立器件
传感器
测试测量
模拟
嵌入式系统开发
DCS控制系统
智能家居
锆钨电极
匹配电阻
机械手
日月光
检波器
光缆
HX711
相关文章
更多>>
PI CEO:氮化镓将成为高压开关的首选
日前,PI举办了2024年四季度财报电话会,在会议上董事长兼CEO Balu Balakrishnan宣布了PI的一系列重要消息和成就。 先看营收状况,2024年四季度营收同比增长 18% 至
面临市场压力,消息称美国工业巨头霍尼韦尔将一拆为三
据《华尔街日报》6 日报道,知情人士透露,美国工业集团霍尼韦尔正筹划拆分为三家独立公司,最快将于当地时间周四官宣。 其中,航空航天部门将从自动化业务中剥离,同时推进先进材料部门的分拆计划。这一决定是
英特尔与日本AIST合作开发下一代量子计算机:万级量子比特
2 月 6 日消息,日本一家政府研究机构将与英特尔公司合作,开发使用英特尔芯片的下一代量子计算机。 据日经新闻今日报道,日本产业技术综合研究所(AIST)计划将这台量子计算机开放给国内外大学,以及愿
Videtronic开发出利用 GMSL2 延长树莓派摄像头电缆的方案
我国科学家制备出高性能柔性叠层太阳电池,光电转换效率达 23.4%
消息称软银接近达成收购芯片设计公司 Ampere 的协议
消息称英伟达将推 Orin Y 平替 Orin X 汽车智驾芯片:算法可无缝迁移,抢占入门市场
LG新能源为特斯拉新款Model Y供应2170电池,南京工厂生产
波士顿动力携手前 CEO,提升 Atlas 人形机器人学习能力
苹果M5芯片被曝已进入量产阶段,日月光、长电科技、Amkor负责封装
新帖速递
STM32和无源蜂鸣器播放声音的问题
车规级AECQ200介绍,混合铝电解电容器的选择
嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验
OPA847IDBVR运放器国产替代
AG32VF407测试UART
【得捷电子Follow Me第二期】第一章 收到货物的分享
请问这个红外接收头是什么型号?能用哪个型号代替?谢谢
出售全新未拆封ZYNQ 7Z020 FPGA核心板
用在锂电池供电的水表设置上的LORA模块,当有100块水表集中安装在一个楼道内时,节能
请问一下,当某个端口被设置为 RX0后,这个端口的输入输出方向还有必要设置吗
今年怎么这么难,比疫情时还难,三十了面临失业好迷茫
请教稳压管测试问题
【小华HC32F448测评】关于小华半导体的UART中断发送和PRINTF构造和重定向
【BIGTREETECH PI开发板】 HDMI输出测试
【BIGTREETECH PI开发板】+08.音频测试(zmj)
有奖直播 | TI 助力机器人电机控制系统设计
直播时间:2月27日(周四)上午10:00
活动奖励:家具壶、保温杯、充电线
查看 »
有奖直播:ADI 超低功耗 MCU MAX326xx 系列介绍
直播时间:3月20日(周四) 上午10:00
活动奖励:双肩包、充电宝、小夜灯
查看 »
【回帖赢京东卡】无线技术盛宴第二趴
【活动时间】即日起—2025年2月28日
【活动好礼】30元京东卡
查看 »
DigiKey 应用探索站 | 无线技术盛宴第二趴
当月好物、热门无线技术资源、特色活动、DigiKey在线实用工具,干货多多~
查看 »
开发板申请:拥有 AI 加持的 STM32N6570-DK 免费试用 !
申请时间:即日起-3月2日
查看 »
安世半导体智能工业应用探索站,闯关赢好礼!
点击页面内“开始探索”按钮,填写并提交表单;
请根据序号依次完成3个安世半导体智能工业应用的探索,并根据给出的资料完成共计9题(每个应用3题),答对5题以上的玩家即可获得抽奖资格;
每人仅有一次参与答题的机会,请慎重作答,活动结束后,我们将抽取30位玩家赠送礼品。
查看 »
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
直播主题:多相降压电源控制技术的发展与探讨
直播时间:2025年2月25日(星期二)上午10:30-11:30
快来报名!
查看 »
答题赢好礼,PI电源小课堂第3期来啦!
本期内容:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
活动时间:即日起-2月28日
看视频答题即可赢取京东卡!
查看 »
本周精选下载推荐:电源管理基础Dummies
本周小编给大家带来一本超简单、超干货的电子书——《电源管理基础Dummies》!内容深入浅出,排版舒服简洁,分分钟能get到电源管理最核心的知识内容。
查看 »
关闭
站长推荐
1
/9
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
电信业务审批[2006]字第258号函
京公网安备 11010802033920号
Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复
返回顶部
返回列表
论坛首页
版块列表
专业技术中心
TI技术论坛
ST传感器与低功耗无线技术论坛
ADI参考电路
DigiKey得捷技术专区
ADI · 世健工业技术
电子技术交流
边缘AI
嵌入式系统
单片机
国产芯片交流
电机控制
FPGA/CPLD
模拟电子
电源技术
无线连接
传感器
PCB设计
综合技术交流
下载中心专版
大学堂专版
测评中心专版
行业应用
汽车电子
机器人开发
工业自动化与控制
能源基础设施
医疗电子
消费电子
创意与实践
电子竞赛
DIY/开源硬件专区
淘e淘
创意市集
休息一下
聊聊、笑笑、闹闹
工作这点儿事
为我们提意见&公告
EEWorld颁奖专区
信息发布
最新帖子
最新帖子
最新回复
精华
消灭零回复
测评中心
活动中心
积分兑换
E金币兑换
芯积分
厂商专区
TI技术论坛
ST传感器与低功耗无线技术论坛