Главная » Радиоуправление
Призовой фонд
на октябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Регулируемый паяльник 60 Вт
Паяльник
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
Pickit 2 - USB-программатор PIC-микроконтроллеров Сатфайндер
вверх