- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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环境中编译,然后点击下载按钮,点击完毕之后将spruce上的RESET建按下,待出现如图1所示界面立即松开RESET,即可将程序下载到STM32中,下载成功后可以看到如图2所示界面,提示重启USB返回正常工作模式,此时拔下USB接头然后再插上,STM32即可恢复正常工作状态,重新上电后一般要等待2秒钟才能恢复正常工作(说明:STM32需要在特定状态下才能通过串口下载程序,所以需要这样操作)
图 1 等待下载状态
图 2 下载成功重启USB
硬件环境:
车体为双轮带减速齿轮的直流马达驱动,配以万向轮,控制器为Spruce STM32控制板,电机驱动板为L298N,驱动2路直流电机,传感器有路径传感器:探测黑色轨迹,路障传感器。电源使用12V电源,赛道为1.5cm的黑色白底的赛道。
软件环境:
maple-ide编译环境
接线说明:
电机驱动板:
I1:2
I2:1
I3:5
I4:6
EA:11
EB:12
蓝线—接左侧GND
紫线—接左侧VCC
灰线—接右侧GND
绿线—接右侧VCC
备注:由于左右侧VCC/GND是与step motor接口接在一起的,故本测试使用的是step motor接口
路径传感器:
Q1—15,Q2—16,Q3—17,Q4—18,Q5—19
路障传感器:
15(接左边传感器)16(接前方传感器)、17(接右边传感器)、
红色:接4.5-5V电源高电平(加个限流电阻更好)
黄色:接单片机,输出TTL电平给单片机(加上拉电阻更好)
黑色:接GND 0V 电源低电平
图3路径传感器
图4 小车模型
图5红外避障传感器红外避障传感器unsigned char status=0;
void setup()
{
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(15,INPUT);
pinMode(16,INPUT);
pinMode(17,INPUT);
pinMode(11, PWM);
pinMode(12, PWM);
}
void loop()
{
status = digitalRead(15)+digitalRead(16)*2+digitalRead(17)*4;
switch (status)
{
case 0
case 0
back();
delay(100);
turn_right();
pwmWrite(12,15000);
delay(100);
break;
///////////////////////////////////////////
case 0
case 0
case 0
turn_right();
pwmWrite(12,15000);
delay(10);
break;
////////////////////////////////////////
case 0
case 0
turn_left();
pwmWrite(11,15000);
delay(10);
break;
///////////////////////////////////
/* case 0
forward();
delay(30);
break;*/
///////////////////////////////////
default:
forward();
delay(20);
}
}
void turn
文档评论(0)