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

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

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

— arduino nano:



— bluetooth module HC-05:

image

— Z-Mini Motor Sensor Shield L293D:

image

— 2WD Motor Chassis:

image

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

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

image

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

image

Тепер залишається скомпілювати програму, натиснувши на кнопку «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'а
// Мотори крутяться вперед
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, які не підтримують прозорий фон. Наприклад, зробити такий дизайн за півгодини або годину зможе будь непідготовлена людина:

image

P. S. Для тих, кому подобається вчитися на видеоуроках, я зняв ролик, що показує всі ті ж дії, які описані в даній статті. Ось він:


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.