资源简介
如何在家自己动手做一个arduino平衡车?简单的源代码分享,优酷有我的视频!

代码片段和文件信息
#include “BalanceCar.h“
//////////////////速度PI////////////////////
double BalanceCar::speedpiout(double kpsdouble kisdouble kdsint fint bdouble p0)
{
float speeds = (pulseleft + pulseright) * 1.0; //车速 脉冲值
pulseright = pulseleft = 0;
speeds_filterold *= 0.7; //一阶互补滤波
float speeds_filter = speeds_filterold + speeds * 0.3;
speeds_filterold = speeds_filter;
positions += speeds_filter;
positions += f; //全进控制量融合
positions += b; //全进控制量融合
positions = constrain(positions -25502550); //抗积分饱和
double output = kis * (p0 - positions) + kps * (p0 - speeds_filter); //速度环控制 PI
if(flag1==1)
{
positions=0;
}
return output;
}
//////////////////速度PI////////////////////
float BalanceCar::turnspin(int turnleftflagint turnrightflagint spinleftflagint spinrightflagdouble kpturndouble kdturnfloat Gyroz)
{
int spinonce = 0;
float turnspeed = 0;
float rotationratio = 0;
float turnout_put = 0;
if (turnleftflag == 1 || turnrightflag == 1 || spinleftflag == 1 || spinrightflag == 1)
{
if (spinonce == 0) //旋转前判断当前车速,增强小车适应性。
{
turnspeed = ( pulseright + pulseleft); //小车当前车速 脉冲表示
spinonce++;
}
if (turnspeed < 0) //小车当前速度绝对值
{
turnspeed = -turnspeed;
}
if(turnleftflag==1||turnrightflag==1)
{
turnmax=7; //5->7
turnmin=-7;
}
if(spinleftflag==1||spinrightflag==1)
{
turnmax=10;
turnmin=-10;
}
rotationratio = 55 / turnspeed; //根据小车速度设定值
if (rotationratio < 0.5)rotationratio = 0.5;
if (rotationratio > 5)rotationratio = 5;
}
else
{
rotationratio = 0.5;
spinonce = 0;
turnspeed = 0;
}
if (turnleftflag == 1 || spinleftflag == 1)//根据方向参数叠加
{
turnout += rotationratio;
}
else if (turnrightflag == 1 || spinrightflag == 1)//根据方向参数叠加
{
turnout -= rotationratio;
}
else turnout = 0;
if (turnout > turnmax) turnout = turnmax;//幅值最大值设置
if (turnout < turnmin) turnout = turnmin;//幅值最小值设置
turnout_put = -turnout * kpturn - Gyroz * kdturn;//旋转PD算法控制 融合速度和Z轴旋转定位。
return turnout_put;
}
void BalanceCar::pwma(double speedoutputfloat rotationoutputfloat anglefloat angle6int turnleftflagint turnrightflagint spinleftflagint spinrightflag
int fint bfloat accelzint Pin1int Pin2int Pin3int Pin4int PinPWMAint PinPWMB)
{
pwm1 = -angleoutput - speedoutput + rotationoutput; //Left电机PWM输出值
pwm2 = -angleoutput - speedoutput - rotationoutput; //Right电机PWM输出值
//幅度值限制
if (pwm1 > 255) pwm1 = 255;
if (pwm1 < -255) pwm1 = -255;
if (pwm2 > 255) pwm2
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 33405 2018-02-09 06:09 Self Balancing Robot Circuit and Code- Tapendra Mandal\Circuit\Self Balancing Robot Circuit Diagram.pdf
文件 10788 2018-02-09 06:15 Self Balancing Robot Circuit and Code- Tapendra Mandal\Code\Self_Balancing_Robot\Self_Balancing_Robot.ino
文件 4129 2017-06-02 12:12 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\BalanceCar\BalanceCar.cpp
文件 1100 2017-06-02 12:13 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\BalanceCar\BalanceCar.h
文件 6515 2012-02-13 09:16 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\Flexitimer2\FlexiTimer2.cpp
文件 518 2012-02-13 09:16 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\Flexitimer2\FlexiTimer2.h
文件 56402 2017-03-09 21:50 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\I2Cdev\I2Cdev.cpp
文件 12084 2017-03-09 21:50 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\I2Cdev\I2Cdev.h
文件 2042 2017-06-02 12:14 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\KalmanFilter\KalmanFilter.cpp
文件 862 2017-06-02 12:14 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\KalmanFilter\KalmanFilter.h
文件 4883 2017-03-09 21:49 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\MPU6050\helper_3dmath.h
文件 38714 2017-03-09 21:49 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\MPU6050\JJ_MPU6050_DMP_6Axis.h
文件 124718 2017-03-09 21:49 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\MPU6050\MPU6050.cpp
文件 40751 2017-03-09 21:49 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\MPU6050\MPU6050.h
文件 39077 2017-03-09 21:49 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\MPU6050\MPU6050_6Axis_MotionApps20.h
文件 46665 2017-03-09 21:49 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\MPU6050\MPU6050_9Axis_MotionApps41.h
目录 0 2018-02-09 06:16 Self Balancing Robot Circuit and Code- Tapendra Mandal\Code\Self_Balancing_Robot
目录 0 2018-02-09 06:17 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\BalanceCar
目录 0 2018-02-09 06:17 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\Flexitimer2
目录 0 2018-02-09 06:17 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\I2Cdev
目录 0 2018-02-09 06:17 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\KalmanFilter
目录 0 2018-02-09 06:17 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries\MPU6050
目录 0 2018-02-09 06:10 Self Balancing Robot Circuit and Code- Tapendra Mandal\Circuit
目录 0 2018-02-09 06:16 Self Balancing Robot Circuit and Code- Tapendra Mandal\Code
目录 0 2018-02-09 06:17 Self Balancing Robot Circuit and Code- Tapendra Mandal\Libraries
目录 0 2018-02-09 06:17 Self Balancing Robot Circuit and Code- Tapendra Mandal
----------- --------- ---------- ----- ----
422653 26
- 上一篇:微信小程序 播放器的设计
- 下一篇:winsock聊天室程序
相关资源
- ADNS-3080光流传感器测试程序Arduino
- EESkill NRF24L01 无线模块用户手册
- Arduino nano 工程文件
- Arduino教程 Lesson 之--自制风扇
- 基于Arduino的智能环境监控系统设计
- 基于Arduino和Machtalk的温棚环境监测系
- arduino pca9685多舵机同时控制案例
- 平衡小车之家全套资料
- arduino技术内幕
- Arduino电子设计实战指南.零基础篇_超
- 物联网智能家居平台DIY:ARDUINO 物联网
- 平衡小车之家资料.zip
- 实验1.zip arduino跑马灯led灯实验,串口
- opencat所有资料.zip
- arduino主机,stm8从机。I2C测试 。每次
- DS18B20_Serial_println.ino
- ps2手柄arduino库文件
- 基于手机蓝牙的arduino遥控小车
- arduino中的can库函数
- 两轮平衡车源程序,方能仪器,自平
- 密码+指纹锁资料包.rar
- 贝壳物联arduino esp8266 demo版本
- HMC5883L罗盘指南针模块库文件及中英文
- arduino 小贱钟源码及教程
- Atom-TMC2208Pilot在Arduino上运行的应用程
- 写字机制作方案
- STM32 MPU6050 载人平衡车资料
- PID-增量式PID和位置式PID算法实现和
- Building Wireless Sensor Networks Using Arduin
- vc控制Arduino,实现串口通信
评论
共有 条评论