资源简介
电磁环岛的.c和.h文件,外加详解文档,用两个电感检测环岛,测试方案很稳定,可以参考
代码片段和文件信息
#include “Control.h“
#include “headfile.h“
uint8 Run_Flag = 0;
int32 MOTOR_Duty_Left = 0;
int32 MOTOR_Duty_Right =0;
int32 MOTOR_Speed_Left = 0;
int32 MOTOR_Speed_Right = 0;
int32 MOTOR_Speed_Left_Last = 0;
int32 MOTOR_Speed_Right_Last = 0;
int32 MOTOR_Left_Acc = 0;
int32 MOTOR_Right_Acc = 0;
float SpeedRw SpeedLw;
float Speed_devSpeed_sumSteer_Radius;
int Fres = 0; // 动态参数变量
/******* 电机速度测量 ********/
/************************* 其他控制变量 ******************************************/
uint8 Set = 0;
float Set_Speed;
int8 CS_Point_Num=0;
float CS_P_Right = 0.50CS_P_Left = 0.50;//差速系数
/*******************挂挡变量声明**************/
float Set_CS_P_Right[2] = {0.500.7};
float Set_CS_P_Left[2] = {0.500.7};
uint8 Set_Set[2] = {04};
int8 Last_Error[5]Point_Error;
uint8 Point; //目标点横坐标
int8 Point_Num=0; //提前系数
uint8 Point_Mid = MIDVALUE;
void Speed_Measure(void)
{
static int32 ptA0_dataptH2_data;
/******* 右电机速度相关控制 ********/
MOTOR_Speed_Right =ctimer_count_read(SPEEDR_PIN)*100*Pulse_CM_coe;//右轮
ctimer_count_clean(SPEEDR_PIN);
if(gpio_get(SPEEDR_DIR)) MOTOR_Speed_Right=-MOTOR_Speed_Right;
else MOTOR_Speed_Right= MOTOR_Speed_Right;
MOTOR_Right_Acc = MOTOR_Speed_Right - MOTOR_Speed_Right_Last; // 计算加速度
if(MOTOR_Right_Acc >100)
MOTOR_Speed_Right += 100;
else if(MOTOR_Right_Acc < -100)
MOTOR_Speed_Right -= 100;
else
MOTOR_Speed_Right = MOTOR_Speed_Right;
MOTOR_Speed_Right = range_protect(MOTOR_Speed_Right-500 500); //限幅保护
MOTOR_Speed_Right_Last=MOTOR_Speed_Right;
/******* 右电机速度相关控制结束 ********/
/******* 左电机速度相关控制 ********/
MOTOR_Speed_Left =ctimer_count_read(SPEEDL_PIN)*100*Pulse_CM_coe;//右轮
ctimer_count_clean(SPEEDL_PIN);
if(gpio_get(SPEEDL_DIR))MOTOR_Speed_Left=MOTOR_Speed_Left;
else MOTOR_Speed_Left= -MOTOR_Speed_Left;
MOTOR_Left_Acc = MOTOR_Speed_Left - MOTOR_Speed_Left_Last; // 计算加速度
if(MOTOR_Left_Acc >100)
MOTOR_Speed_Left += 100;
else if(MOTOR_Left_Acc < -100)
MOTOR_Speed_Left -= 100;
else
MOTOR_Speed_Left = MOTOR_Speed_Left;
MOTOR_Speed_Left = range_protect(MOTOR_Speed_Left-500 500); //限幅保护
MOTOR_Speed_Left_Last=MOTOR_Speed_Left;
/*****************转向和直道真实速度计算*****************/
SpeedLw = MOTOR_Speed_Left
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9805 2019-05-26 17:28 Control.c
文件 1962 2019-05-14 20:34 Control.h
文件 4022 2019-05-27 17:30 环岛处理方法及对应代码 (1).txt
相关资源
- 模拟电磁曲射炮论文.docx
- 人机交互实验-命令行菜单界面
- 中缀表达式求值
- 电磁场与微波技术 黄玉兰
- 电动汽车无线充电系统的电磁安全
- 基于DSP的语音录放实验程序
- 一个随笔画程序
- 标准C实现FTP上传功能
- ModEM大地电磁三维正反演软件安装包
- 中南大学单片机课设 密码锁
- 交通灯控制系统
- funcode坦克大战源码
- 数据结构与算法全集C源代码+详细注释
- Open62541 win32 动态库
- Proteus8.9 VSM Studio WINAVR编译器仿真ATM
- 温度测试代码加仿真图protues
- 截图、抓屏程序纯C实现
- 电磁场[周希朗主编][习题解答]
- C代码版本的HTTP POST上传文件/JSON
- 智能车曲率 斜率资料
- 图书管理系统数据
- OPA2350两级运放,飞思卡尔智能车电磁
- 电机设计电磁计算参数表格
- 十三届恩智浦电磁三轮国赛程序iar
- 进程调度 时间片轮转与优先级 作业调
- 数字钟仿真+源程序.zip
- 蓝牙小车程序 绝对完整 整个工程
- 倒立摆源码,自动起摆源码
- 大地电磁的粒子群法一维反演程序
- 恩智浦 智能车 原理图
评论
共有 条评论