源码出处:😀
浙江师范大学第九届智能车校赛 啊对对队的比赛源码(菜的一笔,仅供思路参考)
说在前面:😝
这次的比赛还是有些遗憾的,只是跑完了全程,并没有取得太好的成绩,仅拿到了三等奖,确实也是因为自己太忙,没有把很多精力放在这个比赛上,然后还有一个不可控因素是我们车子的性能确实差。
在这里感谢啊对对队的队长ly能邀请我参加这个比赛,并且也在这个比赛中投入了很多激情;还要感谢队伍的另一名队员wqy,对这个比赛投入了很高的热情和很多的时间,并且也是一直在感染我,让我有继续做下去的动力。在这个比赛中我学到了很多的硬件的知识,也收获了很多东西。这次的智能车校赛是我在大学里参加的第一个比赛,我会一直记得我们曾在实验室奋斗的时光,这也会成为我人生中一段宝贵的经历。
主要技术点:🧠
车辆硬件的组装、OLED屏幕显示框架的使用,PID控制算法的简单实现(不考虑积分作用,不考虑积分限幅等作用),Arduino板数据存储函数库的使用,自研速度控制的代码(很菜,但很稳)
整体代码:🤑
/*
满电状态的代码
kp = 265
kd = 15
*/
#include <stdio.h>
#include <math.h>
#include <EEPROM.h>
//OLED使用头文件
#include<U8glib.h>
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
const int led_Pin = 13; //LED控制引脚
const int left_Forward_PWM_Pin = 10; //左电机正转控制引脚
const int left_Backward_PWM_Pin = 5; //左电机反转控制引脚
const int right_Forward_PWM_Pin = 6; //右电机正转控制引脚
const int right_Backward_PWM_Pin = 9; //右电机反转控制电路
const int AD_Left_Pin = A0; //左电磁传感器AD引脚
const int AD_Right_Pin = A1; //右电磁传感器AD引脚
const int button_W_pin = 2; //方向↑键
const int button_S_pin = 4; //方向↓键
const int button_A_pin = 7; //方向←键
const int button_D_pin = 8; //方向→键
const int button_C_pin = 12; //中心键
//初始化
void setup() {
//---------初始化LED引脚-------------------
pinMode(led_Pin, OUTPUT);
//---------初始化电机引脚(默认直行)----------
analogWrite(left_Forward_PWM_Pin, 175);
analogWrite(left_Backward_PWM_Pin, 0);
analogWrite(right_Forward_PWM_Pin, 245);
analogWrite(right_Backward_PWM_Pin, 0);
//---------初始化传感器引脚------------------
pinMode(AD_Left_Pin, INPUT);
pi