понедельник, 9 июля 2012 г.

Как собрать кронштейны и сервоприводы

Прошу прощения за фото. Поздно, темно, снимал Митиной головой.




Перед установкой сервомоторов их надо бы выставить в правильное положение. Эти сервы поворачиваются на 180 градусов, поэтому нижний (горизонтальный поворот головы) надо установить на 90 градусов. С верхним сервомотором  (вертикальное мотание головой) сложнее. Для монтажа его лучше поставить в положение, когда закреплённый телефон будет смотреть строго вперёд. В программе управления роботом это направление соответствует 30-ти градусам. Но надо убедиться, что минимальный угол (в программе управления это 0 градусов) достижим – закреплённому держателю телефона ничего не должно мешать.


А ещё у робота Ромы есть настоящий хвост. Настоящий, потому что он двигается, в отличие от хвоста Мити. Управляет хвостом ещё один сервопривод. Его тоже надо бы установить в центральное положение (90 градусов).


Для поворота сервомоторов в положение для установки надо запустить такой скетч, приведённый ниже. Кстати, в скетче даны действующие пины контроллера для управления сервоприводами. Менять не надо бы, будем привыкать к общей распиновке :)


Чуть позже сделаем статью по используемым пинам контроллера.

#include <Servo.h>

// Пины контроллера для управления сервоприводами робота.
int servoHeadHorizontalPin = 9;
int servoHeadVerticalPin = 10;
int servoTailPin = 11;

// Объекты для управления сервоприводами.
Servo servoHeadHorizontal;
Servo servoHeadVertical;
Servo servoTail;

// Функция инициализации скетча:
void setup()
{
  // Установка сервопривода горизонтального поворота головы в положение для монтажа:
  pinMode(servoHeadHorizontalPin, OUTPUT);
  servoHeadHorizontal.attach(servoHeadHorizontalPin);
  servoHeadHorizontal.write(90);

  // Установка сервопривода вертикального поворота головы в положение для монтажа:
  pinMode(servoHeadVerticalPin, OUTPUT);
  servoHeadVertical.attach(servoHeadVerticalPin);
  servoHeadVertical.write(30);

  // Установка сервопривода поворота хвоста в положение для монтажа:
  pinMode(servoTailPin, OUTPUT);
  servoTail.attach(servoTailPin);
  servoTail.write(30);
}

// Функция главного цикла не нужна:
void loop()
{
}


1 комментарий:

  1. фундаментально ! =)
    Хвостом заведует микросервопривод 9g или меньше. у меня он приклеен снизу платформы на двойной скотч. Как нибудь напишу туториал с фотками и чертежами =)

    ОтветитьУдалить