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

04.12.2017, 15:19
»сточник: автор: ¬лад Ўалаев


–аботу выполнил: √апонов »горь јлександрович ученик 10 класса.
–уководитель: »гнатьев ѕавел јлексеевич
—качать работу (174 кб,.doc)

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

«адачи:
1. ¬ыбрать компонентную базу и собрать робота;
2. Ќаписать простую программу дл€ движени€ робота по заданной траектории;
3. ѕроизвести отладку программы.

существующие мобильные роботы
–оботы используютс€ во всех сферах


военные мобильные роботы
¬оенное дело, промышленность, быт


ѕон€тие Ђмобильный роботї подразумевает электромеханическое устройство способное самосто€тельно передвигатьс€ по заданной программе.


ћобильный робот с ультразвуковым датчиком преп€тствий
ѕрограмма: самосто€тельное движение по помещению с огибанием преп€тствий
ѕосмотреть видео:

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).
ѕри заднем ходе включаютс€ светодиоды на третьем канале.


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


¬ернутьс€ в рубрику:

–оботы своими руками

¬озможно ¬ас заинтересует:

ћобильный робот от INEX - MicroCamp v 2.0: сборка
ћобильный робот от INEX - MicroCamp v 2.0: сборка



ќписание бура купить порошок здесь. ≈сли вы хотите видеть на нашем сайте больше статей то кликните ѕоделитьс€ в социальных сет€х! —пасибо!
—мотрите также:

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