Bluetooth-бот на Iskra JS
- Платформы: Iskra JS
- Языки программирования: JavaScript
- Тэги: робот, bluetooth, мотор 12 мм, управление по bluetooth
Что это
Мы решили, что Slot Box годится не только для корпусов простых проектов. Мы взяли несколько деталей из Робоняши — Iskra JS, Power Bank, пару моторов и колёса. Потом добавили Н-мосты и Bluetooth. Электронику подключили через Slot Shield, а ходовую собрали из плашки #структора.
Десять минут на сборку, ещё пять на прошивку — наш бот готов.
Качайте на смартфоны приложения для управления по Bluetooth на свой вкус. Если что — мы пользуемся Arduino Bluetooth RC Car.
Что понадобится
- Мотор 12 мм 2 шт.
Видеообзор
Как собрать
- Установите Troyka Slot Shield на платформу Iskra JS.
Джамперы на Iskra JS и Slot Shield обязательно должны быть установлены как это показано на схеме.
- Установите Bluetooth-модуль на Troyka Slot Shield.
- Установите два модуля H-мостов на Troyka Slot Shield.
Джамперы на Н-мостах обязательно должны быть установлены как это показано на схеме.
- Подключите провода моторов к клеммам Н-мостов.
- Подключите Power Bank через внешний разъём к Iskra JS.
- Схема собрана. Соберите корпус из деталей Slot Box, креплений моторов и колёс.
- Прошейте платформу 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; } });
Что дальше
Научиться создавать сложных роботов поможет электронный конструктор «Робоняша».
Если вы прошли «Йодо» и хотите использовать его детали для сборки Робоняши, не обязательно покупать весь набор — мы подготовили подборку компонентов, необходимых для апгрейда первого эпизода до мобильного робота.