_наши роботы_

Сборка моделей роботов
обзорное видео по сборке моделей роботов
mBot
mBot Ranger
Управление моторами mBot
У робота два мотора M1 - левый и M2 - правый.
Мы сможем программировать скорость вращения и направление вращения каждого из них по отдельности и, таким образом, программировать движения робота mBot вперед-назад и повороты влево-вправо.
Управление моторами mBot
У робота два мотора M1 - левый и M2 - правый.
Мы сможем программировать скорость вращения и направление вращения каждого из них по отдельности и, таким образом, программировать движения робота mBot вперед-назад и повороты влево-вправо.

Скорость вращения моторами на mBot варьируется в диапазоне от -255 до 255, причем от знака «+» или «-» числового значения скорости зависит направление вращения двигателем.
Если «+» - вращение DC-мотора по часовой стрелке, если смотреть на колесо, прикрепленное к валу двигателя. А если «-», то вращение против часовой стрелки. Учтем это при написании скетча для mBota: двигатели развернуты друг относительно друга на 180 градусов, поэтому, если нам нужно, чтобы робот двигался вперед, то для левого мотора нужно подать отрицательное значение скорости, а для правого — положительное.

Управление моторами в средах программирования mBot Arduino
Программируем движение робота mBot вперед-назад в mBlock
как это работает?
Давайте пошагово разберемся как работает эта программа.
1. Блок «mBot Program» - заголовок программы для робота mBot.
2. Блок «всегда» - это бесконечный цикл, внутри которого все блоки с командами
выполняются много-много раз, т.е. бесконечно, пока не выключите питание робота.
3. Блок «run forward at speed 100» (этот блок не переведен на русский язык, но смысл
переводится так: «бежать вперед на скорости 100») - включает вращение моторов
робота mBot так, чтобы он двигался вперед на скорости 100. Это не самая быстрая
скорость для моторов, но для нас сейчас главное разобраться в программировании, а
не быстрые гонки.
4. Блок «ждать 1 секунд» нужен для того, чтобы робот двигался вперед 1 секунду.
Программа в это время ничего не будет делать, просто ждать пока истечет 1 секунда,
зато робот mBlock за это время преодолеет некоторое расстояние, двигаясь вперед.
5. Блок «run backward at speed 100» (этот блок тоже не переведен на русский язык, но
смысл переводится так: «бежать назад на скорости 100») - это команда для робота
mBot двигаться назад (задним ходом) на скорости 100.
6. Блок «ждать 1 секунд» нужен для того, чтобы робот двигался назад 1 секунду.
7. После этого цикл «всегда» повторит все команды, начиная с блока «run forward at
speed 100» в пункте 3, и так до бесконечности.

Программирование микроконтроллеров роботов в среде Arduino mblock mbot ranger
Внимание! После прошивки микроконтроллера, начнется произвольное движение робота.
Чтобы не повредить Mbot, прошивку и проверку необходимо производить на весу.
Программируем движение робота mBot вперед-назад в Arduino IDE
Язык программирования C/C++ считается сложнее, чем Scratch, но зато позволяет более тонко управлять роботом. К тому же загрузка программы в память робота mBlock из Arduino IDE происходит гораздо быстрее, чем в mBlock.
Запустите программу Arduino IDE и наберите в ней следующий скетч (программу):

Подключаем библиотеку makeblock для платы mCore директивой:
#include "MeMCore.h"
Затем создаем объекты — левый и правый моторы, указывая в скобках порты, к которым они подключены на плате mCore:
MeDCMotor motorLeft(M1); //левый двигатель
MeDCMotor motorRight(M2); //правый двигатель
Значение скорости моторов 100 будем хранить в числовой переменной motorSpeed — это удобно для внесения изменений в программу в будущем:
uint8_t motorSpeed = 100;
Обязательная процедура void setup() выполняется один раз в момент включения робота или при нажатии на кнопку Сброс. Но нам не нужно, чтобы она содержала команды. Поэтому она «пустая»:
void setup()
{
}
Обязательная процедура void loop() - это бесконечный цикл. т.е. аналог блока «всегда» в mBlock (Scratch). Она содержит все команды для движения робота, которые расположены между фигурными скобками { }.
При движении робота вперед учитываем, что левый двигатель перевернуть относительно правого на 180 градусов, следовательно, чтобы робот mBot двигался вперед, его левый мотор должен вращаться против часовой стрелки: motorLeft.run(-motorSpeed),- внимание! числовое значение скорости со знаком минус. А правый мотор должен вращаться по часовой стрелке motorRight.run(motorSpeed) (числовое значение скорости со знаком плюс):
//ДВИЖЕНИЕ РОБОТА ВПЕРЕД
//вперед левый мотор
motorLeft.run(-motorSpeed);
//вперед правый мотор
motorRight.run(motorSpeed);


Запомни!!! Текст программы содержит много ценных пояснений, которые начинаются с символов // - таким образом мы можем комментировать программы, чтобы улучшить их понимание. Эти комментарии не влияют на команды программы, но весьма удобны для программистов, использование их считается очень хорошим тоном и указывает на высокий класс программиста, поэтому не стесняйтесь их применять и они неоднократно выручат в будущем.

Пауза в Arduino IDE измеряется в миллисекундах. В 1 секунде — 1000 миллисекунд, поэтому команда выглядит так:
delay(1000); //ждать 1 секунду пока робот едет вперед
Для начала движения робота назад, нам достаточно в командах управления моторами поменять знаки для значения скорости на противоположные:
//ДВИЖЕНИЕ РОБОТА НАЗАД
//назад левый мотор
motorLeft.run(motorSpeed);
//назад правый мотор
motorRight.run(-motorSpeed);
Еще раз применим команду «ждать секунду», пока робот движется назад (задним ходом):
delay(1000); //ждать 1 секунду пока робот едет назад
После этого подпрограмм void loop() снова начнет выполнять команды, которые между фигурными скобками {}, начиная с движения робота вперед, и так до бесконечности.



~
Сколько сантиметров проезжает робот за 1 секунду на скорости 100?

Как легче запомнить, к какому разъему M1 или M2 нужно подключать левый двигатель?
ты знаешь ответы на эти вопросы?
Движение робота mBot по квадрату
Усложняем движение робота, добавив повороты на 90 градусов (поворот по таймингу)
В блоке «всегда» бесконечного цикла будут выполнятся следующие блоки:
1. Блок «run forward at speed 100» («бежать вперед на скорости 100») включает моторы робота для движения вперед.
2. Блок «ждать 2 секунд» ожидает 2 секунды пока робот движется вперед.
3. Блок «run forward at speed 0» («бежать вперед на скорости 0») останавливает моторы робота.
4. Блок «ждать 0.5 секунд» ожидает полсекунды пока робот остановится окончательно.
5. Блок «turn left at speed 100» («поворачивать влево на скорости 100») включает моторы
робота для поворота налево.
6. Блок «ждать 0.7 секунд» ожидает 0,7 секунды пока робот осуществляет поворот. Это
время подобрано экспериментально, чтобы робот повернул как можно точнее на 90 градусов.
7. Блок «run forward at speed 0» («бежать вперед на скорости 0») останавливает моторы
робота.
8. Блок «ждать 0.5 секунд» ожидает полсекунды пока робот остановится окончательно.
После этого заново выполнятся все блоки, начиная с блока №1 по №8, и так бесконечно.

The Innovators:
Программируем движение робота mBot по траектории в Arduino IDE
При изменении программы, созданной к предыдущей главе, мы добавили команды «стоп
моторы!», которые в течение полсекунды полностью останавливают двигатели робота перед следующим маневром, а значит бережнее управляют моторами, избегая резких нагрузок при резком изменении направления вращения:



//стоп моторы!
motorLeft.stop();
motorRight.stop();
delay(500); // подождем 0,5 секунды пока робот остановится
Для поворота робота mBot налево на 90 градусов напишем команду левому мотору вращаться назад, а правому — вперед со скоростью 100, после чего поставим команду для ожидания 0.7 секунды (это время нужно подбирать экспериментально и оно сильно зависит от заряда батарей и от коэффициента трения покрытия поверхности, по которой будет ездить робот):
//поворот налево примерно на 90 градусов на месте
motorLeft.run(motorSpeed); //левый мотор назад
motorRight.run(motorSpeed); //правый мотор вперед
Выполняя данную программу, робот mBot проедет прямо в течение 2 секунд, остановится, повернет налево примерно на 90 градусов, остановится и будет повторять эти шаги в бесконечном цикле. В результате выполнения такой программы робот mBot будет ездить по траектории, близкой к квадрату.

~
Нужно ли заново подбирать время для поворота робота на 90 градусов, если после программирования поменять батарейки на более свежие?

Нужно ли заново подбирать время для поворота робота на 90 градусов, если после
программирования и испытания на одной поверхности, требуется запускать робота на более шершавой поверхности?

Почему команда для небольшой остановки моторов после движения, например, вперед или налево, может продлить срок исправной работы двигателей?
ты знаешь ответы на эти вопросы?
Добавляем нажатие кнопки
Mbot ожидает нажатие на кнопку
и только потом начинает движение
При включении питания робота или нажатии на кнопку Сброс программа запускается сначала. Первым блоком в программе стоит блок «ждать до». Условием, которое завершит ожидание данного блока, является нажатие кнопки на плате. Как только кнопка на роботе будет нажата, робот перейдет к выполнению следующей команды в программе, а это блок «всегда», который в бесконечном цикле выполняет команды, вложенные в него.
При загрузке программы в память робота mBot, он будет ожидать нажатия кнопки, чтобы начать движение. Теперь нам не нужно удерживать робота на весу, ожидая, что сразу после окончания загрузки он начнет движение.
После успешной загрузки программы, отсоедините USB-кабель от робота и установите его на поверхность, по которой он будет ездить.
Для начала движения нажмите кнопку на роботе, и mBot сразу начнет движение по квадрату.

проект "рейнжер"
теперь более автономный
База MakeBlock Ranger
Разработка набора деталей для сборки альтернативной модели робота на базе MB Ranger.

Проблема: на занятиях по технологии, конструированию и робототехнике, в проектной деятельности по данному направлению не хватает конструктивных элементов для полноценных моделей.

Решение: одним из направлений проектирования стало создание с помощью аддитивных технологий, собственных элементов конструктора, которые могут быть использованы для самых разных задач, в частности - для улучшения автономности модели робота.
проект "дельфин"
теперь не только на суше, но и на воде
автор модели Челядин Михаил
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website