Arduino灰度传感器PID巡线
接前面博客的PID巡线部分代码:
采用两个灰度传感器循黑线测试。
PID公式:
编程时具体用到的公式:
#define left_pin A0//左侧模拟灰度传感器
#define right_pin A1//右侧模拟灰度传感器
#define LFwheel_1 50//左前轮引脚1
#define LFwheel_2 52//左前轮引脚2
#define LFpwm 11//左前轮PWM调速
#define RFwheel_1 46//右前轮引脚1
#define RFwheel_2 48//右前轮引脚2
#define RFpwm 10//右前轮PWM调速
#define LBwheel_1 47//左后轮引脚1
#define LBwheel_2 49//左后轮引脚2
#define LBpwm 13//左后轮PWM调速
#define RBwheel_1 51//右后轮引脚1
#define RBwheel_2 53//右后轮引脚2
#define RBpwm 12//右后轮PWM调速//P、I、D 参数需要根据具体情况进行设置
float kp=0.5;
float ki=0.5;
float kd=0.5;
int left_val=0;
int right_val=0;
int lastError=0;
int allError=0;
int v_st=200;
int v_turn=0;
void setup() {Serial.begin(115200);
}void loop() {//获取两个模拟灰度传感器的数值left_val=analogRead(left_pin);right_val=analogRead(right_pin);//调用PID调节函数PID(left_val,right_val);//调用PD调节函数//PD(left_val,right_val);//调用P调节函数//P(left_val,right_val);//调用运动函数sport(v_turn);delay(100);
}
//PID调节函数
void PID(int left_val,int right_val){int Error=left_val-right_val;allError+=Error;float p=kp*Error;float i=ki*allError;float d=kd*(Error-lastError);lastError=Error;v_turn=int(p+i+d);
}
//P调节函数
void P(int left_val,int right_val){int Error=left_val-right_val;float p=kp*Error;v_turn=int(p);
}
//PD调节函数
void PD(int left_val,int right_val){int Error=left_val-right_val;float p=kp*Error;float d=kd*(Error-lastError);lastError=Error;v_turn=int(p+d);
}
//运动函数
void sport(int v_turn){int speed_left=v_st+v_turn;int speed_right=v_st-v_turn;//左前轮analogWrite(LFpwm,speed_left);digitalWrite(LFwheel_1,HIGH);digitalWrite(LFwheel_2,LOW);//右前轮analogWrite(RFpwm,speed_right);digitalWrite(RFwheel_1,HIGH);digitalWrite(RFwheel_2,LOW);//左后轮analogWrite(LBpwm,speed_left);digitalWrite(LBwheel_1,LOW);digitalWrite(LBwheel_2,HIGH);//右后轮analogWrite(RBpwm,speed_right);digitalWrite(RBwheel_1,LOW);digitalWrite(RBwheel_2,HIGH);
}
Arduino灰度传感器PID巡线相关推荐
- 灰度巡线传感器_灰度传感器、巡线传感器、技术参数、应用推荐
概述 Smart Grayscale sensor V1.0是一款颠覆传统的高智能灰度传感器,是科技与艺术的完美结合.具有微型化.智能化.多功能化的特点.市面上流行的寻线传感器.灰度传感器等要么只能识 ...
- 四轮两驱小车(四):STM32驱动5路灰度传感器PID循迹
目录 前言: 小车效果展示: 5路数字灰度传感器: 巡线思路: 加入PID调节的代码: 前言: 之前买了一批5路灰度传感器,想用这传感器进行循迹,无奈网上和官方的资料提供的还是比较少,这里还是做一下当 ...
- pid巡线算法程序_技术分享——从单个到多个颜色传感器巡线原理解析
巡线竞速是常见的机器人比赛项目,它对速度和精准度要求都比较高.该项目大多要求现场进行结构搭建,并且赛前只提供培训参考地图,比赛使用的地图和巡线任务一般是现场才进行公布,对于参赛选手的能力要求较高. 巡 ...
- ev3pid巡线_【 EV3基础应用 】课题六:PID巡线的P,到底是什么?
如果需要学习本阶段课程,建议先学习本号内<基础硬件篇和基础编程篇>. 学习本篇请下载 LEGO Mindstorms 教育版软件 上一节课写完后,收到很多朋友的问题.统一的说法都是,之前也 ...
- 使用Arduino Uno构建一个巡线机器人
使用Arduino Uno构建一个巡线机器人 原文 MX 巡线机器人(**LFR)**是一种简单的自主引导机器人,它遵循在地面上绘制的线来检测白色表面上的暗线或黑暗表面上的白线.在本教程中,使用 Ar ...
- 单光感pid巡线_乐高4种单光感巡线逻辑
乐高机器人4种单光感巡线逻辑.巡线话题应该不会过时,之前看过晓舟的巡线专题教程http://bbs.cmnxt.com/thread-3074-1-1.html以及伯虎关于PID巡线的帖子,受益颇多, ...
- 单光感pid巡线_技术解析——单颜色传感器巡线中的PID控制器
1PID控制器是什么? 百度百科: 工业生产过程中,对于生产装置的温度.压力.流量.液位等工艺变量常常要求维持在一定的数值上,或按一定的规律变化,以满足生产工艺的要求.PID控制器是根据PID控制原理 ...
- 由简至难可以轻松无障碍自己学习的Arduino套件,学习各种传感器、执行器、电子元件等,制作Arduino小车,可以用来巡线、避障、无线遥控
套件介绍 很多孩子从来没有接触过机器人,没有编程过(很害怕去接触,觉得很难),电子元件也没有接触过,不知道电阻.电容.二极管等,不知道电路知识! Arduino中级自学套件资料齐全,由浅至深,所有项目 ...
- k210的简单PID巡线
目录 1.前言 2.简介 3.代码讲解 1.调用自带的库文件 2.将I/O18和 I/O19分别注册为UART1_TX和UART1_RX功能并设置串口 3.向STM32F103单片机发送数据包 4.基 ...
最新文章
- 02-dispatch_barrier
- 【C#】MD5 小程序编写
- Matlab中数据拟合函数lsqcurvefit的使用方法与常见问题
- Googletest 实现简要分析
- 如何缩短visual studio行号的距离
- 他不怕被拒绝_【保险知识】高情商保险营销,再也不怕被拒绝!
- Excel批量向下填充不连续的空白单元格工具
- 微信小程序转发朋友圈
- 《数据结构》实验三:单链表
- selenium网页截图总结
- html制作3d动画效果,【分享】HTML5的Canvas制作3D动画效果分享
- 浅谈jodaTime 的使用
- 坚持与展望——科泰华捷董事长陈榕专访
- 外汇天眼:外汇市场为何在周末休市?为什么周末行情有波动?
- Mac下设置idea的代码提示快捷键
- java调节音量代码_音量调节(示例代码)
- jQueryanimation实现漂流瓶扔和写动画效果
- 自旋锁、乐观锁、悲观锁、重入锁、公平锁
- python正则表达式删除指定符号及其中的内容
- 蒸汽减温的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告