Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
main:shields:motor_shield [2020/03/30 12:03]
smartadmin ↷ Страница перемещена из main:шилды:motor_shield в main:shields:motor_shield
main:shields:motor_shield [2020/07/27 16:16]
smartadmin [Пример подключения и использования]
Строка 40: Строка 40:
   * Разъём для внешнего питания (со светодиодом-индикатором)   * Разъём для внешнего питания (со светодиодом-индикатором)
   * Совмещает в себе два шилда - шилд для управления моторами и сенсор шилд   * Совмещает в себе два шилда - шилд для управления моторами и сенсор шилд
 +
 +==== Библиотеки ====
 +  * [[http://​files.smartelements.ru/​know_libs/​robotSE.zip|Библиотека robotSE]]
 +
 +==== Описание библиотеки ====
 +Для более удобной работы с шилдом предусмотрена библиотека robotSE. Ниже приведено описание работы с библиотекой.
 +
 +=== Инициализация ===
 +
 +
 +Инициализация и создание объекта для управления движением происходит с помощью типа robotSE. Простейший способ создания объекта робота:​
 +
 +<​file>​
 +robotSE myRobot;
 +</​file>​
 +
 +При таком вызове выводы шилда назначены по-умолчанию. Если требуется указать явно номера выводов,​ используйте создание объекта с параметрами:​
 +
 +<​file>​
 +robotSE myRobot(E1, E2, M1, M2, speed)
 +</​file>​
 +где:
 +  - **E1** - вывод подключения пина мотор-шилда Е1
 +  - **E2** - вывод подключения пина мотор-шилда E2
 +  - **M1** - вывод подключения пина мотор-шилда M1
 +  - **M2** - вывод подключения пина мотор-шилда M2
 +  - **speed** - скорость вращения моторов (задаётся значением от 0 до 255, где 0 - колёса вращаться не будут). По-умолчанию скорость равна 150.
 +
 +=== Установка скорости ===
 +Для управления скоростью предусмотрен метод **setSpeed(speed)**,​ имеющий единственный параметр - скорость,​ от 0 до 255.
 +
 +=== Движение ​ ===
 +Для управления движением предусмотрены следующие методы (движение происходит со скоростью,​ указанной при изначальном создании объекта робота или установленной с помощью метода setSpeed(speed)):​
 +
 +  * **move_forward()** - робот движется вперед
 +  * **move_right()** - робот движется вправо
 +  * **move_left()** - робот движется влево
 +  * **move_back()** - робот движется назад
 +  * **move_stop()** - робот останавливается
 +  * **randomMove()** - робот движется в случайном направлении. Техника движения следующая:​ сначала случайным образом робот поворачивает с заданной выше скоростью в течении 200 мс, затем движется вперёд.
 +
  
 ===== Пример подключения и использования ===== ===== Пример подключения и использования =====
Строка 60: Строка 101:
 **Скетч для загрузки:​** **Скетч для загрузки:​**
 <file Arduino> <file Arduino>
-#define E1 6 //​Вывод платы расширения Motor Drive Shield, используемый для контроля скорости мотора А. 
-#define E2 5 //​Вывод платы расширения Motor Drive Shield, используемый для контроля скорости мотора В. 
-#define M1 7 //​Вывод платы расширения Motor Drive Shield, используемый для контроля направления вращения мотора А. 
-#define M2 4 //​Вывод платы расширения Motor Drive Shield, используемый для контроля направления вращения мотора В. 
- 
-int motorSpeed = 255;    //​Переменная для хранения скорости вращения моторов (вы можете задать свою скорость вращения колес). 
 int delay_time = 1500; int delay_time = 1500;
  
-void motor_drive_config() //​Инициализация выводов платы расширения Motor Drive Shield. 
-{ 
-  pinMode(M1, OUTPUT); ​   //​Назначение вывода M1 выходом. 
-  pinMode(M2, OUTPUT); ​   //​Назначение вывода M2 выходом. 
-  pinMode(E1, OUTPUT); ​   //​Назначение вывода E1 выходом. 
-  pinMode(E2, OUTPUT); ​   //​Назначение вывода E2 выходом. 
-} 
- 
-void move_forward() //​Движение робота вперед. 
-{ 
-  digitalWrite(M1,​ HIGH); ​      //​Левые колеса вращаются вперед. 
-  digitalWrite(M2,​ HIGH); ​      //​Правые колеса вращаются вперед. 
-  analogWrite(E1,​ motorSpeed); ​ //​Скорость вращения правых колес. 
-  analogWrite(E2,​ motorSpeed); ​ //​Скорость вращения левых колес. 
-} 
- 
-void move_right() //​Движение робота вправо. 
-{ 
-  digitalWrite(M1,​ LOW);        //​Левые колеса вращаются назад. 
-  digitalWrite(M2,​ HIGH); ​      //​Правые колеса вращаются вперед. 
-  analogWrite(E1,​ motorSpeed); ​          //​Скорость вращения левых колес. 
-  analogWrite(E2,​ motorSpeed); ​ //​Скорость вращения правых колес. 
-} 
- 
-void move_left() //​Движение робота влево. 
-{ 
-  digitalWrite(M1,​ HIGH); ​      //​Левые колеса вращаются вперед. 
-  digitalWrite(M2,​ LOW);        //​Правые колеса вращаются назад. 
-  analogWrite(E1,​ motorSpeed); ​ //​Скорость вращения левых колес. 
-  analogWrite(E2,​ motorSpeed); ​          //​Скорость вращения правых колес. 
-} 
- 
-void move_stop() //​Остановка робота. 
-{ 
-  digitalWrite(M1,​ LOW);  //​Левые колеса вращаются назад. 
-  digitalWrite(M2,​ LOW);  //​Правые колеса вращаются назад. 
-  analogWrite(E1,​ 0);     //​Скорость вращения колес снизить до 0. 
-  analogWrite(E2,​ 0);     //​Скорость вращения колес снизить до 0. 
-} 
- 
-void move_back() //​Движение робота назад. 
-{ 
-  digitalWrite(M1,​ LOW);        //​Левые колеса вращаются назад. 
-  digitalWrite(M2,​ LOW);        //​Правые колеса вращаются назад. 
-  analogWrite(E1,​ motorSpeed); ​ //​Скорость вращения левых колес. 
-  analogWrite(E2,​ motorSpeed); ​ //​Скорость вращения правых колес. 
-} 
  
 void setup() // Задание начальных параметров системы. void setup() // Задание начальных параметров системы.
 { {
-  motor_drive_config(); ​      //​инициализация выводов платы расширения Motor Drive Shield. + 
-  move_stop(); ​               //​начальная позиция робота — робот стоит. ​ +
 } }