小车循迹控制程序设计(编辑修改稿)内容摘要:
_motion(1470, 1700,1)。 //左转修正 }else if(((!P22_state())amp。 amp。 P23_state())||((!P21_state())amp。 amp。 (!P22_state())amp。 amp。 (!P23_state())amp。 amp。 P24_state())) { motor_motion(1300, 1550,1)。 //右转修正 } else{ motor_motion(1700,1300,1)。 } } ( 1) 当小车发生 右 偏移时,各传感器状态信号如下: 通过判断语句:if((P22_state()amp。 amp。 (!P23_state()))||(P21_state()amp。 amp。 (!P22_state())amp。 amp。 (!P23_state())amp。 amp。 (!P24_state())))判断小车是否 向左偏移,若发生偏移此时通过调节左右轮的速度来实现,左偏时调用motor_motion(1770, 1740,1)实现左轮前进速度大于右轮前进速度来实现向右偏移来对偏移进行修正。 ( 2 ) 当小车发生右偏移时,各传感器状态信号如下: 1 0 0 0 0 0 0 0 1 1 0 0 通过判断语句: if(((!P22_state())amp。 amp。 P23_state())||((!P21_state())amp。 amp。 (!P22_state())amp。 amp。 (!P23_state())amp。 amp。 P24_state())) 判断 小车是否向右偏移。 若发生偏移,此时通过调节坐游轮的速度来实现,右偏时调用 motor_motion(1550, 1300,1),通过调节左右轮的速度,当右轮速度大于左轮速度进行修正。 编程头文件 ( 1)各个头文件如下图 图 ( 2) ,帮助系统更加理性化,易于操作。 例如小车开始部分延时 3秒。 : void delay_nus(unsigned int i) { i=i/10。 while(i)。 1 0 0 0 0 0 0 0 1 1 0 0 } void delay_nms(unsigned int n) { n=n+1。 while(n) delay_nus(900)。 //进行时间补偿 } ( 3) 头文件 其作用是 获取 4个 QTI传感器采集的信号。 为 51 单片机提供判断的输入数据。 P21口实例 详细代码如下: /* 函数名称: P21_state() 功能: 获得左边第一个 QTI的返回信号 参数:无参数 返回值: 1:高电平,看到黑线; 0:低电平,看到白线 */ int P21_state() { return (P2amp。 0x02)?1:0。 } ( 4) 头文件其作用是 定义用到的数据类型、变量。 方便程序设计,简化程序结构。 详细代码如下: ifndef GLOBAL_H define GLOBAL_H typedef unsigned int uint16_t。 typedef unsigned char uint8_t。 typedef unsigned char bool。 define true 1 define false 0 endif ( 5) 控制两个舵机运转。 详细代码如下: include sbit left_motor = P1^0。 //左电机接口 sbit right_motor = P1^1。 //右电机接口 define LEFT_FWD 1700 //高电平时间定义,单位微秒 define LEFT_BWD 1300 define LEFT_SMALL_FWD 1530 define LEFT_SMALL_BWD 1450 define RIGHT_FWD 1300 define RIGHT_BWD 1700 define RIGHT_SMALL_FWD 1450 define RIGHT_SMALL_BWD 1530 函数名称 :motor_motion(uint16_t left_val, uint16_t right_val, uint8_t count) 作用:向伺服电机输出若干个 PWM波,波形的占空比可控制 参数: left_val:左边电机的高电平时间宽度; right_val:右边电机的高电平时间宽度;count:脉冲数目 返回值:无返回值 void motor_motion(uint16_t left_val, uint16_t right_val, uint8_t count) { uint8_t i。 for(i=0。 icount。 i++) { left_motor = 1。 delay_nus(left_val)。 left_motor = 0 right_motor = 1。 delay_nus( right_val )。 right_motor = 0。 delay_nms(20)。 //输出一定数量的 PWM波形 } } 第 3 章 详细设计 硬件设计与实现 小车是由多个硬件零件组装而成,每个零件负责不同的功能,根据设计任务和要实现的主要功能,来进行硬件设计。 硬件设计原理图如下: 图 总体电路 图 图 QTI传感器 系统主程序流程 小本系统设计 了五个个模块,分别为起点到中心点路线模块、中心点到 D点、 D点 黑 色点、 黑 色点到中心点、中心点返回到起始点路线模块。 通过对每个功能模块的调用实现系统要求的功能。 功能模块详细设计 起始点到中心点路线模。小车循迹控制程序设计(编辑修改稿)
相关推荐
正截面承载力计算 : 跨内按 T 形截面计算 ,翼缘计算宽度 1 6 6 735 0 0 0339。 lbfmm;又 10 2 0 0 01 8 0 02 0 039。 nf sbb mm1667mm,故取 166739。 fb mm。 除支座 B 截面纵向受拉钢筋按两排布置外,其余截面均布置成一排。 判别 T 形截面类形 : MKNhhfhb fcmff
Edition database engine (MSDE)。 Database Setup:安装组件数据库及 Repositories。 第三步 硬件平台分析。 在开发过程中,首先需要运行硬件分析程序来分析当前机器的硬件配置情况。 操作系 统与硬件紧密相关,只用充分地了解和支持硬件,才能让操作系统正常稳定的运行。 由于 X86 结构计算机的硬件比较复杂,普通开发者很难对它充分地理解熟悉,因此
=4 查表得 2~K = 则 144851 231 所以,模数 11 zd ,取标准 m=。 齿轮相关参数 : 取 Z1=28,则 11 mz ; 1 6 81 1 22 mz , 中心距 : mmzzm 105)11228(2 )(2a 21 齿宽 ddb d ,一般取 ~ 即: 1b =48mm 12 bb ( 5~10)
12 第 2 章 局域网中的设备 计算机与计算机或工作站与服务器之间连接时要用到传输介质和连接设备。 如果把网络中传输的数据比作计算机网络的“血液”,那么传输介质和连接设备就组成了网络中的“血管”,它们遍布整个计算机网络。 在组建计算机网络的实施阶段,首先遇到的是传输介质和连接设备的选择、性能评价、安装和调试问题。 传输 介质包括双绞线、同轴电缆和光纤等,连接设备包括网卡、集线器
00吨。 全市城镇居民人均可支配收入 18768 元,增长 %,人均消费性支出 12309 元,增长 %,人均住房建筑面积 ㎡ ,增长 %;农民人均纯收入 5571 元,增长 %,人均消费性支出 15 4495 元,增长 %, 人均住房建筑面积 34 ㎡ ,增长 %。 年末全市城镇职工养老保险参保 万人,失业保险参保人数 万人,医疗保险参保人数 万人,工伤保险参保人数 万人,生育保险参保 万人。
助小米盒子,进入家庭娱乐、信息中心的电视屏幕,意图建立其更大的设备互联网生态,配合 MIUI 和多看,助力推进其内容服务生态的拓展与建立。 第 10 页 共 25 页 就小米盒子而言,技术、设计、 内容、营销、市场等方面对雷军来说都不是门槛,但正是这些先前的布局却给后来者进入树立 了 很高的门槛。 由于小米盒子是一个开放的平台,内容服务商、应用提供商可随时接入自己的内容。 然而