Робот, управляемый по Bluetooth

В этом блоге я покажу вам, как построить робота, управляемого по Bluetooth, с помощью модуля Bluetooth HC-05 и микроконтроллера Arduino. Вы можете использовать любое мобильное приложение bluetooth, доступное в playstore, для подключения вашего мобильного телефона к модулю bluetooth.

Необходимые компоненты

  • Arduino UNO
  • HC-05
  • Мотор-редукторы
  • ИС L293D

Arduino UNO

Arduino — это электронная платформа с открытым исходным кодом, основанная на простом в использовании аппаратном и программном обеспечении. Платы Arduino способны считывать входные данные — свет на датчике, палец на кнопке или сообщение в Твиттере — и превращать их в выходные данные — активировать двигатель, включить светодиод, опубликовать что-то в Интернете. Для этого используется язык программирования Arduino (основанный на проводке) и программное обеспечение Arduino (IDE), основанное на обработке.

Модуль Bluetooth HC-05

HC-05 — это популярный беспроводной модуль, который может добавить двустороннюю (полнодуплексную) функциональность в ваши проекты. Вы можете использовать этот модуль для связи между двумя микроконтроллерами, такими как Arduino, или для связи с любым устройством с поддержкой Bluetooth, таким как телефон или ноутбук. Многие приложения для Android уже доступны, что значительно упрощает этот процесс.

Мотор-редукторы

Это двигатель постоянного тока с редуктором для уменьшения скорости и увеличения крутящего момента и мощности. Этот тип двигателей обычно используется в робототехнике.

ИС L293D

IC L293D — это интегральная схема драйвера двигателя с двойным Н-мостом, которая может управлять током до 600 мА при напряжении от 4,5 до 36 вольт.

В этом приложении Bluetooth нажатие 0 выключает двигатель, а нажатие 1 заставляет двигатель 1 вращаться вправо. Аналогично, при нажатии 2 , 3 и 4, моторы 1 вращаются влево, мотор 2 вращается вправо и мотор 2 вращается влево, соответственно.

Код

int motorPin1 = 3;
int motorPin2 = 4;
int motorPin3 = 5;
int motorPin4 = 6;
int state;
int flag;
void setup() {
  Serial.begin(9600);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
    flag = 0;
  }
  if (state == '0') {
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW );
    if (flag = 0) {
      Serial.println("MOTOR:off");
      flag = 1;
    }
  }
  else if (state == '1') {
    digitalWrite(3, LOW);
    digitalWrite(4, HIGH);
    if (flag == 0) {
      Serial.println("MOTOR1:right");
      flag = 1;
    }
  }
  else if (state == '2') {
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW );
    if (flag == 0) {
      Serial.println("MOTOR1:left");
      flag = 1;
    }
  }
  else if (state == '3') {
    digitalWrite(5, LOW);
    digitalWrite(6, HIGH);
    if (flag == 0) {
      Serial.println("MOTOR2:right");
      flag = 1;
    }
  }
  else if (state == '4') {
    digitalWrite(5, HIGH);
    digitalWrite(6, LOW );
    if (flag == 0) {
      Serial.println("MOTOR2:LEFT");
      flag = 1;
    }
  }
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий