自平衡机器人-【蛋黄物语】-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: pz_cloud

自平衡机器人-【蛋黄物语】

  [复制链接]
发表于 2015-8-5 22:25 | 显示全部楼层
pz_cloud 发表于 2015-8-5 21:53
你没有安装pid的库吧,另外你给的邮箱不对

已经解决了  不过没高亮也编译通过,谢谢了
发表于 2015-8-29 21:14 | 显示全部楼层
编译有误。。。C:\Users\Administrator\Desktop
发表于 2015-8-30 20:23 | 显示全部楼层
楼主,我搜陀螺仪有三轴和六轴的,有什么区别吗?价格差别好大
发表于 2015-9-2 20:49 | 显示全部楼层
楼主代码PID库的括号里多个分号,去掉就可以了,否则编译不能通过
发表于 2015-9-3 23:29 | 显示全部楼层
楼主我想问一下,我的6050示例程序是这样的:
unsigned char Re_buf[11],counter=0;
unsigned char sign=0;
float a[3],w[3],angle[3],T;
void setup() {
  // initialize serial:
  Serial.begin(115200);
}

void loop() {
  if(sign)
  {  
     sign=0;
     if(Re_buf[0]==0x55)      //检查帧头
     {  
        switch(Re_buf [1])
        {
        case 0x51:
                a[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*16;
                a[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*16;
                a[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*16;
                T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
                break;
        case 0x52:
                w[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*2000;
                w[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*2000;
                w[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*2000;
                T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
                break;
        case 0x53:
                angle[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*180;
                angle[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*180;
                angle[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*180;
                T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
                break;
        }
    }
  }
}

void serialEvent() {
  while (Serial.available()) {
   
    //char inChar = (char)Serial.read(); Serial.print(inChar); //Output Original Data, use this code
  
    Re_buf[counter]=(unsigned char)Serial.read();
    if(counter==0&&Re_buf[0]!=0x55) return;      //第0号数据不是帧头              
    counter++;      
    if(counter==11)             //接收到11个数据
    {   
       counter=0;               //重新赋值,准备下一帧数据的接收
       sign=1;
    }
      
  }
}
需要三次loop才能读出来1组9个数据,我需要怎样才能一次读取出来9个数据呢?我用的是串口传输。
发表于 2015-9-9 18:09 | 显示全部楼层
楼主想问一下,两个PID对象sPID和myPID都是什么作用?,谢谢啦,
发表于 2015-9-10 10:08 | 显示全部楼层
好教程,写得非常之详细,对于我这种小白来说很有用,我马上做一个去。哈哈!谢谢!
发表于 2015-9-11 11:19 | 显示全部楼层
楼楼  有交流的群么  我有好多好多的问题要问你呢{:soso_e154:}{:soso_e152:}
发表于 2015-9-11 13:09 | 显示全部楼层
楼主做的小车太好了,我仔细看了2遍,教材也写的好!楼主辛苦了!
有一点没有看明白,请教一下 "码盘接在arduino哪个脚啊? "
发表于 2015-9-13 20:58 | 显示全部楼层
楼主可以把你的所有库函数打包发给我吗?    谢谢~~~1152291782@qq.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 05:26 , Processed in 0.077874 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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