实现Android平台的手机用重力感应蓝牙遥控小车
1、一般舵机调试PWM脉宽在1-2ms之间,给的值不同,转动角度也不同。50Hz,20ms的周期一般不用改.马达调速也是PWM。也就是占空比的概念,简单的说比如:给马达1秒的电,然后断9秒,再重复这个过程,这时占空比为1/10.如果给9秒的电断1秒,占空比为9/10.这时肯定比刚才转的快。当然实际不会到秒级,一般都是毫秒级。
马达我用的是20Hz,50ms的周期。
2、private final byte GO_LEFT = (byte)0x20;//左转
private final byte GO_RIGHT = (byte)0x30;//右转
private final byte GO_MIDDLE =(byte)0x40;//回中
private final byte GO_DRIVE = (byte)0x71;//前进 0x51
private final byte GO_BACK = (byte)0x70 ;//倒车 0x50
private final byte GO_NULL = (byte)0x10;//停车
这些事我定义的编码,可以自己定义。
下面对应的是单片机接收部分代码
switch(cmd&0xF0){
case 0x20://左转0010 0000B
turn=left;//1.8ms
turn_right=0;
servo_num=0;
isOK=0;
if(!TR0)
TR0=1;
break;
case 0x30://右转 0011 0000B
turn=right;
turn_right=1;
servo_num=0;
isOK=0;
if(!TR0)
TR0=1;
3、L298N很简单,稍微了解一下就知道。我买的是能带2个直流电机。端口有IN1,IN2,ENA这是一个马达用的。另一个IN3,IN4,ENB。这里我们只用了一个。比如正转:IN1个1,IN2给0,ENA给1就是正传,反转就是011.具体大家可以看他的真值表。
4、还有就是注意设置蓝牙超出范围断开时的操作。别让小车跑飞了啊,哈哈。
HC-06模块未连接蓝牙时有一个指示灯闪烁,也是输出脉冲。配对连接后常亮也就是高电平。然后有一个STATE脚就是从这并联出来的。把这个脚接到89c52的外部中断0脚。设置下降沿有效。
在串口中断函数里开启。如果断开蓝牙,输出脉冲,下降沿低电平就会触发中断,然后在这里设置停车等操作。
5、一下子说不清,有需要的联系我可以给你源代码。