极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 175877|回复: 153

从菜鸟到完美掌控arduino蓝牙小车

  [复制链接]
发表于 2015-5-2 00:05:31 | 显示全部楼层 |阅读模式
本帖最后由 血阳 于 2016-11-20 19:11 编辑

在写这篇帖子之前,先感谢前段时间,在论坛里,为我耐心解答的大神朋友们,无论我问出什么奇葩的问题,都能为我耐心解答,真心感谢你们。
先上视频吧,虽然拍的不是很好;

小车照片:










【注】转载请声明出处和作者,尊重个人劳动成果,谢谢。
基础篇
首先,我们先来看看我们需要的哪些工具:
1、        arduino控制板  x1
2、        L298N电机驱动模块 x1
3、        Arduino Bluetooth Bee蓝牙模块 x1
4、        Arduino Bluetooth蓝牙扩展板 x1
5、        小车底盘 x1
6、        电源(7~9V)x1
7、        导线 若干

说明:
1、我的教程是二轮驱动的,所以用L298N电机驱动模块,这个模块简单易懂,要做二轮的话,推荐这个模块。
2、蓝牙模块选用这个,比较方便,直接把蓝牙插到扩展板,再把扩展板插到arduino控制板上,连上蓝牙就可以直接用了。
3、电源,选择7~9V才能更好的驱动两个电机,我没买电源,就将就着用我的移动电源的高输出接口(就是充平板的那个口)给供电了。






接下来,我们先介绍一下这个L298N电机驱动板模块吧,它直接影响到我们后面的编程。

      相关接口,已经标注好在图中了。电机接口,就是接电机引出两条线的地方,如果发现电机转动方向相反了,可以把两条线互换一下方向。就ok了。
      L298N  GND 接   arduino GND;
      L298N  VCC 外接另一个电源;
      arduino自己也接一个电源。
      L298N  5V   这里可以不用接   arduino 5V了;
       接着说与程序相关的6个脚。首先说ENA和ENB吧,他们分别是控制电机1和电机2的速度的,即是控制PWM的,如果你不想改变这个电机转速的话,就不用动了,它短路帽子不要动就行,如果你要改变速度,就可以把那个小帽子去掉,然后引出来接在arduino的模拟引脚上输出PWM信号。
至于In1~In4,前面的In1和In2是控制电机1的,In3和In4是控制电机2的。好了,这里有张表,通过表格,你就可以清楚的知道他们的机理了。(这个是对于电机1的,电机2同理)




      最后,我们来简单讲蓝牙的连接吧,很简单,供电好以后,我们用手机连上蓝牙后,配对,密码一般是“1234”或者“0000”,输入好密码,就配对成功了。
        Ok,现在讲完该讲的部分,我们就该开始制作我们期待已久的蓝牙小车了~
        还有一点要说的是,先制作不带控制速度的,这样写程序比较简单。



第1步:简单地运行电机
        首先,来看看连线吧,我决定,用arduino的4、5、6、7引脚来控制我的小车。4、5控制左轮。6、7控制右轮。
        所以驱动模块的In1接arduino的4引脚,In2接5引脚,然后电机的两条线分别接驱动模块中电机1的OUT1和OUT2;“供电正极”接5V引脚,“接地”接 GND。       
        根据上面给出的表格,我们先来简单地设计一个程序,来实现:左轮正转2s,停止2s,反转2s,停止2s。循环。

代码如下:
/*****************************************
二轮蓝牙小车——左轮测试
运动过程:左轮正转2s,停止2s,反转2s,停止2s。循环
占用4、5引脚
2015.05.01
   ——by 极客工坊  血阳
   ——王小丰
*****************************************/
#define IN1 4 
#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚
void setup()
{
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
}
void loop()
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  delay(2000);
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  delay(2000);
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);         //左轮后退
  delay(2000);
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  delay(2000);
}


连好线,我们下载好程序,就试试吧。实验结果很成功,果然按照预想的运动了。
注意,运行时候按下复位键开始检测。假如这个运动方向与你所设的程序方向不同,那么,你可以把电机中的OUT1的线和OUT2的线互换一下就行了。(不按复位键你不知道你的程序开始是从正转开始还是反转开始)
接着,我们以同理来驱动一下右轮试试,同理驱动模块的In3接arduino的6引脚,In4接7引脚,然后电机的两条线分别接驱动模块中电机2的OUT3和OUT4。运动过程:右轮正转2s,停止2s,反转2s,停止2s。循环。

/*****************************************
二轮蓝牙小车——右轮测试
运动过程:右轮正转2s,停止2s,反转2s,停止2s。循环
占用4、5引脚
2015.05.01
   ——by 极客工坊  血阳
   ——王小丰
*****************************************/
#define IN3 6 
#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚
void setup()
{
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);
}
void loop()
{
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
  delay(2000);
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
  delay(2000);
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);         //右轮后退
  delay(2000);
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
  delay(2000);
}

      这里我发现了,我连线运行与我设定的方向相反,于是我把电机的两条线在OUT那里互换,然后就ok了。

第二步:小车的简单运动
        接着。最基本的弄完以后,我们来分析一下小车的运动方式,就可以编写程序让小车运动了。
下面是小车运动方式:



     有了这个,我们进行编程的时候,就简单多了。
     下面,我们来写写简单的前进2s然后停止1s,接着后退2s停止3s的程序吧。


/*****************************************
二轮蓝牙小车
运动过程:前进2s,停止1s,接着后退2s停止3s
占用4、5引脚
2015.05.01
   ——by 极客工坊  血阳
   ——王小丰
*****************************************/
#define IN1 4 
#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚
#define IN3 6 
#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚
void setup()
{
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);

}
void loop()
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
  delay(2000);
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
  delay(1000);
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        //左轮后退
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);        //右轮后退
  delay(2000);
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
  delay(3000);
}

下载程序。供电,实验结果如预料一样,很成功

第三步:函数的编写
      考虑到,假如把说有程序都写在loop循环里,会很复杂,所以,我们以函数形式,写下每个运动状态,然后再进行函数调用的话,程序会显得比较简单。如果这步你看前几个就懂了,就可以跳到第四步去了。
      下面,我们开始编写这些运动状态的程序:


/**************************************************
forward子函数——前进子函数
函数功能:控制车前进
**************************************************/
void forward( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}



/**************************************************
back子函数——后退子函数
函数功能:控制车后退
**************************************************/
void back( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        //左轮后退
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);        //右轮后退
}



/**************************************************
turnLeft子函数——左转子函数
函数功能:控制车左转

**************************************************/
void turnLeft( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
turnbackLeft子函数——左后转弯子函数
函数功能:控制车左后转弯

**************************************************/
void turnbackLeft( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);         //右轮后退
}

/**************************************************
turnRight子函数——右后转弯转子函数
函数功能:控制车右后转弯

**************************************************/
void turnRight( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}


/**************************************************
turnbackRight子函数——右转子函数
函数功能:控制车右转

**************************************************/
void turnbackRight( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);         //左轮后退
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}


/**************************************************
turnLeftOrigin子函数——原地左转子函数
函数功能:控制车原地左转

**************************************************/
void turnLeftOrigin( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        //左轮后退
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
turnRightOrigin子函数——原地右转子函数
函数功能:控制车原地右转

**************************************************/
void turnRightOrigin( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);        //左轮前进
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);       //右轮后退
}



/**************************************************
stop子函数—停止子函数
函数功能:控制车停止

**************************************************/
void _stop()
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}




第四步:函数的运用
       麻烦的函数编写完以后,我们就可以尝试着兴高采烈地运用他们吧。
        我们来写一段程序来,简单地控制小车让小车运动:前进2s—后退2s—前左转2s—后左转2s—前右转2s—后右转2s—原地左转2s—原地右转2s—停止3s。
        看起来运动好复杂,其实有了上面的函数以后,我们编写起来级很简单了,注意的是,在调用函数之前,我们要先在前面声明好函数哦。
       
下面是我们的控制程序:
/*****************************************
二轮蓝牙小车
运动过程:利用函数:前进2s—后退2s—前左转2s—后左转2s
—前右转2s—后右转2s—原地左转2s—原地右转2s—停止3s。
2015.05.01
   ——by 极客工坊  血阳
   ——王小丰
*****************************************/
#define IN1 4 
#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚
#define IN3 6 
#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚

void forward( );
void back( );
void turnLeft( );
void turnRight( );
void turnbackLeft( );
void turnbackRight( );
void turnLeftOrigin( );
void turnRightOrigin( );
void _stop();          //这里是把我们用到的函数都声明一遍

void setup()
{
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);
}

void loop()
{
    forward( );
    delay(2000);
    back( );
    delay(2000);
    turnLeft( );
    delay(2000);
    turnbackLeft( );
    delay(2000);
    turnRight( );
    delay(2000);
    turnbackRight( );
    delay(2000);
    turnLeftOrigin( );
    delay(2000);
    turnRightOrigin( );
    delay(2000);
    _stop();
    delay(3000);   
}



/**************************************************
forward子函数——前进子函数
函数功能:控制车前进
**************************************************/
void forward( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
back子函数——后退子函数
函数功能:控制车后退
**************************************************/
void back( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        //左轮后退
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);        //右轮后退
}

/**************************************************
turnLeft子函数——左转子函数
函数功能:控制车左转
**************************************************/
void turnLeft( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
turnbackLeft子函数——左后转弯子函数
函数功能:控制车左后转弯
**************************************************/
void turnbackLeft( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);         //右轮后退
}

/**************************************************
turnRight子函数——右后转弯转子函数
函数功能:控制车右后转弯
**************************************************/
void turnRight( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}

/**************************************************
turnbackRight子函数——右转子函数
函数功能:控制车右转
**************************************************/
void turnbackRight( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);         //左轮后退
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}


/**************************************************
turnLeftOrigin子函数——原地左转子函数
函数功能:控制车原地左转
**************************************************/
void turnLeftOrigin( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        //左轮后退
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
turnRightOrigin子函数——原地右转子函数
函数功能:控制车原地右转
**************************************************/
void turnRightOrigin( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);        //左轮前进
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);       //右轮后退
}



/**************************************************
stop子函数—停止子函数
函数功能:控制车停止
**************************************************/
void _stop()
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}

这样,我们就很成功地驱动了小车,做了简单的运动啦~

第五步:蓝牙模块的功能检测
       这一步就是我们的关键了,连接好蓝牙,那么我们就能通过蓝牙来很好的控制小车,如果蓝牙部分没做好,那么我们前面的辛苦就白费啦~好啦,话不多说,我们开始吧。
       首先我们要知道怎么让arduino接收命令,他用的是Serial.read()语句来实现的,具体我就不多讲了,在论坛里关于这一块的多的是,大家去找找就能找到的。
       其次注意的是这个命令的接受和发送,都会转化为ASCII码,所以在接收的时候,我们的命令以ASCII码来判断,或者用单引号来 帮助我们接收。例如:手机端如果发送了“1“,那么我们这边接收到的是1的ASCII码,所以我们在判断是接收几的时候,我们要用case‘1’或者case49来判断(注:1的ASCII码是49)。
       电脑的发送很简单,就是打开“工具“中的”串口监视器“。就可以发送命令了,蓝牙的话,只要连接成功,通过小软件也可以发送啦。
       Ok,下面我们来一个简简单单的例子来练习发送和接收命令,然后再尝试用蓝牙来无线发送和接收。
小实验:当接收到1这个数字的时候,arduino的13号灯就亮起。收到2这个数的时候,就灭。(这里13号灯就是我们板子上的L灯,观察它就行。)
       我们首先先通过数据线连接电脑,让电脑通过串口监视器来给板子发送命令,看看是否达到我们要求。如果达到要求了,再把数据线退掉,加上蓝牙模块,通过手机连接好蓝牙以后,设置好参数,再给板子发送命令,来证明我们蓝牙能够正常工作。为我们后面的蓝牙控小车检测好蓝牙。

注意:在下载程序的时候,不要连接蓝牙设备,否则会下载失败。
代码:
void setup()
{
  pinMode(13,OUTPUT);
  Serial.begin(9600);
}
int i;
void loop()
{
  if(Serial.available()>0)
  {
      i=Serial.read();
      switch(i)
      {
        case'1':
            {digitalWrite(13,HIGH);break;}
        case'2':
            {digitalWrite(13,LOW);break;}
      }
  }
}



终结篇:期待已久的激动人心的蓝牙操控小车车
       我这里用的是九键控制小车,前后分别是2、8。1379是前后左右转,46是原地左右转。
到了这里,我觉得已经不用说了,上程序,然后你就懂了。

/*****************************************
二轮蓝牙小车
2015.05.01
   ——by 极客工坊  血阳
   ——王小丰
*****************************************/
#define IN1 4 
#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚
#define IN3 6 
#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚

void forward( );
void back( );
void turnLeft( );
void turnRight( );
void turnbackLeft( );
void turnbackRight( );
void turnLeftOrigin( );
void turnRightOrigin( );
void _stop();          //这里是把我们用到的函数都声明一遍

void setup()
{
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);
  Serial.begin(9600);
}
int i;
void loop()
{
    if(Serial.available())
    {
      i=Serial.read();
      
      switch(i)
      {
        case'1':
          {turnLeft( );  break; }
        case'2':
          {forward( );   break;}
        case'3':
          {turnRight( );   break;}
        case'4':
          {turnLeftOrigin( );   break;}
        case'5':
          {_stop();   break;}
        case'6':
          {turnRightOrigin( );   break;}
        case'7':
          {turnbackLeft( );   break;}
        case'8':
          {back( );   break;}
        case'9':
          {turnbackRight( );   break;}
      }
    }    
}




/**************************************************
forward子函数——前进子函数
函数功能:控制车前进
**************************************************/
void forward( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
back子函数——后退子函数
函数功能:控制车后退
**************************************************/
void back( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        //左轮后退
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);        //右轮后退
}

/**************************************************
turnLeft子函数——左转子函数
函数功能:控制车左转
**************************************************/
void turnLeft( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
turnbackLeft子函数——左后转弯子函数
函数功能:控制车左后转弯
**************************************************/
void turnbackLeft( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);         //右轮后退
}

/**************************************************
turnRight子函数——右后转弯转子函数
函数功能:控制车右后转弯
**************************************************/
void turnRight( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         //左轮前进
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}

/**************************************************
turnbackRight子函数——右转子函数
函数功能:控制车右转
**************************************************/
void turnbackRight( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);         //左轮后退
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}


/**************************************************
turnLeftOrigin子函数——原地左转子函数
函数功能:控制车原地左转
**************************************************/
void turnLeftOrigin( )
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        //左轮后退
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         //右轮前进
}


/**************************************************
turnRightOrigin子函数——原地右转子函数
函数功能:控制车原地右转
**************************************************/
void turnRightOrigin( )
{
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);        //左轮前进
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);       //右轮后退
}



/**************************************************
stop子函数—停止子函数
函数功能:控制车停止
**************************************************/
void _stop()
{
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,LOW);         //左轮静止不动
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,LOW);         //右轮静止不动
}




ok到这里就结束了,当然,如果你想加入控制速度的代码,也可以,就是在每个函数里面加入ENA和ENB的部分,然后让他们接模拟引脚,再让函数有个形参,就差不多了,看完这个之后,加上速度,应该很简单的~~~最后,祝你好运,早日让自己的小车跑起来哦~~


最后,若想要控制小车速度的话,这里有一个简单的例子,根据例子,稍微改一下程序,就可以轻松控制速度了。
http://www.geek-workshop.com/for ... 14831&pid=98199


下面是附带的整个,教程pdf  和 手机蓝牙串口。想下载的话可以在这下载哦~
教程PDF:
手机蓝牙串口app:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2015-5-2 14:35:18 | 显示全部楼层
潇洒哥 发表于 2015-5-2 09:57
写得很详细,赞一个!!

这是在各位大神朋友的帮助下完成的,感恩回馈~
回复 支持 1 反对 0

使用道具 举报

发表于 2015-5-4 19:23:04 | 显示全部楼层
本帖最后由 飞water 于 2015-5-4 19:24 编辑


只有5v,跑的慢极了。
好丑好丑,逃)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2015-5-2 07:47:48 | 显示全部楼层
谢谢!写的认真,详细。帮助很大,很好。
回复 支持 反对

使用道具 举报

发表于 2015-5-2 09:35:39 | 显示全部楼层
谢谢分享学习一下
回复 支持 反对

使用道具 举报

发表于 2015-5-2 09:56:25 | 显示全部楼层
呵呵,还是L298n好用吧!!不要再用那个arduino L293D motor shield了
可以加一个车灯,用s8050三极管做开关,不要用继电器(功耗太大)
我把我的激光雕刻机控制激光头的继电器换成了S8050,有不错改善
回复 支持 反对

使用道具 举报

发表于 2015-5-2 09:57:00 | 显示全部楼层
写得很详细,赞一个!!
回复 支持 反对

使用道具 举报

发表于 2015-5-2 10:01:26 | 显示全部楼层
你可以把蓝牙模块改成WiFi的,多花50-60元加一个路由器就行了,从淘宝二手上淘一个wr703n(可以直接在淘宝二手上搜索:703n),很便宜的
刷上Openwrt,引出703n的串口(TTL),跟arduino的ttl连接,做通讯,在openwrt上安装ser2net,和mjpg-streamer,
可以加摄像头等等,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-2 14:29:08 | 显示全部楼层
z586 发表于 2015-5-2 07:47
谢谢!写的认真,详细。帮助很大,很好。

之前自己弄的时候,从最开始做起,虽然开始很简单,但是没有个指导也是很容易走歪路,索性我做完之后就弄出来,大家参考参考,这样的话后来想玩这个又不太懂的人也能有个大概的想法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-2 14:29:26 | 显示全部楼层
suoma 发表于 2015-5-2 09:35
谢谢分享学习一下

都是大家帮助下完成的,算是感恩回馈吧~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-2 14:34:41 | 显示全部楼层
潇洒哥 发表于 2015-5-2 09:56
呵呵,还是L298n好用吧!!不要再用那个arduino L293D motor shield了
可以加一个车灯,用s8050三极管做开 ...

嗯嗯,是的,L298N比那个L293D好用了不止一个数量级,简单粗暴好操作~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-2 14:41:02 | 显示全部楼层
潇洒哥 发表于 2015-5-2 10:01
你可以把蓝牙模块改成WiFi的,多花50-60元加一个路由器就行了,从淘宝二手上淘一个wr703n(可以直接在淘宝二 ...

嗯嗯,其实加上某些其他模块应该都不是很难,我也想尝试一下WiFi通讯模块,这样的话我就差不多摸清楚了那四个典型的无线通讯模块了。
回复 支持 反对

使用道具 举报

发表于 2015-5-3 18:34:09 | 显示全部楼层
问下L298的供电是直接取自Arduino板子吗?
不用蓝牙拓展板,直接用HC-06之类的蓝牙模块可以吗?
回复 支持 反对

使用道具 举报

发表于 2015-5-3 21:41:20 | 显示全部楼层
楼主写的很好,很用心,调速度直接用PWM控制,analogyWrite。我前几天刚做了个蓝牙车,之前没人指导,磕磕碰碰很多
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-4 11:58:57 | 显示全部楼层
飞water 发表于 2015-5-3 18:34
问下L298的供电是直接取自Arduino板子吗?
不用蓝牙拓展板,直接用HC-06之类的蓝牙模块可以吗?

是的,你直接通过arduino供电,电压需要高点的。关于无线通讯,只要能通讯,都行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-4 12:00:40 | 显示全部楼层
ifanr 发表于 2015-5-3 21:41
楼主写的很好,很用心,调速度直接用PWM控制,analogyWrite。我前几天刚做了个蓝牙车,之前没人指导,磕磕碰 ...

我也是啊,磕磕碰碰熬了几天夜,做出来以后,索性做个教程,给后来想做的朋友一个参考。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 04:13 , Processed in 0.051710 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表