Здравствуйте! Проект "Марсоход" также с двумя моторами. Но отработал без проблем. А вот, например, проект "Чистюля" уже начал "хулиганить". Идея кода взята со страницы: http://wiki.amperka.ru/robot "Загрузи код в Iskra JS, поставь Робоняшу на светлый стол, а затем нажми кнопку PLAY на пульте." Код (Javascript): var FORWARD_SPEED = 0.3; var BACKWARD_SPEED = 0.8; var BORDER_VALUE = 0.2; var intervalID; var cleaner = require('robot-2wd').connect(); var receiver = require('ir-receiver').connect(P3); var lineSensor = require('analog-line-sensor'); var leftSensor = lineSensor.connect(A0); var rightSensor = lineSensor.connect(A1); function clean() { if (leftSensor.read() > BORDER_VALUE) { cleaner.go({l: 0, r: -BACKWARD_SPEED}); } else if (rightSensor.read() > BORDER_VALUE) { cleaner.go({l: -BACKWARD_SPEED, r: 0}); } else { cleaner.go({l: FORWARD_SPEED, r: FORWARD_SPEED}); } } receiver.on('receive', function(code) { if (code === receiver.keys.PLAY) { if (!intervalID) { leftSensor.calibrate({white: leftSensor.read()}); rightSensor.calibrate({white: rightSensor.read()}); intervalID = setInterval(clean, 10); } else { cleaner.stop(); intervalID = clearInterval(intervalID); } } }); До этого эксперимент с датчиками линии Код (Javascript): var analogSensor = require('analog-line-sensor') .connect(A0); var showSignal = function() { print('signal:', analogSensor.read('V'), 'volts'); }; setInterval(showSignal, 100); удался вполне нормально. Но при загрузке "прошивки" появляется вот такое сообщение: Код (Javascript): ERROR: SD card must be setup with E.connectSDCard first WARNING: Module "motor" not found Uncaught Error: Field or method "MotorShield" does not already exist, and can't create it on undefined at line 1 col 31 a=a||{};var b=require('motor').MotorShield;this._leftMotor=a... ^ in function "Robot" called from line 1 col 12 new Robot(a); ^ in function "connect" called from line 7 col 44 var cleaner = require('robot-2wd').connect(); Как это Module "motor" not found??? Если с 3-й, 5-й или 7-й попытке всё грузится. При том, что ничего не меняется. Просто прошивка, при неизменно-подключенном роботе. Подскажите, пожалуйста в чем проблема!! P.S. Разумеется, эту ветку (http://wiki.amperka.ru/js:ide) читал. Скажу честно, немного изменил подход. Закачал все модули локально и поместил все в папку modules. При этом, код robot-2wd.js изменил следующим образом: Код (Javascript): var Robot = function(opts) { opts = opts || {}; var MotorShield = require('motor').MotorShield; this._leftMotor = opts.leftMotor || MotorShield.M1; this._rightMotor = opts.rightMotor || MotorShield.M2; var acceleration = opts.acceleration || 0.2; this.acceleration(acceleration); this._speedIntervalID = null; this._init(); }; Robot.prototype._init = function() { var Motor = require('motor'); // как видно, тут тоже без @amperka this.leftMotor = Motor.connect(this._leftMotor); this.rightMotor = Motor.connect(this._rightMotor); this.stop(); }; Robot.prototype.stop = function() { this._lCurrentSpeed = 0; this._rCurrentSpeed = 0; if (this._speedIntervalID) { clearInterval(this._speedIntervalID); this._speedIntervalID = null; } this.leftMotor.write(this._lCurrentSpeed); this.rightMotor.write(-this._rCurrentSpeed); }; Robot.prototype.go = function(opts) { opts = opts || {}; this._lSpeed = opts.l === undefined ? 0 : E.clip(opts.l, -1, 1); this._rSpeed = opts.r === undefined ? 0 : E.clip(opts.r, -1, 1); if (this._speedIntervalID === null) { this._speedIntervalID = setInterval(this._updateSpeed.bind(this), 20); } }; Robot.prototype.acceleration = function(acceleration) { if (acceleration === undefined) { return this._acceleration; } else { this._acceleration = E.clip(acceleration, 0, 1); } }; Robot.prototype._updateSpeed = function() { var accel = this.acceleration(); this._lCurrentSpeed = accel * this._lSpeed + (1 - accel) * this._lCurrentSpeed; this._rCurrentSpeed = accel * this._rSpeed + (1 - accel) * this._rCurrentSpeed; this.leftMotor.write(this._lCurrentSpeed); this.rightMotor.write(-this._rCurrentSpeed); }; exports.connect = function(opts) { return new Robot(opts); }; В Settings -> Projects я прописал путь к папке modules, в которой и лежат все скрипты. Поэтому при require не использую '@amperka/' Спасибо.
Очевидно, дело в microUSB - разъёме. Так как иногда даже соединиться не получается и выскакивает ошибка: "Unable to retrieve board information. ConnectionError". После подбора положения шнура в разъёме вопрос решается. Не по теме: Если честно, то в TETRA с разъемом решение верное. Даже в книжке к набору значится: "Способен выдержать жёсткую детскую эксплуатацию". А тут разъём держится только на точечной пайке. Шнур короткий и совсем не гибкий. Плюс ко всему, сам разъем, вероятно, не предназначен для постоянных сочленений - расчленений.