ARDUINO树莓派智能小车车为什么开机之后动不了

Arduino智能小车的走路程序
我的图书馆
Arduino智能小车的走路程序
Arduino智能小车的走路程序
发表于1年前( 12:28)&&
阅读(782)&|&评论()
2人收藏此文章,
本文提供了Arduino小车的沿墙走程序代码和视频
功能就是沿着一面墙走。非常简单,但是手头上的这个小车非常的差,做工不好不说,配的两边的电机参数差别非常大,同样的控制PWM,两侧的速度能相差一倍,更别提行走时晃晃悠悠的差点就掉下来的轮子了。另外,只配备了一个超声波测距模块,,不能同时检测多个方向上的障碍物,是这个软件难编写的一个原因。
视频地址:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131int&outputPin&=&5;int&inputPin&=&4;int&cmdPin&=&3;int&pinI1=8;//定义I1接口int&pinI2=9;//定义I2接口int&speedpin1=11;//定义EA(PWM调速)接口int&pinI3=6;//定义I3接口int&pinI4=7;//定义I4接口int&speedpin2=10;//定义EB(PWM调速)接口int&average_speed_l&=&150;int&average_speed_r&=&100;int&speed_limit_l&=&80;int&speed_limit_r&=&60;int&target_distance&=&30;//in&cmint&lost_distance&=&80;float&detect_distance(){&&&&&&digitalWrite(outputPin,&LOW);&&&//&讓超聲波發射低電壓2μs&&&&&&delayMicroseconds(2);&&&&&&digitalWrite(outputPin,&HIGH);&&//&讓超聲波發射高電壓10μs,這裡至少是10μs&&&&&&delayMicroseconds(10);&&&&&&digitalWrite(outputPin,&LOW);&&&&//&維持超聲波發射低電壓&&&&&&float&Fdistance&=&pulseIn(inputPin,&HIGH);&&//&讀差相差時間&&&&&&Fdistance=&Fdistance/5.8/10;&&&&&&&//&將時間轉為距離距离(單位:公分)&&&&&&Serial.print("F&distance:");&&&&&&//輸出距離(單位:公分)&&&&&&Serial.println(Fdistance);&&&&&&&&&//顯示距離&&&&&&return&F}void&rightSpeed(int&speed_r){&&if(speed_r&&&speed_limit_r)&&{&&&&speed_r&=&0;&&}&analogWrite(speedpin1,speed_r);//输入模拟值进行设定速度&digitalWrite(pinI1,HIGH);//使直流电机(左)顺时针转&digitalWrite(pinI2,LOW);}void&leftSpeed(int&speed_l){&&if(speed_l&&&speed_limit_l)&&{&&&&speed_l&=&0;&&}&&&analogWrite(speedpin2,speed_l);//输入模拟值进行设定速度&&&digitalWrite(pinI3,LOW);//使直流电机()顺时针转&&&digitalWrite(pinI4,HIGH);}void&stop_l(){&&&digitalWrite(speedpin2,LOW);//输入模拟值进行设定速度&&&digitalWrite(pinI3,LOW);//使直流电机()顺时针转&&&digitalWrite(pinI4,LOW);}void&stop_r(){&digitalWrite(speedpin1,LOW);//输入模拟值进行设定速度&digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转&digitalWrite(pinI2,LOW);}void&turn_l(){&&leftSpeed(100);&&rightSpeed(150);}void&turn_r(){&&leftSpeed(200);&&rightSpeed(80);}void&noturn(){&&leftSpeed(100);&&rightSpeed(80);}void&rotate(){&&leftSpeed(200);&&rightSpeed(0);}void&setup(){&&Serial.begin(9600);&&pinMode(outputPin,&OUTPUT);&&pinMode(inputPin,&INPUT);&&pinMode(pinI1,OUTPUT);&&pinMode(pinI2,OUTPUT);&&pinMode(speedpin1,OUTPUT);&&pinMode(pinI3,OUTPUT);&&pinMode(pinI4,OUTPUT);&&pinMode(speedpin2,OUTPUT);&&pinMode(cmdPin,&INPUT);}void&loop(){&&if(digitalRead(cmdPin)&==&LOW){&&&&&&&&&&float&dis&=&detect_distance();&&&&if(dis&&&lost_distance){&&&&&&while(true)&&&&&&{&&&&&&&&rotate();&&&&&&&&delay(100);&&&&&&&&stop_l();&&&&&&&&stop_r();&&&&&&&&&&&delay(100);&&&&&&&&&&&&dis&=&detect_distance();&&&&&&&&if(dis&&&lost_distance)&break;&&&&&&}&&&&}else{&&&&&&if(dis&&&target_distance){&&&&&&&&if(dis&-&target_distance&&&2){&//if&the&difference&is&small&enough,&it&can&be&neglected.&&&&&&&&&&&turn_r();&&&&&&&&}else{&&&&&&&&&&noturn();&&&&&&&&}&&&&&&}&&&&&&if(dis&&&target_distance){&&&&&&&&if(target_distance&-&dis&&&2){&&&&&&&&&&turn_l();&&&&&&&&}else{&&&&&&&&&&noturn();&&&&&&&&}&&&&&&}&&&&}&&&}else{&&&&&&stop_l();&&&&&&stop_r();&&&}&&delay(100);}
喜欢该文的人也喜欢君,已阅读到文档的结尾了呢~~
arduino智能小车实验报告
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
arduino智能小车实验报告
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Aduino智能小车调试说明_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Aduino智能小车调试说明
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢鍙?渶涓}

我要回帖

更多关于 智能小车行动原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信