小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 19309|回复: 25

Arduino WIFI小车 下位机(通信协议)完美兼容工作室上位机软件

[复制链接]
发表于 2013-2-20 10:05:49 | 显示全部楼层 |阅读模式
本帖最后由 robotStudio 于 2014-3-21 13:53 编辑

#include <Servo.h>
Servo servo1;
Servo servo2;
int E1 = 5;
int E2 = 6;
int M1_1 = 2;
int M1_2 = 3;
int M2_1 = 4;
int M2_2 = 7;
int LED = 13;
int buffer[3];
int Serial_flag;
void setup()
{
  pinMode(13,OUTPUT);
  servo1.attach(9);//定义舵机控制口
  servo2.attach(10);
  Serial.begin(9600);
}
void Stop(void)
{
  digitalWrite(E1,LOW);
  digitalWrite(E2,LOW);
}
void advance(int x)
{
  analogWrite(E1,x);
  digitalWrite(M1_1,LOW);
  digitalWrite(M1_2,HIGH);
  analogWrite(E2,x);
  digitalWrite(M2_1,LOW);
  digitalWrite(M2_2,HIGH);
}
void back(int x)
{
  analogWrite(E1,x);
  digitalWrite(M1_1,HIGH);
  digitalWrite(M1_2,LOW);
  analogWrite(E2,x);
  digitalWrite(M2_1,HIGH);
  digitalWrite(M2_2,LOW);
}
void left(int x)
{
  analogWrite(E1,x);
  digitalWrite(M1_1,LOW);
  digitalWrite(M1_2,HIGH);
  analogWrite(E2,x);
  digitalWrite(M2_1,HIGH);
  digitalWrite(M2_2,LOW);
}
void right(int x)
{
  analogWrite(E1,x);
  digitalWrite(M1_1,HIGH);
  digitalWrite(M1_2,LOW);
  analogWrite(E2,x);
  digitalWrite(M2_1,HIGH);
  digitalWrite(M2_2,LOW);
}
void Communication_Decode()
{
  if(buffer[0]==0x00)
  {
    switch(buffer[1])
    {
      case 0x01:advance(150);return;
      case 0x02:back(150);return;
      case 0x03:right(150);return;
      case 0x04:left(150);return;
      case 0x00:Stop(); return;
    }
  }
  else if(buffer[0]==0x01)
  {
    if(buffer[2]>180)return;
    switch(buffer[1])
    {
      case 0x01:servo1.write(buffer[2]);return;
      case 0x02:servo2.write(buffer[2]);return;
      default:return;
    }
  }
}
void loop()
{
  int temp_char;
  
  int date_index=0;
  
  while(1)
  {
    temp_char = Serial.read();
    if(temp_char!=-1)
    {
      
      if(Serial_flag==0)
      {
        if(temp_char==0xff)
        {
          Serial_flag = 1;
        }
      }
      else
      {
        if(temp_char==0xff)
        {
          Serial_flag = 0;
          if(date_index==3)
          {
            Communication_Decode();
          }
          date_index = 0;
        }
        else
        {
          buffer[date_index]=temp_char;
          Serial.println(buffer[date_index],HEX);
          date_index++;
        }
      }
    }
  }
}

程序可以控制两路舵机(9、10接口)+两路直流电机。
MG995、MG996舵机启动瞬间电流较大建议配合工作室推出的舵机驱动板使用。
WIFI机器人官方淘宝店二店分店:http://dsrobot.taobao.com为您提供优质的服务!

点评

手机控制端怎么填写啊,,大哥??、  发表于 2013-12-27 16:20

评分

参与人数 1金钱 +2 收起 理由
小威 + 2 手机控制端怎么填写啊,,大哥??、

查看全部评分

回复

使用道具 举报

发表于 2013-2-20 10:36:04 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

发表于 2013-2-20 14:25:35 | 显示全部楼层
支持大神的新作啊 很精简!牛1
回复 支持 反对

使用道具 举报

发表于 2013-3-26 14:20:47 | 显示全部楼层
谢谢分享,不过,只能程序,能不能具体介绍一下呀,这样看太没头绪了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-2 17:20:00 | 显示全部楼层
浙源节能科技 发表于 2013-3-26 14:20
谢谢分享,不过,只能程序,能不能具体介绍一下呀,这样看太没头绪了。

有时间,把注释写清楚点吧。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-2 17:20:14 | 显示全部楼层
xiaoduan1 发表于 2013-5-2 15:06
好帖要顶,楼主的头像还是不错滴

3Q
回复 支持 反对

使用道具 举报

发表于 2013-5-17 21:43:43 | 显示全部楼层
看看 学习下。。要学的东西好多啊,,,,晕。。。
回复 支持 反对

使用道具 举报

发表于 2013-5-29 19:45:22 | 显示全部楼层
robotStudio 发表于 2013-5-2 17:20
有时间,把注释写清楚点吧。。。

哥,其实我一直在等注释。。。。
回复 支持 反对

使用道具 举报

发表于 2013-7-11 17:01:16 | 显示全部楼层
都是好东西啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-12 21:38:46 | 显示全部楼层
oceankelp 发表于 2013-5-29 19:45
哥,其实我一直在等注释。。。。

有时间把注释写清楚。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-4-18 10:12 , Processed in 1.083955 second(s), 19 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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