1.å¦ä½ä½¿ç¨stm32
2.FOC控制库MCSDK5.4.4梳理(1)——SVPWM
3.PCA9685:I2C转16路PWM,程程序助力你的序源系统
4.STM32F103正点原子学习笔记系列——高级定时器
5.聆思CSK6 视觉AI开发套件试用头肩、手势识别体验与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ï¼ãå ·ä½æä½æ åµå¦ä¸å¾ï¼
第äºæ¥ï¼å·¥ç¨é ç½®
FOC控制库MCSDK5.4.4梳理(1)——SVPWM
本文将深入探讨FOC控制库MCSDK5.4.4中的程程序关键步骤——SVPWM,即空间矢量脉宽调制。序源从理论到代码实践,程程序我们将逐步揭示如何通过PWMC_SetPhaseVoltage函数将目标电压Uout转化为实际的序源asp源码ftpPWM占空比。虽然网络上多是程程序SVPWM原理的理论讲解,但实际代码应用的序源讲解并不多见。本文将结合实际代码,程程序结合个人理解,序源帮助你理解SVPWM算法的程程序工作原理。空间矢量合成与区域划分
如图所示,序源UVW三相电压以红色、程程序绿色和蓝色表示,序源合成矢量为黑色。程程序电机的三相电压在空间上相隔度。通过建立αOβ坐标系,可以解析三相电流的关系,进而推导出电压分解的表达式,得出相电压与母线电压的关系。六个扇区划分与PWM计算
将电压分解为六个扇区,每个区域对应不同的PWM占空比计算。例如,c语言开源源码当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度。
STMF正点原子学习笔记系列——高级定时器
高级定时器简介:TIM1/TIM8包含位递增、递减、中心对齐计数器(0至),具备位预分频器(分频系数1至)。它们用于触发DAC与ADC,并在更新事件、触发时间、输入捕获、输出比较时产生中断/DMA请求。高级定时器提供4个独立通道,用于输入捕获、输出比较、输出PWM及单脉冲功能。高级定时器能够根据外部信号控制,支持编码器和霍尔传感器电路。此外,它们具备重复计数器功能、可编程的互补输出、断路输入以实现用户自定义的安全配置。
高级定时器框图展示其内部结构,包括计数器、预分频器、中断控制单元、通道配置、输出控制等关键组件。
高级定时器输出指定个数PWM实验通过设置重复计数器RCR实现。除最后一个PWM输出外,其余PWM输出仅需配置RCR值,更新事件会在RCR+1次溢出时触发。
高级定时器输出指定个数PWM实验原理:确保在进行PWM输出时,将MOE(输出使能)设置为1,并在TIMx_BDTR寄存器中配置互补输出功能。在初始化函数中调用相关HAL库函数配置定时器实例、预分频器、重复计数器值等关键参数。然后配置GPIO和定时器中断,开启PWM输出。通过中断函数,根据需要触发更新事件,并控制PWM计数器。
课堂源码与例程的区别在于,课堂源码通过调用HAL库中断处理函数并进入回调函数,而例程直接在中断函数内进行用户代码编写,跳过了HAL库的中断处理流程。
高级定时器输出比较模式实验涉及PWM周期由ARR决定,占空比固定为%,相位由CCRx控制。配置相关HAL库关键结构体实现输出比较模式,包括初始化定时器实例、配置比较模式、输出极性、比较值等,通过设置定时器的比较寄存器值来控制PWM占空比。
高级定时器互补输出带死区控制实验包括H桥应用,通过增加死区时间控制避免元器件延迟导致的输出冲突。设置MOE为1开启输出,配置死区时间、刹车功能和输出空闲状态,实现互补输出和死区控制。
高级定时器PWM输入模式实验涉及通道1和通道2的使用,通过TIM3CH2输出PWM,将PWM输入到TIM8CH1进行测量。配置采样频率、PSC和ARR以确保准确的测量结果,并通过HAL库函数实现输入捕获功能。中断服务函数负责读取计数器值和捕获事件。
聆思CSK6 视觉AI开发套件试用头肩、手势识别体验与PWM舵机控制
聆思科技与极术社区联合组织的CSK6视觉AI开发套件活动已让《酷电玩家》带来了深度的开发体验。本次分享针对AI识别应用与PWM舵机控制两大功能进行全面介绍,并通过步骤分解详述实现过程。环境搭建
首先,通过官方文档指引,在环境搭建部分完成以下步骤:下载Git并安装,安装lisa zep工具以初始化CSK6 SDK开发环境,然后进行开发环境验证。获取源码
操作中使用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舵机控制实现。结合头肩识别与坐标信息,进一步实现动态头肩跟踪功能成为可能。完整代码实现与进阶功能探索请参阅官方文档。