Шасси 2WD SmartElements

Описание

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

Шасси является основой для набора «МиниБот», но также может использоваться и для других самостоятельных проектов.

Основные рабочие поверхности шасси выполнены из 3 мм прозрачного акрила. На платформах уже предусмотрены некоторые отверстия для размещения модулей и датчиков, в том числе контроллера (Uno или Leonardo). Акрил легко поддается обработке, а это значит, что вы можете самостоятельно доработать платформы под собственные требования, начиная от сверления дополнительных отверстий и заканчивая изменением формы самого шасси.

В комплект шасси входят:

  • монтажная площадка нижняя: 1 шт
  • монтажная площадка верхняя: 1 шт
  • мотор с редуктором (1:150): 2 шт
  • крепление для мотора: 2 шт
  • колесо с резиновой шиной: 2 шт
  • колесо опорное: 1 шт
  • стойка М3х40: 4 шт
  • винт М3х8: 10 шт

Шасси поставляется в коробке в разобранном виде. Инструкция по сборке входит в комплект.

Технические характеристики

  • рабочее напряжение моторов: 3-9 В
  • максимальный потребляемый ток одного мотора: 40 мА
  • габаритные размеры в собранном виде Д х Ш х В: 120 х 120 х 60 мм

Плюсы использования

  • В данном шасси, в отличии от аналогов используются более мощные и качественные моторы
  • Инструкция по сборке на русском языке
  • Полностью готовый комплект для сборки шасси

Инструкция по сборке

1. Прилагая небольшое усилие, наденьте колеса на валы моторов.

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

3. Установите опорное колесо на нижней монтажной площадке, используя встроенные в него винты (проследите за тем, чтобы не потерять подшипник, которым снабжено колесо).

4. Используя четыре металлических стойки М3х40 и восемь винтов М3х8, соедините верхнюю и нижнюю монтажные площадки друг с другом.

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

Пример: Для демонстрации работы шасси используется простейший робот, который движется по четырём направлениям (вперед, назад, вправо и влево). Робот собирается очень просто - берётся трёхколёсное шасси с двумя моторами, на платформу шасси крепится контроллер Smart Uno, на контроллер прикрепляется Power Shield, в свою очередь на Power shield прикрепляется Motor shield.

Для этого нам понадобится:

Подключение:

  1. Закрепите на верхней площадке шасси контроллер Smart Uno с помощью винтов и гаек M2, как указано в инструкции к шасси.
  2. На контроллере закрепите плату Power Shield, путём совмещения контактов платы расширения с контактами конроллера.
  3. Сверху, на Power Shield закрепите плату Motor shield, путём совмещения контактов Motor shield с контактами платы Power Shield.
  4. Подключите моторы к плате расширения Motor shield, к клеммным колодкам М1 и М2 (на схеме сверху выделены оранжевым прямоугольником с номером 3). Правый мотор подключите к клеммной колодке M1, красный провод к контакту «+», чёрный к контакту «-». Аналогично подключите левый мотор к клеммной колодке М2.

Скетч для загрузки:

#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;
 
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() // Задание начальных параметров системы.
{
  motor_drive_config();       //инициализация выводов платы расширения Motor Drive Shield.
  move_stop();                //начальная позиция робота — робот стоит.  
}
 
void loop() //Основной цикл
{
  move_forward();     //движение вперёд
  delay(delay_time);  //задержка
  move_right();       //движение вправо
  delay(delay_time);  //задержка
  move_left();        //движение влево
  delay(delay_time);  //задержка
  move_back();        //движение назад
  delay(delay_time);  //задержка
  move_stop();        //остановка
  delay(delay_time);  //задержка
}