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

 找回密码
 立即注册
查看: 12497|回复: 6

ARDUINO瓦力 全舵机动作 相当实惠哦 WR703n控制 无抖动 9G舵机 兼容论坛上位机

[复制链接]
发表于 2013-12-6 16:49:02 | 显示全部楼层 |阅读模式
/*配件:1.两个360度9G舵机 2. 4个普通9G舵机  3.ARDUINO Pro mini  4.wifi模块(wr703n)5. 12CM 瓦力  
功能待拓展< 语言控制 >  语音模块选用及编程 暂时没找到源代码 望大神不恁指导
*/
#include <Servo.h>
Servo servo1;//定义舵机1 左腿
Servo servo2;//定义舵机2 右腿
Servo servo3;//定义舵机3 左手
Servo servo4;//定义舵机4 右手
Servo servo5;//定义舵机5 头部
Servo servo6;//定义舵机6 脖子

int buffer[3];
int Serial_flag;
int temp_char;
int date_index=0;

void setup()
{
        Serial.begin(9600);
        servo3.attach(7);
        servo4.attach(6);
        servo5.attach(5);
        servo6.attach(4);
}
void Stop(void)        //停止
{
       servo1.detach();
        servo2.detach();
}
void advance(int x)        //向前
{
        servo1.attach(9);
        servo1.writeMicroseconds(800);
        servo2.attach(8);
        servo2.writeMicroseconds(1900);
}
void back(int x)             //向后
{
        servo1.attach(9);
        servo1.writeMicroseconds(1900);
        servo2.attach(8);
        servo2.writeMicroseconds(800);
}
void left(int x)                //左转
{
        servo1.attach(9);
        servo1.writeMicroseconds(1900);
        servo2.attach(8);
        servo2.writeMicroseconds(1900);
}
void right(int x)                    //右转
{
       servo1.attach(9);
        servo1.writeMicroseconds(800);
        servo2.attach(8);
        servo2.writeMicroseconds(800);
}
void Communication_Decode()
{
    if(buffer[0]==0x00)
    {
        switch(buffer[1])
                {
                        case 0x01:advance();return;
                        case 0x02:back();return;
                        case 0x03:right();return;
                        case 0x04:left();return;
                        case 0x00:Stop(); return;
                }
        }
        else if(buffer[0]==0x01)
        {
        if(buffer[2]>180)return;
                switch(buffer[1])
                {
                    case 0x01:servo3.write(buffer[2]);return;
                        case 0x02:servo4.write(buffer[2]);return;
                        case 0x03:servo5.write(buffer[2]);return;
                        case 0x04:servo6.write(buffer[2]);return;
                        default:return;
        }
    }
}

void loop()
{
    if(Serial.available() > 0)  
    {
        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;
                                        date_index++;
                                }
                        }
                }
        }
}

回复

使用道具 举报

 楼主| 发表于 2013-12-9 12:53:04 | 显示全部楼层
沧海笑 发表于 2013-12-8 23:18
语音模块我已经调试成功,希望可以和你交流,我用的是语音合成模块,虚拟一个串口就可以了。
我也是用的ar ...

http://www.wifi-robots.com/thread-4077-1-1.html  我的代码架构是仿照这文章楼主的 自己参照一下哈
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2013-12-6 16:58:57 | 显示全部楼层
6个 9G舵机 大概60元 360度的舵机从中取两个给成360的就ok了 由于没得本人没得 12 cm 的带履带的瓦力 但是程序是通过 实验通过 可放心使用 360的舵机改装可在网上找到教程
回复 支持 反对

使用道具 举报

发表于 2013-12-6 18:28:54 | 显示全部楼层
本帖最后由 Diy_IMRE 于 2013-12-6 18:30 编辑

你这个是用论坛的板子还是ARDUINO板子??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-6 18:32:55 | 显示全部楼层
Diy_IMRE 发表于 2013-12-6 18:28
你这个是用论坛的板子还是ARDUINO板子??

ARDUINO板子
回复 支持 反对

使用道具 举报

发表于 2013-12-8 23:18:12 | 显示全部楼层
语音模块我已经调试成功,希望可以和你交流,我用的是语音合成模块,虚拟一个串口就可以了。
我也是用的arduino uno r3+L298电机驱动板,蓝牙控制,现在的问题是,仅能驱动一只电机,很不解,用单字符方式就一切正常。详细情况在“下位机”区里有一个求助帖,望赐教。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 00:19 , Processed in 1.085974 second(s), 19 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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