====== Bluetooth-бот на Iskra JS ====== {{ :робототехника:troyka-h-bridge-bluetooth-control:troyka-h-bridge.4.jpg?nolink |}} * Платформы: Iskra JS * Языки программирования: JavaScript * Тэги: робот, bluetooth, мотор 12 мм, управление по bluetooth ===== Что это ===== Мы решили, что Slot Box годится не только для корпусов [[/slot-box:start|простых проектов]]. Мы взяли несколько деталей из [[amp>product/robonyasha-iskra-js?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki|Робоняши]] — Iskra JS, Power Bank, пару моторов и колёса. Потом добавили Н-мосты и Bluetooth. Электронику подключили через Slot Shield, а ходовую собрали из плашки #структора. Десять минут на сборку, ещё пять на прошивку — наш бот готов. {{ :робототехника:troyka-h-bridge-bluetooth-control:rc-car.jpg |}} Качайте на смартфоны приложения для управления по Bluetooth на свой вкус. Если что — мы пользуемся [[https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller&hl=ru|Arduino Bluetooth RC Car]]. ===== Что понадобится ===== - [[amp>product/iskra-js?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Iskra JS]] - [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Troyka Slot Shield]] - [[amp>product/dc-motor-12mm?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Мотор 12 мм]] 2 шт. - [[amp>product/troyka-bluetooth-hc-05?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Bluetooth HC-05 (Troyka-модуль)]] - [[amp>product/power-bank-li-ion?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Power Bank]] - [[amp>product/structor-slot-box?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Slot Box (#Структор)]] - [[amp>product/structor-wheels?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Колёса 620×10 мм и шаровая опора (#Структор)]] - [[amp>product/structor-motor-line?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Крепления моторов и датчиков линии (#Структор)]] - [[amp>product/troyka-h-bridge?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki | Н-мост (Troyka-модуль)]] ===== Видеообзор ====== {{youtube>_T6Gw4atiVk?large}} ===== Как собрать ===== - Установите Troyka Slot Shield на платформу Iskra JS. Джамперы на Iskra JS и Slot Shield обязательно должны быть установлены как это показано на схеме. {{ :робототехника:troyka-h-bridge-bluetooth-control:troyka-h-bridge-bluetooth-control_build1.png?nolink |}} - Установите Bluetooth-модуль на Troyka Slot Shield.{{ :робототехника:troyka-h-bridge-bluetooth-control:troyka-h-bridge-bluetooth-control_build2.png?nolink |}} - Установите два модуля H-мостов на Troyka Slot Shield. Джамперы на Н-мостах обязательно должны быть установлены как это показано на схеме. {{ :робототехника:troyka-h-bridge-bluetooth-control:troyka-h-bridge-bluetooth-control_build3.png?nolink |}} - Подключите провода моторов к клеммам Н-мостов.{{ :робототехника:troyka-h-bridge-bluetooth-control:troyka-h-bridge-bluetooth-control_build4.png?nolink |}} - Подключите Power Bank через внешний разъём к Iskra JS.{{ :робототехника:troyka-h-bridge-bluetooth-control:troyka-h-bridge-bluetooth-control_build5.png?nolink |}} - Схема собрана. Соберите корпус из деталей Slot Box, креплений моторов и колёс. - Прошейте платформу Iskra 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; } }); ====== Что дальше ====== Научиться создавать сложных роботов поможет электронный конструктор [[amp>product/robonyasha-iskra-js?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki |«Робоняша»]]. Если вы прошли [[amp>product/yodo?utm_source=man&utm_campaign=fs90r&utm_medium=wiki |«Йодо»]] и хотите использовать его детали для сборки Робоняши, не обязательно покупать весь набор — мы подготовили подборку компонентов, необходимых [[amp>product/yodo-to-robonjasha?utm_source=man&utm_campaign=troyka-h-bridge&utm_medium=wiki |для апгрейда первого эпизода]] до мобильного робота.