#Робоняша

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем kotboriska1, 26 дек 2016.

  1. kotboriska1

    kotboriska1 Нуб

    Подскажите пожалуйста, как правильно написать код, чтобы двухколесным роботом, через Bluetooth модуль HC-05, можно было управлять с телефона (не используя библиотеки Servo, как это показано в уроках по Java Skript на AmperkaRu). Заранее спасибо!!!
     
  2. acos

    acos Официальный гик Администратор

    Вот такой есть код для приложения https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller

    Используем bluetooth hc05, и Motor Shield

    Код (Javascript):
    var Motor = require('@amperka/motor');
    var M1 = Motor.connect(Motor.MotorShield.M1);
    var M2 = Motor.connect(Motor.MotorShield.M2);

    var velocity = 0;  //Здесь будет храниться значение скорости
    var defaultSpeed = 0.5; // это число мы будем использовать в логике поворотов

    var drive = function(m1, m2) {
      M1.write(m1);
      M2.write(m2);
    };

    PrimarySerial.setup(9600);

    PrimarySerial.on('data', function (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') {  //или если пришла команда "I", едем вперёд и налево
        drive(defaultSpeed - velocity, defaultSpeed + velocity);
      } else if (dataIn === 'H') {  //или если пришла команда "H", едем назад и налево
        drive(-defaultSpeed + velocity, -defaultSpeed - velocity);
      } else if (dataIn === 'S') {  //или если пришла команда "S", стоим
        drive(0, 0);
      // если к нам пришло значение от 0 до 9
      } else if (((dataIn - '0') >= 0) && ((dataIn - '0') <= 9)) {
        velocity = (dataIn - '0') * 0.1; //сохраняем новое значение скорости
      } else if (dataIn === 'q') { //если "q" - полный газ!
        velocity = 1;
      }
    });
     
     
  3. Alexandre

    Alexandre Нуб

    Уважаемый acos, а можно точно такой же код для ардуино ???? ПОЖАЛУЙСТА!!!
     
  4. acos

    acos Официальный гик Администратор

    Ссылка на код для arduino есть прям на странице с приложением https://sites.google.com/site/bluetoothrccar/home/3BluetoothModulesAndArduinoCode

    Под Strela есть код прямо на странице с описанием стрелы http://wiki.amperka.ru/продукты:strela#управление_роботом_с_мобильного_телефона_через_bluetooth-модуль

    Какая у вас arduino и какой драйвер двигателей?
     
  5. Alexandre

    Alexandre Нуб

    У меня Iskra Neo, Motor Shield и hc-06.
    Спасибо ОГРОМНОЕ за ссылки. Будем учиться.