antbot 发表于 2015-9-21 13:44:46

WIFI控制的ARDUINO小车

大家一定玩过遥控小汽车,享受乐趣的同时,还总要担心遥控器的电池是不是该换了。而一旦遥控器坏掉了,整个遥控车就只能丢在储物室里了,好无奈~
现在好了,我们自己动手做做简单改装,就可以用手机微信控制小车了!

首先说下电机驱动原理,典型的电机驱动电路被称作“H桥”驱动电路,如下图所示:


图中有4个三极管,其中Q1、Q3为PNP型,Q2、Q4为NPN型,三极管在电路中一般起到的开关的作用,当Q1和Q4都打开而Q2和Q3都闭合的条件下,电机就变成一端接电源另一端接地,就可以实现电机的正向旋转,如下图所示:


而当Q2和Q3都打开而Q1和Q4都闭合的条件下,电机的两端接法就反过来,则实现电机的反向旋转,如下图所示:


当然,三极管的状态是可以通过单片机的I/O来控制的。L298N模块实际上就是集成了两个这样的H桥电路的功能,更加方便了我们的使用。好的,下面就来连接L298N模块吧,连接关系图如下图所示:

这里有几点说明:
1) L298N模块+12V端子是电源输入端,的输入电压在6~24V区间;
2) L298N模块+5V端子是电源输出端,可以给ARDUINO AIR提供5V电源;
3) ENA和ENB通过跳线帽与+5V信号连接,省了两个I/O,表示使能始终有效;
4)以控制电机1为例,令IN2为0,IN1为1即可驱动电机正转,如果给IN1提供PWM,则可以对电机1进行调速。
滑动调整IO(D09)的PWM值,电机1的车轮将正向旋转,转速随着PWM值得增大而增大,再由最大值调整为最小值,车轮转速逐渐变慢,最后停止;同样,滑动调整IO(D06)的PWM值,电机1的车轮将反向旋转;调整调整IO(D05)和IO(D03)的PWM值可以控制电机2的轮子正转或反转。
接下来,就要去开发页面为它做一个炫酷的控制页面吧。(程序开发全部在网页里完成,不需要安装其他开发环境,不需要做手机APP!)把做好的页面保存并发布,一个可以通过手机WIFI控制的小车就完成了!
需要用到的核心代码如下:
<script>
function turnleft(){//左转
OSA.digitalWrite(3, 0);
OSA.digitalWrite(5, 1);//也可以使用OSA.analogWrite(5,PWM)来实现调速控制
OSA.digitalWrite(6, 1);
OSA.digitalWrite(9, 0);
setTimeout("carstop()",200);//延时200ms后停止
}
function turnright(){//右转
OSA.digitalWrite(3, 1);
OSA.digitalWrite(5, 0);
OSA.digitalWrite(6, 0);
OSA.digitalWrite(9, 1);
setTimeout("carstop()",200);//延时200ms后停止
}
function goahead(){//前进
OSA.digitalWrite(3, 0);
OSA.digitalWrite(5, 1);
OSA.digitalWrite(6, 0);
OSA.digitalWrite(9, 1);
setTimeout("carstop()",200);
}
function goback(){//后退
OSA.digitalWrite(3, 1);
OSA.digitalWrite(5, 0);
OSA.digitalWrite(6, 1);
OSA.digitalWrite(9, 0);
setTimeout("carstop()",200);
}
function carstop(){//停止动作
OSA.digitalWrite(3, 0);
OSA.digitalWrite(5, 0);
OSA.digitalWrite(6, 0);
OSA.digitalWrite(9, 0);
}
</script>
在OSBEAN用户的开发页面中完成开发后,使用手机微信登陆,打开应用程序如下图所示:

这是经过改装的玩具坦克,是不是很COOL?


www.osbean.com

夕阳无限 发表于 2016-10-14 22:56:01

您好! 请教OSBean用户程序在哪里?
页: [1]
查看完整版本: WIFI控制的ARDUINO小车