- 博客(4)
- 收藏
- 关注
原创 OpenMv通信,循迹小车
openmv串口三通过发送偏移角度及偏移位移单片机通过串口三接收并解码并发送到串口一到电脑端查看。 将负值加一百以更方便发送,单片机接收端通过检测值是否大于一百从而处理数据,关键的一点是sscanf函数的使用。大家如果不清楚的话可以去网上找找资料。openmv端程序:单片机端解码程序:...
2022-06-09 16:22:41
3674
1
原创 简要增量式PI控制器
主要是电机速度控制。人口参数:测量值速度,期望值速度。err:误差,last_err:上一次误差,PWM_OUT:PWM输出。u(k) = Kp * e(k) + Ki * e(i) + Kd * (e(k) - e(k-1))u(k - 1) =Kp * e(k - 1) + Ki * e(i) + Kd * (e(k - 1) - e(k-2))u(k) = u(k) - u(k - 1) =Kp * [e(k)-e(k-1)] + Ki* e(k) + Kd [e(k)...
2022-04-29 10:12:06
3444
2
原创 stm32霍尔编码器电机测速原理
本次选用的编码器电机为13线的霍尔编码器电机,电机减速比为30:1,转动一圈输出13*30=390个脉冲。轮胎直径为75mm,轮胎周长为pi*d=3*75=225mm.定时器采用四倍频计数,则一圈输出390*4=1560个脉冲。具体编码器知识这里就不多说了。根据测速原理:假设编码器输出的脉冲数为N,而电机转动一圈输出1569个脉冲,转动一圈轮子将前进225mm。那输出脉冲数为N时前进的距离就应该为225*(N/1560)mm,再除以时间及可得速度。下面为具体代码:...
2022-04-28 12:09:13
14947
9
原创 通过指针往数组最后一个位置写新的数据,并将所有数据往前移一位
定义了一个五位数组a[N]和一个插入的新数8,将8插入数组最后一个位置,并将之前数组各元素往前移一位。#include<stdio.h>#include<stdlib.h>#define N 5 int main(){int a[N] = {1, 2, 3, 4, 5};int i,n;n = N; printf("输出前数组\n"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n")
2022-04-27 20:45:15
500
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人