1.å¦ä½ä½¿ç¨stm32
2.时间触发嵌入式系统设计模式内容简介
3.聆思CSK6 视觉AI开发套件试用头肩、手势识别体验与PWM舵机控制
4.FOC控制库MCSDK5.4.4梳理(1)——SVPWM
5.PCA9685:I2C转16路PWM,助力你的系统
å¦ä½ä½¿ç¨stm32
å ³äºè·åSTå ¬å¸çSTMåºä»¶åºæºç ï¼æå ç§æ¹æ³ãæ们å¯ä»¥å¨ç¾åº¦ä¸æï¼ç½ä¸æè¿è¡äºå享ï¼ä¹å¯ä»¥å°STå ¬å¸çå®ç½è¿è¡æ¥æ¾å¹¶ä¸è½½ãä¸è¿ï¼å¦æè±æä¸å¥½çè¯ï¼è¦å¨å®ç½ä¸æ¾å°STMåºä»¶åºç¡®å®æ¯ä»¶å¾ååçäºãå¨å®ç½ä¸å¯ä»¥æ ¹æ®è±ææ示æä¸åæ¡ä»¶è¿è¡çéï¼å ·ä½æä½å¦ä¸å¾æ示ï¼
END
第äºæ¥ï¼æ°å»ºå·¥ç¨æ件夹ââãSTMå·¥ç¨æ¨¡æ¿ã
é¦å ï¼æ°å»ºå·¥ç¨æ件夹ãSTMå·¥ç¨æ¨¡æ¿ãï¼ç¶ååå¨è¯¥æ件夹ä¸æ°å»º6个æ件夹ï¼åå«ä¸ºï¼ãDocãããLibrariesãããListingãããOutputãããProjectãåãUserããå ¶ä¸ï¼ãDocãç¨äºåæ¾åç§è¯´æææ¡£ï¼ãLibrariesãç¨äºåæ¾åç§åºæ件ï¼ãListingãç¨äºåæ¾ç¼è¯æ¶äº§ççä¸é´æ件ï¼ãOutputãç¨äºåæ¾çæçä¸è½½æéçæ件ï¼ãProjectãç¨äºåæ¾å·¥ç¨æ件ï¼ãUserãç¨äºåæ¾ç¨æ·æ件ï¼å³æ们èªå·±ç¼åçåç§æºæ件ãå ·ä½æ åµå¦ä¸å¾æ示ï¼
END
第ä¸æ¥ï¼å建ç«çå·¥ç¨æ件夹ä¸æ·»å åºæ件
å°åºæ件ä¸çincåsrcæ件夹å¤å¶å°æ¨¡æ¿å·¥ç¨æ件夹ä¸çFWLIBæ件夹ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
å°åºæ件ä¸CoreSupportæ件夹ä¸çæ件å¤å¶å°å·¥ç¨æ¨¡æ¿æ件夹ä¸çCMSISæ件夹ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
å°åºæ件ä¸DeviceSupportæ件夹ä¸çç¸å ³æ件å¤å¶å°å·¥ç¨æ¨¡æ¿æ件夹ä¸çCMSISæ件夹ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
å°åºæ件ä¸startupæ件夹ä¸armä¸çæä»¶å ¨é¨å¤å¶å°å·¥ç¨æ¨¡æ¿æ件夹ä¸çstartupæ件夹ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
å°åºæ件ä¸Projectæ件夹ä¸çç¸å ³æ件å¤å¶å°å·¥ç¨æ¨¡æ¿æ件夹ä¸çUseræ件夹ä¸ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
第åæ¥ï¼ä½¿ç¨MDKï¼Keilï¼æ°å»ºå·¥ç¨æ¨¡æ¿
é¦å å¾éæ©CPUï¼è¿ä¸ªå¨æ°å»ºå·¥ç¨æ¶ï¼ä¼æä¸ä¸ªéæ©è¯çççé¢ï¼æ们åªéææ示以åèªå·±çå®é æ åµæ¥éæ©å°±å¥½äºãå ·ä½æä½æ åµå¦ä¸å¾ï¼
æ´æ¹å·¥ç¨åï¼å°é»è®¤çå·¥ç¨åæ¹ä¸ºâTemplateâçæ¹æ³ï¼éä¸å·¥ç¨ï¼æâF2âé®ï¼å¹¶ä¸ºå·¥ç¨æ·»å 项ç®ç»ï¼Add group to projectï¼ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
åå«åå个项ç®ç»ä¸æ·»å æ们ååä»åºä¸å¤å¶è¿æ¥çæ件æ件ï¼Add files to groupï¼ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
第äºæ¥ï¼å·¥ç¨é ç½®
时间触发嵌入式系统设计模式内容简介
本书深入探讨了时间触发的嵌入式系统设计模式,主要针对那些运用一个或多个微控制器的嵌入式应用场景。它详细讲解了如何构建一个完整的调度操作系统,确保系统的急速反转源码高效运行和管理。
在用户界面的构建方面,书中提供了实用的指导,包括如何利用开关、键盘、LED显示和LCD等元件,设计出直观易用的操作界面,增强用户体验。
网络和通信协议的运用是现代嵌入式系统设计不可或缺的部分,本书会教你如何有效地集成和管理这些协议,以实现设备间的高效通信和数据交换。
在系统控制层面,本书特别介绍了PID算法在脉冲宽度调制(PWM)监控系统设计中的实际应用,帮助你理解和掌握精确控制技术。舵机控制 cnc 源码
本书的一大亮点是通过丰富的案例研究,展示了如何将这些设计模式应用于实际项目中,让你在实践中学习和掌握。附赠的CD中包含了所有模式和实例的C语言源代码,以及一个完整的调度器,方便你进行代码理解和调试。此外,你还将获得一个Keil C编译器的评估版本和硬件模拟器,无需额外购买,就能在本书提供的环境中测试你的项目。
聆思CSK6 视觉AI开发套件试用头肩、手势识别体验与PWM舵机控制
聆思科技与极术社区联合组织的CSK6视觉AI开发套件活动已让《酷电玩家》带来了深度的开发体验。本次分享针对AI识别应用与PWM舵机控制两大功能进行全面介绍,并通过步骤分解详述实现过程。环境搭建
首先,通过官方文档指引,在环境搭建部分完成以下步骤:下载Git并安装,安装lisa zep工具以初始化CSK6 SDK开发环境,c slip协议源码然后进行开发环境验证。获取源码
操作中使用Git获取Sample项目与SDK到本地环境,可自动完成初始化。AI案例体验
通过VSCODE打开项目结构,其中prj.conf文件是工程配置的关键。更改配置CONFIG_WEBUSB=n至CONFIG_WEBUSB=y,以便在后续测试阶段使用PC工具预览功能。接下来,完成固件编译与烧录,并通过USB接口烧录至CSK6开发板。安装与调试工具
工具预览使用Edge浏览器加载csk_view_finder_spd/src目录下index.html页面。完成Windows系统驱动安装,确保CSK6 USB端口能被系统识别。PWM舵机控制
对于引脚定义与设备树概念,开发者在.sdk\zephyr\dts文件中获取详细信息。选择适合的PWM通道与引脚(例如GPIOB , GPIOB 等),并在主程序中配置PWM控制与舵机驱动代码。总结
上述步骤涵盖CSK6视觉AI开发套件的原子综合例程源码基本操作,从环境搭建、代码获取到AI应用体验与PWM舵机控制实现。结合头肩识别与坐标信息,进一步实现动态头肩跟踪功能成为可能。完整代码实现与进阶功能探索请参阅官方文档。FOC控制库MCSDK5.4.4梳理(1)——SVPWM
本文将深入探讨FOC控制库MCSDK5.4.4中的关键步骤——SVPWM,即空间矢量脉宽调制。从理论到代码实践,我们将逐步揭示如何通过PWMC_SetPhaseVoltage函数将目标电压Uout转化为实际的PWM占空比。虽然网络上多是SVPWM原理的理论讲解,但实际代码应用的讲解并不多见。本文将结合实际代码,结合个人理解,帮助你理解SVPWM算法的工作原理。空间矢量合成与区域划分
如图所示,UVW三相电压以红色、绿色和蓝色表示,合成矢量为黑色。mui的实例源码电机的三相电压在空间上相隔度。通过建立αOβ坐标系,可以解析三相电流的关系,进而推导出电压分解的表达式,得出相电压与母线电压的关系。六个扇区划分与PWM计算
将电压分解为六个扇区,每个区域对应不同的PWM占空比计算。例如,当wY和wZ为负值时,目标矢量位于扇区5。通过计算空间矢量作用时间,理解SVPWM波形的7段式结构,如第6扇区的0-4-5-7-5-4-0模式。合成不失真条件
为了保证不失真,合成的电压不能超过2*Udc/3与Udc/sqrt(3)之间的限制。当合成电压达到最大值时,需要确保Uref等于Udc/sqrt(3),这是SVPWM算法设计的关键点。代码实现与总结
通过上述分析,我们可以理解SVPWM的完整过程,从理论到实际代码的转换。FOC库中的定时器中心对齐模式对计算占空比至关重要。理解算法背后的原理,不仅限于使用,还能帮助我们灵活地解决产品问题。希望本文能对研究SVPWM原理的读者有所帮助。进一步的代码研究可参考链接:FOC5.4源代码PCA:I2C转路PWM,助力你的系统
PCA是一种主要用作I2C转路PWM的集成电路,适用于舵机控制、LED颜色控制等。其控制精度在Hz的控制频率下,脉宽为0.5ms~2.5ms,具备位分辨率(级),具体精度计算需参考相关资料。
PCA有两种封装形式:TSSOP与HVQFN,各有相应的引脚排列。每个引脚的功能描述如下图所示。引脚A0-A5共同决定器件地址,由于有6个引脚参与,因此可有个不同的器件地址。除了LED All Call address (E0h)和Software Reset address (h)外,实际可用地址为个,理论上,1个I2C接口可控制多达路PWM。器件地址的设置示意图如下图所示。默认情况下,若A0-A5全部接地,则器件地址为0x。
默认状态下,上电复位后,寄存器地址默认值为0,具体寄存器地址及其用途见下图。重点关注以下寄存器:模式设置寄存器、PWM通道寄存器与占空比设置、PWM周期(频率)寄存器与周期(频率)设置。
在使用模式设置寄存器时,需注意以下事项:首先介绍MODE1寄存器,其功能如下图所示。在配置模式时,特别关注MODE2寄存器的各位功能,如图所示。
PWM通道寄存器的设置如下图所示,每个通道有4个寄存器,每个寄存器图解如图所示。在设置PWM占空比时,首先配置舵机,例如ON < OFF情况。特殊情况下,PWM周期大于定时器一次计数时,配置ON>OFF情况。
配置PWM频率时,一般采用内置晶振,频率为MHz。通过配置PRE_SCALE寄存器来调整频率,其与PWM频率的关系见下图。若使用内置晶振,取osc_clock=,update_rate=(舵机控制频率Hz)。
推荐硬件设计时,确保OE引脚接低电平以确保IC使能。若连接LED灯,则推荐连接方式如下图所示。
软件设计部分,Micro:bit平台采用TypeScript(JavaScript的超类)进行底层开发,提供基本操作方法及其思路。日后再更新C、C++及其它平台(STM、Linux树莓派、Arduino等)的操作方法。Micro:bit驱动PCA的源代码提供,注意源代码中的时间为us,与教程中的ms不同。
树莓派平台采用Python驱动PCA,首先安装Python和smbus库。Python代码如下所示,保存文件名为pca.py,命令行进入该文件所在的路径,运行该Python脚本。执行命令后,即可控制舵机从0度转到度,再从度转到0度。