工程机器人比赛一(2020-09-16)

灰度模块

10个灰度


//前灰度pc12      pc13-pb9-pb8-pb5      pc14 DUc12  DUc13-DUb9-DUb8-DUb5      DUc14黑色为1    白色为0
//后灰度DUa11      DUa12       DUc10    DUc11
#define DUc12     GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_12)//读取电频
#define DUc13       GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)//读取电频
#define DUb9    GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)//读取电频
#define DUb8    GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)//读取电频
#define DUb5    GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)//读取电频
#define DUc14   GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_14)//读取电频#define DUa11     GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_11)//读取电频
#define DUa12   GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_12)//读取电频
#define DUc10   GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)//读取电频
#define DUc11   GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_11)//读取电频

拓展版原理图:

四舵机

舵机初始化:

void  duoji_init(unsigned short arr,unsigned short psc)
{TIM_TimeBaseInitTypeDef   TIM_TimeBasestruct;GPIO_InitTypeDef  GPIO_InitStructure;TIM_OCInitTypeDef  TIM_OCInitTystructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE );RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStructure);GPIO_PinRemapConfig(GPIO_Remap_TIM4,ENABLE);
//GPIO_PinRemapConfig(,ENABLE);      TIM8重映射TIM_TimeBasestruct.TIM_ClockDivision=0;TIM_TimeBasestruct.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBasestruct.TIM_Period=arr;TIM_TimeBasestruct.TIM_Prescaler=psc;TIM_TimeBaseInit(TIM4,&TIM_TimeBasestruct);
//  TIM_TimeBaseInit(TIM8,&TIM_TimeBasestruct);
//  TIM_CtrlPWMOutputs(TIM8,ENABLE);//主输出使能TIM_OCInitTystructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2TIM_OCInitTystructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能TIM_OCInitTystructure.TIM_Pulse = 0; //设置待装入捕获比较寄存器的脉冲值TIM_OCInitTystructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性gaoTIM_OC1Init(TIM4, &TIM_OCInitTystructure);TIM_OC2Init(TIM4, &TIM_OCInitTystructure);TIM_OC3Init(TIM4, &TIM_OCInitTystructure);TIM_OC4Init(TIM4, &TIM_OCInitTystructure);TIM_ARRPreloadConfig(TIM4, ENABLE); //使能TIMx在ARR上的预装载寄存器TIM_Cmd(TIM4, ENABLE);  //使能TIM1 }

桶升起:


void Tong_Up3(u32 k)
{u8 i;if(Tong_Up_aim3 > TONG_SHENGJIANG_TIMX){ for(i = TONG_SHENGJIANG_TIMX; i < Tong_Up_aim3; i++){TONG_SHENGJIANG_TIMX = i;delay_ms(k);}}else {for(i = TONG_SHENGJIANG_TIMX; i > Tong_Up_aim3; i--){TONG_SHENGJIANG_TIMX = i;delay_ms(k);}}tell_color(); //颜色识别
}

其他控制舵机操作见源码

电机控制(开环控制)

//定时器初始化
void TIM1_PWM_Init(unsigned short arr,unsigned short psc)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;TIM_OCInitTypeDef  TIM_OCInitStructure;GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
//  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3|RCC_APB1Periph_TIM4, ENABLE);// RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1|RCC_APB2Periph_AFIO , ENABLE);  //AFIO->MAPR|=3<<6;GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);  //   ①GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_11|GPIO_Pin_13|GPIO_Pin_14;         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    GPIO_Init(GPIOE, &GPIO_InitStructure);  //  TIM1->BDTR|=1<<16;TIM_CtrlPWMOutputs(TIM1,ENABLE);//MOE主输出      ②TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值    80KTIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  不分频TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能TIM_OCInitStructure.TIM_Pulse = 0; //设置待装入捕获比较寄存器的脉冲值TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性diTIM_OC1Init(TIM1,&TIM_OCInitStructure);//初始化CH1TIM_OC2Init(TIM1,&TIM_OCInitStructure);//初始化CH2TIM_OC3Init(TIM1,&TIM_OCInitStructure);//初始化CH3TIM_OC4Init(TIM1,&TIM_OCInitStructure);//初始化CH4TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);//CH1 预装载使能TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);//CH2 预装载使能TIM_OC3PreloadConfig(TIM1,TIM_OCPreload_Enable);//CH3 预装载使能TIM_OC4PreloadConfig(TIM1,TIM_OCPreload_Enable);//CH4 预装载使能TIM_ARRPreloadConfig(TIM1, ENABLE); //使能TIMx在ARR上的预装载寄存器TIM_SetCompare3(TIM1,0);TIM_SetCompare4(TIM1,0);TIM_SetCompare1(TIM1,0);TIM_SetCompare2(TIM1,0);//TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的预装载寄存器TIM_Cmd(TIM1, ENABLE);  //使能TIM1  }

小车移动函数:


void LEFTgo(float speed)//0-100速度
{if (speed>=100) speed = 100;speed=speed*48.0;TIM_SetCompare2(TIM1,speed);TIM_SetCompare1(TIM1,0);
}
void LEFTback(float speed)
{if (speed>=100) speed = 100;speed=speed*48.0;TIM_SetCompare1(TIM1,speed);TIM_SetCompare2(TIM1,0);
}
void CARgo(float left_speed,float right_speed){RIGHTgo( right_speed);LEFTgo( left_speed);}

其余动作见源码

原理图:

电机驱动控制

核心板接线:

颜色识别模块;gy33

该模块能用串口直接传输颜色参数。
稳定性还可以
串口初始化


void Usart1_init(u32 bound)
{GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);  //使能USART1,GPIOA时钟// RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//USART1_TX   GPIOA.9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.2//USART1_RX     GPIOA.10初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.3 //Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;     //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         //IRQ通道使能NVIC_Init(&NVIC_InitStructure);    //根据指定的参数初始化VIC寄存器//USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBit![在这里插入图片描述](https://img-blog.csdnimg.cn/20201018123351942.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1bmRkdW4=,size_16,color_FFFFFF,t_70#pic_center)
s_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;   //收发模式USART_Init(USART1, &USART_InitStructure); //初始化串口2USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_Cmd(USART1, ENABLE);                    //使能串口2USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);}

中断处理模块接收回来的数据
具体gy33数据格式链接:

void USART1_IRQHandler(void)                 //串口1中断服务程序{u8   j=0,sum=0,k;
//      u8  Res;static  uint8_t  i=0; // 5A 5A 45 03 51 4C 48 E1//头   头   45模式    3个数据    校准位if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收数据就绪可读{USART_ClearITPendingBit(USART1,USART_IT_RXNE);USART1_RX_BUFL[i]=USART_ReceiveData(USART1);    //读取接收到的数据i++;if(i==8){i=0;for(j=0;j<7;j++)sum+=USART1_RX_BUFL[j];if(sum==USART1_RX_BUFL[7]&&USART1_RX_BUFL[2]==0x45){/*   rgb.Red=0;rgb.Green=0;rgb.Blue=0;*/rgb.Red=USART1_RX_BUFL[4];rgb.Green=USART1_RX_BUFL[5];rgb.Blue=USART1_RX_BUFL[6];/*    OLED_ShowNum(103,6,rgb.Blue,3,16);OLED_ShowNum(50,6,rgb.Green,3,16);OLED_ShowNum(20,6,rgb.Red,3,16);OLED_ShowNum(40,2,color,3,16);*/tell_color();
for(k=0;k<8;k++)USART1_RX_BUFL[k]=0;}}}}


工程机器人比赛三(错误总结)(2020-09-16)

工程机器人比赛二(2020-09-16)相关推荐

  1. 江苏机器人竞赛南航_关于公布2020年南航金城学院首届大学生机器人比赛暨江苏省大学生机器人大赛校内选拔赛的评审结果的通知...

    由学校教学科研处和机电工程与自动化学院共同举办的南航金城学院首届大学生机器人比赛暨江苏省大学生机器人大赛校内选拔赛评选工作于10月16日10:00-13:30在博知楼的机自学院各创新实验室举行.选拔赛 ...

  2. 机器人水库涵洞检测_【展商秀】广州市江达潜水疏浚工程有限公司将携水下清淤机器人重磅亮相2020城市管网展览会...

    导读 广州市江达潜水疏浚工程有限公司将于2020年11月25日-27日亮相 第七届中国国际城市管网展览会暨中国国际城市规划协会地下管线专业委员会2020年年会现场,诚邀您的莅临指导! 公司简介 广州市 ...

  3. 2020. 09 青少年机器人技术等级考试理论综合试卷(一级)

    2020. 09 青少年机器人技术等级考试理论综合试卷(一级) 一. 单选题(共 30 题, 共 60 分) 1.使用下列工具不能省力的是? ( ) A.斜面 B.动滑轮 C.定滑轮 D.省力杠杆 试 ...

  4. 江苏机器人竞赛南航_关于举办南航金城学院首届大学生机器人比赛暨江苏省大学生机器人大赛院内选拔赛的通知...

    各教学单位: 由江苏省教育厅与江苏省科学技术协会举办江苏省大学生机器人大赛,旨在引导高等学校加强机器人相关专业和课程的建设,深化教学改革,加强科研和工程实践能力的训练,提高大学生的创新能力.理论知识应 ...

  5. 中国工程机器人大赛暨国际公开赛(RoboWork)

    中国工程机器人大赛暨国际公开赛(RoboWork)-探索者全地形赛 目 录 摘要 正 文 1.1 综述 1.2 系统整体设计 1.3 机械结构设计 1.4 硬件设计 1.5 软件设计 1.6 系统开发 ...

  6. 赛事解读|中国工程机器人大赛暨国际公开赛——飞思实验室空中机器人项目-仿真与自主任务赛项

    飞思实验室承办中国工程机器人大赛暨国际公开赛--无人机仿真与自主任务赛项,自5月6日开启赛事报名通道以来,受到了全国院校的高度关注. 赛事背景: 中国工程机器人大赛暨国际公开赛是由教育部高等学校创新方 ...

  7. 赛事快讯|2022中国工程机器人大赛——飞思无人机仿真与自主任务赛项演示视频来啦!

    作为第十一届中国工程机器人大赛暨国际公开赛的重要赛项,飞思无人机仿真与自主任务赛项诚邀全国各区域高效优秀人才及社会无人机极客参与其中,在实践中探索无人机奥秘! 中国工程机器人大赛-飞思实验室无人机仿真 ...

  8. 计算机系统招标范围,信息化系统招标文件(2015.09.16最终稿1).doc

    信息化系统招标文件(2015.09.16最终稿1) 鸡西市.七台河市供水(干线)工程 联合调度与运行管理决策支持系统 招标设计 技术规范 水利水电勘测设计研究院 二○一五年九月 目 录 1 工程概况1 ...

  9. Kinect体感机器人(二)—— 体感识别

    Kinect体感机器人(二)-- 体感识别 By 马冬亮(凝霜  Loki) 一个人的战争(http://blog.csdn.net/MDL13412) 背景知识 体感技术属于NUI(自然人机界面)的 ...

最新文章

  1. 浏览器同部署了https的服务器交互的过程
  2. 命令行启动ssh_如何在虚拟机中正确的第一次启动Linux系统
  3. TD321DCAN 隔离CAN总线驱动器
  4. 图(1)——图的定义和基本概念
  5. ORACLE SQL机能优化系列(六)
  6. hdoj5317【素数预处理】
  7. php本地环境搭建软件下载,用EasyPHP本地搭建PHP环境的步骤分享
  8. C语言 ---文件读取
  9. 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)
  10. 人工智能_TensorFlow工作笔记003---在pycharm中安装TensorFlow
  11. Ubuntu terminal reset and clear快捷键
  12. 使用Scrapy,帮你快速抓取网页数据(代码可下载)!
  13. ISO 27001:2022 中文试译稿
  14. 园林景观cad_景观广场及绿化设计(附CAD平面图)
  15. 一定是h的方式不对阅读_41章_[黑篮]一定是H的方式不对!_七零小说网
  16. 论文阅读《SHINE: Signed Heterogeneous Information Network Embedding for Sentiment Link Prediction》
  17. 摇滚bono_摇滚,Paper弹枪对尼古拉斯·弗朗西斯的采访
  18. 快乐的强化学习6——DDPG及其实现方法
  19. 如何下载网页上的视频?
  20. Linus Torvalds:最庆幸的是 30 年后,Linux 不是一个“死”项目

热门文章

  1. win10 vscode go语言开发
  2. WebService/WCF
  3. php 精粹 评论,php精粹 编写高效php代码好不好
  4. 微信公众平台开发之在线翻译功能
  5. Anterior and posterior commissures
  6. 升级域控制器:向现有域添加 Windows Server 2008 或 Windows Server 2008 R2 域控制器的 Microsoft 支持快速入门...
  7. 游戏视界-MC启动器
  8. 哈啰出行,为城市续航!
  9. 手把手教你如何购买腾讯云服务器(图文教程)?
  10. 【报告分享】2020年中国K12在线教育行业报告-Fastdata极数(附下载)