Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Слайдер для камеры на Arduino

Слайдер — инструмент для видеосъёмки, позволяющий камере плавно передвигаться в пространстве,

Проект был создан на основе проекта слайдера с открытым исходным кодом - https://www.jjrobots.com/camera-slider-tracking-system-3d-printed/. Проект интересный, но электронная часть использует собственные платы разработчика, которые не хотелось приобретать. Решено было использовать то, что было в наличие - плату Arduino Mega и RAMPS, шаговые двигатели NEMA 17,драйверы А4988, оптический концевой выключатель и дисплей MKS Mini 12864 v1.0 с энкодером. 

Были напечатаны детали на 3d-принтере (скачать можно на сайте проекта) , куплен профиль 20 на 20 V-slot. Сборку слайдера делал по инструкции https://www.jjrobots.com/camera-slider-kit-2-0-assembly-guide/

Дополнительно На 3d-принтере напечатал 2 корпуса:
MKS_Mini12864_V2.0_LCD_Box
Case_for_Arduino_Mega_R3_and_RAMPS_1.4

Схема подключения для электроники простая - плата RAMPS ставится на Arduino Mega, устанавливаются на плату Ramps два драйвера A4988 (оси x и y). К контактам осей x и y подключаются шаговые двигатели NEMA17.

Дисплей MKS_Mini12864_V1.0 подключается к плате RAMPS через переходник. Возникла проблема с подключением дисплея MKS Mini 12864 v1.0 к плате RAMPS. Дисплей подключается к плате RAMPS с помощью адаптера, но шлейф необходимо перевернуть на 180 градусов, надо стачивать, чтобы входило в разъем.

Программу пишем в среде Arduino IDE. Используем библиотеки 

U8g2lib   - для дисплея   https://github.com/olikraus/u8g2/wiki/setup_tutorial

RotaryEncoder - библиотека энкодера

Для сохранения настроек встроенная EEPROM

В скетче реализовано 2 режима

Режим 1

- Задается скорость перемещения каретки вдоль оси X
- Задается расстояние до которого каретка доедет, и начнет движение обратно до 0 и обратно до того
момента пока не нажмем стоп
- Задается скорость вращения второго двигателя
- задается расстояние с которого начнется вращаться второй двигатель
- Задается угол на который будет вращаться второй двигатель с заданной скоростью
- Есть возможность ВКЛ и ВЫКЛ функции: если она включена, то второй двигатель, когда начнет вращаться и
достигнит заданного угла, то он остановится и вращаться не будет. А если функция выключена, то после того
как второй двигатель достигнет своего заданного угла, то он начнет вращаться в обратную сторону до своего
прежнего состояния и так далее до того момента пока не нажмем кнопку Стоп

Режим 2 (Направление на объект)

- Задаются координаты объекта x и y относительно нулевой точки слайдера

- Задается расстояние до которого каретка доедет, и начнет движение обратно до 0 и обратно до того
момента пока не нажмем стоп

- Задается скорость перемещения каретки вдоль оси X

- При движении камера постоянно направлена на объект (на точку с координатами x, y)

 

Пункт меню < Камера > вращение камеры энкодером для установки в начальное положение

Меню двухуровневое. Навигация по пунктам меню вращением энкодера, выбор пункта меню - кнопка энкодера, изменение параметра - вращением энкодера, подтверждение выбора параметра - кнопкой энкодера. Для каждого режима свой набор параметров. 

const char *level0Names[12]={
  "Стоп",
  "Старт",
  "< Камера >",
  "Режим",
  "X ",
  "Y ",
  "V1  ",
  "L1 мм ",
  "V2  ",
  "L2 мм ",
  "Angle ",
  "Цикл ",
};
int arrpos0[]={1,2,3,6,7,8,9,10,11};
int countpos0=9;


int paramvalue[12]={0,  0,  5, 1, 1000, 1000, 100, 900,  5, 240,  50, 1};
int minvalue[12]=  {0,  0,  0, 1,    5,  100,  50, 100,  1,  20,   0, 0};
int maxvalue[12]=  {10,10, 10, 2, 2000, 5000, 400,2000, 50,1500, 180, 1};
int stepvalue[12]= {1,  1,  1, 1,   50,  100,   5,  20,  1,  20,   1, 1};
int kvalue[12] =   {1,  1,  1, 1,    1,    1,  10,   1, 10,   1,   1, 1};

Запуск из пункта меню Старт, которое сразу превращается в Стоп. Останов программы нажатие кнопки энкодера в пункте Стоп.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Плата Arduino
Arduino Mega
1 Поиск в магазине ОтронВ блокнот
ПлатаRAMPS 1.41 Поиск в магазине ОтронВ блокнот
LCD-дисплейMKS Mini 12864 v1.01 Поиск в магазине ОтронВ блокнот
Адаптер дляLCD2004 и LCD128641 Поиск в магазине ОтронВ блокнот
ДрайверA49882 Поиск в магазине ОтронВ блокнот
Шаговый двигательNEMA171 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Модуль измерения тока на ACS712 (30А)
Модуль измерения тока на ACS712 (30А)
Raspberry Pi 2 Discovery V8
вверх