爱吃鱼的加菲猫

  • 2025-06-15
  • 回复了主题帖: DigiKey应用探索站重磅上线!潮流应用,硬核技术探秘,N多干货,一站get!

    在线计算器工具非常实用,帖子内容也都很详细,点赞

  • 2025-06-12
  • 回复了主题帖: 【你晒单,我买单,DigiKey带您畅享好物】第一期,评估板EVAL-ADA4351-2EBZ介绍

    秦天qintian0303 发表于 2025-6-9 13:32 深圳效率就是快     我的也是走深圳,昨天刚顺丰派送收到货

  • 2025-06-10
  • 加入了学习《【Follow me第三季第1期】Arduino环境任务提交视频汇总》,观看 【Follow me第三季第1期】任务三(必做):运动传感器数据读取

  • 加入了学习《【Follow me第三季第1期】Arduino环境任务提交视频汇总》,观看 【Follow me第三季第1期】任务二:LED控制

  • 加入了学习《【Follow me第三季第1期】Arduino环境任务提交视频汇总》,观看 【Follow me第三季第1期】任务一 搭建开发环境及串口helloworld

  • 加入了学习《【Follow me第三季第1期】任务1、2、3、5讲解及效果展示》,观看 【Follow me第三季第1期】任务一 搭建开发环境

  • 上传了资料: 【Follow me第三季第1期】任务五光线强度检测——实现一款智能台灯,根据环境光线强度自动调节亮度

  • 上传了资料: 【Follow me第三季第1期】任务三:Arduino环境运动传感器数据读取

  • 上传了资料: 【Follow me 第三季第1期】任务二——Arduino控制板载LED灯,并实现呼吸灯效果

  • 上传了资料: 【Follow me 第三季第1期】任务一 源码-——Arduino环境Hello EEWorld

  • 发表了主题帖: 【Follow me第三季第1期】+STM32F429_DISCO 汇总贴

    本帖最后由 爱吃鱼的加菲猫 于 2025-6-10 21:43 编辑 ✏️ 本文介绍了 DigiKey 得捷和 EEWorld 论坛共同举办的 Follow me 第三季第1期 任务五:智能台灯的实现以及整个活动其他相关任务帖子汇总 物料展示 本次活动必选物料STM32F429I-DISC1开发板,光线传感器GL5528,实物照片如下所示:   任务汇总 子任务相关帖子链接如下: 任务一(必做):搭建开发环境——实现代码编写、编译、调试、烧录,并通过串口输出Hello EEWorld; 任务二(必做):LED控制——控制板载LED灯,并实现呼吸灯效果; 任务三(必做):运动传感器数据读取——读取运动传感器的数据,并通过串口数据; 以上任务帖子内已分别提交材料及视频,就不在一一赘述。 可选任务 下面主要详细讲解下可选任务,我选择的是任务五,光线强度检测——实现一款智能台灯,根据环境光线强度自动调节亮度 任务介绍 任务要求实现智能台灯,需要根据环境光线强度自动调节亮度。 这里拆解下任务需求: 光照强度检测 可调节亮度的LED灯 方案设计 任务分析思维导图 此处用到的光照传感器为GL5528,是一款光敏电阻,这里采购的是一个模块。   该传感器输出电压与光照强度之间对应曲线如下: 实际该模块应用中,供电通过该光敏电阻后,经过一个68K欧姆的电阻分压到GND,分压输出的电压经过LM358运放组成的电压跟随器,保证输出电压的稳定及足够的输出阻抗。这里我实际采用的是3.3V供电,并且我用电压表实际测量了该传感器模块的输出电压。 传感器测试视频 [localvideo]a33ce41abbb74b7062b9191095cac1af[/localvideo]   硬件接线示意图   这里大家可能会有疑问,为啥板载了俩LED指示灯了,为啥我还要自己再外接个LED灯,实际是因为这两个LED连接的引脚在arduino环境下不能用于PWM输出,所以无奈只好自己外接一个到有PWM的引脚了。 实物连接图 软件设计 此处采用arduino平台进行开发,主要用到ADC、PWM、串口等基本功能,具体环境搭建可参照我帖子任务一。 流程图   工程代码 引入库文件,定义引脚及相关变量 #include <SoftwareSerial.h> //引脚定义 SoftwareSerial mSerial(10,9); const int analogInPin = PA0; const int ledPin = PB0; //变量定义 int sensorValue = 0; float voltage = 0 ; int ledValue = 0; setup函数为上电后一次性执行函数,在函数内主要完成引脚初始化,串口初始化并打印提示信息 // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(PB0, OUTPUT); //initialize analog in pin pinMode(PA0, INPUT); //初始化串口,波特率9600 mSerial.begin(9600); mSerial.println("Initialization complete!"); } loop函数为死循环函数,只要不死机就一直循环执行。这里要完成主要功能,包括模拟电压采集、数值转换、串口信息打印、PWM输出等任务。 // the loop function runs over and over again forever void loop() { sensorValue = analogRead(analogInPin);//读取模拟输入电压值 voltage = sensorValue * (3.3 / 1023.0);//将模拟输入采集值转换为电压值 //串口打印 mSerial.print("sensor= "); mSerial.print(sensorValue); mSerial.print("\t vol= "); mSerial.print(voltage); mSerial.println("V"); //LED PWM control ledValue = map(sensorValue, 0, 630, 255, 0);//将0-1024之间的数据映射成255到0之间的数值 mSerial.print("LED PWM ="); mSerial.println(ledValue); analogWrite(ledPin, ledValue); //引脚PWM输出,最大值255 delay(5); //当前亮度维持时间,单位毫秒 } 这里需要注意的是,有个map函数,主要实现将ADC采集回来的0-1024值转换为PWM输出所需的0-255地址。但是大家可能有疑问,为啥代码里用的是630,而且后面255跟0是反过来的。 主要原因是如果用1024会导致LED输出电压变化不大,因为这个光线传感器亮度最高输出电压也不到2V,ADC采集回来大概就是630.另外LED输出的PWM占空比越高,输出亮度越高,这里需要的是外部光照亮度高时PWM值小,所以就反过来写。 测试视频 [localvideo]5d453c6c28e921644fd8170e98747054[/localvideo] 源代码及成果 源代码论坛下载中心链接: 任务一:待资源审核后更新 任务二: 任务三: 任务五: EE大学堂视频链接: 任务一:https://training.eeworld.com.cn/video/42911 任务二:https://training.eeworld.com.cn/video/42912 任务三:https://training.eeworld.com.cn/video/42913 任务五:https://training.eeworld.com.cn/video/42914   总结  感谢DigiKey 得捷和 EEWorld 论坛共同举办的 Follow me活动, 作为论坛活动积极分子,希望活动能越办越好!

  • 2025-06-09
  • 回复了主题帖: 【Follow me第三季第1期】任务汇总帖

    aramy 发表于 2025-6-9 17:57 谢谢!在vscode+platformio里没看见这个板子就放弃了! platform IO也可以,我试过了,最后我发的帖子是用的arduino方式

  • 2025-06-08
  • 回复了主题帖: 【Follow me第三季第1期】+ 任务五:光线强度检测

    4284248 发表于 2025-6-1 19:39 是有跑RTOS,虽然这点任务量没必要跑rtos,但习惯跑rtos了 既然都用rtos了,如果把ADC读取和PWM用两个任务,用邮箱传递消息就更棒了,虽然有点搞复杂了,哈哈

  • 2025-06-04
  • 发表了主题帖: 【Follow me第三季第1期】任务三:运动传感器数据读取

    任务目标:读取运动传感器的数据,并通过串口显示数据 硬件介绍 板载传感器原理图 根据原理图,板载的加速度陀螺仪传感器I3G5240D对外接口主要有6个,分别是 MEMS引脚名 MCU引脚 引脚功能 SPI5 SCK PF7 SPI时钟 SPI5 MOSI PF8 SPI主机数据输出 SPI5 MISO PF9 SPI主机数据输入 NCS MEMS SPI PC1 SPI使能 MEMS INT2 PA2 中断2 MEMS INT1 PA1 中断1       单片机接口 根据上文,单片机用的是SPI5口,这里不多啰嗦 通讯接口 折腾半天,没找到SPI接口的arduino库,索性切换 用IIC接口算啦。把CS脚拉高就进入IIC模式   IIC模式下,接口定义如下 MEMS引脚名 IIC模式引脚 MCU引脚 引脚功能 SPI5 SCK SCL PF7 时钟 SPI5 MOSI SDA PF8 数据 SPI5 MISO SA0 PF9 芯片地址 NCS MEMS SPI SPI enable PC1 拉高进入IIC模式 I3G4250D介绍 这个MEMS用于工业应用的3轴陀螺仪,具有数字输出和更大工作温度范围,主要参数如下 输出类型 I?C,SPI 特性 可调带宽,可选量程,温度传感器 封装/外壳 16-TFLGA 工作温度 -40°C ~ 85°C(TA) 轴 X(俯仰),Y(偏转),Z(横滚) 电流-供电 6.1mA 范围°/s ±245,500,2000 灵敏度(mV/°/s) - 带宽 - 电压-供电 2.4V ~ 3.6V 灵敏度(LSB/(°/s)) 8.75 ~ 70 类型 数字   该芯片外围器件是比较少的,几个电容就行,甚至如果用I2C引脚可以更少,简单应用连接方式如下:   代码工程构建 打开arduino,点击左侧库管理器,输入I3G4250D,会提示有个RAKwireless I3G4250D Gyroscope library,直接点安装。   底部输出这样子就代表安装成功   点击文件→示例→自定义库那里找到Gyroscope的例程   保存工程,可以通过文件菜单→保存,或者ctrl+S,注意保存时候要用英文。 根据需要添加串口部分功能,这个完全可以参考任务一部分,不再赘述。 /* I3G4250D is MEMS motion sensor, 3-axis digital ouput gyroscope, IIC operation mode,Pin connection is following: MCU Pin function ------------------- PF7 SCL PF8 SDA PF9 pull-down,address,1101001b PC1 pull-up for IIC mode */ #include <Wire.h> #include "I3G4250D.h" // Click here to get the library: http://librarymanager/All#I3G4250D // It use WB_IO2 to power up and is conflicting with INT1, so better use in Slot C and Slot D. #include <SoftwareSerial.h> //Pin define SoftwareSerial mSerial(10,9); 修改引脚定义部分 pinMode(WB_IO2, OUTPUT); digitalWrite(WB_IO2, HIGH); 改成 //上拉进IIC模式 pinMode(PC1, OUTPUT); digitalWrite(PC1, HIGH); //SA address定义0x68 pinMode(PF9, OUTPUT); digitalWrite(PF9, LOW); 问题处理 代码跑起来了,引脚也是对的,不过貌似没数据,不知道是不是IIC没上拉的缘故,尝试用网友的固件试试   使用网友xiaolinen的固件,数据可以明显看到变化,但是他们都是MDK环境使用SPI接口读取的。我的用IIC方式读取,但是没上拉电阻,不知道是不是因为这个导致无法通讯,需要进一步排查   测试视频 [localvideo]756bcbab5b91fbaee525d29f4b05472f[/localvideo] 固件源码

  • 2025-06-03
  • 发表了主题帖: 【Follow me第三季第1期】任务二:LED控制——控制板载LED灯,并实现呼吸灯效果

    本帖最后由 爱吃鱼的加菲猫 于 2025-6-4 18:48 编辑 书接上文Arduino环境搭建,参考帖子如下: https://bbs.eeworld.com.cn/thread-1317144-1-1.html 新建项目 打开Arduino,文件→示例→basics→Blink   选择项目硬件配置 打开工具→开发板→STM32 MCU based boards→Generic STM32F4 series   打开工具→Board part number→选择Generic F429ZITx,Upload method选择STM32CubeProgrammer(SWD)方式   修改代码 硬件原理图 根据原理图可见两个LED连接在PG13和PG14口,这里选择使用绿灯,也就是PG13   修改代码 此三处代码修改为PG_13,鼠标悬停会有代码提醒   代码上传 点击此处图标,会自动编译并上传,第一次编译估计得5分钟。   编译和上传过程在下面会有输出信息提示,如有类似信息就是成功了,LED也开始不灵不灵的闪了   代码如下: void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(PG_13, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(PG_13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(PG_13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } 要做呼吸灯需要再修改下,代码如下: void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(PB0, OUTPUT); } // the loop function runs over and over again forever void loop() { for (int a=0; a<=255;a++) //循环语句,控制PWM亮度的增加 { analogWrite(PB0,a); delay(10); //当前亮度维持时间,单位毫秒 } for (int a=255; a>=0;a--) //循环语句,控制PWM亮度减小 { analogWrite(PB0,a); delay(10); //当前亮度维持时间,单位毫秒 } } 函数介绍 此项目主要用到三个函数pinMode()、digitalWrite()和analogWrite(),介绍信息如下: pinMode() 描述:将指定引脚配置为输入或者输出模式 函数原型:pinMode(pin, mode) 参数: pin:要设置其模式的引脚编号 mode: INPUT(输入模式), OUTPUT(输出模式), INPUT_PULLUP(上拉输入模式) 返回值: 无返回值 digitalWrite() 描述:将数字HIGH或LOW值写入数字引脚 函数原型:digitalWrite(pin, value) 参数: pin:要设置其输出的引脚编号 value:HIGH(1), LOW(0) 返回值: 无返回值 analogWrite() 描述:在指定引脚输出指定占空比的PWM方波。 函数原型:analogWrite(pin, value) 参数: pin:输出引脚。 value:占空比。介于0和255之间。 返回值:没有。 注意事项: 板子只有下面几个脚支持PWM,故PG13和PG14口无法实现呼吸灯效果,最后选择了PB0口,用万用表测量啦。         实验视频 [localvideo]8734e8f01899968da5c71f9d873b72b8[/localvideo] 源代码文件  

  • 2025-06-02
  • 发表了主题帖: 【Follow me第三季第1期】 任务一(必做)搭建开发环境,并通过串口输出Hello EEWorld

    本帖最后由 爱吃鱼的加菲猫 于 2025-6-3 23:57 编辑 任务背景 首先,拆解下任务: 搭建本地开发环境,实现代码编写、编译、调试、烧录 通过串口输出Hello EEWorld STM32F429的开发环境有很多,比如Keil、IAR、VScode、官方的STM32CubeIDE、还有适用于爱好者的Micropython、Arduino等。看了下论坛里的帖子,大部分常用的开发环境大家都写了,那我就写下arduino的该如何搭建。 这里先确认下Arduino是否支持STM32F429,可通过链接查看支持情况,表格里明确芯片是支持,但是Discovery开发板不在支持清单内,不过问题不大,只要有MCU的支持,其他都不是问题。       所需准备 硬件: STM32F429I-DISC1 一条micro-B口的USB数据线   软件: Arduino IDE最新版软件,最新的是2.3.6,大家可以根据需要选适合自己的。官网链接   开发环境搭建 板载ST-Link升级 我的电脑之前应该是安装过调试器驱动,不过为了大家电脑也能用,建议参考下面教程装一下。 首先是下载安装STM32CubeProgrammer软件,官方链接https://www.st.com.cn/zh/development-tools/stm32cubeprog.html 找到下面获取软件位置,根据自己系统选择合适的版本   点获取最新版本,会提示下载协议,如果你没st的账号,下载时候可能会提示登录,当然可以以访客身份登录,下载链接会发到你的邮箱,通过邮箱链接就能下载。打开后一步步安装行了没啥可说的   打开CubeProgrammer软件,点击右上角绿色的connect图标,如果你开发板正常连接了电脑,这里就能直接访问到单片机上memory数据,然后点disconnect   点击Firmware Firmware upgrade图标,   点击open in update mode,这时候电脑会听到设备掉线重连的叮咚声音,然后点Upgrade按钮   等待进度条跑完,会听到重启的声音,此处就重启完成了,相比较默认版本,增加了Mass storage模式   安装支持包 打开Arduino软件,点击文件→首选项   复制下面的URL地址,粘贴到刚才打开的窗口里“其他开发板管理器地址”位置,如果原来已经有地址了,可以加个英文的逗号隔开,然后点确定 https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json   接下来点击工具→开发板→开发板管理器   注意,最好是科学环境下,因为这里会调用刚才GitHub的地址来获取新的包,可以尝试把Arduino软件重启下,会自动拉去新的包信息。 开发板管理器里输入STM32 MCU,选择下面的STM32 MCU based boards,点安装(最新版),右下角会走进度条,等安装结束       新建工程 文件→新建项目   修改配置信息 打开工具→开发板→STM32 MCU based boards→Generic STM32F4 series image.png (99.25 KB, 下载次数: 0) 下载附件  保存到相册 1 小时前 上传     打开工具→Board part number→选择Generic F429ZITx,Upload method选择STM32CubeProgrammer(SWD)方式 端口调整,开发板插到电脑上后,COM口会有个Discovery之类的,很明显能看出来哪个哪个是开发板。   Ctrl+S 保存,注意别有中文,最好全英文 硬件端口 查看原理图,板载调试器连接到MCU的PA9和PA10,也就是USART1     查看variant_generic.h文件,可以看到默认配置用的是串口4,也就是PA1和PA0.   此处有两种解决办法,一种是修改上面信息,另一种是用软件串口,这里采用后一种 软件代码 #include <SoftwareSerial.h> //引脚定义 SoftwareSerial mSerial(10,9); void setup() { // put your setup code here, to run once: mSerial.begin(9600); //初始化串口并设置波特率为9600 } void loop() { // put your main code here, to run repeatedly: mSerial.println("Hello EEWorld!"); //打印Hello World!并回车换行 delay(1000); //延时等待1s } 编译下载 把上面的代码复制粘贴进去,然后点左上角的上传,等待大概5分钟,第一次相当的慢。底部可以看到编译过程的信息和烧录信息   提示如下信息就代表烧录成功   测试视频 [localvideo]bbbd2a2fede702035f6712fc5577ff6e[/localvideo] 代码附件

  • 2025-05-18
  • 发表了主题帖: 【Follow me第三季第1期】开箱帖

    首先非常感谢EEWorld又给了我参加Follow me活动的机会,这次我下单订购的是STM32F429I-DISC1+Seeed公司的Grove系列的光照传感器。 这次物流速度很快,之前还担心关税大战会有影响,结果4月27号就到货了,奈何这段时间工作变动,搬家杂七杂八的事情耽误了很多时间,这次群里大家貌似没啥动静,结果论坛里悄默声已经有了好多帖子,我得赶赶进度了 先来个开箱照,当然快递盒子已经丢了,不过板子包装还是出厂状态,哈哈。 这里先拆开发板,里面一张quick guides卡片,可以扫二维码查看开发板资料,不过实际地址有变化会跳转,这里我把中文跳转后链接放上来。https://www.st.com.cn/zh/evaluation-tools/32f429idiscovery.html#overview 开发板装在静电袋里,外面是一种瓦楞纸,起到缓冲保护作用,实际就是一张裁剪压出来的一张纸,简单实用又环保。板子跟官网的图片一模一样,搬个官网图片放这里 板子主要接口、按键及指示灯的分布图见下图,板载功能挺实用,比如液晶屏、LED灯、按键、三轴陀螺仪、ST-link调试器等功能,做评估开发足够用。(这里要吐槽下,ST这USB接口能不能换换,ε=(´ο`*)))唉又得找线) 主要需参考的资料如下: 用户手册:https://www.st.com.cn/resource/en/user_manual/um1670-discovery-kit-with-stm32f429zi-mcu-stmicroelectronics.pdf   GL5528光线传感器的基础资料如下,3-5V供电,模拟电压输出,最大检测照度350lux。   开箱上电测试视频如下: [localvideo]c6b9485449818bdf1e286026b3315fa2[/localvideo]  

  • 2025-01-03
  • 评论了课程: 【2024 DigiKey 应用说】第三期:大模型时代的智能汽车

    大模型数据平台,助力更轻松人性化驾驶体验

  • 回复了主题帖: 2025年测评中心,DigiKey得捷赞助继续,欢迎跟帖推你期待的上线的测品啦~

    ST家的最新款N6系列带NPU的MCU

  • 2024-07-09
  • 回复了主题帖: 颁奖:嵌入式工程师AI挑战营(初阶),致敬敢于将边缘AI收入统治领域的你们

    恭喜获奖大佬,俺们就蹭个板卡玩玩

统计信息

已有65人来访过

  • 芯积分:224
  • 好友:--
  • 主题:23
  • 回复:42

留言

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


现在还没有留言