Датчики GY-80 и GY-521 - ФОРУМ ДВ Робот dvrobot.ru
Вторник, 16.10.2018, 00:53
Главная Мой профиль Регистрация Выход
  • НАШ МАГАЗИН
  • Вы вошли как Гость | Группа "Гости"Приветствую Вас, Гость
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Модератор форума: Serg, GRACH  
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Arduino - вопросы и ответы. » Датчики GY-80 и GY-521 (Вопрос по работоспособности)
    Датчики GY-80 и GY-521
    rheinhardДата: Вторник, 08.01.2013, 23:04 | Сообщение # 1
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 7
    Репутация: 20
    Статус: Offline
    У меня такой вопрос.

    Заказывал два датчика - первый - GY-80, который,аксе-гиро-компас-барометр. Приехало, правда, нечто без опознавательных знаков:



    Второй - GY-521, акселерометр-гироскоп.

    Подключаю по общей схеме к шине I2С, которая везде валяется:

    VCC - +3.3v
    GND - GND
    SCL - вывод A5
    SDA - вывод А4

    Первый датчик отработал полторы минуты, честно показывая мне температуру и давление, затем перестал отзываться вообще.

    Второй датчик не работал изначально, с момента заказа.

    Вопрос - что я не так делаю?

    Скетчи для проверки брались из библиотек i2cdevlib, для MPU6050 и остальных микросхем: https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050
    Имею 2 платы - старенькую Diecimilia и свежезаказанную Uno. С платами все в порядке, поскольку вот такой агрегат без проблем функционирует:



    Это у меня кривые ручки, или брак?
    Прикрепления: 2502941.jpg(144.2 Kb) · 5682045.jpg(794.9 Kb)


    Сообщение отредактировал rheinhard - Вторник, 08.01.2013, 23:04
     
    GRACHДата: Среда, 09.01.2013, 02:20 | Сообщение # 2
    dvrobot.ru
    Группа: Администраторы
    Сообщений: 111
    Репутация: 16181
    Статус: Offline
    rheinhard здравствуйте !!

    1. Датчик Вам приехал по функционалу тот же, просто схема платы немного различается. На сайте еще не успели поменять фото ( см. фото).
    Вероятность брака в датчиках данного типа очень мала, так как датчики данного типа на коленках не возможно сделать. Они или работают или нет, но об этом пока рано говорить.

    2. Я поищу более подробную информацию по данным датчикам. Вы тоже продолжайте изучение, может еще кто подсоединится к нам, быстрее будет.
    Прикрепления: 3663649.jpg(88.9 Kb) · 0678287.jpg(87.9 Kb)
     
    rheinhardДата: Среда, 09.01.2013, 03:52 | Сообщение # 3
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 7
    Репутация: 20
    Статус: Offline
    Пример по ссылке с датчиком GY-80 у меня работал: https://github.com/jrowber....sic.ino

    Инструкция для установки библиотек:
    1. Качаем всю упаковку библиотек: https://github.com/jrowberg/i2cdevlib/archive/master.zip
    2. Вытаскиваем оттуда директории I2Cdev и BMP085, кладем в arduino/libraries
    3. Открываем пример из BMP085 (это если для GY-80 пробовать) и заливаем.

    Подключение платы описано выше в посте.

    Если кто, копаясь по форумам, найдет подключение датчиков к цифровым пинам, типа

    Vcc - 3.3V
    GND - GND
    SCL - D5
    SDA - D4
    ADO - GND
    INT - D2

    Оно не верное. Библиотека Wire не работает с цифровыми выводами. Можете сами проверить светодиодом.
    Есть схемы подключения однотипных датчиков

    http://www.drotek.fr/photos....3.3.JPG
    http://www.microcopters.de/photos/95/freeimu-035.gif
    http://fpv-community.de/attachm....7406859
    http://s10.postimage.org/41w5mhjy1/megacontroller.jpg

    Есть идея всунуть между SDA и +, и междуSCL и + резисторы на ~4.7к, но они ведь на плате уже встроены, согласно спецификации...

    http://playground.arduino.cc/Main/MPU-6050

    Если это та плата GY-521. А то ведь тоже не очень похожа. На оригинале светодиод был.

    Я в печали.
    =====================================================================================

    Пожалуй, буду сюда потихоньку выносить найденное, возможно, однажды разберусь.

    На форумах советуют отыскать некий Logic Level Converter, например, такой: https://www.sparkfun.com/products/8745
    и пускать девайсы по шине через него.

    Еще попадался способ такой:
    Переключить аналоговые пины:

    pinMode(A4, INPUT);
    pinMode(A5, INPUT);

    digitalWrite(A4,LOW);
    digitalWrite(A5,LOW);

    На Uno R3 можно попробовать прицепиться к вынесенному SPI интерфейсу, что у UNO возле AREF находится:


    Попробую так же схему коммуникации двух ардуино: http://arduino.cc/en/Tutorial/MasterReader
    ===============================================================================================

    Напал на след. Нужен все-таки левел-шифтер с 5в логики большой ардуино на 3.3в логику маленького девайса. В магазине, к сожалению, чего-нибудь вроде SparkFun не найдешь, поэтому буду пытаться собрать по схеме: http://www.hobbytronics.co.uk/mosfet-voltage-level-converter
    ===============================================================================================

    Тут советуют вырубить внутренние подтягивающие резисторы: http://aeroquad.com/showthr....e3
    Это делается в недрах функции ::twi_init библиотеки i2c:

    void twi_init(void)
    {
    twi_state = TWI_READY;
    // activate internal pull-ups for twi
    * sbi(PORTC, 4);
    * sbi(PORTC, 5);
    // initialize twi prescaler and bit rate
    cbi(TWSR, TWPS0);
    cbi(TWSR, TWPS1);
    TWBR = ((CPU_FREQ / TWI_FREQ) - 16) / 2;
    // enable twi module, acks, and twi interrupt
    TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
    }

    Звездочками отмечены строки, которые нужно закомментарить, согласно очень подробному разбору работы библиотек: http://playground.arduino.cc/Code/ATMELTWI#shift

    Но все же лучше спаять левел-шифтер.
    Прикрепления: 7721478.png(439.7 Kb)


    Сообщение отредактировал rheinhard - Среда, 09.01.2013, 17:16
     
    rheinhardДата: Среда, 09.01.2013, 20:57 | Сообщение # 4
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 7
    Репутация: 20
    Статус: Offline
    Можете меня поздравить.
    Собранный на коленке шифтер по схеме http://letsmakerobots.com/node/34444
    готов, датчик GY-521 подключен и исправно дает показания.
    Gy-80, похоже, все же сгорел.



    ап: остальные выводы, например, INT (к цифровому 2), так же подключайте через резистор 2.2 ком, дабы не спалить.
    Прикрепления: 4242795.jpg(272.3 Kb)


    Сообщение отредактировал rheinhard - Пятница, 11.01.2013, 09:55
     
    GRACHДата: Четверг, 10.01.2013, 20:17 | Сообщение # 5
    dvrobot.ru
    Группа: Администраторы
    Сообщений: 111
    Репутация: 16181
    Статус: Offline
    На сайте ДВ Робот, можно скачать библиотеку подключения Модуля GY-80 к Ардуино. http://dvrobot.ru/shop/i267.Modul_GY-80_Akse-Giro-Kompa-Barometr.htm
     
    rheinhardДата: Понедельник, 14.01.2013, 21:32 | Сообщение # 6
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 7
    Репутация: 20
    Статус: Offline
    Датчик GY-80 10DOF, перебрал предложенные примеры, переделал их, чтоб работали и выкладываю полное описание:

    1. Подключение датчика 10DOF (GY-80)

    Arduino ...... GY-80

    5v...... vcc_+5v
    GND...... GND
    A4...... SDA
    A5...... SCL

    2. Проверка устройств на шине. Для этого загрузите скетч:
    Код

    // --------------------------------------
    // i2c_scanner
    //
    // This program (or code that looks like it)
    // can be found in many places.
    // For example on the Arduino.cc forum.
    // The original author is not know.
    //
    // This sketch tests the standard 7-bit addresses
    // from 0 to 127. Devices with higher bit address
    // might not be seen properly.
    //
    // Adapted to be as simple as possible by Arduino.cc user Krodal
    //
    // June 2012
    // Using Arduino 1.0.1
    //

    #include <Wire.h>

    void setup()
    {
    Wire.begin();

    Serial.begin(9600);
    Serial.println("\nI2C Scanner");
    }

    void loop()
    {
    byte error, address;
    int nDevices;

    Serial.println("Scanning...");

    nDevices = 0;
    for(address = 0; address <= 127; address++ )
    {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
    Serial.print("I2C device found at address 0x");
    if (address<16)
    Serial.print("0");
    Serial.print(address,HEX);
    Serial.println(" !");

    nDevices++;
    }
    else if (error==4)
    {
    Serial.print("Unknow error at address 0x");
    if (address<16)
    Serial.print("0");
    Serial.println(address,HEX);
    }
    }
    if (nDevices == 0)
    Serial.println("No I2C devices found\n");
    else
    Serial.println("done\n");

    delay(8000); // wait 8 seconds for next scan
    }


    Сканер должен выдать в порт 4 найденных устройства:

    I2C Scanner
    Scanning...
    I2C device found at address 0x1E !
    I2C device found at address 0x53 !
    I2C device found at address 0x69 !
    I2C device found at address 0x77 !
    done


    Архив с переделанными примерами мне лениво заливать, я передам его Максиму, надеюсь, он поместит его на страницу GY-80 в магазине, вместо нерабочих примеров к датчику.


    Сообщение отредактировал rheinhard - Понедельник, 14.01.2013, 21:38
     
    GRACHДата: Вторник, 15.01.2013, 14:40 | Сообщение # 7
    dvrobot.ru
    Группа: Администраторы
    Сообщений: 111
    Репутация: 16181
    Статус: Offline
    rheinhard, Спасибо !!
    В ближайшее время обязательно это сделаю !!
     
    LizardBootДата: Воскресенье, 12.05.2013, 03:50 | Сообщение # 8
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 1
    Репутация: 0
    Статус: Offline
    rheinhard,у меня небольшая проблемка. Когда заливаю скетч кроме как Scanning... ничего не происходит.
    Согласно схеме подключил:
    Ard 5V -> HV;
    Ard 3.3V -> LV -> VCC(GY-521);
    Ard GND -> GND -> GND(GY-521);
    Ard SCL -> RXI1;
    RXO1 ->SCL(GY-521);
    Ard SDA -> RXI2;
    RXO2 -> SDA(GY-521);

    Подключение выполняю на Mega 2560.
    Буду очень признателен, если поможете советом.


    Сообщение отредактировал LizardBoot - Воскресенье, 12.05.2013, 03:53
     
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Arduino - вопросы и ответы. » Датчики GY-80 и GY-521 (Вопрос по работоспособности)
    • Страница 1 из 1
    • 1
    Поиск:

    ДВ Робот - Чат