Поворотный стол для 3d-фотосъемки "что можно сделать ещё?"

Тема в разделе "Arduino & Shields", создана пользователем Gigant74, 11 дек 2020.

  1. Gigant74

    Gigant74 Нуб

    Здравствуйте уважаемые разработчики из Амперки. С удовольствием собрал поворотный стол по вашей схеме. Всё доступно и понятно, и работает как часы.
    Вы задавались вопросом: Что можно сделать ещё?
    Можно добавить настройку количества кадров и скорости вращения двигателя перед каждой съёмкой. Для этого понадобится потенциометр, пара кнопок и четырёхразрядный индикатор.
    Так какой код добавить в программу и куда подключать потенциометр кнопки и индикатор на ардуино. Спасибо большое за проделанную работу.
     
    Последнее редактирование: 11 дек 2020
  2. Gigant74

    Gigant74 Нуб

    Что-то ссылка на поворотный стол не отобразилась. Вот она: photoTurntable
     
    Последнее редактирование: 11 дек 2020
  3. Gigant74

    Gigant74 Нуб

    Исходный код
    photoTurntable.ino
    // Характеристика двигателя,
    // количество шагов на один оборот вала
    #define MOTOR_STEPS_REVOLUTION 200

    // Передаточный коэффициент шестерёнок
    #define GEAR_COEFFICIENT 2

    // Итоговое количество шагов на один оборот столика
    #define STEPS_REVOLUTION GEAR_COEFFICIENT * MOTOR_STEPS_REVOLUTION

    // Необходимое количество кадров за один оборот
    #define SHOTS 40

    // Количество шагов двигателя между снимками
    #define STEPS_ON_SHOT STEPS_REVOLUTION/SHOTS

    // Выдержка времени между шагами.
    // Чем больше это число, тем медленнее вращается двигатель
    #define DELAY_TIME 8

    // Назначим пины
    // Troyka-Stepper:
    // Шаг двигателя
    #define STEP 5
    // Направление вращения
    #define DIR 6
    // Включение двигателя
    #define EN 7

    // Реле. При срабатывании включает затвор фотоаппарата
    #define SHOT 8

    void setup() {
    // Настроим все необходимые пины на выход
    for (int i = STEP; i <= SHOT; ++i) {
    pinMode(i, OUTPUT);
    }
    }

    void loop() {
    // Включаем мотор
    digitalWrite(EN, HIGH);

    // Для каждого из необходимого количества снимков...
    for (int i = 0; i < SHOTS; ++i) {
    // Ждём 500 мс, чтобы столик остановился
    delay(500);

    // Замыкаем реле, происходит съёмка
    digitalWrite(SHOT, HIGH);
    delay(200);
    // Размыкаем реле
    digitalWrite(SHOT, LOW);

    // Выдержка, чтобы фотоаппарат успел записать снимок на карту
    delay(1000);

    // Поворачиваем столик на необходимое количество шагов
    for (int i = 0; i < STEPS_ON_SHOT; ++i) {

    // Один шаг
    digitalWrite(STEP, HIGH);
    delay(DELAY_TIME);
    digitalWrite(STEP, LOW);
    delay(DELAY_TIME);
    }
    }

    // После завершения съёмки отключаем двигатель
    digitalWrite(EN, LOW);

    // Завершаем работу.
    // Чтобы возобновить работу нужно нажать кнопку RESET
    while (true) {
    ;
    }
    }
     
  4. Gigant74

    Gigant74 Нуб

    То что уже есть: all-details.jpg troyka-wire-connection.jpg

    И то что нужно подружить:
    thumb_troyka-quad-v2.0.jpg thumb_troyka-button.1.jpg thumb_troyka-potentiometer.1.jpg
     
  5. Un_ka

    Un_ka Гуру

    Код по кнопочке <> вставляют.
     
    NikitOS нравится это.
  6. vvr

    vvr Инженерище

    вряд ли амперка будет вам дорабатывать программу.
    есть платный раздел, там могут написать код.
    в вашем случае нужно не добавлять что то в программу, а писать её с нуля.
     
  7. Gigant74

    Gigant74 Нуб

    Спасибо за ответ. Буду искать того кто напишет код.