584|3

2

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

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

  本帖最后由 王嘉翔 于 2023-11-11 21:52 编辑

感谢得捷电子,感谢电子工程论坛,提供这次活动。

内容一:视频提交

    视频地址:【得捷电子Follow me第2期】任务1234提交

内容二:任务提交

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

    代码如下:首先导入相关库(板子,标签,字体),进行字体设置(字体,内容,颜色,位置,大小),最后进行显示。

#导入相关库
import board
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font

#字体点阵设置
font = bitmap_font.load_font("/lib/XinYiGuanHeiTi-Regular.pcf")
#内容,颜色,位置,大小
text1 = label.Label(font, text="得捷电子第二期", color=0xFF0000,x = 20,y = 60,scale = 2)

#显示
while True:
	board.DISPLAY.show(text1)
 

        上板效果图:

任务2:网络功能使用

    该任务分两部分:连接wifi,创建热点。

    连接wifi:使用板子自带方式,在setting文件中添加WiFi名称和密码,自动连接。这个功能必须夸赞,如图

    

    创建热点:使用wifi库,代码如下,导入wifi库,使用库函数创建热点,设备均可连接。
#导入库
import board
import wifi
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font

#字体表示
font = bitmap_font.load_font("/lib/XinYiGuanHeiTi-Regular.pcf")

#创建wifi
wifi.radio.start_ap("my wifi", "00000000")
text = "wifi名称: my wifi \nwifi密码: 00000000"
text_wifi = label.Label(font, text=text, x=40,y=40,color=0xFFFFFF, scale=1)

while True:
    board.DISPLAY.show(text_wifi)

    效果图如下:

    

 

任务3:控制WS2812B
    该任务是使用按键控制板载ws2812,我使用了外接的4*4矩阵按键,使用4个按键对应4种RGB颜色,同时在屏幕上显示相应字体。
    代码如下:先导入相关库,重点是neopixel库,外置库;然后设置屏幕显示内容,按键的输入方式,均采用上拉电阻;最后屏幕显示。
    显示效果链接:
任务3效果
#导入相关库
import time
import board
import digitalio
import neopixel
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font


#字体点阵设置
font = bitmap_font.load_font("/lib/XinYiGuanHeiTi-Regular.pcf")
#内容,颜色,位置,大小
text_red = label.Label(font, text="红色", color=0xFF0000,x = 70,y = 40,scale = 3)
text_green = label.Label(font, text="绿色", color=0x00FF00,x = 70,y = 40,scale = 3)
text_bule = label.Label(font, text="蓝色", color=0x0000FF,x = 70,y = 40,scale = 3)
text_flow = label.Label(font, text="白色", color=0xFFFFFF,x = 70,y = 40,scale = 3)


#关于LED的定义**************************************************************************
pixe1 = neopixel.NeoPixel(board.NEOPIXEL,1)

# 亮度
pixe1.brightness = 0.1

RED = (255, 0, 0) 
GREEN = (0, 255, 0) 
BULE = (0, 0, 255) 
WHITE = (255,255,255)

pin1 = digitalio.DigitalInOut(board.A1)
# BOOT0按键设置为输入端
pin1.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin1.pull = digitalio.Pull.UP 


pin2 = digitalio.DigitalInOut(board.A2)
# BOOT0按键设置为输入端
pin2.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin2.pull = digitalio.Pull.UP 

pin3 = digitalio.DigitalInOut(board.A3)
# BOOT0按键设置为输入端
pin3.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin3.pull = digitalio.Pull.UP 

pin4 = digitalio.DigitalInOut(board.A4)
# BOOT0按键设置为输入端
pin4.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin4.pull = digitalio.Pull.UP 


while True:
	#按A1键,显示红色
	if  pin1.value==False:
		board.DISPLAY.show(text_red)
		pixe1.fill(RED)

	#按A2键,显示绿色
	if  pin2.value==False:
		board.DISPLAY.show(text_green)
		pixe1.fill(GREEN)

		
	#按A3键,显示蓝色
	if  pin3.value==False:
		board.DISPLAY.show(text_bule)
		pixe1.fill(BULE)

		
	#按A4键,显示白色
	if  pin4.value==False:
		board.DISPLAY.show(text_flow)
		pixe1.fill(WHITE)


			
			
			
			
			
			

 

任务4:WS2812B效果控制

    该任务采用一个Neopixel(16灯珠)控制器,通过按键和屏幕切换展示,就是在上述任务3的基础上,增加了一个灯,我在此基础上,用python的for函数写了一个流水灯效果。

    代码如下:先导入相关库,然后设置屏幕显示内容,按键的输入方式,均采用上拉电阻;最后屏幕显示。
    显示效果链接:
任务4效果
#导入相关库
import time
import board
import digitalio
import neopixel
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font


#字体点阵设置
font = bitmap_font.load_font("/lib/XinYiGuanHeiTi-Regular.pcf")
#内容,颜色,位置,大小
text_red = label.Label(font, text="红色", color=0xFF0000,x = 70,y = 40,scale = 3)
text_green = label.Label(font, text="绿色", color=0x00FF00,x = 70,y = 40,scale = 3)
text_bule = label.Label(font, text="蓝色", color=0x0000FF,x = 70,y = 40,scale = 3)
text_flow = label.Label(font, text="流水灯", color=0xFFFFFF,x = 70,y = 40,scale = 3)


#关于LED的定义**************************************************************************
pixe1 = neopixel.NeoPixel(board.NEOPIXEL,1)

pixe2 = neopixel.NeoPixel(board.A0,16)
# 亮度
pixe1.brightness = 0.1

pixe2.brightness = 0.1

RED = (255, 0, 0) 
GREEN = (0, 255, 0) 
BULE = (0, 0, 255) 
WHITE = (255,255,255)

pin1 = digitalio.DigitalInOut(board.A1)
# BOOT0按键设置为输入端
pin1.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin1.pull = digitalio.Pull.UP 


pin2 = digitalio.DigitalInOut(board.A2)
# BOOT0按键设置为输入端
pin2.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin2.pull = digitalio.Pull.UP 

pin3 = digitalio.DigitalInOut(board.A3)
# BOOT0按键设置为输入端
pin3.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin3.pull = digitalio.Pull.UP 

pin4 = digitalio.DigitalInOut(board.A4)
# BOOT0按键设置为输入端
pin4.direction = digitalio.Direction.INPUT
# BOOT0按键设置为上拉电阻
pin4.pull = digitalio.Pull.UP 


while True:
	#按A1键,显示红色
	if  pin1.value==False:
		board.DISPLAY.show(text_red)
		pixe1.fill(RED)
		pixe2.fill(RED)
		
	#按A2键,显示绿色
	if  pin2.value==False:
		board.DISPLAY.show(text_green)
		pixe1.fill(GREEN)
		pixe2.fill(GREEN)
		
	#按A3键,显示蓝色
	if  pin3.value==False:
		board.DISPLAY.show(text_bule)
		pixe1.fill(BULE)
		pixe2.fill(BULE)
		
	#按A4键,显示流水灯
	if  pin4.value==False:
		board.DISPLAY.show(text_flow)
		pixe1.fill(WHITE)
		a = 0
		for i in range(0,15):
			a = i % 15
			b = (i+1) % 15
			c = (i+2) % 15
			d = (i+3) % 15
			pixe2.fill((0,0,0))
			pixe2[a] = ((255,0,0))
			pixe2[b] = ((0,255,0))
			pixe2[c] = ((0,0,255))
			pixe2[d] = ((255,255,255))
			time.sleep(0.1)

 

心得体会:因为我用FPGA板子比较多,所以简单做了对比,ESP32板子集成度非常高,优化了上手难度,尤其是非常多的库函数,在创意实现和功能实现上非常便捷,还有就是烧录非常容易,这款板子我将在明年送给高考完的弟弟,作为年轻人的第一块开发板!

 

内容三:代码提交

    代码地址:【得捷电子第二期】任务1234代码

    网站比较慢,可直接在附件中下载

 

 

 

    

【得捷电子第二期】任务代码.zip

1.23 MB, 下载次数: 8

代码

最新回复

感谢楼主提供的技术分享,先收藏学习再发表个人意见,顶起来   详情 回复 发表于 2023-11-21 15:04
点赞 关注
 
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

期待等明年弟弟考试后也到论坛来混啊

点评

这是当然,打开一个新的世界。  详情 回复 发表于 2023-11-12 13:10
 
 
 

回复

2

帖子

2

TA的资源

一粒金砂(中级)

板凳
 
Jacktang 发表于 2023-11-12 08:31 期待等明年弟弟考试后也到论坛来混啊

这是当然,打开一个新的世界。

 
 
 

回复

755

帖子

5

TA的资源

纯净的硅(高级)

4
 

感谢楼主提供的技术分享,先收藏学习再发表个人意见,顶起来

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表