spruce STM32智能小车测试报告

上传人:z**** 文档编号:122655964 上传时间:2022-07-21 格式:DOC 页数:10 大小:146KB
收藏 版权申诉 举报 下载
spruce STM32智能小车测试报告_第1页
第1页 / 共10页
spruce STM32智能小车测试报告_第2页
第2页 / 共10页
spruce STM32智能小车测试报告_第3页
第3页 / 共10页
资源描述:

《spruce STM32智能小车测试报告》由会员分享,可在线阅读,更多相关《spruce STM32智能小车测试报告(10页珍藏版)》请在装配图网上搜索。

1、Spruce STM32智能小车测试报告Spruce STM32使用说明:Spruce上搭载了 STM32处理器,STM32虽然是Cortex-M3内核的32位ARM , 但是一方面可以将它作为ARM来使用,另一方面也可以将它作为arduino来使用, arduino环境下的程序可以直接拿过来使用,但要在与spruce配套的集成开发环境 maple-ide下编译之后通过USB转串口线下载到STM32中,只有个别函数用法与之前 不一样,例如PWM与之前的arduino环境中使用不一样,只需稍作修改即可Spruce下载方法:用USB转串口线将spruce与电脑连接,先编译,在maple- ide环

2、境中编译,然后点击下载按钮,点击完毕之后将spruce 的RESET建按下,待 出现如图1所示界面立即松开RESET ,即可将程序下载到STM32中,下载成功后可以 看到如图2所示界面,提示重启USB返回正常工作模式,此时拔下USB接头然后再插 上,STM32即可恢复正常工作状态,重新上电后一般要等待2秒钟才能恢复正常工作(说明:STM32需要在特定状态下才能通过串口下载程序,所以需要这样操作)Uploadingtd I/O Board.Loading via dfuutilResetting to boot Loader via DTK pulse SearchinE for DFU dev

3、ice 1EAFi00031图1等待下载状态图2下载成功重启USB硬件环境:车体为双轮带减速齿轮的直流马达驱动,配以万向轮,控制器为Spruce STM32控 制板,电机驱动板为L298N ,驱动2路直流电机传感器有路径传感器:探测黑 色轨迹,路障传感器。电源使用12V电源,赛道为l5cm的黑色白底的赛道。软件环境:maple-ide编译环境接线说明:电机驱动板:11 : 212 : 113 : 514 : 6EA : 11EB : 12蓝线一接左侧GND紫线一接左侧VCC灰线一接右侧GND绿线一接右侧VCC备注:由于左右侧VCC/GND是与step motor接口接在一的,故本测试使用的是s

4、tep motor接口路径传感器:Q115 , Q216 , Q317 , Q418 , Q519路障传感器:15 (接左边传感器)16 (接前方传感器)、17 (接右边传感器)、红鱼:接4.5-5V电源高电平(加个限流电阻更好)黄鱼:接单片机,输出TTL电平给单片机(加上拉电阻更好)黑色:接GND 0V电源低电平塵c0c匚人eprne TF仔巧eWTRleftrJS)HFJRVeSSD ItF图3路径传感器图4小车模型正面图图5红外避障传感器系统工作说明:系统功能分为循迹和避障功能循迹功能:接通电源小车会沿看地上的黑线行驶,小车配有5个路径传感器,当 中间的传感器检测到黑线,则小车前进;当中

5、间偏右的传感器检测到黑线,说明小车 向右微偏,小车应向左轻微转动;当最右侧的传感器检测到黑线,说明小车向右大 偏,小车应向左大幅度转动。具体可通过PWM控制L298N使能端EA、EB来控制小车 的速度,通过控制delay ()延时来控制小车转动的角度。依此类推小车左侧传感器检 测到黑线则刚好相反。(此小车搭载传感器只能寻黑线)避障功能:小车前方装有三个红外避障传感器,当检测到障碍物,相应的传感器 会输出低电平。当前方检测到障碍物,则小车后退点然后默认再右转;右侧检测到障 碍物,小车左转;左侧检测到障碍物,小车右转;三个方向都没有障碍物前进;另外 当左前后或左右检测到障碍物后退点然后默认再右转;

6、左前方检测到障碍物右转;右 前方检测到障碍物左转”总共有八种情况。注意每次转动幅度不要太大,可以使用程 序迸行多次轻微调整方向,以便使小车能贴看障碍物边缘前进,具体可通过PWM控制 L298N使能端EA、EB来控制小车的速度,通过控制delay ()延时来控制小车转动的 角度。可以通过调整传感器后的电位器来调整检测距离,检测距离不要太远,般控 制在30CM为宜,由此小车可以实现避障的功能,遇到死胡同,小车能贴壁走出来。测试代码:避障代码:unsigned char status=O; void setup()pinMode(lzOUTPUT);pinMode(2,OUTPUT);pinMode

7、(5,OUTPUT);pinMode(6,OUTPUT);pin Mode(15,INPUT);pin Mode(16,INPUT);pin Mode(17,INPUT);pinMode(ll, PWM); pinMode(12, PWM);void loop()status = digitalRead(15)+digitalRead(16)*2+digitalRead(17)*4;switch (status)case ObOOOOOOOO:case ObOOOOOlOl:back();delay(lOO);turn_right();pwmWnte(12,15000);delay(lOO);

8、break;lllllllllllllllllllllllllllllllllllllllllllcase ObOOOOOOOl:case ObOOOOOOll:case ObOOOOOOlO:turn_right();pwmWnte(12,15000);delay(lO);break;llllllllllllllllllllllllllllllllllllllllcase ObOOOOOlOO:case ObOOOOOllO:turneft();pwmWrite(llz15000);delay(lO);break;lllllllllllllllllllllllllllllllllll/* c

9、ase ObOOOOOlll:forward();delay(30);break;*/llllllllllllllllllllllllllllllllllldefault:forward();delay(20);void turn_left(void)digitalWrite(lzLOW);digitalWrite(2zHIGH);digitalWrite(5,HIGH);digitalWrite(6zLOW);pwmWrite(llz30000);pwmWrite(12z30000);void turn_right(void)digitalWrite HIGH);digitalWrite(2

10、,LOW);digitalWrite(5zLOW);digitalWrite(6,HIGH);pwmWrite(llz30000);pwmWrite(12z30000);void forward(void)digitalWrite HIGH); digitalWrite(2,LOW); digitalWrite(5,HIGH); digitalWrite(6zLOW);pwmWrite(ll,28000); pwmWrite(12z30000);void back(void)digitalWrite LOW); digitalWrite(2zHIGH); digitalWrite(5zLOW)

11、; digitalWrite(6,HIGH);pwmWrite(llz30000);pwmWrite(12z30000); 循迹代码:unsigned char road=0;void setup()pinMode(l,OUTPUT);pinMode(2,OUTPUT);pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(llzPWM);pinMode(12zPWM);pinMode(15, INPUT);pinMode(16z INPUT);pinMode(17, INPUT);pinMode(18, INPUT);pinMode(19, INPUT);S

12、eriall.begin(9600);void loop()Seriall.write(Arduino!rn);/road = digitalRead(15)+digitalRead(16)*2+digitalRead(l 7)*4+ digitalRead(18)*8+digitalRead(19)*16;switch (road)case ObOOOllOll:forward();delay(lOO);break;lllllllllllllllllllllllllllllllllllllllllllcase ObOOOlllOl:turneft();pwmWrite(llz17000);d

13、elay(50);break;case ObOOOlOlll:turn_right();pwmWrite(12z17000);delay(50);break;llllllllllllllllllllllllllllllllllllllllcase ObOOOOllll:turn_right();delay(50);break;case ObOOOllllO:turneft();delay(50);break;llllllllllllllllllllllllllllllllllldefault:forward(); delay(lO);void turn_left(void)digitalWri

14、te(lzLOW);digitalWrite(2zHIGH);digitalWrite(4zHIGH); digitalWrite(5zLOW);pwmWrite(ll,35000); pwmWrite(12z35000);void turn_right(void)digitalWrite(l,HIGH); digitalWrite(2zLOW); digitalWrite(4zLOW);digitalWrite(5,HIGH);pwmWrite(ll,35000);pwmWrite(12z35000);void forward(void)digitalWrite(l,HIGH); digitalWrite(2zLOW);digitalWrite(4zHIGH);digitalWrite(5,L0W);pwmWrite(ll,35000);pwmWrite(12z35000);void back(void)digitalWrite(lzLOW);digitalWrite(2,HIGH);digitalWrite(4zLOW);digitalWrite(5,HIGH);pwmWrite(llz17000);pwmWrite(12z17000);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!