Робоняша. Опыт №12: Робо-сумо.

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Vanna, 28 янв 2018.

  1. Vanna

    Vanna Нуб

    Загружаю код из http://wiki.amperka.ru/robot
    Ставлю на стол, а робоняша просто крутится по кругу. Левое колесо отключено, а правым поворачивает. Вот код
    Код (Javascript):
    var FORWARD = 0.5;
    var BACKWARD = 0.8;
    var ROTATE = 0.2;
    var BORDER_VALUE = 0.6;
    var MAX_DISTANCE = 50;
    var sumoist = require('@amperka/robot-2wd')
    .connect();
    var ultrasonic = require('@amperka/ultrasonic').connect({
      trigPin: P12,
      echoPin: P13
    });
    var lineSensor = require('@amperka/analog-line-sensor');
    var leftSensor = lineSensor.connect(A0);
    var rightSensor = lineSensor.connect(A1);
    var save = false;
    var detectBorder = function() {

      if (leftSensor.read() < BORDER_VALUE) {
        save = true;
        sumoist.go({l: 0, r: -BACKWARD});
      } else if (rightSensor.read() < BORDER_VALUE) {
        save = true;
        sumoist.go({l: -BACKWARD, r: 0});
      } else {
        save = false;
      }
    };
    setInterval(detectBorder, 10);
    var scan = function() {
      ultrasonic.ping(function(error, value) {
        if (!error && value < MAX_DISTANCE) {
          if (!save) {
            sumoist.go({l: FORWARD, r: FORWARD});
          }
        } else {
          sumoist.go({l: ROTATE, r: -ROTATE});
        }
      }, 'cm');
    };
    setInterval(scan, 100);
    В чем проблема?
     
  2. Mlex

    Mlex Нерд

    Может он ищет противника которого необходимо выталкивать с ринга? а пока нет - он крутится по кругу в поисках? Попробуй поставить на стол довольно крупный предмет рядом с роботом - может он его увидит и начнет талкать :)
     
  3. в программе стоит "< BORDER_VALUE" а надо "> BORDER_VALUE" в обеих строках.... Проще говоря, смени знаки неравенства... правильный кусок программы...

    if(leftSensor.read()> BORDER_VALUE){
    save =true;
    sumoist.go({l:0, r:-BACKWARD});
    }elseif(rightSensor.read()> BORDER_VALUE){
    save =true;
    sumoist.go({l:-BACKWARD, r:0});
    }else{
    save =false;
    }
    };
    и будет с тобой сила....