Прошивка Arduino

Панорамный робот. Прошивка Код для Arduino IDE. Самый первый и очень простой вариант, зато понятный :-)

// Panorobot.ru

#include

Servo servopan; // Поворот
Servo servotilt; // Наклон

int rows = 6; // Общее кол-во кадров по горизонтали (в расчете на 180 градусов)
int cols = 5; // Общее кол-во кадров по вертикали

int tiltmin = 30; // самое нижнее положение камеры
int tiltmax = 200; // самое верхнее положение камеры
int tiltcenter = 85; // положение при окончании съемки (для хранения)

int panmin = 30; // самое левое положение камеры
int panmax = 170; // самое правое положение камеры
int pancenter = 103; // положение при окончании съемки (для хранения)

int currentpan = 0; // Текущий текущая строка
int currenttilt = 0; // Текущий текущая колонка

int pan;
int tilt;

int delayset = 2000; // Задержка на установку позиции камеры, чтоб ыне было «смаза»
int delaypress = 1000; // Задержка на установку экспозиции
int delayshoot = 15; // Задержка на съемку
int delaystart = 2000; // Задержка после включения

void setup()
{
servopan.attach(9);
servotilt.attach(10);
pinMode(12, OUTPUT); // Конфигурим на выход. Это управляющий сигнал для USB
digitalWrite(12, LOW);

servotilt.write(tiltcenter); // устанавливаем в положение для хранения
servopan.write(pancenter); // по центру

delay(delaystart);

digitalWrite(12, HIGH); // На всякий случай, т.к выл непонятный глюк с пропуском первого кадра
delay(2000);
digitalWrite(12, LOW);
delay(1000);

//*************************************************
// servopan.write(panmin);
// delay(5000);
// servopan.write(panmax);
// delay(60000);
//*************************************************
}

void loop()
{
for (currentpan = panmin; currentpan < panmax; currentpan = currentpan + (panmax — panmin)/rows)

{
servopan.write(currentpan);

for (currenttilt = tiltmin; currenttilt < tiltmax; currenttilt = currenttilt + (tiltmax — tiltmin)/cols)
{
servotilt.write(currenttilt);
delay(delayset);

digitalWrite(12, HIGH); // Съемка
delay(2000);
digitalWrite(12, LOW);
delay(1000);
}
}
servotilt.write(tiltcenter); // устанавливаем в положение для хранения
servopan.write(pancenter); // по центру
delay(10000);
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

+ 44 = 50