OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: ofourme

我的两轮自平衡小车全套资料

  [复制链接]

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
 楼主| 发表于 2013-8-5 09:42:56 | 显示全部楼层
回复【50楼】doc_he:
---------------------------------
经验值,实验调节得到的。
业余程序玩家。
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-8-4
在线时间
5 小时
发表于 2013-8-5 18:05:41 | 显示全部楼层
回复【51楼】ofourme:
---------------------------------
// 通过小车移动速度与移动距离,调整小车平衡所需的pwm输出 
pwm_balance += (speed*6+distance*0.1); 

这一句代码是用于维持小车现有速度的吧,如果少了这一项小车就会在阻力作用下慢慢停下,但应仍能保持稳定。
不知我的理解是否正确?
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
 楼主| 发表于 2013-8-5 18:40:29 | 显示全部楼层
回复【52楼】doc_he:
---------------------------------
不是的。

传感器测得的倾斜角度并不是小车重心的倾斜角度,而是有一定的偏差。如果要保持这样的偏差的话,小车就需要向某个方向的加速度,也即speed和distance不为0,通过测算出的这2个数值得出pwm_balance用来补偿重心计算的偏差。

以上的一切都建立在小车速度为0并保持平衡的假设上。如果需要小车有速度,只需要另外加上一定的偏置。我这个算法也是网上抄袭的,逻辑上确实比较难以理解,以上也只是我个人的理解。我觉得如果再加上目标速度进行计算(也即 (speed_target-speed_current)*M+distance*N),小车的动态性能可能会更好,不过还没实验过……
业余程序玩家。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
 楼主| 发表于 2013-8-5 18:45:58 | 显示全部楼层
回复【52楼】doc_he:
---------------------------------
我并没有对速度做PID,只是简单的增加pwm来得到大概的速度。
算法里用到的PD(没有I哦)是针对小车平衡的。 pwm_balance += (speed*6+distance*0.1);  这条公式本质上还是为了修正小车的平衡pwm输出,应该算是PI吧。
业余程序玩家。
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2013-8-7
在线时间
43 小时
发表于 2013-8-7 14:56:26 | 显示全部楼层
主要用PI算法就可以了。
回复 支持 反对

使用道具 举报

6

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2013-4-24
在线时间
0 小时
发表于 2013-8-7 16:29:57 | 显示全部楼层
回复【54楼】ofourme:
---------------------------------
你的程序中的PID算法,反馈的是角度而不是速度,对吧??这样子车子的速度会不稳定吧,你觉得呢?如果反馈的是速度,你觉得有什么问题吗?求教
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-8-4
在线时间
5 小时
发表于 2013-8-17 22:08:41 | 显示全部楼层
回复【2楼】ofourme:
---------------------------------
请问为什么我的小车,无论它向哪边倾倒总是一下就倒下了,不能形成振荡,电机驱动放到最大了,也不能让它倒向另外一边,是不是电机速度太慢啊。。
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2013-7-30
在线时间
0 小时
发表于 2013-8-19 08:25:03 | 显示全部楼层
不顶对不起党中央,大叔给力。
回复 支持 反对

使用道具 举报

8

主题

130

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2013-4-24
在线时间
0 小时
发表于 2013-8-19 10:51:17 | 显示全部楼层
赞一个
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-8-4
在线时间
5 小时
发表于 2013-8-19 18:40:30 | 显示全部楼层
我感觉电机和车的外型起决定作用。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-8-4
在线时间
5 小时
发表于 2013-8-22 15:11:59 | 显示全部楼层
请问程序中
#define MDPS (70)
#define RADPT (RADPS/(-100))

.
.
radian_pt=gyr.y*RADPT;

是怎么理解?不太明白,如果有空请讲解下。谢了先。。。







回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
 楼主| 发表于 2013-8-23 13:01:27 | 显示全部楼层
回复【61楼】doc_he:
---------------------------------
radian_pt意思为每个节拍(10毫秒)转过弧度。
gyr.y为传感器的读数。
RADPT传感器读数转换为radian_pt的比例系数。
业余程序玩家。
回复 支持 反对

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2013-8-23 13:55:07 | 显示全部楼层
回复【62楼】ofourme:
---------------------------------
真不错。。。谢谢分享。
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-6-9
在线时间
0 小时
发表于 2013-8-24 19:46:16 | 显示全部楼层
顶一个
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2013-8-26
在线时间
0 小时
发表于 2013-8-26 10:45:25 | 显示全部楼层
楼主的车现在调试完毕?
回复 支持 反对

使用道具 举报

6

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2011-11-13
在线时间
13 小时
发表于 2013-8-26 13:48:32 | 显示全部楼层
正想弄这个,哈哈哈收下
回复 支持 反对

使用道具 举报

56

主题

289

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2012-11-16
在线时间
65 小时
发表于 2013-10-31 21:09:10 | 显示全部楼层
回复【楼主位】ofourme:
---------------------------------
你好ofourme,我想请教一下,传感器的安放位置有没有要求?
回复 支持 反对

使用道具 举报

6

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2013-10-25
在线时间
44 小时
发表于 2013-11-29 17:29:28 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2013-10-20
在线时间
6 小时
发表于 2013-12-8 22:09:14 | 显示全部楼层
楼主,最近我也在做这小车,PID不知如何调节是好,要是楼主能指教一下,感激不尽啊
回复 支持 反对

使用道具 举报

18

主题

112

帖子

1

精华

高级会员

Rank: 4

积分
579
金钱
579
注册时间
2013-11-28
在线时间
51 小时
发表于 2013-12-8 22:53:31 | 显示全部楼层
学习,谢谢!
回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
发表于 2013-12-9 08:32:56 | 显示全部楼层
頂,好東西..
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2013-12-11
在线时间
1 小时
发表于 2013-12-11 22:08:41 | 显示全部楼层
刚接触32 想用32做一个 带有摄像头的 自平衡车  苦于没有思路  看到楼主的帖子  太帅了 等考完研 立马上手!!!
I'm?a?slow?walker,but?I?never?walk?backwards.
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-2-15
在线时间
0 小时
发表于 2014-2-23 21:24:57 | 显示全部楼层
为了赶这个图像识别的毕业设计,从板子来到现在,两天了,看各种程序,乏了,不过看到咱这个板子还能做这个车,瓦擦,我必须得学啊!顶!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-2-28
在线时间
0 小时
发表于 2014-2-28 23:52:44 | 显示全部楼层
牛人
回复 支持 反对

使用道具 举报

56

主题

289

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2012-11-16
在线时间
65 小时
发表于 2014-3-5 09:08:32 | 显示全部楼层
回复【43楼】arm51avr:
---------------------------------
头像很帅啊
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
 楼主| 发表于 2014-3-11 23:16:16 | 显示全部楼层
回复【67楼】一般BDN:

你好ofourme,我想请教一下,传感器的安放位置有没有要求?

---------------------------------

自己弄着玩的,没啥讲究吧。感觉靠近车轴可能会好一点,不过没有亲测。
业余程序玩家。
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-9-17
在线时间
0 小时
发表于 2014-3-13 22:21:17 | 显示全部楼层
好贴必须~
回复 支持 反对

使用道具 举报

21

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
263
金钱
263
注册时间
2011-8-23
在线时间
31 小时
发表于 2014-3-14 08:14:24 | 显示全部楼层
拜膜楼主......
回复 支持 反对

使用道具 举报

26

主题

202

帖子

3

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2014-3-4
在线时间
11 小时
发表于 2014-3-14 20:31:53 | 显示全部楼层
回复【楼主位】ofourme:
------------------------------mark
随遇而安,无愧于心?---?行者?任
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-4-14
在线时间
3 小时
发表于 2014-4-14 19:55:56 | 显示全部楼层
可以用51单片机做这个么
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2014-4-15
在线时间
1 小时
发表于 2014-4-15 15:12:26 | 显示全部楼层
回复【楼主位】ofourme:
---------------------------------
请问楼主你的PID参数是如何调整的?需不需要将马达的数据输出后,做成曲线,然后再进行调整?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2014-4-15
在线时间
1 小时
发表于 2014-4-15 15:13:43 | 显示全部楼层
回复【楼主位】ofourme:
---------------------------------
我想知道PID调节的步骤,跪求楼主帮助
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-5-1
在线时间
0 小时
发表于 2014-5-3 23:40:08 | 显示全部楼层
/***********************************************************************
// 两轮自平衡车最终版控制程序(6轴MPU6050+互补滤波+PWM电机) 
// 单片机STC12C5A60S2 
// 晶振:20M
// 日期:2012.11.26 - ?
***********************************************************************/

#include <REG52.H>
#include <math.h>     
#include <stdio.h>   
#include <INTRINS.H>

typedef unsigned char  uchar;
typedef unsigned short ushort;
typedef unsigned int   uint;

//******功能模块头文件*******

#include "DELAY.H"     //延时头文件
#include "STC_ISP.H"     //程序烧录头文件
#include "SET_SERIAL.H" //串口头文件
#include "SET_PWM.H" //PWM头文件
#include "MOTOR.H" //电机控制头文件
#include "MPU6050.H" //MPU6050头文件



//******角度参数************

float Gyro_y;        //Y轴陀螺仪数据暂存
float Angle_gy;      //由角速度计算的倾斜角度
float Accel_x;      //X轴加速度值暂存
float Angle_ax;      //由加速度计算的倾斜角度
float Angle;         //小车最终倾斜角度
uchar value;  //角度正负极性标记

//******PWM参数*************

int   speed_mr;  //右电机转速
int   speed_ml;  //左电机转速
int   WM_R;         //右轮PWM值计算
int   WM_L;         //左轮PWM值计算
float WM;           //综合PWM计算
float WMI;  //PWM积分值

//******电机参数*************

float speed_r_l; //电机转速
float speed;        //电机转速滤波
float position;     //位移

//******蓝牙遥控参数*************
uchar remote_char;
char  turn_need;
char  speed_need;

//*********************************************************
//定时器100Hz数据更新中断
//*********************************************************

void Init_Timer1(void) //10毫秒@20MHz,100Hz刷新频率
{
AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x10; //设置定时器模式
TL1 = 0xE5;     //设置定时初值
TH1 = 0xBE;     //设置定时初值
TF1 = 0;     //清除TF1标志
TR1 = 1;     //定时器1开始计时
}



//*********************************************************
//中断控制初始化
//*********************************************************

void Init_Interr(void)  
{
EA = 1;     //开总中断
    EX0 = 1;    //开外部中断INT0
    EX1 = 1;    //开外部中断INT1
    IT0 = 1;    //下降沿触发
    IT1 = 1;    //下降沿触发
ET1 = 1;    //开定时器1中断
}



//******卡尔曼参数************

float code Q_angle=0.001;  
float code Q_gyro=0.003;
float code R_angle=0.5;
float code dt=0.01;                   //dt为kalman滤波器采样时间;
char  code C_0 = 1;
float xdata Q_bias, Angle_err;
float xdata Ct_0, Ct_1, E;
float xdata K_0, K_1, t_0, t_1;
float xdata dot[4] ={0,0,0,0};
float xdata P[2][2] = { { 1, 0 },{ 0, 1 } };

//*********************************************************
// 卡尔曼滤波
//*********************************************************
//在程序中利用Angle+=(Gyro - Q_bias) * dt计算出陀螺仪积分出的角度,其中Q_bias是陀螺仪偏差。
//此时利用陀螺仪积分求出的Angle相当于系统的估计值,得到系统的观测方程;而加速度计检测的角度Accel相当于系统中的测量值,得到系统状态方程。
//程序中Q_angle和Q_gyro分别表示系统对加速度计及陀螺仪的信任度。根据Pdot = A*P + *A' + Q_angle计算出先验估计协方差的微分,用于将当前估计值进行线性化处理。其中A为雅克比矩阵。  
//随后计算系统预测角度的协方差矩阵P。计算估计值Accel与预测值Angle间的误差Angle_err。
//计算卡尔曼增益K_0,K_1,K_0用于最优估计值,K_1用于计算最优估计值的偏差并更新协方差矩阵P。
//通过卡尔曼增益计算出最优估计值Angle及预测值偏差Q_bias,此时得到最优角度值Angle及角速度值。


//Kalman滤波,20MHz的处理时间约0.77ms;

void Kalman_Filter(float Accel,float Gyro)   
{
Angle+=(Gyro - Q_bias) * dt; //先验估计


Pdot[0]=Q_angle - P[0][1] - PP[1][0]; // Pk-先验估计误差协方差的微分

Pdot[1]=- PP[1][1];
Pdot[2]=- PP[1][1];
Pdot[3]=Q_gyro;

PP[0][0] += Pdot[0] * dt;   // Pk-先验估计误差协方差微分的积分
PP[0][1] += Pdot[1] * dt;   // =先验估计误差协方差
PP[1][0] += Pdot[2] * dt;
PP[1][1] += Pdot[3] * dt;

Angle_err = Accel - Angle; //zk-先验估计

PCt_0 = C_0 * PP[0][0];
PCt_1 = C_0 * PP[1][0];

E = R_angle + C_0 * PCt_0;

K_0 = PCt_0 / E;
K_1 = PCt_1 / E;

t_0 = PCt_0;
t_1 = C_0 * PP[0][1];

PP[0][0] -= K_0 * t_0;  //后验估计误差协方差
PP[0][1] -= K_0 * t_1;
PP[1][0] -= K_1 * t_0;
PP[1][1] -= K_1 * t_1;

Angle += K_0 * Angle_err;  //后验估计
Q_bias += K_1 * Angle_err;  //后验估计
Gyro_y   = Gyro - Q_bias;  //输出值(后验估计)的微分=角速度

}



//*********************************************************
// 倾角计算(卡尔曼融合)
//*********************************************************

void Angle_Calcu(void)  
{
//------加速度--------------------------

//范围为2g时,换算关系:16384 LSB/g
//角度较小时,x=sinx得到角度(弧度), deg = rad*180/3.14
//因为x>=sinx,故乘以1.3适当放大

Accel_x  = GetData(ACCEL_XOUT_H);   //读取X轴加速度
Angle_ax = (Accel_x - 1100) /16384;   //去除零点偏移,计算得到角度(弧度)
Angle_ax = Angle_ax*1.2*180/3.14;     //弧度转换为度,


    //-------角速度-------------------------

//范围为2000deg/s时,换算关系:16.4 LSB/(deg/s)

Gyro_y = GetData(GYRO_YOUT_H);       //静止时角速度Y轴输出为-30左右
Gyro_y = -(Gyro_y + 30)/16.4;         //去除零点偏移,计算角速度值,负号为方向处理 
//Angle_gy = Angle_gy + Gyro_y*0.01;  //角速度积分得到倾斜角度.


//-------卡尔曼滤波融合-----------------------

Kalman_Filter(Angle_ax,Gyro_y);       //卡尔曼滤波计算倾角


/*//-------互补滤波-----------------------

//补偿原理是取当前倾角和加速度获得倾角差值进行放大,然后与
    //陀螺仪角速度叠加后再积分,从而使倾角最跟踪为加速度获得的角度
//0.5为放大倍数,可调节补偿度;0.01为系统周期10ms

Angle = Angle + (((Angle_ax-Angle)*0.5 + Gyro_y)*0.01);*/
  
}  



//*********************************************************
//电机转速和位移值计算
//*********************************************************

void Psn_Calcu(void)  
{

speed_r_l =(speed_mr + speed_ml)*0.5;
speed *= 0.7;                   //车轮速度滤波
speed += speed_r_l*0.3;
position += speed;                   //积分得到位移
position += speed_need;
if(position<-6000) position = -6000;
if(position> 6000) position =  6000;

 
}


static float code Kp  = 7.0;       //PID参数
static float code Kd  =0.22;     //PID参数
static float code Kpn = 0.004;      //PID参数
static float code Ksp =0.1;     //PID参数

//*********************************************************
//电机PWM值计算
//*********************************************************

void PWM_Calcu(void)  
{
    
if(Angle<-40||Angle>40)               //角度过大,关闭电机 
{  
  CCAP0H = 0;
      CCAP1H = 0;
  return;
}
PWM  = Kp*Angle + Kd*Gyro_y;          //PID:角速度和角度
PWM += Kpn*position + Ksp*speed;      //PID:速度和位置
PWM_R = PWM + turn_need;
PWM_L = PWM - turn_need;
PWM_Motor(PWM_L,PWM_R); 
 
}




//*********************************************************
//手机蓝牙遥控
//*********************************************************

void Bluetooth_Remote(void)  
{

remote_char = receive_char();    //接收蓝牙串口数据

if(remote_char ==0x02) speed_need = -80;    //前进
else if(remote_char ==0x01) speed_need = 80;   //后退
     else speed_need = 0;    //不动

    if(remote_char ==0x03) turn_need = 15;    //左转
else if(remote_char ==0x04) turn_need = -15;   //右转
     else turn_need = 0;    //不转
 
}


/*=================================================================================*/

//*********************************************************
//main
//*********************************************************
void main()


delaynms(500);    //上电延时
Init_PWM();        //PWM初始化
    Init_Timer0();     //初始化定时器0,作为PWM时钟源
Init_Timer1();     //初始化定时器1
Init_Interr();     //中断初始化
Init_Motor();    //电机控制初始化
Init_BRT();    //串口初始化(独立波特率)
InitMPU6050();     //初始化MPU6050
delaynms(500);     

while(1)
{
   
 Bluetooth_Remote();

}
}


/*=================================================================================*/

//********timer1中断***********************

void Timer1_Update(void) interrupt 3
{
  
   TL1 = 0xE5;     //设置定时初值10MS
   TH1 = 0xBE;
   
   //STC_ISP();                    //程序下载
   Angle_Calcu();                  //倾角计算
   Psn_Calcu();                    //电机位移计算
   PWM_Calcu();                    //计算PWM值
   
   speed_mr = speed_ml = 0;  
 



//********右电机中断***********************

void INT_L(void) interrupt 0
{

   if(SPDL == 1)  { speed_ml++; }  //左电机前进
   else       { speed_ml--; }  //左电机后退
   LED = ~LED;

 } 


//********左电机中断***********************

void INT_R(void) interrupt 2
{

   if(SPDR == 1)  { speed_mr++; }  //右电机前进
   else       { speed_mr--; }  //右电机后退
   LED = ~LED;

 } 

PID外的那些参数都还没定
用STC12C5A60S2主控芯片
L298N电机驱动
到现在因为第一次做小车,各种参数不会改上位机不会用,小车一直在抖,不能站稳,
急啊,求大神指导!!!!!
回复 支持 反对

使用道具 举报

54

主题

194

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
金钱
430
注册时间
2013-11-2
在线时间
0 小时
发表于 2014-5-4 20:35:09 | 显示全部楼层
回复【3楼】ofourme:
---------------------------------
亲,程序中这些宏定义看不懂 ,#define MDPS (70)// 弧度表示的角速度     #define RADPS ((float)MDPS*PI/180000)// 每个查询周期改变的角度
#define RADPT (RADPS/(-100)),比如说这里的70是怎么来的呢?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-5-7
在线时间
0 小时
发表于 2014-5-7 19:57:19 | 显示全部楼层
回复【83楼】AZJS:
---------------------------------
你好,我也在做这个两轮车,程序和你一模一样………………有空探讨下
也许,所有的苦难都是为了塑造一个骄傲的灵魂。
回复 支持 反对

使用道具 举报

14

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2013-12-24
在线时间
5 小时
发表于 2014-5-8 12:47:31 | 显示全部楼层
mark mark mark mark mark mark mark
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-5-11
在线时间
0 小时
发表于 2014-5-14 21:58:18 | 显示全部楼层
回复【83楼】AZJS:
---------------------------------
我的主控芯片和你一样,但是不会写程序。。。本人菜鸟一枚。。。想问这个程序是不是有头文件啊?
回复 支持 反对

使用道具 举报

54

主题

136

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2014-3-6
在线时间
41 小时
发表于 2014-5-15 10:55:48 | 显示全部楼层
定时器2才是PA0 A1
回复 支持 反对

使用道具 举报

13

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2012-10-27
在线时间
65 小时
发表于 2014-5-25 17:20:48 | 显示全部楼层
回复【44楼】ofourme:
---------------------------------
嗯,有道理
回复 支持 反对

使用道具 举报

13

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2012-10-27
在线时间
65 小时
发表于 2014-5-25 17:21:27 | 显示全部楼层
回复【75楼】一般BDN:
---------------------------------
额。。。
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13079
金钱
13079
注册时间
2012-11-26
在线时间
3809 小时
发表于 2014-5-25 20:45:02 | 显示全部楼层
cool mark
学无止境
回复 支持 反对

使用道具 举报

5

主题

70

帖子

0

精华

限制会员

积分
-404
金钱
-404
注册时间
2013-5-17
在线时间
5 小时
发表于 2014-5-25 23:21:43 | 显示全部楼层
LZ这种分享的精神值得大家学习!
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-9-23
在线时间
0 小时
发表于 2014-5-26 12:55:04 | 显示全部楼层
不错的,谢谢诶哦
回复 支持 反对

使用道具 举报

11

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
341
金钱
341
注册时间
2014-6-16
在线时间
43 小时
发表于 2014-6-26 02:35:11 | 显示全部楼层
资料很清晰,启发很多呀,谢谢!
回复 支持 反对

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2013-12-15
在线时间
0 小时
发表于 2014-6-27 08:48:15 | 显示全部楼层
好东西,收藏学习一下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2014-7-4
在线时间
0 小时
发表于 2014-7-4 14:22:27 | 显示全部楼层
给力,正在学习中。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-7-23
在线时间
0 小时
发表于 2014-7-23 10:26:00 | 显示全部楼层
好东西,小弟之前也做了平衡车,但是因为硬件的问题把传感器烧了。正在考虑不用减速电机了,用步进电机
回复 支持 反对

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2012-10-23
在线时间
2 小时
发表于 2014-7-23 10:28:48 | 显示全部楼层
不错不错,做个标记
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-8-9
在线时间
0 小时
发表于 2014-8-9 21:00:47 | 显示全部楼层
有个问题想请教一下楼主,
//----------编码器反馈控制部分----------

    speed = speed*0.7 +0.3*(encoder_read()); // 定周期(10ms)读取编码器数值得到实时速度,再对速度进行平滑滤波
这里编码器读到的数据具体是怎么转换成速度的?是什么单位?0.3是怎么计算的?
回复 支持 反对

使用道具 举报

20

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2014-3-23
在线时间
22 小时
发表于 2014-8-12 21:25:05 | 显示全部楼层
回复【2楼】ofourme:
---------------------------------
楼主问一下你那个编码器用32怎么写啊,我找不到编程资料而且不知道你的那个定时器4的t4ch1和t4ch2端口什么意思,求楼主指点一二
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-26 18:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表