朴人
码龄9年
关注
提问 私信
  • 博客:169,606
    社区:1
    视频:1
    169,608
    总访问量
  • 43
    原创
  • 30,359
    排名
  • 215
    粉丝
  • 学习成就

个人简介:alias cd='rm -rf'

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2015-07-24
博客简介:

欢迎你来

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    435
    当月
    27
个人成就
  • 获得323次点赞
  • 内容获得78次评论
  • 获得782次收藏
  • 代码片获得560次分享
创作历程
  • 8篇
    2024年
  • 6篇
    2023年
  • 1篇
    2022年
  • 6篇
    2021年
  • 17篇
    2020年
  • 2篇
    2019年
  • 3篇
    2018年
成就勋章
TA的专栏
  • 电机控制
    8篇
  • 生活
    13篇
  • 人工智能
    2篇
  • python
    1篇
  • 机器人
    2篇
  • 计算机视觉
    1篇
  • 机器学习白板推导系列注解
  • 机器学习
  • 数学
    1篇
  • 数据结构和算法
  • c++
    9篇
  • linux
    7篇
  • 蓝牙
    2篇
  • markdown
  • 概念
    1篇
兴趣领域 设置
  • 编程语言
    pythonc语言
  • 人工智能
    人工智能
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【从零开始实现stm32无刷电机FOC】【实践】【7.2/7 完整代码编写】

本节使用stm32cubemx配置外设,生成keil工程,代码适配本文的硬件电路板。
原创
发布博客 2024.09.29 ·
3868 阅读 ·
52 点赞 ·
7 评论 ·
106 收藏

【从零开始实现stm32无刷电机FOC】【实践】【7.1/7 硬件设计】

为了承载和验证本文的FOC代码工程,本节设计了一个简易的三相无刷电机,主控采用非常常用的stm32f103c8t6单片机,电机编码器采用MT6701,电机采用22xx系列云台电机,驱动电路采用集成驱动芯片DRV8313,电流传感器采用INA199A1在线采样。该使用无工具快拆装设计,到手即可直接快速手拧安装拆卸。
原创
发布博客 2024.09.29 ·
2259 阅读 ·
30 点赞 ·
2 评论 ·
30 收藏

【从零开始实现stm32无刷电机FOC】【实践】【6/7 CMSIS-DSP】

CMSIS-DSP库是ARM开源的、对ARM处理器优化的数学库,本文使用了其提供的三角函数、反park变换函数、park变换函数、clarke变换函数、PID控制器。CMSIS-DSP原始代码仓库是,官方对其的介绍是一个针对Cortex-M和Cortex-A内核优化的嵌入式系统计算库,此处的DSP不是指的硬件,而是数字处理的意思。
原创
发布博客 2024.07.18 ·
2209 阅读 ·
13 点赞 ·
3 评论 ·
36 收藏

【从零开始实现stm32无刷电机FOC】【实践】【5/7 stm32 adc外设的高级用法】

本节介绍的adc外设高级用法用于电机电流控制。从前面几节可知,电机力矩来自于转子的q轴受磁力,而磁场强度与电流成正比,也就是说电机力矩与q轴电流成正相关,控制了q轴电流就是控制了电机力矩。从前文电流控制内容可知,q轴电流从三个相线电流计算得到,三个相线电流通过电流采样单元连接到stm32的adc接口得到。这里要注意,本文全文没有提到过dq轴电压或相线的电压,因为相线电阻会随着温度而改变,而电流才是决定磁场强度。
原创
发布博客 2024.07.16 ·
2388 阅读 ·
37 点赞 ·
2 评论 ·
56 收藏

【从零开始实现stm32无刷电机FOC】【实践】【4/7 stm32高级定时器】

本节对stm32高级定时器中可用于FOC控制的配置项进行了介绍,并尽量开启了TIM1的完整功能,请根据自己的电路环境以及配置项说明图进行配置项的删减,比如是否开启互补和死区功能、是否开启刹车功能、死区时间的修改等等。从上图看到,半桥的上功率管和下功率管不能同时导通,否则功率管会由于短路流经大量电流被烧毁(电机绕组有电阻在,不算短路),因此上下两个的功率管的pwm要求互补导通。下图是定时器配置为上下计数模式的pwm产生示意图,定时器当前计数值与设定的比较线(值)的比较关系控制定时器通道的输出。
原创
发布博客 2024.07.11 ·
3842 阅读 ·
24 点赞 ·
0 评论 ·
52 收藏

【从零开始实现stm32无刷电机FOC】【理论】【3/7 位置、速度、电流控制】

上一节,通过对SVPWM的推导,我们获得了控制电机转子任意受力的能力。本节,我们选用上节得到的转子dq轴解耦的SVPWM形式,对转子受力进行合理控制,实现FOC电机控制的最终目标:位置、速度、电流控制。
原创
发布博客 2024.07.09 ·
3060 阅读 ·
29 点赞 ·
4 评论 ·
53 收藏

【从零开始实现stm32无刷电机FOC】【理论】【2/7 SVPWM数学模型】

本节推导了svpwm数学模型,得到了目标磁矢量的生成函数。
原创
发布博客 2024.05.22 ·
2974 阅读 ·
28 点赞 ·
17 评论 ·
49 收藏

【从零开始实现stm32无刷电机FOC】【理论】【1/7 电机旋转本质】

从电机旋转本质出发,推导得到需要控制线圈合成磁矢量。
原创
发布博客 2024.05.14 ·
1406 阅读 ·
11 点赞 ·
0 评论 ·
26 收藏

Keil 厂商DFP pack实现原理

直接复制别人的厂商文件夹到这里也是相同的效果,比如这里复制了一份ArteryTek的文件夹命名为ArteryTek2,打开Keil时会提示ArteryTek2相应的信息,说明Keil会扫描这个目录下的文件夹。在Keil中用鼠标选择芯片型号操作的原理是读取解析厂商文件夹下对应型号文件夹中的pdsc文件(pack description),这个文件写着芯片的介绍文字、外设功能库的路径、debug时寄存器文件的路径等等芯片相关的信息,Keil读取出这些信息后显示到Keil界面上供程序员鼠标点选。
原创
发布博客 2023.10.12 ·
562 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

串口硬件流控RTS、CTS

硬件流控机制:发送端在发送前需要检查自身的CTS,CTS低电平为可以发送。接收端RTS连接到发送端的CTS,接收端准备好接收后拉低自己的RTS即拉低发送R端的CTS。设置流控模式后,芯片内部自动完成以上机制,CTS为高时,即使程序运行发送函数,实际上并不会发送。当接收端的串口处理速度过低时,会丢失数据,因此考虑增加一种通知的机制来告诉发送端是否可以发送,即增加了RTS(Require To Send)和CTS(Clear To Send)信号线。
原创
发布博客 2023.10.11 ·
1979 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

MOS管各种概念(三个极、沟道、衬底、电流方向、箭头方向、耗尽型和增强型、寄生二极管、封装引脚)

MOS管各种概念(三个极、沟道、衬底、电流方向、箭头方向、耗尽型和增强型、寄生二极管)
原创
发布博客 2023.10.09 ·
19140 阅读 ·
18 点赞 ·
2 评论 ·
82 收藏

PLL锁相环倍频原理

锁相环倍频原理
原创
发布博客 2023.10.06 ·
1061 阅读 ·
4 点赞 ·
0 评论 ·
12 收藏

Windows平台Qt6中UTF8与GBK文本编码互相转换、理解文本编码本质

Qt C++ UTF8与GBK文本编码互相转换
原创
发布博客 2023.09.20 ·
3070 阅读 ·
3 点赞 ·
2 评论 ·
11 收藏

WSL2中的ROS2与windows中的webots通信失败的问题

windows中在【控制面板\系统和安全\Windows Defender 防火墙\允许的应用】中,将webots-bin的专用和公用都勾选上,即可解决问题。
原创
发布博客 2023.06.14 ·
398 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

opencv 快速简单二值化的做法

大家在网上搜索opencv二进制,很多人会告诉你用threshold等函数。这类函数虽然支持自适应等功能,但是参数比较多,有点复杂。我们只要简单二值化的时候可以用以下做法:Mat img = imread("a.png", IMREAD_GRAYSCALE)<100;...
原创
发布博客 2022.03.06 ·
3106 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[有/无]刷,[直/交]流,[同/异]步,各种电机概念区分

各种电机概念区分
原创
发布博客 2021.12.15 ·
8620 阅读 ·
22 点赞 ·
7 评论 ·
54 收藏

windows平台,mingw64编译环境下的socket使用

代码并不重要,主要看最后的编译命令://test.cpp#include <winsock2.h>#include <iostream>using namespace std;int main(){ WSADATA ws; WSAStartup(MAKEWORD(2, 2), &ws); SOCKET s = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addrSrv; add
原创
发布博客 2021.07.05 ·
2921 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

windows平台,mingw64编译使用matplotlibcpp

编译以下代码://test.cpp#include "matplotlibcpp.h"namespace plt = matplotlibcpp;int main() { plt::plot({1,3,2,4}); plt::show();}编译命令:g++ test.cpp -DWITHOUT_NUMPY -ID:\application\miniconda3\include -LD:\application\miniconda3 -lpython38注意自行更改pytho
原创
发布博客 2021.07.05 ·
382 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux平台的三种动态库路径设置方法

方法一:LD_LIBRARY_PATHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/path建议在~/.profile最后增加一行,写入上述命令。方法二:/etc/ld.so.conf用sudo权限在/etc/ld.so.conf文件最后新增一行动态库路径,比如写入/usr/local/lib。然后命令行运行sudo ldconfig。方法三:gcc添加编译选项-Wl,-rpath=/your/path:/your/path2比如gcc
原创
发布博客 2021.05.18 ·
4605 阅读 ·
3 点赞 ·
0 评论 ·
24 收藏

从零开始使用交叉编译开发树莓派驱动hello world

【以下命令没有特别说明,皆在上位机端运行(wsl不原生支持树莓派官方的32位编译器,自行查找资料折腾)。】1.交叉编译环境准备arm设备性能低,一般不在arm板上编译东西,所以使用交叉编译。此处上位机为linux pc。kernel源码:运行uname -r查看当前树莓派的内核版本。并下载相应版本的内核git clone git://github.com/raspberrypi/linux.git。compiler chain:git clone git://github.com/raspberr
原创
发布博客 2021.04.07 ·
322 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多