当前位置:首页 > 智能超声波红外测距避障直流电机驱动小车
第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
共分享92篇相关文档