Здравствуете, я решил поэксперементировать и сделать так что-бы РОБОНЯША преследовал вас а при приближении уезжал. Я уверен что до меня это сделали куча людей, но может быть и нет. Код (Javascript): var SPEED = 0.7; var DISTANCE_MIN = 85; var DISTANCE_MAX = 86; var sticker = require('@amperka/robot-2wd') .connect(); var ultrasonic = require('@amperka/ultrasonic').connect({ trigPin: P12, echoPin: P13 }); var check = function(distance) { if (distance < DISTANCE_MIN) { sticker.go({l: -SPEED, r: -SPEED}); }else if (distance > DISTANCE_MAX){ sticker.go({l: SPEED, r: SPEED}); }else { sticker.stop(); } }; setInterval(function() { ultrasonic.ping(function(error, value) { if (!error) { check(value); } }, 'cm'); }, 100); //когда тестировал робоняша не ехал из за низкого заряда. Но если и у вас такое, то пешите. Всё прочитаю и постараюсь исправить. :-) Предложения по улучшению кода тоже пишите, например: по вкл. выкл. функции по ИК пульту, и т.п. Буду очень признателен.
Вот не большой апгрейд. При нажатии так называемой кнопки "TOP" запускается указанная выше программа. Код (Javascript): var marsohod = require('@amperka/robot-2wd').connect(); var ir = require('@amperka/ir-receiver').connect(P3); ir.on('receive', function(code, repeat) { if (code === ir.keys.TOP) { var SPEED = 0.7; var DISTANCE_MIN = 85; var DISTANCE_MAX = 86; var sticker = require('@amperka/robot-2wd') .connect(); var ultrasonic = require('@amperka/ultrasonic').connect({ trigPin: P12, echoPin: P13 }); var check = function(distance) { if (distance < DISTANCE_MIN) { sticker.go({l: -SPEED, r: -SPEED}); }else if (distance > DISTANCE_MAX){ sticker.go({l: SPEED, r: SPEED}); }else { sticker.stop(); } }; setInterval(function() { ultrasonic.ping(function(error, value) { if (!error) { check(value); } }, 'cm'); }, 100);} }); Пожалуйста, помогите сделать так: при нажатии кнопки "POWER" программа останавливается. Сам не могу додуматься.
Я тот ещё советчик в js, но принцип такой: есть флаг разрешения. Если этот флаг true, то ваш код должен выполнятся. If (flag==true) { выполнять код } если флаг false, то код не выполняется (if пропускает код). Теперь нужно постоянно опрашивать приемник. Если пришел код клавиши "power", то нужно инвертировать флаг. flag=!flag как-то так. Проблема может быть если ваш код выполняется долго, на столько долго, что нужно будет нажимать клавишу "power" только когда мк опрашивает приемник. Но тут я уже не подскажу - не разбираюсь в js
Знания языка надо подтянуть. Компиляторы не могут обнаружить алгоритмические ошибки. Только синтаксические.