Зависает библиотека IMU 10

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем a78r, 15 июн 2018.

?

Можно ли на искре сделать real time "черный ящик"?

  1. Да

    3 голосов
    100,0%
  2. Нет

    0 голосов
    0,0%
  1. a78r

    a78r Нуб

    Проблема: простой опрос гироскопа модуля IMU раз в полсекунды обязательно приводит к зависанию программы. Наступает это не сразу, для цикла 500 мс -- где-то через 1-2 часа. Для более коротких циклов -- еще быстрее.

    Вопрос: как добиться стабильной работы?

    Выдает такую ошибку:
    "
    Uncaught InternalError: Timeout on I2C Write Transmit Mode 2
    at line 1 col 33
    a=a||1,this._i2c.writeTo(b,c|128),this._i2c.readFrom(b,a);
    ^
    in function "_readI2C" called from line 1 col 65
    ...is._readI2C(this._gyro,40,6);var b=new Int16Array(c.buffer,0...
    ^
    in function "gyro" called from line 1 col 24
    var gyrosop = imu.gyro();
    ^
    in function called from system
    Uncaught InternalError: Timeout on I2C Write Transmit Mode 2
    at line 1 col 33
    a=a||1,this._i2c.writeTo(b,c|128),this._i2c.readFrom(b,a);
    ^
    in function "_readI2C" called from line 1 col 65
    ...is._readI2C(this._gyro,40,6);var b=new Int16Array(c.buffer,0...

    Код (C++):
    var imu = require("https://raw.githubusercontent.com/amperka/espruino-modcat/imu10/modules/imu10.js").connect();

    imu.setup();

    var timerID = setInterval(function() {

         var gyrosсop = imu.gyro();

         console.log(gyrosсop);
    },500);
     
     
  2. Alex Dos

    Alex Dos Таки да Команда форума

    К теме опроса — уже делали:

     
  3. a78r

    a78r Нуб

    Alex Dos, этот ролик я и раньше видел. Монтаж хороший и герои веселые. Но с ним есть две проблемы.
    Во-первых, он про Iskra, а эта ветка про Iskra js.
    Во-вторых, размер лог файла в этом ролике 3 кб. Систему, которая за гоночный заезд накопила только 50 точек, назвать real time слишком смело, мягко говоря.

    Можно ли ждать содержательного ответа на мой вопрос? Что мне нужно сделать по-другому, чтобы библиотека не зависала?

    А то вдруг Iskra JS не способна стабильно работать с шиной I2C с частотой опроса меньше секунды? Или может совместимость imu10 c искрой JS условная и мне надо пробовать другие модули с библиотеками, написанными не в Амперке.
     
  4. Alex Dos

    Alex Dos Таки да Команда форума

    Эх, моя вина — в списке отслеживаемых тем не заметил, что это ветка по JS. Размер файла — не проблема, пишется же он на SD-шку. Первоначально система писала данные раз в секунду, но потом Игорёк с чего-то решил увеличить интервал, а узнали мы об этом только когда результаты смотреть стали. Под JS нужно потестить. В принципе — можно добавить в список мини-проектов для новой платформы. Но это будет не быстро, увы.
     
  5. a78r

    a78r Нуб

    Спасибо, это важная информация. Если бы знал ее раньше, точно не взял бы ни искру JS, ни чудесный модуль IMU10. Буду ждать мини-проект, надеюсь, он будет работать быстрее, чем раз в секунду.