智能超声波红外测距避障直流电机驱动小车 联系客服

发布时间 : 星期六 文章智能超声波红外测距避障直流电机驱动小车更新完毕开始阅读

第4章 软件方案

系统中传感器就是整个系统的“眼睛”,其对于障碍的识别在控制系统中尤为重要。

4.1 路障识别状态分析

初始情况状态下前面是没有障碍物的,当与障碍距离为35CM时启动避障策略的。

超声波测距s=t*340/235cm的安全距离S<35cm避障碍策略S>35cm继续行走

图4.1.1 避障模块程序设计流程图

11

第5章 实践感悟

总的来说,学到不少知识。最后还是坚持下来了,做出来的东西,也觉得还行。所谓坚持就是胜利。

心得吗,上面基本上都提到了。用ARM做实物,还是第一次,以前学过,

但没写过程序,也就为零。做这个我是硬着头皮来做的,到现在我ARM也还是属于基本了解。对ARM刚入门,调试程序,遇到问题时,可把程序分成基本小程序来调,我认为这是相当有作用的;还要善于应用检测设备,如万用表、示波器等;并且示波器这东西也不能全信,我也说不清;都要共地线,这包括ARM板、电机、其驱动、传感器等外围电路;H-JTAG仿真,工程中须选DebugInRAM,而不是DebugInFLASH;而烧片子须选DebugInFLASH,生成相应的HEX;用串口写程序,须将JSP1短接,TXD0接P0.0,RXD0接P0.1,跑片子须将JSP1断开;刚入门,ARM可直接用C写,把ARM当作功能强大的控制器使用,不用了解其内部体系结构、汇编指令等,这对初学者来说,没比这更令人高兴的事了,但若想在这方面有所成就,该许学的还是要学的,成功没有捷径。

12

第6章 参考文献

【1】周立功. ARM嵌入式系统基础教程[ M].北京:北京航空航天大学出版社,2008.9 【2】周立功.深入浅出ARM7–LPC213x/214x[ M].北京:北京航空航天大学出版社,2005.6 【3】周立功等编著.ARM嵌入式系统实验教程.北京:北京航空航天大学出版社,2005.10 【4】宗光华等编著.机器人的创意设计与实践[M].北京:北京航空航天大学出版社,2004.2. 【5】傅京孙等.人工智能及应用[M] .北京:清华大学出版社,1987.

13

附录

A.1 源代码:

#include \

/******************************************* 宏定义

*******************************************/ //无线指示灯

#define LED1 (1 << 2) #define LED2 (1 << 3)

#define BEEP (1ul << 10)

#define BEEPOFF() GPIO2DATA |= BEEP /* 蜂鸣器关 */

#define BEEPON() GPIO2DATA &= ~BEEP /* 蜂鸣器开 */

#define BEEP_INIT() GPIO0DIR |= BEEP /* 蜂鸣器初始化 */

#define Trig (1 << 4)

#define Trig_INIT() GPIO3DIR |= Trig #define TrigHigh() GPIO3DATA |= Trig #define TrigLow() GPIO3DATA &= ~Trig

#define Echo (1 << 5)

#define Echo_INIT() GPIO3DIR &= ~Echo #define EchoHigh() GPIO3DATA |= Echo #define EchoLow() GPIO3DATA &= ~Echo

/**************L298N***************************/ uint32 G_LeftLow = 100,G_RightLow = 100,G_HZ = 200; /******************HC-SR04***************************/ volatile uint32 TimeCount = 0,TimeGet = 0,OldTimeGet = 0; volatile uint32 Distance = 0,SendFlag = 0,OldDistance = 0; /******************SPI0*********************************/ #define key (1ul << 11)

#define KEY_INIT() GPIO2DIR &=~ key #define KEYOFF() GPIO2DATA |= key

14