Главная » Радиоуправление
Призовой фонд
на декабрь 2017 г.
1. Спектроанализатор Arinst SSA-TG LC
Крокс
2. Термометр Relsib WT51
Рэлсиб
3. 1000 руб
PCBWay
4. 100 руб.
От пользователей

DIY платформа для танка - Управление по Bluetooth + движения по линии

DIY платформа для танка на Arduino -  Управление по Bluetooth (мобильное приложение на Android App Invertor 2) + автономный режим - движение по линии на макетах для соревнований Робофеста.

В первой части мы рассмотрим Управление по Bluetooth (мобильное приложение на Android App Invertor 2)

Платформа с шасси для танка предоставлена сервисом ЖелеZona. Но вообще, продается в Banggood и стоит всего ~15$.

Приступим к созданию движущейся платформы. В качестве контроллера будем использовать Arduino Nano. Схема соединений

Вот как получилось 

Управление танк будем осуществлять с планшета с ОС Android по Bluetooth. Нам нужна простая и понятная система создания кода для Android, наподобие системы Sctratch для Arduino, Будем использовать онлайн  редактор для визуального программирования для Android App Invertor 2. Страница проекта – http://ai2.appinventor.mit.edu.

После авторизации (можно использовать профиль google) или регистрации попадаем в свой профиль программы, где можем создать новый проект.

Сначала в панети Design создаем интерфейс нашего приложения, перетаскивая на экран необходимые компоненнты. Кроме визуальных компонентов необходимо добавить 4 невизуальных:

  • Bluetooth client из раздела Connectivity;
  • Clock из раздела Sensors (для получения данных из Bluetooth c периодичностью, установленной в Clock);
  • Notifer из UserInterface;
  • OrientationSensor.

Для создания кода переходим в раздел Block.

Скачать данный проект можно архива прикрепленного в конце статьи - my_bluetooth_car_aia.zip

Создаем app приложение и загружаем его на телефон - my_bluetooth_car_apk.zip

Скриншоты работы приложения

Теперь скетч на Arduino

основной файл - tank_cxemnet_01.ino

// подключаем файл настроек
#include "defines.h"

// Подключаем библиотеку SoftwareSerial
#include <SoftwareSerial.h>
// Создаем последовательный порт на пинах HC05_RX, HC05_TX
SoftwareSerial HC05(HC05_RX, HC05_RX);    // RX, TX
// Переменная для приема данных по Bluetooth.
char hc05_input;
// структура для сохранения настроек движения
struct MOVE {
  int left1;  //
  int left2;  //
  int leftpwm;  //
  int right1;  //
  int right2;  //
  int rightpwm;  //
  int pr;     // 1- ; 1- ; 1- ; 1- ;
};
MOVE MOVE1={0,0,255,0,0,255};
//текущий режим
int mode=STOP_MODE;
// скорость изменения состояния
unsigned long millis1=0;
// данные, пришедшие из последовательного порта
String inputString = "";        
// строка пришла
boolean stringComplete = false;
//*** данные из HC05
// команда
int command_serial=0;
// данные
int data_serial=0;
// flag для режима 2
boolean flag2=true;
//
int orient_speed_left=0;
int orient_speed_right=0;

// настройки
void setup()  {
  // запуск последовательных портов Serial и HC05 
  Serial.begin(9600);
  HC05.begin(9600);
  // резервирование 30 bytes для inputString:
  inputString.reserve(50);
  // инициализация и установка в начальное состояние
  ini_motors();
  set_motors(0,0,0,0,0,0);
  // старт!!!
  Serial.println("start");
}
// основная программа
void loop() {
   // проверка прихода строки из последовательного порта
   serialEventHC05();
   if (stringComplete) {
    Serial.println(inputString);
    // парсинг строки
    if(!parse_string()) {
        Serial.println("ERROR");        
    }
    else {
      run_command();    
    }
    
    // очистить строку
    inputString = "";
    stringComplete = false;
   }

    // изменение состояния моторов
    if(millis()-millis1>=MILLIS_M)  {
       millis1=millis();
       set_motors(MOVE1.left1,MOVE1.left2,MOVE1.leftpwm,MOVE1.right1,MOVE1.right2,MOVE1.rightpwm);
    }

}  

В продолжении мы рассмотрим автономный режим - движение по линии на макетах для соревнований Робофеста.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Плата Arduino
Arduino Nano 3.0
1 Поиск в LCSCВ блокнот
Драйвер электродвигателей
L293
2 Поиск в LCSCВ блокнот
Аккумулятор литиевый186502 Поиск в LCSCВ блокнот
Отсек для 2-х аккумуляторов1 Поиск в LCSCВ блокнот
Линейный регулятор
LM7805
1 Поиск в LCSCВ блокнот
Конденсатор10мкФ 25В2 Поиск в LCSCВ блокнот
Конденсатор0.1 мкФ1 Поиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Набор 4WD Kit Bluetooth
Набор 4WD Kit Bluetooth
USB-реле (2 канала) Конструктор - темброблок на LM1036
вверх