Загружаю код из 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); В чем проблема?
Может он ищет противника которого необходимо выталкивать с ринга? а пока нет - он крутится по кругу в поисках? Попробуй поставить на стол довольно крупный предмет рядом с роботом - может он его увидит и начнет талкать
в программе стоит "< 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; } }; и будет с тобой сила....