Интернет - магазин инструкций к конструктору Lego Education

Мобильный робот и его программа

04.12.2017, 15:19
Источник: автор: Влад Шалаев

nРаботу выполнил: Гапонов Игорь Александрович ученик 10 класса.
nРуководитель: Игнатьев Павел Алексеевич

Скачать работу (174 кб, .doc)

 

Цель – создать мобильного робота на колесной платформе

Задачи:
1. Выбрать компонентную
базу и собрать робота
2. Написать простую
программу для движения
робота по заданной
траектории и произвести
её отладку.

Роботы используются во всех сферах

Военное дело, промышленность, быт

nПонятие «мобильный робот» подразумевает электромеханическое устройство способное самостоятельно передвигаться по заданной программе.

Мобильный робот с

ультразвуковым датчиком

препятствий

Программа: самостоятельное движение по помещению с

огибанием препятствий

 

              Посмотреть видео:

1. Робот - крокодил видео в формате .3gp

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

видео в формате .3gp

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

видео в формате .3gp

 

 

 

 

Основные части мобильного робота:

 

 

 

 

 

Алгоритм подачи напряжения

 

Мотор

Время (мс)

Напряжение

(условие в программе)

1

2

 

2000

0

0

1

2

200

+120

50

1

2

1000

+120

+200

1

2

1000

+200

+200

1

2

200

0

0

1

2

1000

+120

-200*

1

2

1000

+200

-200

1

2

200

+200

0

1

2

2000

0

0

1

2

3

1500

 

-200

0

+100

1

2

3

2000

 

-120

0

+100

* от начального значения на выходе

 

Программа для движения робота по траектории внутри круга:

#include <AFMotor.h> 

AF_DCMotor motor1(1);

AF_DCMotor motor2(2);

AF_DCMotor motor3(3);

void setup() {

}

void loop() {

motor1.run(RELEASE);

motor2.run(RELEASE);

 

motor1.setSpeed(0);

motor2.setSpeed(0);

delay (2000);

motor1.run(FORWARD);

motor2.run(RELEASE);

motor1.setSpeed(120);

motor2.setSpeed(50);

delay (200);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(120);

motor2.setSpeed(200);

delay (1000);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(200);

motor2.setSpeed(200);

delay (1000);

motor1.run(RELEASE);

motor2.run(RELEASE);

motor1.setSpeed(0);

motor2.setSpeed(0);

delay (200);

motor1.run(FORWARD);

motor2.run(BACKWARD);

motor1.setSpeed(120);

motor2.setSpeed(200);

delay (1000);

motor1.run(FORWARD);

motor2.run(BACKWARD);

motor1.setSpeed(200);

motor2.setSpeed(200);

delay (1000);

motor1.run(FORWARD);

motor2.run(RELEASE);

motor1.setSpeed(120);

motor2.setSpeed(0);

delay (200);

motor1.run(RELEASE);

motor2.run(RELEASE);

motor1.setSpeed(0);

motor2.setSpeed(0);

delay (2000);

motor1.run(BACKWARD);

motor2.run(RELEASE);

motor3.run(FORWARD);

 

motor1.setSpeed(200);

motor2.setSpeed(0);

motor3.setSpeed(100);

 

delay (1500);

motor1.run(BACKWARD);

motor2.run(RELEASE);

motor3.run(FORWARD);

 

motor1.setSpeed(120);

motor2.setSpeed(0);

motor3.setSpeed(100);

 

delay (2000);

}

 

 Пояснение к программе:

 

 

Для подключения библиотеки силового модуля вводится строка #include <AFMotor.h> в заголовке программы.

В программе создаём  объект для

двигателя

на 1 канале (M1)

и объект для двигателя на 2 канале (M2)

 с помощью строк:

AF_DCMotor motor1(1);

AF_DCMotor motor2(2);

В программе создаём  объект для

двигателя

на 1 канале (M1)

и объект для двигателя на 2 канале (M2)

 с помощью строк:

AF_DCMotor motor1(1);

AF_DCMotor motor2(2);

Для сигнала заднего хода группой

светодиодов

создадим объект с помощью строки

 AF_DCMotor motor3(3);

Любая программа на С+

должна иметь строки

void setup() {

}

void loop() { 

Для управления движением применяются команды библиотеки силового модуля: FORWARD (движение вперед), BACKWARD (движение назад) и RELEASE (остановка). Также необходимо осуществлять управление напряжением двигателей.

Для этого применяется команда motorX.setSpeed(Y),

где X-номер объекта для двигателей,Y-уровень напряжения в пределах от 0 до 200.

Время выполнения команд

определяется строкой delay (X),

где X-время в миллисекундах.

 

 Поворот управляющего двигателя осуществляется подачей напряжения и сменой полярности командами FORWARD и BACKWARD.

На поворотах вначале подаётся неполное

 напряжение

на двигатели командой motor1.setSpeed(120) с

плавным

 разгоном командой motor1.setSpeed(200).

Перед началом выполнения программы и

возвращением

назад дается задержка в 2 секунды командой delay (2000).

Для плавного вхождения в поворот также используется

задержка в 200 миллисекунд командой delay (200).

При заднем ходе включаются светодиоды на третьем

канале.

 

 

Ключевики:
робототехника
робот
Роботы своими руками
которая пишет время на доске
Сделай сам механическую руку
include
AFMotor
датчик
двигатель
помощь
напряжения
формат
видео
программа
объект
канал
motor3
BACKWARD
DCMotor
RELEASE
FORWARD
delay
motor2
motor1
setSpeed
Мобильный робот


Манипулятор Lynxmotion AL5D
  • Этот робот оупенсорсный, так что его цифровые 3D-исходники и инструкции по сборке можно бесплатно скачать исходники робота на сервисе ...
  • НАЗАД
    Трансформер ростом в 7 метров из старого автомобиля

    Трансформер ростом в 7 метров из старого автомобиля
  • Один из жителей Америки сконструировал из старого автомобиля семиметрового робота-трансформера по типу тех, что были показаны в одноимённом фильме. ...
  • ВПЕРЁД

    Возможно Вас заинтересует:
    Мобильный робот от INEX - MicroCamp v 2.0: сборка
    Мобильный робот от INEX - MicroCamp v 2.0: сборка

    QR-код адреса страницы:

    Смотрите также:

    Обратите внимание полезная информация.