Автоматическая тележка для камеры

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
arthurilyuts
Сообщения: 30
Зарегистрирован: 07 дек 2014, 22:57

Re: Автоматическая тележка для камеры

Сообщение arthurilyuts »

ок, тогда подскажите пожалуйста какой драйвер нужно купить, чтобы все заработало как надо.
такой подойдет? ARDUMOTO
Последний раз редактировалось arthurilyuts 23 дек 2014, 01:45, всего редактировалось 1 раз.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Автоматическая тележка для камеры

Сообщение Mr.Kubikus »

Чтобы правильно выбрать драйвер надо знать параметры мотора, который будет стоять в изделии.

Вот с этим точно работает с мотором 12В 1А.
С уважением, Григорий
GitHub FB ВК
arthurilyuts
Сообщения: 30
Зарегистрирован: 07 дек 2014, 22:57

Re: Автоматическая тележка для камеры

Сообщение arthurilyuts »

Нашел данные по мотору:
DC 24V rpm 60 25W - URL тут

PS. по даташиту L289P, что стоит в Мотор-Шилд "ARDUMOTO" тянет до 46 Вольт и 2 Ампера на канал.
Теперь главное, чтобы аппаратная совместимость была с кодом.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Автоматическая тележка для камеры

Сообщение Mr.Kubikus »

На странице ARDUMOTO по вашей ссылке отсутствует информация, необходимая для принятия решения.
С уважением, Григорий
GitHub FB ВК
arthurilyuts
Сообщения: 30
Зарегистрирован: 07 дек 2014, 22:57

Re: Автоматическая тележка для камеры

Сообщение arthurilyuts »

Ураааа! Пришел новый Мотор-Шилд, а вместе с ним новые вопросы, точнее один вопрос.
Подключил все проводки как и на первый Мотор-Шилд, но вот что делать с Pin4 и Pin5?
Глянул по схематическим рисункам, (Pin4=Dir) и (Pin5=PWM).
Потом глянул на новый Мотор-Шилд и увидел что его (PWM=Pin3) и (Dir=Pin12)
Далее в Скетч-Коде и на страничке "Hardware_def.h" поменял значение выходов для "SB2"(вместо 3, прописал 4, а так же и проводок перенес на 4), для "M1_PWM_PIN" (вместо 5, прописал 3) и для "M1_DIR_PIN" (вместо 4, прописал 12) .

Код: Выделить всё

#define SB2_PIN 4

#define M1_PWM_PIN 3
#define M1_DIR_PIN 12
Урааааааааа!!!! Свершилось!!! Все заработало!!!
Вот тут видео как оно работает :
Ну, осталось дело за малым, все это хозяйство упаковать в красивую коробочку (пульт) и подключить уже в студии на реальную тележку : ) Ну и пустить в прямой эфир!!!!
Вложения
image-03-01-15-09-40.jpeg
image-03-01-15-09-40.jpeg (286.66 КБ) 27971 просмотр
image-03-01-15-09-08.jpeg
image-03-01-15-09-08.jpeg (319.34 КБ) 27971 просмотр
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Автоматическая тележка для камеры

Сообщение Mr.Kubikus »

Ура! Поздравляю с успешным запуском. Ну и с Новым Годом тоже =)
С уважением, Григорий
GitHub FB ВК
arthurilyuts
Сообщения: 30
Зарегистрирован: 07 дек 2014, 22:57

Re: Автоматическая тележка для камеры

Сообщение arthurilyuts »

Да, спасибо!!! И Вас с Новым Годом!
А можно еще вопрос?
Я тут вместе с новым мотор-шилдом еще и LCD (LcdI2Cmodule) прикупил вот точно такой, там только 4 провода http://zelectro.cc/LcdI2Cmodule.
Подключил к нашей схеме и даже какой-то текст прописал.
Но вот ни где в Скетч-Коде не нашел то "волшебное" слово, прописав которое, можно было бы считывать в %-ах "SPEED" и "RAMP".
Не поможете?

Код: Выделить всё

lcd.print("SPEED");           
lcd.setCursor(6,0);
lcd.print("%");            
lcd.setCursor(8,0);
lcd.print(SPEED_DATA);
lcd.setCursor(0, 1);                   
lcd.print("RAMP");             
lcd.setCursor(6,1);
lcd.print("%");  
lcd.setCursor(8,1);
lcd.print(RAMP_DATA);
Что вписать вместо "lcd.print(SPEED_DATA);" и "lcd.print(RAMP_DATA);" ?
Я уже пробывал и "M1_SETP" и "M1_PWM", выдает только или "0" или "1".
Вложения
image-04-01-15-01-10.jpeg
image-04-01-15-01-10.jpeg (73.9 КБ) 27971 просмотр
arthurilyuts
Сообщения: 30
Зарегистрирован: 07 дек 2014, 22:57

Re: Автоматическая тележка для камеры

Сообщение arthurilyuts »

Ураааааа! Сделал!
А именно, на странице "globals.h" добавил значения "int".

Код: Выделить всё

int M1_SETP, M1_RATE, motorSpeed, rampSpeed;
далее на страничке "control.ino" прописал "motorSpeed" и "rampSpeed"

Код: Выделить всё

  iTemp = map(R1, 0, 1023, 255, 0);
  M1_SETP = constrain(iTemp, 0, 255);
motorSpeed = map(iTemp,255, 0, 100, 0);

  iTemp = map(R2, 0, 1023, 50, 1);
  M1_RATE = constrain(iTemp, 1, 50);
 rampSpeed = map(iTemp, 50, 1, 0, 100);
Ну и на страничке "camera_motion_controller.ino" над "void setup" добавил код для LCD.

Код: Выделить всё

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
а под "void setup"

Код: Выделить всё

lcd.init();                              // Инициализация lcd             
  lcd.backlight();                   // Включаем подсветку
  lcd.setCursor(1,0);                      // Курсор находится в начале 1 строки
  lcd.print("TV KANAL 7/24");              // Выводим текст в 1 строке
  lcd.setCursor(0, 1);                     // Устанавливаем курсор в начало 2 строки
  lcd.print("Robo Dolly v3.01");
  delay(2000);                             // Ждем 2 сек
  lcd.clear(); 
ну и под "void loop"

Код: Выделить всё

  lcd.print("SPEED");                      // Выводим текст в начале 1 строки
  lcd.setCursor(6,0);                      // Устанавливаем курсор в 1 строке пропустив 6 символов
  lcd.print("%");                          // Выводим текст   
  lcd.setCursor(8,0);                      // Устанавливаем курсор в 1 строке пропустив 8 символов
  lcd.print(motorSpeed);                         // Выводим текст
  lcd.print("        "); 
  lcd.setCursor(0, 1);                     // Устанавливаем курсор в начало 2 строки
  lcd.print("RAMP");                       // Выводим текст
  lcd.setCursor(6,1);                      // Устанавливаем курсор в 2 строке пропустив 6 символов
  lcd.print("%");                          // Выводим текст
  lcd.setCursor(8,1);                      // Устанавливаем курсор в 1 строке пропустив 8 символов
  lcd.print(rampSpeed);                         // Выводим текст
  lcd.print("       "); 
Таким образом на экране отображается значение в %-ах.

Вот только под строками

Код: Выделить всё

 lcd.print(motorSpeed);
lcd.print(rampSpeed); 
пришлось прописать несколько пробелов, так как когда 3-х значное число падает до 2-х или 1-ого значного, то оставались нули. Например от 100 до 0 выглядело так : 100 - 990 - 980 - 970 - 960 --- 000.
Прописав несколько пробелов, ситуация исправилась и лишнии нули перестали выходить. Почему так, не знаю : (
Главное работает!!!
ОГРОМНОЕ человеческое СПАСИБО Вам за помощь ув. Kubikus!!!
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Автоматическая тележка для камеры

Сообщение Mr.Kubikus »

Всегда пожалуйста! Поздравляю с успешным решением задачи.
С уважением, Григорий
GitHub FB ВК
arthurilyuts
Сообщения: 30
Зарегистрирован: 07 дек 2014, 22:57

Re: Автоматическая тележка для камеры

Сообщение arthurilyuts »

А можно еще вопрос?
Какую переменную нужно прочитать в Скетч-Коде, что бы на LCD выводить значения "<<<Left" "Right>>>" (прописать направление движения тележки)?
На страничке "global.h" нашел значение "M1_DIR", если это оно, то как его правильно считать?
Я хочу прописать это в "if/else".
Подcкажите пожалуйста.
Ответить