Проста Bluetooth машинка на Arduino

Широке поширення і дешевизна платформи Arduino і різних робоплатформ дозволило любителям створювати радіокеровані машинки на будь-який смак. А широке поширення смартфонів дозволило використовувати їх як контролерів цих машинок. Головною проблемою для багатьох любителів Arduino є відсутність досвіду в програмуванні під Android. Сьогодні я розповім, як легко вирішити цю проблему, використовуючи середовище візуальної розробки android-додатків App Inventor 2.

Будівництво будь-якої машинки треба починати з «заліза», тому коротко опишу, що використовував для своєї машинки:

arduino nano

bluetooth module HC-05

Z-Mini Motor Sensor Shield L293D

2WD Motor Chassis

Конфігурація «заліза» не відіграє великої ролі в цьому проекті, тому шасі, шилд і саму ардуїно можна замінити на будь-які аналоги.

Тепер перейдемо до створення програми для Android. App Inventor - середовище візуальної розробки android-додатків, працює з браузера. Заходимо на сайт, дозволяємо доступ до свого акаунту в Google, натискаємо кнопку «create» і створюємо новий проект. У новому проекті методом «Drag and Drop» створюємо 4 кнопки для вибору напрямку руху і одну для підключення до нашого bluetooth модуля. Приблизно так:

Далі натискаємо на кнопку «Blocks» у правому верхньому куті і все тим же методом перетягування елементів створюємо логіку роботи нашого android-програми приблизно ось так:

Тепер залишається скомпілювати додаток, натиснувши на кнопку «Build».

З написанням скетчу я думаю у любителів ардуіно проблем не виникне, скажу лише, що можна взяти вибрати з готових скетчів, де керування машинкою здійснюється з комп'ютера по sireal порту. Я використав цей

скетч

int val;

int IN1 = 4;

int IN2 = 7;

int EN1 = 6;

int EN2 = 5;

void setup()

{

Serial.begin(9600);

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(EN1, OUTPUT);

pinMode(EN2, OUTPUT);

}

void loop()

{

if (Serial.available())

{

val = Serial.read();

//Задаємо рух вперед

if (val = «W» )//Натисніть W

{

//Висновки налаштовано за допомогою Motor Shield'a

//Мотори крутяться вперед

digitalWrite(EN1, HIGH);

digitalWrite(EN2, HIGH);

digitalWrite(IN1, HIGH);

digitalWrite(IN2, HIGH);

}

//Задаємо рух назад

if ( val == 'S')

{

digitalWrite(EN1, HIGH);

digitalWrite(EN2, HIGH);

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

}

//Задаємо рух праворуч

if ( val == 'D')

{

digitalWrite(EN1, HIGH);

digitalWrite(EN2, HIGH);

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

}

//Задаємо рух ліворуч

if ( val == 'A')

{

digitalWrite(EN1, HIGH);

digitalWrite(EN2, HIGH);

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

}

//Стоп режим

//Відпускання клавіш до порту «T»

if (val ='T')//Натисніть «T»

{

//Висновки ENABLE притягнуті до мінуса, мотори не працюють

digitalWrite(EN1, LOW);

digitalWrite(EN2, LOW);

}

}

}

Отже, ось така у мене вийшла машинка:

Ті, кому подобається дизайн у додатках, можуть трохи поміняти. Детально описувати як це робити не буду, там не складно самому розібратися. Скажу лише, що для цього в основному потрібно використовувати .png файли, замість .jpeg, які не підтримують прозорий фон. Наприклад, зробити такий дизайн за півгодини або годину зможе будь-яка непідготовлена людина:

P.S. Для тих, хто не стикався з розробкою додатків в App Inventor 2, я зробив більш докладний гайд з розробки цього додатку (для перегляду потрібно перейти на ютуб).

https://www.youtube.com/watch?v=y2jAJ05s2EQ

P.P.S. Збірка з понад 100 навчальних матеріалів по ардуїно для початківців і профі тут.

Онлайн курс по ардуїно на гіктаймс тут.

UPD 1.02.2017: виклав додаток на play market.

Аналогічні проекти з іншими шилдами тут.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND