查看: 1234|回复: 21

[项目分享] 基于nodemcu(esp8266)+Blinker的五自由度机械臂(纸皮版)

[复制链接]
  • TA的每日心情
    开心
    2019-2-13 16:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2019-2-13 13:54 | 显示全部楼层 |阅读模式
    本帖最后由 邓文饼 于 2019-2-13 17:30 编辑

                                                            五自由度机械臂WiFi版(原创)

             在学习arduino时,接触过蓝牙控制机械臂,后来想一下弄一个高级点,蓝牙相对WiFi 有点low.

    在学习蓝牙控制机械臂时,还接触过app inventor2,这个挺好玩的。蓝牙的软件还能做出来(电气生),但是要用到Mqtt实在没办法搞定。还有一本厚厚的自控书要看。 这时候 BLINKER 拯救了我,我是十分感谢它的,实在太好用了。

           在学习BLINKER之前,我看了一些大神的帖子,将nodemcu当成是服务端,将手机当成是客户端,然后用tcp协议 进行传输数据,这个方法也是OK的,也是简洁明了。

        材料清单

         1.................伺服电机xx90     5个(按照那副人类肩膀的图,机械臂最好有七个自由度,听起来很赞)

         2.................nodemcu(esp8266)   (这个实在太厉害,真的佩服发明的人)

       电脑软件

             Arduino ide

       手机软件

          BLINKER (应用市场可以下载)https://doc.blinker.app/?file=home-%E9%A6%96%E9%A1%B5 这个网址是Blinker 的官网 里面的文件很详细地讲述。
    微信图片_20190213135132.jpg 微信图片_20190213135200.png
       
    话不多说上代码
    #include <Servo.h>
    Servo s1;
    Servo s2;
    Servo s3;
    Servo s4;
    Servo s5;
    #define BLINKER_WIFI
    int s1pos, s2pos, s3pos, s4pos, s5pos;
    int32_t s1ppos, s2ppos, s3ppos, s4ppos, s5ppos;


    #include <Blinker.h>

    char auth[] = "521b80a5b79f";
    char ssid[] = "Daniel handsome";
    char pswd[] = "15975618512dwb";


    BlinkerSlider Slider1("a");
    BlinkerSlider Slider2("b");
    BlinkerSlider Slider3("c");
    BlinkerSlider Slider4("d");
    BlinkerSlider Slider5("e");
    //number 1
    void slider1_callback(int32_t value1)
    {
      BLINKER_LOG("get slider value: ", value1);
    s1ppos=value1;
       if(s1ppos>s1pos)
       {
        for(int i1=s1ppos;i1>=s1pos;i1--){
           s1.write(i1);
           delay(20);}
       }
       if(s1ppos<s1pos)
       {
        for(int i1=s1ppos;i1<=s1pos;i1++){
        s1.write(i1);
        delay(20);}
        }
        s1pos=s1ppos;
    }
    //number 2
    void slider2_callback(int32_t value2)
    {
      BLINKER_LOG("get slider value: ", value2);
       s2ppos=value2;
       if(s2ppos>s2pos)
       {
        for(int i2=s2ppos;i2>=s2pos;i2--){
           s2.write(i2);
           delay(20);}
       }
       if(s2ppos<s2pos)
       {
        for(int i2=s2ppos;i2<=s2pos;i2++){
        s2.write(i2);
        delay(20);}
        }
        s2pos=s2ppos;


    }

    void slider3_callback(int32_t value3)
    {
      BLINKER_LOG("get slider value: ", value3);
       s3ppos=value3;
       if(s3ppos>s3pos)
       {
        for(int i3=s3ppos;i3>=s3pos;i3--){
           s3.write(i3);
           delay(20);}
       }
       if(s3ppos<s3pos)
       {
        for(int i3=s3ppos;i3<=s3pos;i3++){
        s1.write(i3);
        delay(20);}
        }
        s3pos=s3ppos;


    }
    void slider4_callback(int32_t value4)
    {
      BLINKER_LOG("get slider value: ", value4);
       s4ppos=value4;
       if(s4ppos>s4pos)
       {
        for(int i4=s4ppos;i4>=s4pos;i4--){
           s4.write(i4);
           delay(20);}
       }
       if(s4ppos<s4pos)
       {
        for(int i4=s4ppos;i4<=s4pos;i4++){
        s4.write(i4);
        delay(20);}
        }
        s4pos=s4ppos;


    }
    void slider5_callback(int32_t value5)
    {
      BLINKER_LOG("get slider value: ", value5);
       s5ppos=value5;
       if(s5ppos>s5pos)
       {
        for(int i5=s5ppos;i5>=s5pos;i5--){
           s5.write(i5);
           delay(20);}
       }
       if(s5ppos<s5pos)
       {
        for(int i5=s5ppos;i5<=s5pos;i5++){
        s5.write(i5);
        delay(20);}
        }
        s5pos=s5ppos;


    }


    void setup()
    {
      Serial.begin(115200);
      BLINKER_DEBUG.stream(Serial);
      Blinker.begin(auth, ssid, pswd);

      Slider1.attach(slider1_callback);
      Slider2.attach(slider2_callback);
      Slider3.attach(slider3_callback);
      Slider4.attach(slider4_callback);
      Slider5.attach(slider5_callback);
      s1.attach(D2);
      s2.attach(D3);
      s3.attach(D4);
      s4.attach(D5);
      s4.attach(D6);
      s1pos = 90;
      s1.write(s1pos);
      s2pos = 0;
      s2.write(s2pos);
      s3pos = 0;
      s3.write(s3pos);
      s4pos = 0;
      s4.write(s4pos);
      s5pos = 0;
      s5.write(s5pos);

    }

    void loop()
    {
      Blinker.run();
    }
    经检验,代码ok
    微信图片_20190213155553.jpg 微信图片_20190213155543.jpg
    原创 来自邓文饼  转贴 请把我的名字带上
  • TA的每日心情
    开心
    2019-3-17 15:01
  • 签到天数: 62 天

    [LV.6]常住居民II

    发表于 2019-2-13 14:45 | 显示全部楼层
    项目挺有意思,但是机械臂长啥样
    你今天的打赏,是我明天学习Arduino的动力!
  • TA的每日心情
    开心
    2019-3-23 11:09
  • 签到天数: 634 天

    [LV.9]以坛为家II

    发表于 2019-2-13 15:35 | 显示全部楼层
    我想看实物演示
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2019-2-13 16:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-2-13 16:00 | 显示全部楼层

    大神你好呀,我是你的粉丝呀,我已经补充了两幅图,(有点丑),等回学校,我去问问机械的同学借个3d打印机,可能会更好看点。更直观
  • TA的每日心情
    开心
    2019-2-13 16:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-2-13 16:02 | 显示全部楼层
    Creeper666 发表于 2019-2-13 14:45
    项目挺有意思,但是机械臂长啥样

    我觉得肩膀那个位置应该是错了的,望纠正啦
  • TA的每日心情
    开心
    2019-3-23 11:09
  • 签到天数: 634 天

    [LV.9]以坛为家II

    发表于 2019-2-13 17:19 | 显示全部楼层
    邓文饼 发表于 2019-2-13 16:00
    大神你好呀,我是你的粉丝呀,我已经补充了两幅图,(有点丑),等回学校,我去问问机械的同学借个3d打印 ...

    66666666
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2019-2-28 10:16
  • 签到天数: 111 天

    [LV.6]常住居民II

    发表于 2019-2-13 19:48 | 显示全部楼层
    我这有个机械臂。看看能不能给整合上。不过机械多集会有震动很难去掉。[img][/img]

    机械手图片

    机械手图片
  • TA的每日心情
    开心
    2019-2-28 10:16
  • 签到天数: 111 天

    [LV.6]常住居民II

    发表于 2019-2-13 19:52 | 显示全部楼层
    关于电路部分我用的是nano板。有外接tf开的接口。我想可以改成8266-01的 端子
  • TA的每日心情
    开心
    2019-2-13 16:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-2-13 23:04 | 显示全部楼层
    mak4000bug 发表于 2019-2-13 19:48
    我这有个机械臂。看看能不能给整合上。不过机械多集会有震动很难去掉。[/img] ...

    我也有有点震动
  • TA的每日心情
    开心
    2019-2-13 16:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-2-13 23:05 | 显示全部楼层
    mak4000bug 发表于 2019-2-13 19:48
    我这有个机械臂。看看能不能给整合上。不过机械多集会有震动很难去掉。[/img] ...

    如果你可以动的话,告诉我一声哦,
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    BlinkerAT固件不能用
    BlinkerAT固件不能用
    如图,在配网的时候就卡住了,再发指令就没用了,固件和库都是今天刚下载的,以前的也不好
    为什么这个库已经装好了可是在调用的时候却没有显示
    为什么这个库已经装好了可
    为什么这个库已经装好了可是在调用的时候却没有显示求解决
    UART 传输(字符)不稳定,如何解决数据错位和乱码的情况
    UART 传输(字符)不稳定
    求助大家,我正在写一个 UART 传输多组数据的项目,想要将一端 Arduino 的多组数据通
    请问这是什么板子?
    请问这是什么板子?
    如图,两年前比赛学校发的,但网上找不到资料,现在翻出来,想问问有人知道它怎么用吗
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表