wenhaiii
码龄2年
  • 21,323
    被访问
  • 37
    原创
  • 130,075
    排名
  • 269
    粉丝
  • 44
    铁粉
关注
提问 私信

个人简介:大三在读,喜欢接触新鲜事物,乐于结识优秀的人。B站账号名:海喂喂喂

  • 加入CSDN时间: 2020-10-04
博客简介:

wenhaiii的博客

查看详细资料
  • 3
    领奖
    总分 258 当月 20
个人成就
  • 获得36次点赞
  • 内容获得5次评论
  • 获得183次收藏
创作历程
  • 37篇
    2021年
成就勋章
TA的专栏
  • 单片机学习笔记
    37篇
兴趣领域 设置
  • 嵌入式
    单片机stm32
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

21电赛控制题:送药小车(完整代码开源)题目要求的全部功能都能实现.rar

发布资源 2022.01.06 ·
rar

【单片机学习笔记】(36):理解应用PID算法,通过上位机查看波形以整定PID参数

理解应用PID算法PID的实现方式分为两种—位置式和增量式。之前我用得比较多的是野火的位置式的PID计算代码,没怎么用增量式PID计算代码。位置式PID更便于理解,增量式PID的实际应用更多。两者本质上并没有什么不同。在编写PID算法实现代码时需要注意,位置式PID需要有积分限幅和输出限幅,而增量式PID只需输出限幅。算法推导过程截图的旧笔记链接如下:【单片机学习笔记】(26):编码器、PID、平衡车_wenhaiii的博客-CSDN博客算法代码实现摘录旧笔记链接如下:【
原创
发布博客 2021.10.24 ·
1119 阅读 ·
3 点赞 ·
0 评论

[单片机学习笔记](35):串级PID算法应用剖析、通过串口控制电机、MPU6050获取平衡车姿态、自制平衡车PID算法程序设计

串级PID算法应用剖析这是经过给队友讲解串级PID的程序的之后的进一步的理解总结。内环的实际值,取决于你能测出什么值给内环。而内环的输入就是内环误差 内环的输出值,是内环误差(内环目标值-内环实际值)经过内环pid计算后的值(可加 死区,不要积分项,要微分项)其上限值需要考虑执行器所能控制的极限内环的目标值,同时也是外环的输出值。(这个值既是外环输出要趋近的值,也是内环输出要趋近的值) 外环实际值是内环实际值的积分,所以PID参数整定也是结合现象,用控制变量法先.
原创
发布博客 2021.10.18 ·
2324 阅读 ·
5 点赞 ·
0 评论

【单片机学习笔记】(34):稚晖君开源六轴机械臂(粗浅认识)、PWM的互补输出、直流无刷电机单极性控制,双极性控制

稚晖君的最新开源机械臂(粗浅认识)没有使用无刷伺服电机(因为驱动系统比较复杂);用的是步进电机,采用谐波减速(自行设置一体式的驱动,可以做到体积更小)。采用铝CNC加工(轻度高、重量轻)主控芯片:stm32F4和ESP32双主控人机交互:蓝牙、WiFi,2.4G、CAN,、app控制,RPC框架&上位机,无线智能小终端,AR空间定位装置:双目视觉、AHRS系统、力传感和力回馈系统机械臂末端效应器(可自由更换): 夹爪,激光器等核心在于运动学正逆解.
原创
发布博客 2021.10.16 ·
1762 阅读 ·
1 点赞 ·
0 评论

【单片机学习笔记】(33):直流无刷电机基础知识、六步换相控制原理、无刷电机驱动电路

本人是根据硬石可以和野火的开源教程来学习的,这篇的大部分内容是我学习过程中的截图。直流无刷电机基础知识可通过马鞍波来实现转矩的平滑输出直流无刷电机转子的机械角度和电角度电角度 = 机械角度 X 极对数霍尔效应原理六步换相控制原理当60度的霍尔传感器中的H2信号反相之后与H3调换位置,就可以用120度的控制代码转子逆时针旋转时120度安装的三个霍尔信号变化及通电情况转子顺时针旋转120度安.
原创
发布博客 2021.10.16 ·
1042 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(32):L298N H桥驱动电路原理、基于野火的通信协议进行PID参数设置、中断服务函数标志位注意事项、非独立IO口注意事项、野火PID助手调参失败原因

L298N H桥驱动电路原理当驱动电压在7~12V时,可以不外接5V逻辑电平输入,直接由板载稳压给逻辑芯片供电。如果12~24V时,则必须将5V供电端子拔下,使用外部电源供电。基于野火的通信协议进行PID参数设置学习野火的串口控制修改目标值教程。可以让PID参数整定更为方便,为蓝牙控制之类的控制通过打好串口通信协议代码实现的基础(要触类旁通,做到拿到一种新的协议之后能够快速移植并为我所用)Frame 框架 protocol 协议 assis...
原创
发布博客 2021.09.27 ·
1502 阅读 ·
4 点赞 ·
3 评论

【单片机学习笔记】(31):串口调试技巧、TFT触摸屏初识别、stm32F4与F1对比使用(全系列初始化概览)、YSF4的光耦隔离保护、外部中断与定时器消抖相结合的按键检

串口调试技巧可以将调试时会用到,但实际演示是不需要用到的代码用#if xxx //这里放调试代码#endifxxx是 一个宏定义,如果等于0则不编译相关代码,如果为1则编译相关代码SPI协议还有一个控制通信开始和结束的NSS(CS)信号线。TFTLED触摸屏FSMC:静态存储控制器将TFTLCD当成SRAM使用F4的使用(附带其他系列)HAL库可移植性高,即使是不同系列,大部分代码都相同,重新在cubeMX上设置一下即可。.
原创
发布博客 2021.09.27 ·
1862 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(30):蓝牙通信、板球控制系统、串级PID

Debug方法当外设多了之后,有些外设初始化不成功的话,先去用st—link调试,找到出问题的,再去调换一下初始化的顺序。别在那一直看代码空想如果实在中断中调用的函数出问题,那就用led去把它放在相应函数的不同位置,看看能否正常执行过去!实在没思路,二分法也是不错的选择!注意变量赋值或者判断语句是否合适给程序做了标记记得取消,否则编译每次都会编译全部文件,速度很慢蓝牙通信两个蓝牙模块HC-05配对---血泪史_micro_xx的博客-CSDN博客_两个蓝牙模块配对
原创
发布博客 2021.09.27 ·
327 阅读 ·
1 点赞 ·
0 评论

【单片机学习笔记】(28):图形用户界面(GUI),串口通信协议与匿名上位机,获取MPU6050欧拉角,H桥电路、制作风力摆(空心杯电机、TB6612)

Graphical User Interface(GUI)(OLED)使用图形用户界面简易菜单菜单和各种显示都放到main.c里面,要显示的数据经过字符转化之后放到buff里面再 调用显示 。同一个页面的显示用个函数包装起来。直接用几个变量,通过它们的值来跳转不同的界面(达到这个效果后尝试在里面设置参数)或者用结构体,来定义不同的页面Openmv与F103串口通信任务:将openmv通过串口发送过来的数据用OLED显示出来(完成)注意串口的
原创
发布博客 2021.09.27 ·
516 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(29):平衡车PID参数整定,基于sysTick的任务调度,STLink四线连接、上位机查看波形,定时器按键消抖

p平衡小车PID参数调节直立平衡角度环PD控制,运动速度闭环外环PI控制哪个优先级更高先调哪个?平衡车增加PWM频率和速度更新周期后,效果不错的相应参数值为:角度环: P = 65,D= 3 速度环:P = 20 I= 0.2 机械零点偏移值为-2详细原理再看喵呜教程平衡小车还不太完善:重心并不平衡,虽然直立了,但有时候会缓慢往一边走 电机转向是有吱吱声(速度变化太大影响)上位机查看波形要使用喵呜实验...
原创
发布博客 2021.09.27 ·
394 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(27):sysTick知识补充、MPU6050、PID算法实现代码 、速度闭环内环控制

SysTick知识补充SysTick提供时基(产生节拍),通过一个变量来获取节拍。一般uwTickFreq时1KHz,uwTick经过1ms增加一次。通过定时器来给按键消抖MPU6050(六轴传感器)加速度传感器的本质是检测力陀螺仪用来测量物体的旋转角速度。(平衡车的角度和角速度可以用陀螺仪测量的数据得到)加速度计加速器有灵敏度,得到的数值需经过公式换算,才
原创
发布博客 2021.09.27 ·
523 阅读 ·
3 点赞 ·
0 评论

【单片机学习笔记】(26):编码器、离散化PID算法推导、增量式PID与位置式PID比较、平衡车

编码器绝对型编码器:每一个相位都会有相应的编号,即使转轴不转动,也会有信号输出增量型编码器:转轴不转动时无信号输出。增量型编码器有两个输出,分别为A相、B相。相位差为90度、定时器编码器模式读取脉冲数据Encoder Mode 编码器模式平衡车上的轮子转一圈单项脉冲数为384,那么轮子转一圈,AB相捕获到的脉冲数即为1536(384 X 4 (四倍 )个CubeMX上设置的编码器模式好像只适合与AB相的编码器,如果只有一相的话应该是测...
原创
发布博客 2021.09.27 ·
688 阅读 ·
3 点赞 ·
2 评论

【单片机学习笔记】(25):PID初识、门电路符号、H桥驱动电路、中断服务函数使用注意事项、SIM800C打电话发短信、OLED

直流有刷电机H桥控制门电路符号PID算法中断服务函数使用注意事项用完一个中断,记得要清除标志位。以及在初始化的时候最好也清除一下标志位,避免一上电就触发中断如果在中断服务函数里执行时间过长,超过了定时器的定时周期,那么即又会产生新的更新中断,可能会带来各种问题。尽量不要在中断服务函数里用延时在中断服务函数里指做一两个简单判断和加减,置一两个标记位就好默认情况下systick的优先级是最低的 ​中断有分为 外部中断 .
原创
发布博客 2021.09.27 ·
270 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(25):PID初识、门电路符号、H桥驱动电路

定时器高级控制定时器时基单元包含一个 16 位自动重装载寄存器 ARR,一个 16 位的计数器 CNT,可向上/下计数,一个 16 位可编程预分频器 PSC,预分频器时钟源有多种可选,有内部的时钟、外部时钟。还有一个 8 位的重复计数器 RCR,这样最高可实现 40 位的可编程定时。PWM模式1与PWM模式二相反输出PWM死区是防止上下管同时导通导致故障的设置用通用定时器3输出PWM控制led使用PWM时要记得把auto-reload pr..
原创
发布博客 2021.09.27 ·
1 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】上传一整年的自学电子笔记,互相交流,共同进步。

学习资料来源包括但不限于:正点原子、太极创客、硬石科技、野火_firege、喵呜实验室、小蜜蜂笔记、鱼C-小甲鱼、普中科技......我学的是车辆工程专业,去年八月份,加入了学院的创客工作室,在教室里学过相关课程就电工电子和C语言程序设计,学单片机基本靠自学。我将会在 【单片机学习笔记】 专栏中,将我一年多自学C语言以及单片机的所有笔记上传上来供大家参考。最早一篇笔记在20年九月底,今天是2021.9.26,期间我基本上是每周一篇电子笔记,这几天我抽空把之前的笔记整理后都上传上来。...
原创
发布博客 2021.09.26 ·
1926 阅读 ·
12 点赞 ·
0 评论

【单片机学习笔记】(24):通用定时器输出PWM,输入捕获,电容按键

定时器高级控制定时器时基单元包含一个 16 位自动重装载寄存器 ARR,一个 16 位的计数器 CNT,可向上/下计数,一个 16 位可编程预分频器 PSC,预分频器时钟源有多种可选,有内部的时钟、外部时钟。还有一个 8 位的重复计数器 RCR,这样最高可实现 40 位的可编程定时。PWM模式1与PWM模式二相反输出PWM死区是防止上下管同时导通导致故障的设置用通用定时器3输出PWM控制led使用PWM时要记得把auto-reload...
原创
发布博客 2021.09.26 ·
189 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(23):HAL工程移植注意事项,数模转换、待机唤醒、程序设计要点

HAL库移植注意事项如果是直接移植的板级支持包,要记得去stm32f1xx_hal_conf.h把要用到的使能代码的注释给取消掉,否则该驱动不会被编译到工程中在用cubeMX配置工程的时候要勾选下图红圈的选项,否则不能调出stm32f1xx_hal_conf.h然后要将Hal库的相应.c .h文件复制到Driver目录下模数转换平时用的关键:编码值*分辨率=想要的数据Stm32f103的 三个ADC都是12位的,即最大数值位4096..
原创
发布博客 2021.09.26 ·
108 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(22):强制类型转换、定时器、独立看门狗初识、I2C通信协议(软件模拟IIC、串口程序移植)

简析强制类型转换上图的意思是将pData这个变量的地址强制转换为uint32_t类型的地址并赋予指针变量tmp,然后在下面那个函数的第二个参数中是取指针变量tmp这个被强制转化为uint32_t类型后的地址所指向变量的值定时器转存失败重新上传取消一般情况下f103所有定时器的时钟频率都是设置为72MHz的。基本定时器重新定义HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)初始.
原创
发布博客 2021.09.26 ·
213 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(21):复用和重映射、DMA存储器到存储器、串口DMA使用、debug查看变量、常用存储器

端口重映射直接存储器访问控制DMA(Direct Memory Access )可以在无需任何CPU操作的情况下快速移动数据。DMA__CCR 位四是DIR设置:1表示从存储器到外设,0表示从外设到存储器使用流程:建立(选取)传输通道 存储器到存储器,外设到存储器 ,存储器到外设确定传输对象 UART-内存 , 内存-UART敲定传输细节 优先级 ,确定由谁来产生DMA请求,外设的...
原创
发布博客 2021.09.26 ·
68 阅读 ·
0 点赞 ·
0 评论

【单片机学习笔记】(20):SysTick系统定时器,中断服务函数.中断向量表.中断向量,串口中断回显

SysTick系统定时器SysTick系统定时器含有一个计数宽度为24bit的向下递减的自动重装载计数器,计数器没计数一次的时间为1/CLKSourse。CLKSourse是系统时钟,F103可以是72MHz。这里和系统时钟一样,完全可以直接用 cubeMX来进行配置,没必要自己手动配置。SysTick的主要功能是给RTOS提供时钟节拍做时间基准。HAL库自带的延时函数就是通过它来延时的,但其实这并不值得推荐,一般都是用自己定义的基于其他定时器的延时函数。Frequency 频.
原创
发布博客 2021.09.26 ·
381 阅读 ·
0 点赞 ·
0 评论
加载更多