Bluetooth-бот на Iskra JS

  • Платформы: Iskra JS
  • Языки программирования: JavaScript
  • Тэги: робот, bluetooth, мотор 12 мм, управление по bluetooth

Что это

Мы решили, что Slot Box годится не только для корпусов простых проектов. Мы взяли несколько деталей из Робоняши — Iskra JS, Power Bank, пару моторов и колёса. Потом добавили Н-мосты и Bluetooth. Электронику подключили через Slot Shield, а ходовую собрали из плашки #структора.

Десять минут на сборку, ещё пять на прошивку — наш бот готов.

Качайте на смартфоны приложения для управления по Bluetooth на свой вкус. Если что — мы пользуемся Arduino Bluetooth RC Car.

Что понадобится

Видеообзор

Как собрать

  1. Установите Troyka Slot Shield на платформу Iskra JS.

    Джамперы на Iskra JS и Slot Shield обязательно должны быть установлены как это показано на схеме.

  2. Установите Bluetooth-модуль на Troyka Slot Shield.
  3. Установите два модуля H-мостов на Troyka Slot Shield.

    Джамперы на Н-мостах обязательно должны быть установлены как это показано на схеме.

  4. Подключите провода моторов к клеммам Н-мостов.
  5. Подключите Power Bank через внешний разъём к Iskra JS.
  6. Схема собрана. Соберите корпус из деталей Slot Box, креплений моторов и колёс.
  7. Прошейте платформу Iskra JS скриптом представленным ниже.

Исходный код

troyka-h-bridge-bluetooth-control.js
// подключаем библиотеку «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;
  }
});

Что дальше

Научиться создавать сложных роботов поможет электронный конструктор «Робоняша».

Если вы прошли «Йодо» и хотите использовать его детали для сборки Робоняши, не обязательно покупать весь набор — мы подготовили подборку компонентов, необходимых для апгрейда первого эпизода до мобильного робота.