Помогите исправить скетч
- Войдите на сайт для отправки комментариев
Вс, 22/02/2015 - 18:29
Есть скетч управляющий панорамной головкой из 2х микро серво. Нужно исправить, вместо одной серво отвечающей за горизонтальный поворот будет шаговый двигатель (48 шагов полный оборот). Буду благодарен за помощь.
#include <Servo.h>
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);
}
Проше порыться в гугле и найти готовый код для панорамной головки на шаговых моторах.
как пример http://arduino.ru/forum/proekty/robotizirovanaya-panoramnaya-golovka-nachalo-proekta
Проше порыться в гугле и найти готовый код для панорамной головки на шаговых моторах.
как пример http://arduino.ru/forum/proekty/robotizirovanaya-panoramnaya-golovka-nachalo-proekta
Спасибо, прям в точку. Осталось только разобраться как настроить кол-во снимков по вертикали и горизонтали.