查看: 470|回复: 20

[已解决] 求求求你 救救孩子吧

[复制链接]
  • TA的每日心情
    开心
    2019-7-31 09:21
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2019-7-21 17:27 | 显示全部楼层 |阅读模式
    这个bug是什么问题
    新建位图图像.gif
  • TA的每日心情
    擦汗
    2019-8-9 23:42
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2019-7-21 18:13 | 显示全部楼层
    dushude 发表于 2019-7-21 17:53
    哪的问题能说一下吗?输入法一直是英文,所以输入法不可能是问题的所在。 ...

    其实吧,你这个问题很容易解决,报错是因为非法字符(就是可能不小心用中文输入法的花括号或者冒号了)如果输入法不是用的windows自带的美式键盘都有可能输入错。你必须使用美式键盘输入,切换方法就是点击输入法图标,选择美式键盘。
    打赏神马的不重要,随缘就可以
  • TA的每日心情
    擦汗
    2019-8-9 23:42
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2019-7-22 12:07 | 显示全部楼层
    arduino.zip (47.69 KB, 下载次数: 3)
    打赏神马的不重要,随缘就可以
  • TA的每日心情
    奋斗
    2019-8-24 00:02
  • 签到天数: 86 天

    [LV.6]常住居民II

    发表于 2019-7-21 17:39 | 显示全部楼层
    50包救,不然自己重装电脑,不要安装任何中文输入法,再重新写代码
    觉得好就打赏一下吧!!让我有动力继续写教程
  • TA的每日心情
    开心
    2019-7-31 09:21
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-7-21 17:53 | 显示全部楼层
    哪的问题能说一下吗?输入法一直是英文,所以输入法不可能是问题的所在。
  • TA的每日心情
    擦汗
    2019-8-9 23:42
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2019-7-21 18:14 | 显示全部楼层
    dushude 发表于 2019-7-21 17:53
    哪的问题能说一下吗?输入法一直是英文,所以输入法不可能是问题的所在。 ...

    就算还没解决,最多重装一次输入法就行,根本不需要重装系统
    (如果解决了应个声哈)
    打赏神马的不重要,随缘就可以
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2019-7-21 18:37 | 显示全部楼层
    建议上传整个项目代码,不然爱莫能助
  • TA的每日心情
    开心
    2019-7-31 09:21
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-7-21 19:47 | 显示全部楼层

    // Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
    // is used in I2Cdev.h
    #include "Wire.h"

    // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
    // for both classes must be in the include path of your project
    #include "I2Cdev.h"

    #include "MPU6050_6Axis_MotionApps20.h"
    MPU6050 mpu(0x68);

    // MPU control/status vars
    bool dmpReady = false;  // set true if DMP init was successful
    uint8_t mpuIntStatus;   // holds actual interrupt status byte from MPU
    uint8_t devStatus;      // return status after each device operation (0 = success, !0 = error)
    uint16_t packetSize;    // expected DMP packet size (default is 42 bytes)
    uint16_t fifoCount;     // count of all bytes currently in FIFO
    uint8_t fifoBuffer[64]; // FIFO storage buffer

    // orientation/motion vars
    Quaternion q;           // [w, x, y, z]         quaternion container
    VectorFloat gravity;    // [x, y, z]            gravity vector
    float ypr[3];           // [yaw, pitch, roll]   yaw/pitch/roll container and gravity vector


    // ================================================================
    // ===               INTERRUPT DETECTION ROUTINE                ===
    // ================================================================

    volatile bool mpuInterrupt = false;     // indicates whether MPU interrupt pin has gone high
    void dmpDataReady() {
      mpuInterrupt = true;
    }



    // ================================================================
    // ===                      INITIAL SETUP                       ===
    // ================================================================

    void setup() {
      Serial.begin(115200);        // opens serial port, sets data rate to 9600 bps

      // join I2C bus (I2Cdev library doesn't do this automatically)
      Wire.begin();

      // initialize device
      Serial.println("Initializing I2C devices...");
      mpu.initialize();

      // verify connection
      Serial.println("Testing device connections...");
      Serial.println(mpu.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");

      delay(2);

      // load and configure the DMP
      Serial.println("Initializing DMP...");
      devStatus = mpu.dmpInitialize();

      // make sure it worked (returns 0 if so)
      if (devStatus == 0) {
        // turn on the DMP, now that it's ready
        Serial.println("Enabling DMP...");
        mpu.setDMPEnabled(true);

        // enable Arduino interrupt detection
        Serial.println("Enabling interrupt detection (Arduino external interrupt 0)...");
        attachInterrupt(0, dmpDataReady, RISING);
        mpuIntStatus = mpu.getIntStatus();

        // set our DMP Ready flag so the main loop() function knows it's okay to use it
        Serial.println("DMP ready! Waiting for first interrupt...");
        dmpReady = true;

        // get expected DMP packet size for later comparison
        packetSize = mpu.dmpGetFIFOPacketSize();
      }
      else {
        // ERROR!
        // 1 = initial memory load failed
        // 2 = DMP configuration updates failed
        // (if it's going to break, usually the code will be 1)
        Serial.print("DMP Initialization failed (code ");
        Serial.print(devStatus);
        Serial.println(")");
      }
    }

    void loop()
    {
      float alpha,omiga;

      // if programming failed, don't try to do anything
      if (!dmpReady)
        return;

      // wait for MPU interrupt or extra packet(s) available
      if (!mpuInterrupt && fifoCount < packetSize)
        return;

      // reset interrupt flag and get INT_STATUS byte
      mpuInterrupt = false;
      mpuIntStatus = mpu.getIntStatus();

      // get current FIFO count
      fifoCount = mpu.getFIFOCount();

      // check for overflow (this should never happen unless our code is too inefficient)
      if ((mpuIntStatus & 0x10) || fifoCount == 1024) {
        // reset so we can continue cleanly
        mpu.resetFIFO();
        Serial.println("FIFO overflow!");

        // otherwise, check for DMP data ready interrupt (this should happen frequently)
      }
      else if (mpuIntStatus & 0x02) {
        // wait for correct available data length, should be a VERY short wait
        while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();

        // read a packet from FIFO
        mpu.getFIFOBytes(fifoBuffer, packetSize);

        // track FIFO count here in case there is > 1 packet available
        // (this lets us immediately read more without waiting for an interrupt)
        fifoCount -= packetSize;

        mpu.dmpGetQuaternion(&q, fifoBuffer);
        mpu.dmpGetGravity(&gravity, &q);
        mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);  //从DMP中取出Yaw、Pitch、Roll三个轴的角度,放入数组ypr。单位:弧度
        alpha=-ypr[2] * 180/M_PI;

        omiga=mpu.getRotationX()/16.4;        //配置是16位表示正负2000°/s, 65536/4000

        Serial.print("Alpha ");
        Serial.print(alpha);
        Serial.print("\tOmiga ");
        Serial.println(omiga);
       
      }
    }
  • TA的每日心情
    开心
    2019-7-31 09:21
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-7-21 19:50 | 显示全部楼层
    ryc 发表于 2019-7-21 18:14
    就算还没解决,最多重装一次输入法就行,根本不需要重装系统
    (如果解决了应个声哈) ...

    整个代码是我copy别人的,自己输入的话可能得花点时间
  • TA的每日心情
    擦汗
    2019-8-9 23:42
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2019-7-21 21:36 | 显示全部楼层
    我帮你把代码重新码了一遍,你只要给我点击下面的打赏,1元,我把源文件发给你,能通过编译,包教会。
    打赏神马的不重要,随缘就可以

    1人打赏

  • TA的每日心情
    擦汗
    2019-8-9 23:42
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2019-7-22 10:44 | 显示全部楼层
    arduino.zip (1013 Bytes, 下载次数: 4)
    打赏神马的不重要,随缘就可以
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Arduino lcd屏幕亮了但是不显示字符
    Arduino lcd屏幕亮了但是
    Arduino的lcd屏亮了但是上面没有字符显示,串进去的滑动变阻器也旋过了,但是还是没有
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    【Arduino】108种传感器模块系列实验(98)---L298N电机驱动板
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    两个ESP8266通过云端实现远程数据交互
    两个ESP8266通过云端实现
    原理简述:利用发布订阅模式。一个ESP8266作为消息发布者,另一个ESP8266作为消息订阅
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表