Интернет - магазин инструкций к конструктору 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).

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

канале.

 

 



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

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

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

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

    Про других роботов:

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