飞扬自我

  • 2024-09-13
  • 回复了主题帖: 【Follow me第二季第2期】Arduino Uno R4 WiFi 通过MQTT连入Home Assistant(容器版)

    有安装包吗?或者安装包下载连接?     家庭版的window10是不是安装不了,要转成专业版才可以?

  • 2024-09-09
  • 发表了主题帖: 【Follow me第二季第2期】+ 入门任务【Blink + 串口打印信息】

        首先先感谢eeworld和得捷电子让我参加这个活动    本次任务是入门任务,软件使用和blink灯和串口打印信息。 一,软件使用    安装软件的过程我就不说了,其他网友都有很多教程。这里说一下软件安装完成后选择对应开发板驱动软件和软件使用过程的一些细节。 1.1,安装完arduino IED后在“板管理”上对Arduino NUO R4搜索,选择最新的版本,点击安装,耐心等待安装完成即可。 1.2,在TOOL里如上图对所使用的板卡进行选择。 1.3,编写好软件后,即可进行编译。如果需要下载,需要通过TypeC连接电脑和开发板,然后进行编译下载,软件在编译完成后即可以进入自动下载的过程,看软件的下载进度100%即完成了下载烧录。软件即可以跑起来。 二,blink LED灯和串口打印信息 软件编写 setup()可以了解为软件中开始时只运行一次的部分,这部分里面可以把一些初始化和一些只执行一次的代码放在里面。 loop() 函数是一个循环执行函数,如果需要不停执行的函数就放在这个循环中。 串口函数Serial.begin()是对串口初始化,可以设置波特率。 串口输出有Serial.print(),Serial.printIn()。 LED驱动使用管脚模式设置函数pinMode(13, OUTPUT)和管脚状态写函数digitalWrite(13, 1)   void setup() { // put your setup code here, to run once: // 打开串口 Serial.begin(9600); //初始化LED4 pinMode(13, OUTPUT); } int counter=0,i=0; void loop() { delay(200); counter=counter+1; i=counter%10; if(i==0) { Serial.println("Hello EEWorld!"); Serial.print("counter="); Serial.print(counter); counter=0; } else { if(i==3) digitalWrite(13, 1); if(i==7) digitalWrite(13, 0); } } 察看串口打印的输出可以通过按照上面的设置,可以看出串口输出的数据。 三,实验视频 [localvideo]ccd7923a8ae1a69114f9b9fd678f89f2[/localvideo]  

  • 2024-08-02
  • 回复了主题帖: >>征集 | 使用 MCU,哪些问题最令你头大?

    1,RAM和flash容量,还有分区大小,flash分区太大利用率不足。 2,很多厂商的芯片参数连厂商都不知道,尤其是低功耗的情况下各个模式的电流功耗都没做测试,选型前期就没法评估是否满足要求。 3,开发工具,开发环境的不兼容,自成一体的想法很好,但是对于广大开发者和开发生态很受伤,没有开发者怎么进行扩大生态。 4,资料的保密,不签保密协议,规格书都拿不到,完全没法做选型和熟悉。 5,生命周期无法保证,更新迭代快,而且还不能相互兼容导致成熟的产品需要经常改版。 6,底层驱动不开放,而且还有各种bug,只能求救于原厂。  

  • 2024-01-17
  • 加入了学习《双向 DC-DC 变换器拓扑的对比与设计》,观看 UCD3138 控制方案

  • 加入了学习《双向 DC-DC 变换器拓扑的对比与设计》,观看 拓扑比较

  • 加入了学习《双向 DC-DC 变换器拓扑的对比与设计》,观看 应用概览

  • 加入了学习《如何进行开关电源拓扑选择》,观看 1.1 开关电源拓扑介绍

  • 2024-01-03
  • 加入了学习《10小时学会图像处理opencv入门教程》,观看 图像处理简介

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

    本帖最后由 飞扬自我 于 2023-12-17 19:54 编辑 感谢:        大家好,我是参与Follow me第3期活动的一员,非常高感谢eeworld网站和得捷电子为我们提供了这次宝贵的机会,让我连续参加了一到三期的活动,我一个硬件工程师,对microphython一无所知,通过学习论坛的网友会组织的视频教学,使我学会了简单的使用。在开发过程中,和活动的微信群其他网友进行交流得到和很多实用的建议,使我能够更好地理解和使用开发板的各项功能。这对于我这个初学者来说意义非凡。 一,视频展示 [localvideo]63ee2b2ff1d0d231fc64f1ec86dccbbc[/localvideo]   二,任务 必做任务1:使用MicroPython系统 必做任务2:驱动扩展板上的OLED屏幕 必做任务3:控制蜂鸣器播放音乐 必做任务4:连接WiFi网络 必做任务5:使用外部传感器 可选任务6:分任务3:开灯提醒器 三,各小任务详解 任务一:使用MicroPython系统 见帖 【得捷电子Follow me第3期】任务1:使用MicroPython系统 任务二:驱动扩展板上的OLED屏幕 一、任务主要内容 开发板底板熟悉 OLED的配置 OLED中文和汉字显示 二、任务实施 2.1  开发板底熟悉 xiao esp32c3开发底板接口如下:   2.2 OLED驱动库安装 xiao esp32c3的oled需要安装驱动库,使用的是ssd1306py的驱动库,在thony上面工具--库管理中搜索安装就行,     三、运行MicroPython程序 3.1 初始化OLED i2c = SoftI2C(scl=Pin(7), sda=Pin(6)) lcd.init_i2c(7,6,128,64) lcd.set_font(font16, 16) ①对驱动oled的I2C初始化 ②OLED初始化 ③OLED显示格式设置 3.2 显示汉字的字模 为了显示汉字“你好”做的汉字字模,不想做显示库了 font16 = { 0xe4bda0: [0x08, 0x08, 0x08, 0x11, 0x11, 0x32, 0x34, 0x50, 0x91, 0x11, 0x12, 0x12, 0x14, 0x10, 0x10, 0x10, 0x80, 0x80, 0x80, 0xFE, 0x02, 0x04, 0x20, 0x20, 0x28, 0x24, 0x24, 0x22, 0x22, 0x20, 0xA0, 0x40], # 你 0xe5a5bd: [0x10, 0x10, 0x10, 0x10, 0xFC, 0x24, 0x24, 0x25, 0x24, 0x48, 0x28, 0x10, 0x28, 0x44, 0x84, 0x00, 0x00, 0xFC, 0x04, 0x08, 0x10, 0x20, 0x20, 0xFE, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xA0, 0x40] # 好 } 3.3 OLED驱动程序 from machine import Pin, SoftI2C, RTC import ssd1306py as lcd import time font16 = { 0xe4bda0: [0x08, 0x08, 0x08, 0x11, 0x11, 0x32, 0x34, 0x50, 0x91, 0x11, 0x12, 0x12, 0x14, 0x10, 0x10, 0x10, 0x80, 0x80, 0x80, 0xFE, 0x02, 0x04, 0x20, 0x20, 0x28, 0x24, 0x24, 0x22, 0x22, 0x20, 0xA0, 0x40], # 你 0xe5a5bd: [0x10, 0x10, 0x10, 0x10, 0xFC, 0x24, 0x24, 0x25, 0x24, 0x48, 0x28, 0x10, 0x28, 0x44, 0x84, 0x00, 0x00, 0xFC, 0x04, 0x08, 0x10, 0x20, 0x20, 0xFE, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xA0, 0x40] # 好 } i2c = SoftI2C(scl=Pin(7), sda=Pin(6)) lcd.init_i2c(7,6,128,64) lcd.set_font(font16, 16) lcd.clear() lcd.text('The first test!', 10, 0, 8) lcd.text_cn('你好', 40, 30, 16) lcd.show() time.sleep(2) while True: lcd.clear() lcd.text('Thanks EEworld!', 10, 10, 8) lcd.text('Thanks DigiKey!', 10, 30, 8) lcd.show() time.sleep(1) 四、效果 图片:     视频: [localvideo]4b76722254d50210c821a5a314026248[/localvideo]   任务三:控制蜂鸣器播放音乐 一、任务主要内容 开发板底板熟悉 管脚的配置 歌曲播放 二、任务实施 2.1  开发板底熟悉 xiao esp32c3开发底板接口如下:   从底板的介绍和管脚分配来看,A3是分配给蜂鸣器。 但是xiao esp32c3开发板的管脚是GPIO5 2.2 蜂鸣器管脚配置 buzzer_pin = machine.Pin(5, machine.Pin.OUT) buzzer = machine.PWM(buzzer_pin) 把GPIO5配置为output,并指定为pwm功能。 三、运行MicroPython程序 3.1 初始化各个音符的频率数据 def DO(time): buzzer.freq(1046) #1 buzzer.duty_u16(vol) sleep(time) def RE(time): buzzer.freq(1175) #2 buzzer.duty_u16(vol) sleep(time) def MI(time): buzzer.freq(1318) #3 buzzer.duty_u16(vol) sleep(time) def FA(time): buzzer.freq(1397) #4 buzzer.duty_u16(vol) sleep(time) def SO(time): buzzer.freq(1568) #5 buzzer.duty_u16(vol) sleep(time) def LA(time): buzzer.freq(1760) #6 buzzer.duty_u16(vol) sleep(time) def SI(time): buzzer.freq(1967) #7 buzzer.duty_u16(vol) sleep(time) def N(time): buzzer.duty_u16(0) #close sleep(time) 把音附 1 2 3 4 5 6 7对应的频率进行定义,方面音乐的时候做简化 3.1 运行的程序 做了一个简单的《生日快乐》的音乐 import machine from machine import Pin, PWM from time import sleep buzzer_pin = machine.Pin(5, machine.Pin.OUT) buzzer = machine.PWM(buzzer_pin) # buzzer = PWM(Pin(20)) vol = 1300 #音量大小 def DO(time): buzzer.freq(1046) #1 buzzer.duty_u16(vol) sleep(time) def RE(time): buzzer.freq(1175) #2 buzzer.duty_u16(vol) sleep(time) def MI(time): buzzer.freq(1318) #3 buzzer.duty_u16(vol) sleep(time) def FA(time): buzzer.freq(1397) #4 buzzer.duty_u16(vol) sleep(time) def SO(time): buzzer.freq(1568) #5 buzzer.duty_u16(vol) sleep(time) def LA(time): buzzer.freq(1760) #6 buzzer.duty_u16(vol) sleep(time) def SI(time): buzzer.freq(1967) #7 buzzer.duty_u16(vol) sleep(time) def N(time): buzzer.duty_u16(0) #close sleep(time) while True: SO(0.17) #5 N(0.01) #0 SO(0.17) #5 LA(0.33) #6 SO(0.33) #5 DO(0.33) #1 N(0.01) #0 SI(0.33) #7- N(0.01) #0 SI(0.33) #7- SO(0.33) #5 LA(0.33) #6 SO(0.33) #5 RE(0.33) #2 N(0.01) #0 DO(0.33) #1 N(0.01) #0 DO(0.33) #1 SO(0.33) #5 SO(0.33) #5 MI(0.33) #3 DO(0.33) #1 N(0.01) #0 DO(0.33) #1 SI(0.33) #7- LA(0.33) #6 N(0.01) #0 LA(0.33) #6 N(0.01) #0 FA(0.33) #4 N(0.01) #0 FA(0.33) #4 MI(0.33) #3 RE(0.33) #2 DO(0.33) #1 N(0.01) #0 DO(0.33) #1 N(0.67) #0 四、效果 [localvideo]1aa30294da3bffb317c7da447cd5ad3d[/localvideo]   任务四:连接WiFi网络   一、任务主要内容 开发板底板熟悉 wifi的配置 wifi连接后打印RSSI 二、任务实施 2.1  开发板底熟悉 xiao esp32c3开发板   xiao esp32c3开发板的天线需要外接天线,然后通过配置wifi参数就可以连接上wifi了。 三、运行MicroPython程序 3.1 运行代码 import utime from machine import Pin, SoftI2C, RTC import ssd1306py as lcd import network import time i2c = SoftI2C(scl=Pin(7), sda=Pin(6)) lcd.init_i2c(7,6,128,64) lcd.clear() lcd.text('NtpTime', 0, 0, 8) lcd.show() time.sleep(1) #引用库 ssid = "Redmi60" password = "12345678" station = network.WLAN(network.STA_IF)#设置工作方式 station.active(True)#打开XIAO C3无线网络 station.connect(ssid,password)#连接wifi while station.isconnected() == False: pass rssi = station.status('rssi') lcd.clear() lcd.text('Connection', 0, 0, 8) lcd.text('successful', 0, 20, 8) lcd.show() time.sleep(1) print("Connection successful") print(station.ifconfig()) while True: print(station.status('rssi')) time.sleep(1) 四、效果 图片   视频 [localvideo]79b589c52532fec612f656dedb1c748f[/localvideo]   任务五:使用外部传感器   一、任务主要内容 开发板底板连接方式 ATH20传感器硬件介绍 ATH20传感器数据采集以及OLED显示 二、任务实施 2.1 开发板底板连接方式 xiao esp32c3开发底板接口如下: 连接传感器的I2C接口   AHT20模块以及它的I2C地址为0x38   2.2 传感器的配置  AHT20模块与OLED共用一个I2C,所以需要对其初始化的时候需要指定地址。 #温湿度传感器 sensor = ahtx0.AHT10(i2c,0x38) 三、ATH20传感器数据采集以及OLED显示 3.1 AHT20的库安装   3.2 其他模块初始化    主要是对OLED的初始化,方便显示测量的数据。    AHT20的数据中有两部分,一部分是温度数据,一部分是湿度数据,得分开处理。 3.3运行的代码 import machine from machine import Pin, I2C,ADC,PWM import ahtx0 import ssd1306 import math import time i2c = I2C(scl=Pin(7), sda=Pin(6)) oled_width = 128 oled_height = 64 oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c) oled.text("Sensor Display:", 0, 0) oled.text("task 5", 0, 16) oled.text("Temp: C", 0, 32) oled.text("Humi: %", 0, 48) oled.show() #温湿度 sensor = ahtx0.AHT10(i2c,0x38) while True: print("\nTemperature: %0.2f C" % sensor.temperature) print("Humidity: %0.2f %%" % sensor.relative_humidity) oled.fill_rect(50, 16, 48, 64, 0)# 局部清屏 oled.text('{:.2f}'.format(sensor.temperature), 50, 32) oled.text('{:.2f}'.format(sensor.relative_humidity), 50, 48) oled.show() time.sleep(1) 四、效果 图片 视频 [localvideo]93d931c1575e35307de2c8c31f100029[/localvideo]   任务六:开灯提醒器   一、任务主要内容 本次实验使用到的传感器和部件 各个模块的配置 检测到光亮<20既报警同时震动 二、任务实施 2.1  本次实验使用到的传感器和部件 底板接线示意图 震动马达 亮度传感器   2.2 各个模块的配置 ①oled设置 i2c = I2C(scl=Pin(7), sda=Pin(6)) oled_width = 128 oled_height = 64 oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c) ②蜂鸣器设置 #配置蜂鸣器 buzzer_pin = machine.Pin(5, machine.Pin.OUT) buzzer = machine.PWM(buzzer_pin) vol = 1300 #音量大小 buzzer.freq(1047) buzzer.duty(0) # 关掉声音 ③温湿度设置 #温湿度 sensor = ahtx0.AHT10(i2c,0x38) ④亮度传感器设置 #亮度 bright=ADC(Pin(2)) #配置测量量程为0~3.6V bright.atten(ADC.ATTN_11DB) ⑤震动马达设置 #震动马达的设置 Vibrate_Pin = machine.Pin(20, machine.Pin.OUT) Vibrate_Pin.value(0) 三、检测到光亮<20既报警同时震动程序     对亮度传感器进行16次采样做平均值后再做判断,防止单次采集错误导致误触发。 import machine from machine import Pin, I2C,ADC,PWM import ahtx0 import ssd1306 import math import time i2c = I2C(scl=Pin(7), sda=Pin(6)) oled_width = 128 oled_height = 64 oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c) oled.text("Sensor Display:", 0, 0) oled.text("Bri : %", 0, 16) oled.text("Temp: C", 0, 32) oled.text("Humi: %", 0, 48) oled.show() #温湿度 sensor = ahtx0.AHT10(i2c,0x38) #亮度 bright=ADC(Pin(2)) #配置测量量程为0~3.6V bright.atten(ADC.ATTN_11DB) sensor_value=0 sensor_dev=0 #配置蜂鸣器 buzzer_pin = machine.Pin(5, machine.Pin.OUT) buzzer = machine.PWM(buzzer_pin) vol = 1300 #音量大小 buzzer.freq(1047) buzzer.duty(0) # 关掉声音 #震动马达初始化 Vibrate_Pin = machine.Pin(20, machine.Pin.OUT) Vibrate_Pin.value(0) while True: for i in range(0,16): sensor_value = sensor_value +bright.read() sensor_value = sensor_value / 16 Vbattf = 2 * sensor_value / 10.0 print("\nTemperature: %0.2f C" % sensor.temperature) print("Humidity: %0.2f %%" % sensor.relative_humidity) print("\nsensor_value: %0.2f" % sensor_value) print("Vbattf: %0.2f %%" % Vbattf) oled.fill_rect(50, 16, 48, 64, 0)# 局部清屏 oled.text('{:.2f}'.format(Vbattf), 50, 16) oled.text('{:.2f}'.format(sensor.temperature), 50, 32) oled.text('{:.2f}'.format(sensor.relative_humidity), 50, 48) oled.show() time.sleep(1) if (Vbattf)<20.0: buzzer.freq(1047) buzzer.duty(100) # 打开声音 Vibrate_Pin.value(1) # 打开震动 else: buzzer.freq(1047) buzzer.duty(0) # 关掉声音 Vibrate_Pin.value(0) # 关掉震动   四,可编译的代码 总结:       过本次的开发体验,让我切身感受到了使用python语言控制板子进行各种任务输出的乐趣。虽然板子面积很小,但是五脏俱全,显示屏、LED灯,wifi模块一应俱全,可以满足很多小功能的开发。这次任务为我打开了嵌入式的新的领域,使我的技能得到了拓展,也了解到了很多之前一知半解的知识,收获满满。

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

    本帖最后由 飞扬自我 于 2023-12-3 16:32 编辑 一、任务主要内容 开发板熟悉 烧写Micro Python固件 运行MicroPython程序 二、任务实施 2.1  开发板熟悉 xiao esp32c3开发板接口如下:   XIAO ESP32C3虽小但是五脏俱全,通过USB供电5V,管脚复用多种功能,可以通过外部扩展板进行功能拓展。   2.2 烧写Micro Python固件 2.2.1烧录工具下载 根据开始 | Seeed Studio Wiki 指导下载ESP RF测试工具进行烧录, 下载地址为Tools | Espressif Systems 2.2.2烧录固件下载 下载最新固件(本教程是v1.20.0 (2023-04-26) .bin) https://micropython.org/download/esp32c3/ 2.2.3 固件烧录步骤 解压.zip,导航到ESP_RF_Test_EN\ESP_RF_Test_EN\EspRFTestTool_v2.8_Manual并打开EspRFTestTool_v2.8_Manual.exe     选择ESP32C3作为芯片类型,你的COM端口,115200作为波特率,然后点击open   您将看到以下输出     选择Flash并单击Select Bin     下载XIAO ESP32C3的工厂固件并选择 最后点击Load Bin     当闪烁成功时,您将看到以下输出     三、运行MicroPython程序 3.1 连接Thonny   3.2 运行help(),print()函数                                        

最近访客

< 1/5 >

统计信息

已有66人来访过

  • 芯积分:279
  • 好友:--
  • 主题:26
  • 回复:162

留言

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


现在还没有留言