// подключаем библиотеку «motor» var Motor = require('@amperka/motor'); // подключаем первый мотор канала M1 на Motor Shield var motorOne = Motor.connect(Motor.MotorShield.M1); // подключаем второй мотор канала M2 на Motor Shield var motorTwo = Motor.connect(Motor.MotorShield.M2); // переменая для хранения значение скорости var velocity = 0; // это число мы будем использовать в логике поворотов var defaultSpeed = 0.5; // функция движения робота var drive = function(motorOne, motorTwo) { M1.write(motorOne); M2.write(motorTwo); }; // инициализируем Serial PrimarySerial.setup(9600); // если пришли данные на Bluetooth PrimarySerial.on('data', function (dataIn) { print(dataIn); if (dataIn === 'F') { // если пришла команда "F" // едем вперёд drive(velocity, velocity); } else if (dataIn === 'B') { // или если пришла команда "B" // едем назад drive(-velocity, -velocity); } else if (dataIn === 'L') { // или если пришла команда "L" // поворачиваем налево на месте drive(-velocity, velocity); } else if (dataIn === 'R') { // или если пришла команда "R" // поворачиваем направо на месте drive(velocity, -velocity); } else if (dataIn === 'I') { // или если пришла команда "I" // едем вперёд и направо drive(defaultSpeed + velocity, defaultSpeed - velocity); } else if (dataIn === 'J') { // или если пришла команда "J" // едем назад и направо drive(-defaultSpeed - velocity, -defaultSpeed + velocity); } else if (dataIn === 'G') { // или если пришла команда "G" // едем вперёд и налево drive(defaultSpeed - velocity, defaultSpeed + velocity); } else if (dataIn === 'H') { // или если пришла команда "H" // едем назад и налево drive(-defaultSpeed + velocity, -defaultSpeed - velocity); } else if (dataIn === 'S') { // или если пришла команда "S" // стоим drive(0, 0); } else if (((dataIn - '0') >= 0) && ((dataIn - '0') <= 9)) { // или если пришло значение от 0 до 9 // сохраняем новое значение скорости velocity = (dataIn - '0') * 0.1; } else if (dataIn === 'q') { // или если пришла "q" // полный газ velocity = 1; } });