12738

  • 2023-12-07
  • 加入了学习《Follow me第三期任务展示视频》,观看 Follow me第三期任务展示视频

  • 发表了主题帖: 【得捷电子Follow me第3期】任务提交

    # 一、总结视频 [followme第三期任务视频展示](http://https://training.eeworld.com.cn/video/38578 "followme第三期任务视频展示") [localvideo]e71ce1ac1f9fdccc55df11083a0a9a39[/localvideo] # 二、任务总结报告 ## 任务1:使用MicroPython系统 熟悉Seeed Studio XIAO ESP32C3开发板基本操作,安装esptool,并给开发板刷写MicroPython系统,完成入门程序的运行 搭配器件:Seeed Studio XIAO ESP32C3 在收到货以后我就直接下载了电脑上的Thonny,它是自带的一个ESP tool的安装环境,所以在我们把开发板插进电脑上之后,直接点击右下角的配置解释器。就可以看到右下角有蓝色字体显示安装或更新microPython(esptool)。 由于我在micro Python的官网上并没有找到这个开发板对应的完美固件,所以我就直接用了通用的ESP32C3的固件(ESP32_GENERIC_C3-20231005-v1.21.0)。可能这个固件有一点不合适吧,但是没办法自己编译,就这样先用着吧。然后选择对应的端口,其他的都保持默认,点击安装就好了 等待它的进度条走完,microPython固件就刷进去了。然后把数据线拔了重新接上,在界面右下角选择MicroPython(ESP32)就可以连上开发板了,接着新建一个main.py的文件,输入 ``` import time from machine import Pin led = Pin(10,Pin.OUT) while True :     led.value( not led.value())         time.sleep(1) ``` 然后保存运行,可以看到对应接口的LED在闪烁,固件成功运行! ## 任务2:驱动扩展板上的OLED屏幕 使用扩展板上的OLED屏幕显示文字和图形 搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO 启动thonny之后可以看到左上角有个工具,还有一个管理库的选项。在连接开发板后,点击管理库,可以下载并安装所需要的一些外置函数库。 但是不知道为什么我在更新了4.14版本后的thonny没有完全下载到SSD 1306的库,它只是最基本的函数,没有任何其他的函数。 所以我就参照网上大神的一些方案,自己重新编写了SSD 1306的函数库,可以画各种形状,还有画立方体,显示中文文字之类的功能。 ### ssd1306.py ``` import framebuf import fonts class SSD1306():     def __init__(self,external_vcc):         self.width = 128         self.height = 64         self.external_vcc = external_vcc         self.pages = 8         self.init_display()     def init_display(self):         for cmd in (             0xae,        # 熄屏             0x20, 0x00,  # 水平寻址             0x40,        # 显示起始行地址             0xa1,        # 正常列扫描             0xa8, 63,    # 复用率             0xc8,        # 正常行扫描             0xd3, 0x00,  #设置COM偏移量,即屏幕像上偏移的行数             0xda, 0x12,  #使用备选引脚配置,并禁用左右反置             0xd5, 0x80,  # 设置分频因子与振荡频率             0xd9, 0x22 if self.external_vcc else 0xf1,             0xdb, 0x30,  # 设置vcomh电压为0.83*Vcc             0x81, 0xff,  # 亮度最大             0xa4,        # 使用GDDRAM中的数据显示             0xa6,        # 设置GDDRAM中的0对应于像素点的暗             # 关闭电荷泵             0x8d, 0x10 if self.external_vcc else 0x14,             0xAD,             0x30,             0xAE | 0x01,         ):  # on#开屏             self.write_cmd(cmd)         self.fill(0)         self.show()     #设置水平滚动,参数:滚动区域(滚动起始页,滚动结束页),滚动方向(默认向左,填0向右),滚动速度(0-7)       def h_scroll(self,start=0,end=7,d=1,speed=0):         self.write_cmd(0x2e)     # 关闭滚动         self.write_cmd(0x26+d) # 向左         self.write_cmd(0x00)         self.write_cmd(start) # 起始页         self.write_cmd(speed) # 滚动帧率         self.write_cmd(end) # 结束页         self.write_cmd(0x00)         self.write_cmd(0xff)         self.write_cmd(0x2f) # 开启滚动     #默认开启竖直向上滚动与水平向右滚动     def scroll(self,vScrollOn=0,vStart=0,vEnd=63,vSpeed=1,hScrollOn=1,direction=0,                                 hSpeed=0,hScrollStartPage=0,hScrollEndPage=7,hScrollStartColumn=0,hScrollEndColumn=127):         if vScrollOn:             self.write_cmd(0x2e)# 关闭滚动             self.write_cmd(0xa3)#设置竖直滚动命令             self.write_cmd(vStart)#竖直滚动开始行             self.write_cmd(vEnd)#竖直滚动结束行         self.write_cmd(0x29+direction)#水平滚动方向向右         self.write_cmd(hScrollOn) # 0,关闭水平滚动,1开启         self.write_cmd(hScrollStartPage)# 水平滚动起始页         self.write_cmd(hSpeed)#设置滚动速度0-7         self.write_cmd(hScrollEndPage)# 水平滚动结束页         self.write_cmd(vSpeed) # 每一帧的垂直偏移量         self.write_cmd(hScrollStartColumn)#水平滚动区域的起始列         self.write_cmd(hScrollEndColumn)#水平滚动区域的结束列         self.write_cmd(0x2f)# 开启滚动     #关闭oled     def poweroff(self):         self.write_cmd(0xae | 0x00)#熄屏     #亮度,0x00-0xff     def contrast(self, contrast):         self.write_cmd(0x81)         self.write_cmd(contrast)     #正反相显示,输入1则反相,默认正相     def invert(self, invert=0):         self.write_cmd(0xa6 | invert)     # 显示     def show(self):         self.write_cmd(0x21) # 告诉GDDRAM列数         self.write_cmd(0) # 列数从0-127         self.write_cmd(127)         self.write_cmd(0x22) # 告诉GDDRAM行数         self.write_cmd(0) # 页数从0-7         self.write_cmd(7)         self.write_framebuf() # 写入1bit地址和1024bit数据     # 水平翻转,0翻转,1正常(默认)     def hv(self,b=1):         self.write_cmd(0xc0 | b

  • 2023-12-03
  • 回复了主题帖: 有奖话题:聊聊,国产最能打的接口芯片?

    CH340,不服来战哈哈哈

  • 回复了主题帖: 【国产高性能运动控制MCU 先楫HPM5361】基于RT-Thread Studio搭建开发环境

    上手方便吗,有没有代码提示的功能

  • 上传了资料: follow me 3任务源代码

  • 2023-11-22
  • 发表了主题帖: 强求这个M0驱动LVGL还是有点小马拉大车,拉不动了。。。。

       内存还是少了点,太极限了,刚刚够LVGL门槛,得花大时间精简代码,太折腾了

最近访客

< 1/5 >

统计信息

已有67人来访过

  • 芯积分:209
  • 好友:--
  • 主题:16
  • 回复:23

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言