移动机器人路径跟踪实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
■电路 ●LED半导体发光二极管 ●光敏电阻 ●可微调电阻 ●运算放大器 ●接线头、电阻和导线
电路设计
VCC
5V
R3 1k¦¸
4 R4 4.7k¦¸
2
VCC
R5 15k¦¸
R2
10k¦¸ Key=A
50%
3
U1A
5
2
5
3
4
12 LM339N
6
R1 10k¦¸
XSC1
A +_
B +_
Ext T rig +
● void sleep (float sec) 等待一段等于或稍大于指定的sec时间(秒) 后
再执行后面的语句。sec是一个浮点数。 例: sleep(1.5); /* 等待1.5秒 */
●void msleep (long msec) 等待一段等于或稍大于指定的msec时间(毫秒)后 再执行后面的语句。sec是一个长整数。 例:
也
可以作为通用模拟输入口使用,编号为1; (28) 光敏传感器0:预设的光敏电阻插座0,与左边的光敏传感器对应,
也
可以作为通用模拟输入口使用,编号为0; (29) 扩展接口:该扩展接口插座与LCD插座一起构成了探索者的扩展总
线;
(30) 红外频率调节:用于调节红外振荡电路的频率,使其位于38KHz左 右;
(16) 复位按钮:按下此按钮使控制板复位,当与功能按钮联合使用可以使控制 板进入特殊启动模式,从而可以进行操作系统的装入,具体做法是先按下 功能按钮并保持,然后按一下复位按钮;
(17) 通用数字口0-6、8-9:通用数字输入口,从左至右编号为0到6和8-9; (18) 通用模拟口7-4:通用模拟输入口,从左至右编号为7到4; (19) 通讯指示:黄颜色的发光二极管,灯闪烁时,表示控制板正与PC机进行通
如何实现路径信息转化为电信号?
不同材质对光的吸收和反射的能力不同
路径 反射能力高
背景 反射能力差
如下图中所示,由半导体发光二极管LED 与光敏电阻R构成了探头部分,由LED发射的 光线照射到地面材质上,再经材质的漫射或反 射,光线照射在光敏电阻上,使其电阻值发生 变化,不同材质对光的吸收能Βιβλιοθήκη Baidu不同,则光敏 电阻的阻值也随之变化。
(31) 快速充电:若需对电池组进行快速充电,应将该跳线座短路; (32) 蜂鸣器:可以在用户程序的控制下产生不同频率的声响。
二.C语言基础和JC
◆ C基础 main( ) 函数
◆ JC简介 交互式C语言(简称JC)是用于能力风暴个人机器人(基于68HC11)的
专用开发系统。 JC由两部分组成:编译环境(包含交互式命令行编辑和调试功能)和
下面的代码显示创建一个check_sensor进程,1 秒钟后终止该进程的例子:
void main() { int pid; pid= start_process(check_sensor(2)); sleep(1.0); kill_process(pid); }
第二部分.实验
设计目的:
利用68HC11强大的可扩展性以及众多 的剩余输入/输出端口,为探索者机器人增 添传感器模块,以此来完善其与外界交互 的能力,使其在迷宫运行中能更好的保持 自身的姿态。
_
J1 Key = Space
1
U2
6
5
2
4
CNY17-1
0
1
R6 10k¦¸
分立的单组传感器电路电路图
LM339N芯片图
总体布局图
R16
15k¦¸ R15
15k¦¸ R12
U6
1
4
2
33
15k¦¸
R14
R3
15k¦¸
1
DIP4
2
LM139
10k¦¸
U2
6 Key=A 50%
5
PHOTO_TRANSISTOR_RATED LED1
■ 控制过程 ●采集信号 ●信号处理 ●信号输入
实验方法
利用传感器探测路径,判断行走信息。 如图所示
1、2、3、4为4组信号探测器。根据他们在 白色区域(行走轨迹)位置的不同,可输出 不同的信号。
每组信号探测器利用LED光源与光敏传 感器组成一组传感器探头,用4组这样的探头 组成的阵列来对白线进行识别,判断小车所 处状态,并作出相应的反应。
(3) 直流电机口2:同(2); (4) 直流电机口1:同(2); (5) 直流电机口0:同(2); (6) 移动轮电机1:探索者教育机器人左右各装备了一个直流驱动马达,
分别对应于WHEEL0和WHEEL1两个五芯插座,是探索者的主要移动 机构,安装时应注意左右对应关系;
(7) 移动轮电机0:同(6); (8) 电源插座:电池组上电源线连接在此处,连接时应注意电池极性; (9) 充电插座:探索者配备的12伏500毫安充电器上的同轴插头插入此插
(12) 电源开关:用于打开和关闭探索者; (13) 电源指示:绿颜色的发光二极管,用于指示探索者是否处于工作状
态;
(14) 电压低指示:红颜色的发光二极管,灯亮时,表示电源电压太低; (15) 功能按钮:该按钮占用通用数字输入口7,在用户程序中可以获得
该按钮的状态,另外,该按钮与复位按钮联合使用可以使控制板进 入特殊启动模式,从而能够进行操作系统的装入;
1. 输出控制
●函数stop()关闭两个电机
● motor ( int m, int p)用于电机功率水平的控制
● void drive ( int trans_vel, int rot_vel) 同时设定两个电机的速度,控制能力风暴的平移和旋转。 trans_vel平移速度,rot_vel旋转速度。rot_vel<0能力风暴顺时 针旋转,rot_vel>0能力风暴逆时针旋转。该函数将左轮速度设 为( trans_vel - rot_vel ),右轮速度设为( trans_vel + rot_vel )。
机器人路径跟踪实验
许群 xq122@126.com
能力风暴
第一部分
一.控制主板结构说明
(1) LCD插座:探索者配备了一个16x2的液晶显示模块,将其正确插入该 插座,机器人在运行过程中可以显示2行16字符的文本信息,是探索 者与操作者的交互界面之一;
(2) 直流电机口3:探索者控制主板上扩展了四个直流伺服接口,编号为 0~3,具备PWM(脉宽调制)功能,可以用于各种直流驱动装置, 如直流马达、继电器等执行机构,旁边的红色和绿色用于指示方向;
void check_sensor(int n) {
while (1) printf("Sensor %d is %d\n", n, digital(n));
}
void main() {
start_process(check_sensor(2)); }
start_process(check_sensor(2), 1, 50);
msleep(1500L); /* 等待1.5秒 */
■多任务
(1)多任务叙述
JC的一个强大的功能是它的多任务设置。在运行期 间,进程可以被动态地建立和撤消。多个进程运行通过 分时间片实现的。每个进程一次只执行一定数量的时间 片。
每个进程都有自己的栈,用于函数调用传递参数,存 放局部变量,存放函数调用的返回地址。栈的大小在进 程创建时确定。一个进程栈的缺省大小为256字节。
(2)创建新进程
int start_process (functioncall(...),[TICKS],[STACK-SIZE])
start_process取得一个进程标识,创建一个进程。有 两个可选参数:进程的时间片数和栈大小。
返回一个整数,它就是新进程的进程ID 。
下面给出了创建一个进程的例子:
2.传感器输入
●数字输入 int digital (int p) 返回数字口p上传感器的值,(1为真,0为假)。 如果从传感器数字硬件读到的值为零伏或逻辑零, digital()函数将返回真。
●模拟输入
int analogport(int p) 返回模拟口p上传感器的值。返回值是0到255间的整数值。 如果该传感器在硬件上只有开关两种状态,则硬件上的数 字读数为1时返回值为255(就象一个数字开关断开,电位 被拉高一样,导致一个最高读数),当硬件的数字读数为 0,则返回0(就象一个数字开关合上,电位接地)。 系统设定的传感器端口全局变量:
座可以对连接在机器人上的8节9.6伏串联电池组进行充电; (10) 充电指示:黄颜色的发光二极管,用于指示探索者是否处于正常充电
状态,若快速充电跳线插座短路,则该指示灯不起作用;
(11) 扩展电源插座:用于给探索者上扩展的直流电机口0~3和移动轮电 机驱动口0~1提供额外的电源,电源极性请见板上的标注,附加电 源的规格为5~7节1.5伏干电池或7~8节1.2伏串联充电电池,但一 般要求等效电压等于或略高于连接于(8)的电池电压;
●碰撞检测 在能力风暴四周有一个碰撞环,上面有四个碰
撞传感器,可以检测是否撞上障碍以及碰撞发生 的方位
int bumper ( )
碰撞传感器检测。返回值低4位的意义,位0=>右 前,位1=>左前,位2=>右后,位3=>左后。如果 实际检测方位与此处定义不一致,请调整碰撞传 感器的安装位置
3. 定时命令
讯;
(20) 串行通讯插座:RS232串行通讯接口; (21) 麦克风:用于采集声音信号,占用通用模拟接口2; (22) 红外调节1:用于调节红外发射管1的发射强度; (23) 红外发送1:红外发射管1插座; (24) 红外接收:红外接受头插座; (25) 红外发送0:红外发射管0插座; (26) 红外调节0:用于调节红外发射管0的发射强度; (27) 光敏传感器1:预设的光敏电阻插座1,与右边的光敏传感器对应,
●红外线系统
红外线系统由两部分构成:两个红外线发送 器,以及一个红外线接收器
左右两个方向的红外线发送器分别发射一定 频率的红外线脉冲信号,红外线接收器可以检 测出这种频率的红外调制信号
红外线系统探测障碍的有效距离是10~80厘 米
int ir_detector() 返回值 0b00: 没有接收到红外, 0b01: 右边接收到, 0b10: 左边接收到, 0b11: 两边都接收到。
将创建一个check_sensor进程,它每次运行1毫 秒,栈大小为50个字节
(3)撤消进程
int kill_process(int pid); 通过将进程ID传给kill_process来撤消一个进程。 kill_process 返回值表明撤消进程是否成功。
如果返回值是0,表明进程被撤消。如果返回1, 表示没有找到该进程。
int photo_right = photo(1); 右光敏电阻 int photo_left = photo(2); 左光敏电阻 int microphone = 2; 麦克风
例: analogport (photo_right);检测右光敏,返 回值越小,光线越亮。
analogport (microphone);检测麦克风, 返回值越大,声音越响。
设计方案:
设计围绕规范探索者机器人的行走路径 来进行,在场地中布置白色轨迹线,让探 索者机器人顺沿轨迹进行移动。
设计思想:
提取行走路径信息(利用自然界光、热、 质量、电、声等),转化为可识别的电信 号,根据电信号变化识别路径,再对机器 人行走作相应的调整。
实验耗材:
1.比较器LM339N(4个集成) 2.光敏电阻10K~20K,数量4个 3.发光二级管4个电压3V 4.普通电阻1KΩ,4.7KΩ,15KΩ分别4个 5.可调电阻0~10KΩ4个 6.导线若干
能力风暴操作系统。JC实现了C语言的一个子集,它包括控制语句(for, while,if else),局部变量和全局变量,数组,指针,结构体,16位和32 位整数,和32位浮点数。
◆运行JC 首先要安装JC。把能力风暴接到你计算机的一个串口上,打开能力风暴电 源开关,并运行JC。电源开关拨至“下载”位置(左边),JC将引导你首先下 载操作系统;若控制板上已有操作系统,将电源开关拨到“运行”位置(右 边),运行JC时,JC将初始化能力风暴内存并下载系统库函数。
能力风暴库函数文件
JC库函数
◆库函数文件为能力风暴控制板的硬件提供了标准C的接口函数。这些 函数是用C或者汇编语言写成的驱动程序。库函数提供了诸如控制电 机,发出声音,输入传感器值等功能
◆为更好理解库函数如何工作,建议研究一下库文件的源代码。能力风 暴主库文件列表为lib_as.lis。
相关内容: ●输出控制 ●传感器输入 ●定时命令 ●音频函数