IskraJS + 3 IMU

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем brianconnoly, 12 янв 2017.

  1. brianconnoly

    brianconnoly Нуб

    Доброе время суток.

    Подскажите возможно ли подключить к IskraJS (с Troyka Shield) 3 сенсора IMU (10 степеней свободы) и как это сделать. Также возможен вариант с 3мя акселерометрами.

    Я взял код примера здесь http://wiki.amperka.ru/js:accelerometer
    При попытке создать I2C2 у меня не прошел accel2.init();
    Использовал пины B10 B11, а также C9 A8 (по рекомендациям самой IskraJS в консоли).

    Также интересует возможно ли подключить датчики таким образом чтоб они были на расстоянии 20 и 50 см от самой платы? Можно ли подключать их последовательно?
    Я попробовал воспользоваться удлинителем, шлейф который SVG удлинился без проблем, а при удлинении второго сенсор перестал работать.
     
  2. rkit

    rkit Гуру

    50 см без экрана сомнительно.
     
  3. brianconnoly

    brianconnoly Нуб

    Можете пояснить? без экранирования?
     
  4. rkit

    rkit Гуру

    i2c рассчитан для взаимодействия компонентов в пределах одной платы. а длинный провод это антенна, его надо соответственно защищать. В гугле все есть.
     
  5. brianconnoly

    brianconnoly Нуб

    Подскажите, возможно я неправильно выбрал способ решения своей задачи.
    Мне нужно расположить 3 акселерометра на плече, предплечье и в кисти. Предположительно сам блок должен был располагаться как раз в руке. На нем несколько кнопок. В перспективе хотелось бы установить 4ый акселерометр на палец. И в текущих реалиях для меня вообще загадка как его подключить.

    С длиной провода ок, попробую погуглить.
    А как просто, без удлинителя подключить к IskraJS 2 и более датчиков?
     
  6. rkit

    rkit Гуру

    Через мультиплексор. Например PCA9544A .
    Сделать вашу задачу на готовых ардуино модулях не получится. Придется разрабатывать схемы и паять.
     
  7. brianconnoly

    brianconnoly Нуб

    Разве что взять 3 ардуино модуля..... )
     
  8. Morgan

    Morgan Гик

    Привет! Сегодня проверю этот способ. Должен работать.
    Расскажи, если найдёшь другое решение.
     
  9. Morgan

    Morgan Гик

    Потестил на акселерометрах. Работает.

    Код (Javascript):

    // Настраиваем шину I2C
    I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
    I2C2.setup({sda: P0, scl: P1, bitrate: 400000});
    I2C3.setup({sda: P11, scl: P12, bitrate: 400000});

    // Подключаем модуль
    var accelLib = require('@amperka/accelerometer');
    var acc = [
      accelLib.connect(I2C1),
      accelLib.connect(I2C2),
      accelLib.connect(I2C3)
    ];

    acc.forEach((item) => {
      item.init();
    });

    setInterval(function(){
      acc.forEach((item) => {
        print(item.read('G'));
      });
      print('----------------------');
    }, 500);
     
    Подключение проводов сверху вниз:
    I2C1
    I2C3
    Питание датчика
    Питание датчика
    Питание датчика
    I2C2
     

    Вложения:

    • ybM6-D1NQLc.jpg
      ybM6-D1NQLc.jpg
      Размер файла:
      178,2 КБ
      Просмотров:
      521