求arduino避障小车程序,急!(高额悬赏)

求arduino避障小车程序,急!(高额悬赏),第1张

//舵机和超声波调试代码

#include <Servo.h>

#include <Metro.h>

Metro measureDistance = Metro(50)

Metro sweepServo = Metro(20)

unsigned long actualDistance = 0

Servo myservo //创建舵机

int pos = 60

int sweepFlag = 1

int URPWM = 3//仔晌PWM输出0-25000us,每念隐锋50us代表1cm

int URTRIG= 10// PWM trigger pin PWM串口为10

uint8_t EnPwmCmd[4]={0x44,0x02,0xbb,0x01} // distance measure command 距离测量命令

void setup(){ // Serial initialization 串行初始化

myservo.attach(9) //舵机串口为9

Serial.begin(9600)// Sets the baud rate to 9600

SensorSetup()

}

void loop(){

if(measureDistance.check() == 1){

actualDistance = MeasureDistance()

// Serial.println(actualDistance)

// delay(100)

}

if(sweepServo.check() == 1){

servoSweep()

}

}

void SensorSetup(){

pinMode(URTRIG,OUTPUT)// A low pull on pin COMP/TRIG

digitalWrite(URTRIG,HIGH) // Set to HIGH

pinMode(URPWM, INPUT) // Sending Enable PWM mode command 发送使能控制模式命令

for(int i=0i<4i++){

Serial.write(EnPwmCmd[i])

}

}

int MeasureDistance(){// a low pull on pin COMP/TRIG triggering a sensor reading 触发传感器读数

digitalWrite(URTRIG, LOW)

digitalWrite(URTRIG, HIGH) // reading Pin PWM will output pulses读引脚脉宽调制将输出脉冲

unsigned long distance=pulseIn(URPWM,LOW)

if(distance==50000){ // the reading is invalid.阅读无效

Serial.print("Invalid")

}else{

distance=distance/携腔50 // every 50us low level stands for 1cm

}

return distance

}

void servoSweep(){

if(sweepFlag ){

if(pos>=60 &&pos<=120){

pos=pos+1 // in steps of 1 degree 1度角度的转动

myservo.write(pos)// tell servo to go to position in variable 'pos' 告诉舵机转动的角度

}

if(pos>119) sweepFlag = false // assign the variable again 重新分配变量

}else {

if(pos>=60 &&pos<=120){

pos=pos-1

myservo.write(pos)

}

if(pos<61) sweepFlag = true

}

}

////////////////////////////////////////////////////////////

需要加载一个Metro.h的库,这只是调试机器,余下的完全看你的发挥了,加上电机

我是一名单片机工程师,对于51单片机智能小车制作,下面的讲解你参考一下。

我看到有很多朋友想做一个属于自己的智能车,但又无从下手,今天我将详细的讲一下循迹小车的制作方法,因为所有的其它功能,都是从循迹这个扩展起来的,你把这个弄懂了,其实的功能了解一下也就懂了。

制作51单片机循迹小车,只需要四步。

1 车模。

2 主控板。

3电机驱动系统。

4 循迹传感器

下面一一进行介绍。

1车模。

对于新手来说你需要一个车模,当然也可以自己制作一个模型,下面这个是两个电机的智能小车。

上面这个车模包含有,1个车模底板,2个减速电机,2个轮子,1个万向轮(上面图片,电池盒下面那个),1个电池盒。

这种车模很多地方都有,你只要按照说明书组装成功就可以了。

2 主控板

另外你还需要一个单片机最小系统

这个主控板的单片机型号是,STC89C52RC

3 电机驱动系统。

这个电机驱动系统的模指颤燃块是L298N(上面图片,最大黑色那个)

这种驱动系统是可以同时驱动两个电机的,完全可以满足你小车的驱动动力,为什么要驱动洞祥呢?因为主控板的单片机电流太弱了,不够电流让电机运行,所以才会有电机驱动模块的产生。

上面这个图中,IN1 IN2和 IN3 IN4(在上面图片的右下角),是用来接单片机的端口(这就可以理解到,这四只脚是电机控制输入端),并且IN1 IN2是左边电机控制用的,为什么一个电机的控制,需要接两个脚呢?

一个电机接两个脚的话,电机就可以正转和反转了,运用到小车上面就是,可以实现小车的前进,后退,左转和右转,这已经满足小车运行时需要的功能。

4 循迹传感器

既然是循迹的智能车,那么你还需要循迹传感器

其实只需要两组红外线发光二极管,就可以实现我们的循迹功能了,如下图所示

从上面图片我们还可以看到,每组当中,都含有黑色红外线管和白色红外线管

我们的循迹小车,是循黑色线走的。

上面图片当中,中间的是黑色线,左右两边的是两组红外线管。

红外线检测黑线的原理。

当红外线检测的不是黑色,发射光通过障碍物能反射给接收,进行正常的发射与接收。

当红外线检测的是黑色,发射光通过黑线产生漫射,接收端就不能正常地接收到发射光,就是凭这一特点,就可以实现我们的小车循迹了,很好玩是吧,嘿嘿!对于智能小车的细节,一言二句说不了太多东西,详细的制作知识,百度上,,,请看“唯虚一凡单片机”,这个里面讲解比较全面,并且还有相应的程序。

以上就是个人分享的智能小车制作方法,希望能帮到你,你通过这个基础实验,发挥想象力,再扩展其它的小车功能,寻找更多的小车乐趣,喜欢的朋友请采纳和点赞,谢谢!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12375773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存