DIY: Робот с голосовым управлением и зрением на базе MakeBlock и Android. Пошаговая инструкция по созданию

27.10.2016 / 08:16
928
0
Рейтинг: + 0 - 0
Добавить в закладки
У кого в закладках
Содержание:
  1. Введение
  2. Видеопрезентация
  3. Шаг 1. Необходимые компоненты
  4. Шаг 2. Сборка базы
  5. Шаг 3. Реконфигурация оборудования
  6. Шаг 4. Прикрепление держателя телефона
  7. Шаг 5. Программирование платы MakeBlock Orion (Arduino Uno)
  8. Шаг 6. Создание мобильного приложения
  9. Шаг 7. Управление

Введение

Эта пошаговая инструкция обучит вас созданию собственноручно умного робота с компьютерным зрением, голосовым управлением, синтезом речи и другими функциями, используя всего лишь смартфон на Android.

Видеопрезентация




Шаг 1. Необходимые компоненты

Аппаратное обеспечение

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics
  1. Телефон с Android, который поддерживает OTG (Android KitKat или более поздняя версия). Большинство современных телефонов поддерживают OTG. В примере используется смартфон UMI Emax, поскольку он мощный и дешевый.
  2. Плата Arduino Uno. Рекомендуется использовать комплект MakeBlock Starter Robot Kit (можно использовать версию с ИК или Bluetooth).
  3. Верхняя часть держателя мобильного телефона (BlackFox Digidock CR-3104)
  4. OTG кабель (легко найти на Ebay или Amazon)
  5. Стандартный кабель микро USB (желательно очень короткий)
  6. Магнитная линза перископ (легко найти на Amazon или Ebay).

Программное обеспечение
  1. Arduino IDE
  2. DroidScript IDE

Шаг 2. Сборка базы

1. Сначала соберите стандартную модель гусеничного робота в соответствии с инструкциями MakeBlock.

2. Убедитесь, что вы можете управлять роботом с помощью прилагаемого инфракрасного контроллера.

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics

Шаг 3. Реконфигурация оборудования

1. Снимите батарейный блок и установите его внизу робота с помощью двух кабельных стяжек:

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics

2. Снимите ультразвуковой датчик и металлическую пластину, а затем снова установите их в нижнем положении, как показано на фото:

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics

3. Прикрепите ультра-звуковой датчик к порту 4 на плате контроллера.

Шаг 4. Прикрепление держателя телефона

- Установите держатель телефона в верхней части робота с помощью кабельных стяжек, двустороннего скотча или изоленты:

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics

- Поместите телефон в держатель и прикрепите перископную линзу к камере телефона:

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics

- Подключите кабель OTG и микро USB, а затем соедините их между телефоном и платой управления робота. Убедитесь сначала, что OTG кабель подходит к вашему телефону.

Шаг 5. Программирование платы MakeBlock Orion (Arduino Uno)

- Установите Arduino IDE

- Установите библиотеки MakeBlock Arduino

- Подключите плату контроллера робота к компьютеру с помощью стандартного кабеля микро-USB.

- Выберите «Arduino Uno» в качестве типа платы из меню «Инструменты».

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics

- Создайте программу по следующему коду:

//-------------------------------------------------------
// Smart Rover - Arduino Sketch for controlling a
// Makeblock robots from DroidScript via OTG cable.
//
// This program can be tested using the Aurduino serial
// monitor. 
//
// Examples:
//   type 'lft100x' to turn left at speed 100.
//   type 'buzy' to turn buzzer on, 'buzn' to turn it off.
//
// Copyright: droidscript.org
// License: Creative Commons Attribution ShareAlike 3.0
//--------------------------------------------------------


#include <MeOrion.h>
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>

//Global variables.
char g_version[] = "0.10\n";
MeDCMotor g_motorL( M1 ); 
MeDCMotor g_motorR( M2 );
MeUltrasonicSensor ultraSensor( PORT_4 );
unsigned long timer = 0;

//Setup the hardware.
void setup()
{
  //Setup USB serial comms.
  Serial.begin( 115200 );
  Serial.setTimeout( 100 );
}

//This function is called forever.
void loop()
{
  //Read serial commands.
  while( Serial.peek() != -1 )
  {
    //Read 3 character command.
    char cmd[4] = "---";
    Serial.readBytes( cmd, 3 );

    //Execute command.
    if( strcmp( cmd, "buz" )==0 ) Buzzer();
    else if( strcmp( cmd, "stp" )==0 ) Stop();
    else if( strcmp( cmd, "fwd" )==0 ) Forward();
    else if( strcmp( cmd, "rev" )==0 ) Reverse();
    else if( strcmp( cmd, "lft" )==0 ) Left();
    else if( strcmp( cmd, "rgt" )==0 ) Right();
    else if( strcmp( cmd, "ver" )==0 ) GetVersion();
  }

  //Report status every second.
  if( (millis()-timer) > 1000 )
  {
     timer += 1000;
     Report();
  }
}

//Get software version.
void GetVersion()
{
  Serial.print( g_version );
}

//Send status back to DroidScript App.
void Report()
{
  int dist = ultraSensor.distanceCm();
  Serial.println( String("dist:") + dist + String(";") );
}

//Control buzzer.
void Buzzer()
{
  //Read on/off parameter.
  char onOff;
  Serial.readBytes( &onOff, 1 );

  //Start of stop buzzer.
  if( onOff=='y' ) buzzerOn();
  else buzzerOff();
}

//Turn vehicle left.
void Left()
{
  //Read speed parameter.
  int speed = Serial.parseInt();

  //Turn on motors.
  g_motorL.run( -speed );
  g_motorR.run( speed );
}

//Turn vehicle right.
void Right()
{
  //Read speed parameter.
  int speed = Serial.parseInt();

  //Turn on motors.
  g_motorL.run( speed );
  g_motorR.run( -speed );
}

//Drive vehicle forward.
void Forward()
{
  //Read speed parameter.
  int speed = Serial.parseInt();

  //Turn on motors.
  g_motorL.run( speed );
  g_motorR.run( speed );
}

//Reverse vehicle.
void Reverse()
{
  //Read speed parameter.
  int speed = Serial.parseInt();

  //Turn on motors.
  g_motorL.run( -speed );
  g_motorR.run( -speed );
}

//Stop vehicle.
void Stop()
{
  //Turn off motors.
  g_motorL.run( 0 );
  g_motorR.run( 0 );
}
                

Шаг 6. Создание мобильного приложения


- Установите бесплатное приложение DroidScript IDE, которое доступно на Google Play.

- Перейдите по следующей ссылке с помощью браузера телефона и загрузите проект DroidScript ( файл SPK): - http://androidscript.org/demos/rover

- Используйте браузер файлов, такой как Explorer + или ES File Explorer и откройте загруженный файл .spk. Файл .project будет автоматически установлен в DroidScript (Выберите «Да» при запросе, доверяете ли вы  источнику).

Шаг 7. Управление

- Установите батарейки в плате контроллера и включите сдвижной выключатель питания.

- Вставьте кабель OTG в телефон (выберите DroidScript в качестве программы по умолчанию USB, если будет предложено)

- Запустите Rover App, нажав соответствующий значок в DroidScript.

- Нажмите клавишу  «FWD», затем клавишу «3» и  нажмите кнопку «Выполнить». Ваш робот должен начать двигаться вперед в течение 3-х секунд.

- Нажмите кнопку «Voice» и попробуйте что-нибудь сказать роботу. Примечание: лучше загрузить заранее программу распознавания голоса в настройках Android, если вы не имеете быстрого доступа к Интернету.

- Попробуйте положить любые предметы перед ультразвуковыми датчиками, когда робот  движется вперед.

- Попытайтесь держать цветные объекты перед камерой.

DIY, Makeblock, Android - Схемы роботов из конструкторов - Robotics

DroidScript
928
0 отзывов
0
Рейтинг: + 0 - 0

Другие инструкции

63133
0 отзывов
в закладках у 0 чел.
Рейтинг: + 2 - 0
19656
0 отзывов
в закладках у 0 чел.
Рейтинг: + 4 - 2
4514
0 отзывов
в закладках у 0 чел.
Рейтинг: + 0 - 0

...