白菜虫虫

  • 2023-12-11
  • 加入了学习《【得捷电子Follow me第3期】可以使用ESPNOW同步获取数据的家庭气象站》,观看 【得捷电子Follow me第3期】可以使用ESPNOW同步获取数据的家庭气象站

  • 2023-11-29
  • 回复了主题帖: 【得捷电子Follow me第3期】任务5:使用外部传感器 

    wangerxian 发表于 2023-11-29 17:14 micropython就是好,两条语句就能获取温度数据。 就是,而且不用编译,弄点对性能要求不高,不是很复杂的程序的时候特别舒服

  • 2023-11-28
  • 上传了资料: 【得捷电子Follow me第3期】可以使用ESPNOW同步获取数据的家庭气象站

  • 发表了主题帖: 【得捷电子Follow me第3期】可以使用ESPNOW同步获取数据的家庭气象站

    【得捷电子Follow me第3期】可以使用ESPNOW同步获取数据的家庭气象站   视频: [localvideo]0f31ff01a05568b08763da6bd0f7835b[/localvideo] [localvideo]63cad3663581e7c4055179323f5a3c04[/localvideo] [localvideo]31a842ee93fe18d39be2b00abd125e8c[/localvideo] [localvideo]2184f3ed1feb2933c917529666bca183[/localvideo] [localvideo]0f9c31a9947a6a635542d83fad7736f6[/localvideo] [localvideo]f4f982773449c2890aecdd9011b667fc[/localvideo] [localvideo]0642e8dfca1bd9e49287c766360e92a7[/localvideo]       任务1:使用MicroPython系统(必做任务)   熟悉Seeed Studio XIAO ESP32C3开发板基本操作,安装esptool,并给开发板刷写MicroPython系统,完成入门程序的运行 搭配器件:Seeed Studio XIAO ESP32C3   操作过程:   1.安装最新的python。   这个就不细讲了,各位大佬都会,不会的兄弟们可以上网搜索一下。   2.安装esptool。 2.1方法一:这种方法是大佬都推荐的使用命令行的方式。 首先用管理员权限打开命令行,然后输入 复制 pip install esptool   命令安装。 这种方式我尝试了多次,死活没有成功。   2.2方法二:github下载安装包进行安装。 首先打开github网址:https://github.com/espressif/esptool 然后选择Code->Cownload ZIP,下载安装包。 将安装包解压到一个你喜欢的位置,路径上不要有中文,比如我就是解压到了桌面(不建议跟我学,然后文件夹名字我也改成了esptool),现在我的路径就是”C:\Users\HP\Desktop\esptool”。在这个目录下打开管理员权限的命令行(或者打开命令行之后切换到自己的文件夹),然后输入 复制 python setup.py install   回车进行安装。   3.烧录固件:   3.1下载固件:打开microPython官网,点击DOWNLOAD,选择SEEED,如果现在你发现有了XIAO C3的专用固件就下载他,还是没有的话就下载一个通用版的ESP32C3固件。 通用固件地址https://micropython.org/download/ESP32_GENERIC_C3/   3.2烧录microPython固件:   使用USB数据线连接SEEED XIAO C3到电脑,等待驱动安装完毕,查看串口号。 将下载bin固件放到esptool的文件夹中,还是打开命令行,按照网页说明输入 复制 esptool.py --chip esp32c3 --port com4 erase_flash   擦除flash,com4是你自己的XIAO C3的串口号。 等待擦除完毕,输入 复制 esptool.py --chip esp32c3 --port COM78 --baud 460800 write_flash -z 0x0 ESP32_GENERIC_C3-20231005-v1.21.0.bin   烧录MPY固件,com4同样是XIAO C3的串口号,esp32c3-20220117-v1.18.bin 是下载的固件的文件名。   3.3测试: 打开串口工具,选择XIAO C3的串口。按下XIAO C3的RST按钮,查看是否有microPython的提示字符,如果有的话输入help()进行测试,如果有提示文字回应,说明microPython环境搭建成功。     任务2:驱动扩展板上的OLED屏幕(必做任务)   使用扩展板上的OLED屏幕显示文字和图形 搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO   操作过程:   1.安装microPython编辑软件。 我是使用的thoony软件,理由是文件的上传下载很方便。 下载地址:https://thonny.org/  (莫谈国事) 同样的,也可以使用 pip install esptool   命令进行安装。 打开thonny,在右下角选择python解释器,选择ESP32+自己的串口号的选项 在shell窗口看到类似如下显示,就说明连接成功了。   2.下载SSD1306驱动库。   microPython官方固件没有集成SSD1306的驱动,需要自己编写或者下载一个,编写就算了,咱是菜鸟没那个本事,所以我选择下载一个。打开活动界面的“XIAO ESP32C3 MicroPython库”(链接地址:https://github.com/IcingTomato/micropython_xiao_esp32c3) 依次选择driver->display->ssd1306.py 复制代码或者直接下载py文件。 文件网址:https://github.com/IcingTomato/micropython_xiao_esp32c3/blob/master/drivers/display/ssd1306.py   3.上传ssd1306驱动文件: 在文件窗口选择下载的ssd1306.py驱动文件,右键、上传到/。或者新建一个空白文件,将复制的ssd1306.py的文件内容粘贴进去,点击保存,选择保存到microPython设备,文件名自然是“ssd1306.py”。   4.连接好电路,新建文件并输入以下程序 复制 import ssd1306 from machine import SoftI2C,Pin, # 设置IIC i2c = SoftI2C(scl=Pin(7),sda=Pin(6),freq=100000) # 设置根据活动给出的引脚图可知IIC的scl引脚为D5,也就是7脚 # 同样的IIC的sda引脚为D4,也就是6脚 # 初始化SSD1306显示屏,分辨率为128X64 oled = ssd1306.SSD1306_I2C(128, 64, i2c) # 清除屏幕 oled.fill(0) # 显示文字 oled.text("hello  seeed", 0, 20) oled.text("hello xiao C3", 0, 40) oled.show()       点击运行按钮,如SSD1306有如下显示,说明本次任务圆满成功。 9a68256832d9731f7f53b6c1095da5f.jpg (377.18 KB, 下载次数: 0) 下载附件  保存到相册 前天 11:42 上传     任务3:控制蜂鸣器播放音乐(必做任务)   使用Seeed Studio XIAO ESP32C3控制蜂鸣器发出不同频率的声音,并播放一段音乐 搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO   操作过程:   1.蜂鸣器播放音乐简单原理。   大家都知道,声音源于震动,SEEED的扩展板上集成了一颗压电蜂鸣器,可以把电信号转换成相应频率的震动。   2.确定引脚。   查看扩展板引脚图,得知蜂鸣器buzzer的引脚是A3,再结合XIAO C3的引脚图得知使用的引脚是GPIO5。   3.初始化PWM引脚。   引用PWM库,初始化频率为440hz。 复制 from machine import PWM,Pin beep = PWM(Pin(5),freq=440,duty=500)   点击运行,我们就可以听到持续的蜂鸣器的响声。   4.播放音乐。   从网上寻找一个同年经典游戏超级玛丽的音乐,移植到我们的XIAO C3上面,废话不多说,直接贴代码。 复制 from machine import PWM,Pin import time import _thread beep = PWM(Pin(5),freq=50000,duty=500) #cdefgab s2 = [50000,262 ,294, 330 ,349 ,392 ,220 ,247 ] s3 = [50000,523,587,659,698,784,440,494] s4 = [50000,1044, 1175 ,1318, 1397 ,1568 ,880 ,988] def play(level,power = 1,deltatime = 200):     if power == 0:         beep.freq(s2[level])     elif power == 1:         beep.freq(s3[level])     elif power == 2:         beep.freq(s4[level])     time.sleep_ms(deltatime)     beep.freq(50000) def plays(l):     for i in l:         if len(i) == 3:             play(i[0],i[1],i[2])         else:             play(i[0],i[1]) def test():     plays([(3,2),(3,2),(0,2),(3,2),(0,2),(1,2),(3,2),(0,2),(5,2),(0,2,500)])     plays([(1,2,600),(5,1,600),(3,1,600),(6,1,400),(7,1,400),(7,1),(6,1,400)])     plays([(5,1),(3,2,400),(5,2),(6,2,400),(4,2),(5,2,400),(3,2,400),(1,2),(2,2),(7,1)])     plays([(1,2,600),(5,1,600),(3,1,600),(6,1,400),(7,1,400),(7,1),(6,1,400)])     plays([(5,1),(3,2,400),(5,2),(6,2,400),(4,2),(5,2,400),(3,2,400),(1,2),(2,2),(7,1)]) _thread.start_new_thread(test,())   [localvideo]6199d51143bbbd03709d4bdb58fe7fbc[/localvideo]           任务4:连接WiFi网络(必做任务)   将Seeed Studio XIAO ESP32C3连接到WiFi网络,并访问互联网信息 搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO、RF ANT 2.4GHZ/5.5GHZ PCB TRACE    操作过程:   1.简单的说明。 XIAO C3使用microPython连接wifi网络还是比较简单的,我们先来梳理一下步骤。 ①引用network库。 ②声明wifi工作方式,因为我们需要连接wifi,所以工作方式选择STA_IF模式。 ③连接到wifi。 2.连接到WIFI。 输入以下代码,将SSID和password修改成你自己的wifi的名称和密码。 复制 import utime import network #引用库 ssid = "baicaichongchong" #设置你的WiFi名称 password = "12345678" #设置你的WiFi密码 station = network.WLAN(network.STA_IF)#设置工作方式 station.active(True)#打开XIAO C3无线网络 station.connect(ssid, password)#连接wifiwhile station.isconnected() == False:     pass print("Connection successful") print(station.ifconfig())   点击运行,如果得到类似下面的输出,说明已经成功将你的XIAO C3连接到了你的wifi。 简易网络时钟。 通过几个步骤,我们可以制作一个简单的网络时钟: ①连接WiFi网络使得XIAO C3可以连接到互联网。 ②通过ntptime库连接网络授时服务器,获取网络事件并更新给扩展版板载的pcf8563 RTC芯片。 ③读取时间并在SSD1306上进行显示。 复制 import utime import network from machine import RTC import time from machine import I2C import ntptime import pcf8563 import ssd1306 ssid = "bai'cai'chong'chong" password = "12345678" station = network.WLAN(network.STA_IF) station.active(True) station.connect(ssid, password) while station.isconnected() == False:     pass print("Connection successful") print(station.ifconfig()) rtc = RTC() ntptime.settime() time.sleep(1) print('sync success') utime.localtime() i2c = I2C(scl=7, sda=6) r = pcf8563.PCF8563(i2c) oled = ssd1306.SSD1306_I2C(128, 64, i2c) print('rtc time') r.datetime() print(r.datetime()[3]) time.sleep(1) print('sync system to pcf8563') r.write_now() station.active(False) while True:     nt = r.datetime()     oled.fill(0)     oled.text(f"{nt[0]}-{nt[1]}-{nt[2]}", 20, 20)     oled.text(f"{nt[4]}:{nt[5]}:{nt[6]}", 40, 40)     print(f"{nt[0]}-{nt[1]}-{nt[2]}  {nt[4]}:{nt[5]} {nt[6]}")     #显示日期时间     oled.show()     time.sleep(1)   点击运行    [localvideo]4751853bffa8efdaa382c97e84a15db6[/localvideo]         任务5:使用外部传感器(必做任务)   连接环境光传感器或温湿度传感器,获取传感器的数值,并转换成真实的物理量 搭配器件: Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO、 Grove - AHT20 I2C Industrial Grade Temperature and Humidity Sensor、Grove - Light Sensor v1.2   操作过程:   1.下载驱动文件。 通过help(‘modules’)命令查看,可以知道ESP32C3的标准microPython固件里面没有包含aht20的驱动文件,大家可以自行选择喜欢的aht20驱动文件,我是在github上搜索并下载了一个文件,地址如下: https://github.com/targetblank/micropython_ahtx0   2.尝试获取温湿度。 同时,在这个GitHub界面也给出了一个例程,让我们复制并测试一下。 import utime from machine import Pin, I2C import ahtx0 # I2C for the Wemos D1 Mini with ESP8266 i2c = I2C(scl=Pin(7), sda=Pin(6)) # Create the sensor object using I2C sensor = ahtx0.AHT10(i2c) while True:     print("\nTemperature: %0.2f C" % sensor.temperature)     print("Humidity: %0.2f %%" % sensor.relative_humidity) utime.sleep(5)   注意IIC引脚要和SSD1306一样替换成我们的XIAO C3的引脚。 将SEEED的aht20模块连接到扩展版上,点击运行程序,如果有类似下面的输出内容,则说明aht20模块驱动成功。   3.使用SSD1306显示温湿度。 下面我们对历程进行扩展,使用SSD1306来显示温湿度。 程序如下: 复制 import machine import ssd1306 import utime import ahtx0 from machine import SoftI2C,Pin, i2c = SoftI2C(scl=Pin(7),sda=Pin(6),freq=100000) Pin(4).value(0) Pin(5).value(1) # 初始化SSD1306显示屏 oled = ssd1306.SSD1306_I2C(128, 64, i2c) sensor = ahtx0.AHT10(i2c) # 清除屏幕 while True: oled.fill(0) oled.text("Temperature:", 0, 10) oled.text("{:.2f} C".format(sensor.temperature), 40, 20) print("\nTemperature: %0.2f C" % sensor.temperature) oled.text("Humidity: ", 0, 40) oled.text("{:.2f} %".format(sensor.relative_humidity), 40, 50) print("Humidity: %0.2f %%" % sensor.relative_humidity) oled.show() utime.sleep(2) # 在屏幕上显示文本   点击运行,就可以同步在SSD1306屏幕显示温湿度了。 [localvideo]705adef6d3533802d3b67d84d8309216[/localvideo]     任务6:综合实践(选做,非必做)   自选任务:可以使用ESPNOW同步获取数据的家庭气象站   本次我想要实现的功能是简单的家庭气象站。 使用的硬件有XIAO C3 两个,相应的扩展板一个,aht20温湿度传感器一个。 首先利用XIAO C3驱动aht20读取当前环境温湿度,然后使用SSD1306进行显示,最后通过网络使用ESPNOW共享给其他的XIAO C3设备,这样就不用每次都跑到设备跟前去查看了。   具体就不讲了,直接上程序 气象站+发送端程序: import utime import network from machine import RTC import time from machine import I2C import ntptime import pcf8563 import ssd1306 import ahtx0 import espnow ssid = "baicaichongchong" password = "12345678" station = network.WLAN(network.STA_IF) station.active(True) station.connect(ssid, password) while station.isconnected() == False: pass print("Connection successful") print(station.ifconfig()) rtc = RTC() ntptime.settime() time.sleep(1) print('sync success') utime.localtime() i2c = I2C(scl=7, sda=6) r = pcf8563.PCF8563(i2c) oled = ssd1306.SSD1306_I2C(128, 64, i2c) sensor = ahtx0.AHT10(i2c) print('rtc time') r.datetime() print(r.datetime()[3]) time.sleep(1) print('sync system to pcf8563') r.write_now() station.active(False) time.sleep(1) station.active(True) e= espnow.ESPNow() e.active(True) peer1 = b'4\x85\x18\x06\xca\x18' e.add_peer(peer1) while True: nt = r.datetime() oled.fill(0) oled.text(f"{nt[0]}-{nt[1]}-{nt[2]}", 4, 2) oled.text(f"{nt[4]}:{nt[5]}:{nt[6]}", 50, 12) e.send(peer1,f"{nt[0]}-{nt[1]}-{nt[2]} {nt[4]}:{nt[5]} {nt[6]}".encode()) print(f"{nt[0]}-{nt[1]}-{nt[2]} {nt[4]}:{nt[5]} {nt[6]}") #显示日期时间 oled.text("Temperature:", 4, 23) oled.text("{:.2f} C".format(sensor.temperature), 60, 33) e.send(peer1,"\nTemperature: %0.2f C" % sensor.temperature) print("\nTemperature: %0.2f C" % sensor.temperature) #显示温度 oled.text("Humidity: ", 4, 44) oled.text("{:.2f} %".format(sensor.relative_humidity), 60, 54) e.send(peer1,"Humidity: %0.2f %%" % sensor.relative_humidity) print("Humidity: %0.2f %%" % sensor.relative_humidity) #显示湿度 oled.rect(0, 0, 128, 64, 1) oled.rect(0, 21, 128, 21, 1) # oled.hline(3, 20, 1, 124) # oled.hline(3, 40, 1, 124) oled.show() time.sleep(1)     要记得把WIFI账号密码改成自己的,然后要获取一下接收端的MAC地址也在这里修改一下。     接收端程序:   import network import espnow from machine import Pin sta = network.WLAN(network.STA_IF) sta.active(True) e = espnow.ESPNow() e.active(True) while True: host, msg = e.recv() if msg: print(host,msg) else: time.sleep(0.1)     接收端的程序相比就简单很多了,有多余的屏幕的兄弟们可以在这个基础上添加上OLED显示,不会的同学翻看前面的任务。   心得体会 感谢电子工程世界和得捷举办的这次活动,这是第一次参加类似的活动,感觉收获颇丰。 通过本次活动,加深了对ESP32C3的了结,掌握了不少以前不知道的硬件细节。 学会了ssd1306,温湿度传感器,espnow等等新的新的硬件和功能。 深入学习了MPY的使用,感觉MPY真的很方便,能够很方便的调试程序,不像arduino那样修改一个参数也要等好久重新编译。 参加活动更好的一点感受就是,有了活动时限的要求,感觉可以很大程度上的消除惰性,更主动更积极的去学习。和我一样有拖延症又想学东西的兄弟们强烈建议也来参加eeworld的活动试试。 下次有合适的活动希望还能有机会参加。   最后,附上全部六个任务的代码,方便兄弟们测试。    

  • 回复了主题帖: 【得捷电子Follow me第3期】任务3:控制蜂鸣器播放音乐

    suncat 发表于 2023-11-27 09:33 转换一个乐曲的话,有相关的转换软件吗?就是把乐曲转换为对应的和频率有关的数据。 替换相应的list就行,频率是跟音乐音符对应的,不用替换

  • 2023-11-27
  • 加入了学习《基于Arduino玩转pico RP2040》,观看 基于Arduino玩转pico RP2040

  • 2023-11-26
  • 发表了主题帖: 【得捷电子Follow me第3期】任务5:使用外部传感器 

    本帖最后由 白菜虫虫 于 2023-11-29 17:46 编辑 【得捷电子Follow me第3期】任务5:使用外部传感器    任务5:使用外部传感器(必做任务)   连接环境光传感器或温湿度传感器,获取传感器的数值,并转换成真实的物理量   搭配器件: Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO、 Grove - AHT20 I2C Industrial Grade Temperature and Humidity Sensor、Grove - Light Sensor v1.2   操作过程:   1.下载驱动文件。   通过help(‘modules’)命令查看,可以知道ESP32C3的标准microPython固件里面没有包含aht20的驱动文件,大家可以自行选择喜欢的aht20驱动文件,我是在github上搜索并下载了一个文件,地址如下: https://github.com/targetblank/micropython_ahtx0   2.尝试获取温湿度。   同时,在这个GitHub界面也给出了一个例程,让我们复制并测试一下。   import utime from machine import Pin, I2C import ahtx0 i2c = I2C(scl=Pin(7), sda=Pin(6)) sensor = ahtx0.AHT10(i2c) while True:     print("\nTemperature: %0.2f C" % sensor.temperature)     print("Humidity: %0.2f %%" % sensor.relative_humidity) utime.sleep(5)   注意IIC引脚要和SSD1306一样替换成我们的XIAO C3的引脚。 将SEEED的aht20模块连接到扩展版上,点击运行程序,如果有类似下面的输出内容,则说明aht20模块驱动成功。       3.使用SSD1306显示温湿度。   下面我们对历程进行扩展,使用SSD1306来显示温湿度。 程序如下: import machine import ssd1306 import utime import ahtx0 from machine import SoftI2C,Pin, i2c = SoftI2C(scl=Pin(7),sda=Pin(6),freq=100000) Pin(4).value(0) Pin(5).value(1) # 初始化SSD1306显示屏 oled = ssd1306.SSD1306_I2C(128, 64, i2c) sensor = ahtx0.AHT10(i2c) # 清除屏幕 while True: oled.fill(0) oled.text("Temperature:", 0, 10) oled.text("{:.2f} C".format(sensor.temperature), 40, 20) print("\nTemperature: %0.2f C" % sensor.temperature) oled.text("Humidity: ", 0, 40) oled.text("{:.2f} %".format(sensor.relative_humidity), 40, 50) print("Humidity: %0.2f %%" % sensor.relative_humidity) oled.show() utime.sleep(2) # 在屏幕上显示文本   点击运行,就可以同步在SSD1306屏幕显示温湿度了。   [localvideo]177f7c8312ce89289075eb3c1d7d927b[/localvideo]  

  • 发表了主题帖: 【得捷电子Follow me第3期】任务4:连接WiFi网络

    本帖最后由 白菜虫虫 于 2023-11-26 17:00 编辑 【得捷电子Follow me第3期】任务4:连接WiFi网络     任务4:连接WiFi网络(必做任务)   将Seeed Studio XIAO ESP32C3连接到WiFi网络,并访问互联网信息   搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO、RF ANT 2.4GHZ/5.5GHZ PCB TRACE    操作过程:   1.简单的说明。   XIAO C3使用microPython连接wifi网络还是比较简单的,我们先来梳理一下步骤。 ①引用network库。 ②声明wifi工作方式,因为我们需要连接wifi,所以工作方式选择STA_IF模式。 ③连接到wifi。   2.连接到WIFI。 输入以下代码,将SSID和password修改成你自己的wifi的名称和密码。 import utime import network #引用库 ssid = "baicaichongchong" #设置你的WiFi名称 password = "12345678" #设置你的WiFi密码 station = network.WLAN(network.STA_IF)#设置工作方式 station.active(True)#打开XIAO C3无线网络 station.connect(ssid, password)#连接wifiwhile station.isconnected() == False:     pass print("Connection successful") print(station.ifconfig()) 点击运行,如果得到类似下面的输出,说明已经成功将你的XIAO C3连接到了你的wifi。   简易网络时钟。 通过几个步骤,我们可以制作一个简单的网络时钟: ①连接WiFi网络使得XIAO C3可以连接到互联网。 ②通过ntptime库连接网络授时服务器,获取网络事件并更新给扩展版板载的pcf8563 RTC芯片。 ③读取时间并在SSD1306上进行显示。 import utime import network from machine import RTC import time from machine import I2C import ntptime import pcf8563 import ssd1306 ssid = "bai'cai'chong'chong" password = "12345678" station = network.WLAN(network.STA_IF) station.active(True) station.connect(ssid, password) while station.isconnected() == False:     pass print("Connection successful") print(station.ifconfig()) rtc = RTC() ntptime.settime() time.sleep(1) print('sync success') utime.localtime() i2c = I2C(scl=7, sda=6) r = pcf8563.PCF8563(i2c) oled = ssd1306.SSD1306_I2C(128, 64, i2c) print('rtc time') r.datetime() print(r.datetime()[3]) time.sleep(1) print('sync system to pcf8563') r.write_now() station.active(False) while True:     nt = r.datetime()     oled.fill(0)     oled.text(f"{nt[0]}-{nt[1]}-{nt[2]}", 20, 20)     oled.text(f"{nt[4]}:{nt[5]}:{nt[6]}", 40, 40)     print(f"{nt[0]}-{nt[1]}-{nt[2]}  {nt[4]}:{nt[5]} {nt[6]}")     #显示日期时间     oled.show()          time.sleep(1)   点击运行    [localvideo]115f21f782913952886270660b268f08[/localvideo]  

  • 发表了主题帖: 【得捷电子Follow me第3期】任务3:控制蜂鸣器播放音乐

    【得捷电子Follow me第3期】任务3:控制蜂鸣器播放音乐       任务3:控制蜂鸣器播放音乐(必做任务)   使用Seeed Studio XIAO ESP32C3控制蜂鸣器发出不同频率的声音,并播放一段音乐   搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO     操作过程:   1.蜂鸣器播放音乐简单原理。   大家都知道,声音源于震动,SEEED的扩展板上集成了一颗压电蜂鸣器,可以把电信号转换成相应频率的震动。   2.确定引脚。   查看扩展板引脚图,得知蜂鸣器buzzer的引脚是A3,再结合XIAO C3的引脚图得知使用的引脚是GPIO5。       3.初始化PWM引脚。   引用PWM库,初始化频率为440hz。 from machine import PWM,Pin beep = PWM(Pin(5),freq=440,duty=500) 点击运行,我们就可以听到持续的蜂鸣器的响声。   4.播放音乐。   从网上寻找一个同年经典游戏超级玛丽的音乐,移植到我们的XIAO C3上面,废话不多说,直接贴代码。 from machine import PWM,Pin import time import _thread beep = PWM(Pin(5),freq=50000,duty=500) #cdefgab s2 = [50000,262 ,294, 330 ,349 ,392 ,220 ,247 ] s3 = [50000,523,587,659,698,784,440,494] s4 = [50000,1044, 1175 ,1318, 1397 ,1568 ,880 ,988] def play(level,power = 1,deltatime = 200):     if power == 0:         beep.freq(s2[level])     elif power == 1:         beep.freq(s3[level])     elif power == 2:         beep.freq(s4[level])     time.sleep_ms(deltatime)     beep.freq(50000) def plays(l):     for i in l:         if len(i) == 3:             play(i[0],i[1],i[2])         else:             play(i[0],i[1]) def test():     plays([(3,2),(3,2),(0,2),(3,2),(0,2),(1,2),(3,2),(0,2),(5,2),(0,2,500)])     plays([(1,2,600),(5,1,600),(3,1,600),(6,1,400),(7,1,400),(7,1),(6,1,400)])     plays([(5,1),(3,2,400),(5,2),(6,2,400),(4,2),(5,2,400),(3,2,400),(1,2),(2,2),(7,1)])     plays([(1,2,600),(5,1,600),(3,1,600),(6,1,400),(7,1,400),(7,1),(6,1,400)])     plays([(5,1),(3,2,400),(5,2),(6,2,400),(4,2),(5,2,400),(3,2,400),(1,2),(2,2),(7,1)]) _thread.start_new_thread(test,())    [localvideo]a99e9db90569e867b78332e0a1f4456e[/localvideo]  

  • 发表了主题帖: 【得捷电子Follow me第3期】任务2:驱动扩展板上的OLED屏幕

    本帖最后由 白菜虫虫 于 2023-11-26 11:42 编辑 【得捷电子Follow me第3期】任务2:驱动扩展板上的OLED屏幕       任务2:驱动扩展板上的OLED屏幕(必做任务)   使用扩展板上的OLED屏幕显示文字和图形   搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO     操作过程:   1.安装microPython编辑软件。   我是使用的thoony软件,理由是文件的上传下载很方便。 下载地址:https://thonny.org/  (莫谈国事)       同样的,也可以使用 pip install esptool 命令进行安装。   打开thonny,在右下角选择python解释器,选择ESP32+自己的串口号的选项         在shell窗口看到类似如下显示,就说明连接成功了。     2.下载SSD1306驱动库。       microPython官方固件没有集成SSD1306的驱动,需要自己编写或者下载一个,编写就算了,咱是菜鸟没那个本事,所以我选择下载一个。打开活动界面的“XIAO ESP32C3 MicroPython库”(链接地址:https://github.com/IcingTomato/micropython_xiao_esp32c3)     依次选择driver->display->ssd1306.py 复制代码或者直接下载py文件。 文件网址:https://github.com/IcingTomato/micropython_xiao_esp32c3/blob/master/drivers/display/ssd1306.py               3.上传ssd1306驱动文件:   在文件窗口选择下载的ssd1306.py驱动文件,右键、上传到/。或者新建一个空白文件,将复制的ssd1306.py的文件内容粘贴进去,点击保存,选择保存到microPython设备,文件名自然是“ssd1306.py”。         4.连接好电路,新建文件并输入以下程序   import ssd1306 from machine import SoftI2C,Pin, # 设置IIC i2c = SoftI2C(scl=Pin(7),sda=Pin(6),freq=100000) # 设置根据活动给出的引脚图可知IIC的scl引脚为D5,也就是7脚 # 同样的IIC的sda引脚为D4,也就是6脚 # 初始化SSD1306显示屏,分辨率为128X64 oled = ssd1306.SSD1306_I2C(128, 64, i2c) # 清除屏幕 oled.fill(0) # 显示文字 oled.text("hello  seeed", 0, 20) oled.text("hello xiao C3", 0, 40) oled.show()     点击运行按钮,如SSD1306有如下显示,说明本次任务圆满成功。  

  • 2023-11-22
  • 回复了主题帖: 【得捷电子Follow me第3期】任务1:使用MicroPython系统

    Jacktang 发表于 2023-11-22 07:35 方法1推荐的使用命令行的方式没有成功,也是有原因的 求指点

  • 2023-11-21
  • 发表了主题帖: 【得捷电子Follow me第3期】任务1:使用MicroPython系统

    本帖最后由 白菜虫虫 于 2023-11-21 17:33 编辑 【得捷电子Follow me第3期】任务1:使用MicroPython系统   任务1:使用MicroPython系统(必做任务) 熟悉Seeed Studio XIAO ESP32C3开发板基本操作,安装esptool,并给开发板刷写MicroPython系统,完成入门程序的运行 搭配器件:Seeed Studio XIAO ESP32C3   操作过程: 1.安装最新的python。 这个就不细讲了,各位大佬都会,不会的兄弟们可以上网搜索一下。     2.安装esptool。   2.1方法一:这种方法是大佬都推荐的使用命令行的方式。 首先用管理员权限打开命令行,然后输入 pip install esptool 命令安装。 这种方式我尝试了多次,死活没有成功。     2.2方法二:github下载安装包进行安装。 首先打开github网址:https://github.com/espressif/esptool   然后选择Code->Cownload ZIP,下载安装包。 将安装包解压到一个你喜欢的位置,路径上不要有中文,比如我就是解压到了桌面(不建议跟我学,然后文件夹名字我也改成了esptool),现在我的路径就是”C:\Users\HP\Desktop\esptool”。在这个目录下打开管理员权限的命令行(或者打开命令行之后切换到自己的文件夹),然后输入 python setup.py install 回车进行安装。         3.烧录固件:   3.1下载固件:打开microPython官网,点击DOWNLOAD,选择SEEED,如果现在你发现有了XIAO C3的专用固件就下载他,还是没有的话就下载一个通用版的ESP32C3固件。 通用固件地址https://micropython.org/download/ESP32_GENERIC_C3/ 3.2烧录microPython固件:   使用USB数据线连接SEEED XIAO C3到电脑,等待驱动安装完毕,查看串口号。   将下载bin固件放到esptool的文件夹中,还是打开命令行,按照网页说明输入 esptool.py --chip esp32c3 --port com4 erase_flash 擦除flash,com4是你自己的XIAO C3的串口号。   等待擦除完毕,输入 esptool.py --chip esp32c3 --port com4 --baud 460800 write_flash -z 0x0 esp32c3-20220117-v1.18.bin 烧录MPY固件,com4同样是XIAO C3的串口号,esp32c3-20220117-v1.18.bin 是下载的固件的文件名。   3.3测试: 打开串口工具,选择XIAO C3的串口。按下XIAO C3的RST按钮,查看是否有microPython的提示字符,如果有的话输入help()进行测试,如果有提示文字回应,说明microPython环境搭建成功。        

最近访客

< 1/1 >

统计信息

已有5人来访过

  • 芯积分:53
  • 好友:--
  • 主题:6
  • 回复:3

留言

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


现在还没有留言