====== 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 |для апгрейда первого эпизода]] до мобильного робота.