ИК пульт и motor shield

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем NICK48, 28 янв 2017.

  1. NICK48

    NICK48 Нерд

    Добрый вечер !!!
    Помогите пожалуйста с кодом не работает подскажите что не так
    var ir = require('@amperka/ir-receiver')
    .connect(P7);

    var Motor = require('@amperka/motor');



    var myMotor = Motor.connect(Motor.MotorShield.M1);
    var myMotor = Motor.connect(Motor.MotorShield.M2);



    var openCode =0x1689e01f;
    var powerCode = 0x1689d02f;
    var unpowerCode = 0x1689d827;

    ir.on('receive', function(code, repeat) {
    if (repeat) {
    return;
    }

    if (code === powerCode) {
    myMotor1.write(1);myMotor2.write(-1);
    }

    if (code === unpowerCode) {
    myMotor1.write(-1);myMotor2.write(1);
    }
    if(code===openCode){myMotor1.write(0);myMotor2.write(0); }
    });
     
  2. Oleksandr

    Oleksandr Нуб

    У меня та же проблема. Отдельно работает и ик-приемник, и мотор шилд, а вместе - фиг. Небольшое копание показало, что после того, как моторы включены на 30% мощности или более, ик-пульт начинает получать случайные коды вместо ожидаемых. Причем проявляется это только при питании всего от батареек или при раздельном питании... Похоже, что где-то в коде моторшилда что-то мешает корректной работе ик приемника...
     
  3. Onkel

    Onkel Гуру

    Скорее всего обе библиотеки лезут в один таймер. Библотек много, таймеров мало. Библиотеки какие #include у вас?
     
  4. Oleksandr

    Oleksandr Нуб

    ИК-пульт и мотор-шилд. И это на искра-js. Понятно что что-то мешает, вопрос что именно и как пофиксить. Смущает только то, что не проявляется при питании всего "сендвича" от USB, а только при питании моторов или всего "сендвича" от батареек. Т.е. даже при раздельном питании искры и моторшилда при запуске моторов с мощностью 0.3 и выше из ик-приемника начинает приходить фигня... Исходники js-модулей можно получить?
     
  5. sys

    sys Злобный Буратино Модератор

    Внимательно прочтите:
    http://amperka.ru/product/arduino-motor-shield (в конце проо распиновку)
    http://wiki.amperka.ru/js:ir-receiver
    Удостоверьтесь что Вы переназначили порт 7 моторшилда на другой, раз решили его задействовать под ик.
    И зачем вам return с repeat ?
     
    Последнее редактирование: 10 фев 2017
  6. ChAnton

    ChAnton Нуб

    Аналогичная проблема. От компьютера работает и от батареек на малой мощности двигателей автономно тоже работает. Но если увеличивать скорость, связь ик пульта с приемником перестает действовать. Раза с 100 ого срабатывает. Пульт и приемник из набора матрешка Z или Йода. У меня оба набора. Использую для робоНяши. Может кто поможет. Или сами разработчики что подскажут. Попробую про таймеры почитать как тут написали в темах.
     
  7. sys

    sys Злобный Буратино Модератор

    ик приемник перевесить с 7 пина на другой
    if переделать в switch case и загнать в repeat вместо return
     
  8. ChAnton

    ChAnton Нуб

    У меня приемник на 3 пине. А код для ик взял с задания марсоход для няши.
    Была мысль что под нагрузкой напряжение проседает и из за этого глюки, не хватает на работу приемника. Но измерение при максимальной мощности двигателя показало 7,5 вольт примерно.
     
  9. sys

    sys Злобный Буратино Модератор

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