Фоторобот

Установка для съемки панорам на базе контроллера Freeduino, часть 2: контроллер и программирование в среде Arduino.exe

Freeduino

В этой части статьи будет описано использование контроллера Freeduino для управления панорамной съемкой с помощью установки, описанной в первой части. Так как это первая из статей, в которой затрагивается вопрос взаимодействия Freeduino и Windows, этому вопросу (установка драйверов, ПО для программирования) также будет уделено внимание.

В установке используется модель Freeduino Through-Hole (аналог Arduino Diecimila) с микроконтроллером ATmega328. Память программ — 32 К (2 К заняты загрузчиком), ОЗУ — 2 Кбайт, EEPROM — 1 Кбайт, тактовая частота — 16 МГц. Подробное описание устройства можно найти на сайте проекта Freeduino. Для практических нужд достаточно знать следующее:

  • устройство имеет 14 контактов цифрового ввода/вывода (выводы работают с сигналами уровня 0/5 В, ток до 20 мА), 6 из них (№№3, 5, 6, 9, 10, 11) могут работать в режиме широтно-импульсной модуляции (ШИМ)
  • выводы 1 и 2 совмещены с цепями обмена по USB и при подключении к компьютеру использоваться не могут
  • устройство имеет 6 аналоговых входов АЦП, дискретность — 1024 уровня
  • есть интерфейс USB
  • питание осуществляется от USB либо от внешнего источника (оптимальное напряжение 7—12 В, имеется встроенный стабилизатор), переключение питания — перемычкой на плате
  • встроенный предохранитель защищает компьютер при перегрузке при токе более 500 мА
  • сброс микроконтроллера — аппаратный по USB от компьютера или кнопкой на плате

Freeduino Through-Hole. Верхний ряд разъемов — цифровые входы/выходы, нижний — аналоговые входы, питание и «сброс»

Для управления шаговым двигателем в установке используется плата расширения Motor Shield v3 на двух микросхемах L293D. С ее помощью можно независимо управлять двигателями постоянного тока (до 4), двигателями шаговыми (до 2), сервоприводами (до 2). Поддерживается ШИМ-режим. Сервоприводы управляются по отдельным каналам, двигатели постоянного тока и шаговые — по общим, поэтому одновременно можно подключать 2 шаговых двигателя, либо 1 шаговый и 2 двигателя постоянного тока, либо 4 двигателя постоянного тока.

Что нужно знать о Motor Shield v3:

  • напряжение питания 5 В (слаботочная цепь и сервоприводы, питание поступает от стабилизированной цепи основного модуля Freeduino), 7—24 В (силовая цепь двигателей, питание от внешнего источника либо от внешней цепи питания основного модуля Freeduino; переключатель — перемычка на плате)
  • максимально-продолжительный ток каждого канала 0,6 А
  • для управления платой расширения используется библиотека Adafruit Motor shield library (AFMotor), которую следует распаковать в папку hardwarelibraries с ПО Arduino

Плата расширения Motor Shield v3. В верхнем левом углу разъем подключения сервоприводов. Слева и справа разъемы синего цвета для двигателей постоянного тока. Нижний разъем синего цвета — внешнее питание. Разъемы черного цвета для штыревого монтажа обеспечивают доступ к соответствующим выводам основного модуля Freeduino

Плата Motor Shield v3 устанавливается непосредственно в плату Freeduino Through-Hole

Плата Motor Shield v3 устанавливается непосредственно в плату Freeduino Through-Hole, при этом доступ к портам Freeduino обеспечивается через сквозные разъемы Motor Shield v3. Так как обмен данными осуществляется по общим цифровым каналам, не все из них можно использовать для задач, не связанных с управлением двигателями. Подробнее информацию о свободных портах можно найти на сайте ladyada.net в разделе вопросов и ответов по Motor Shield. Кратко же, свободными портами при подключении и объявлении в управляющей программе подключения двигателей к портам M1-M4 (синие клеммы), остаются все аналоговые входы, порты для сервомашинок 9 и 10, порт 2 и 13 (с ограничениями, связанными с подключением по USB и работой встроенного в плату индикатора загрузки контроллера на 13-м порте). Для управления камерой (дистанционное управление по USB) в описываемой в статье установке используется порт 9. В установке питание Motor Shield v3 осуществляется от цепи питания модуля Freeduino Through-Hole, к которой подключается внешний блок питания 7—8 В (6 аккумуляторов типа АА). Напряжение на клеммах двигателя в процессе работы 6—7 В, при сопротивлении обмоток в 10 Ом продолжительный ток лишь немного превышает допустимый 0,6 А.

Freeduino и Windows

Подключение Freeduino к компьютерам с ОС Windows (XP и 7) — простой процесс, требующий лишь выполнения последовательности действий, описанных в инструкции к устройству Freeduino. В комплект платы Freeduino Through-Hole входит диск с ПО и инструкциями (его также можно скачать с сайтов Arduino, Freeduino и прочих совместимых проектов). Имеющийся на диске архив arduino-0017.zip нужно распаковать в папку arduino-0017 в корень системного диска (C:). На плате Freeduino Through-Hole перемычкой устанавливаем питание по USB и после этого подключаем Freeduino Through-Hole к компьютеру. Система обнаружит новое устройство и предложит выбрать для него драйвер, указываем путь к нему: C:arduino-0017driversFTDI USB Drivers. После этого через Диспетчер устройств Windows нужно определить, какой из COM-портов приписан Freeduino, подключенному по USB:

Можно приступать к программированию. В папке arduino-0017 (или более поздних версий) имеется программа Arduino.exe — интегрированная среда разработки и загрузки, написанная на Java. В нее входят редактор кода, компилятор, модуль передачи программы в плату Freeduino/Arduino, справочная система и набор программ-примеров. В программе после подключения устройства Freeduino/Arduino нужно выбрать его тип и COM-порт подключения:

Для желающих программировать «визуально», а не в текстовом формате, есть программа Scratch for Arduino S4A.

Scratch for Arduino (S4A), программа для визуального программирования Arduino-совместимых платформ и обучения программированию

Программа управления панорамной съемкой, Arduino.

exe

Программа для управления панорамной съемкой должна выполнить следующие действия:

  • подать сигнал 5 В на USB-порт камеры для съемки (устойчиво срабатывает, если сигнал подается в течение 1-2 секунд),
  • выдержать паузу (3 секунды), необходимую на съемку,
  • подать сигнал на шаговый двигатель — повернуть камеру на заданный угол,
  • остановиться и подождать, пока конструкция стабилизируется (3 секунды),
  • повторить цикл нужное число раз.

Цикл должен повторяться до тех пор, пока не будет обеспечен требуемый угол охвата пространства (я выбрал полуоборот). Кроме того, перед выполнением циклов съемки-поворота нужно выставить камеру в нужном направлении съемки, для этого шаговый двигатель должен свободно вращаться — с него нужно снять напряжение на время прицеливания.

Камера Canon PowerShot G9 оснащена зум-объективом с эквивалентным фокусным расстоянием 35—210 мм. На весь диапазон приходится 12 шагов привода зума, для панорамной съемки стоит использовать первые 5-6 шагов. С помощью поворотной головки со шкалой панорамирования было определено, что угол поворота камеры при панорамировании с минимальным фокусным расстоянием — ≈45°. При фокусном расстоянии, соответствующем шестому шагу зума, этот угол — ≈25° Если выбрать угол поворота для каждого цикла панорамирования 22°, можно снимать панораму и для шестой позиции зума, и для нулевой, выбросив в последнем случае из серии каждый второй кадр. Для промежуточных положений зума панорамная серия просто будет избыточной, что лишь увеличит время на обработку. Чтобы снять панораму с охватом в полуоборот при единичном повороте на 22°, понадобится 9 циклов «съемка-поворот».

Для управления шаговым двигателем (имя объекта motor) используются инструкции и функции из библиотеки AFMotor.h:

  1. AF_Stepper motor(«число шагов на полный оборот», «порт управления»),
  2. motor.setSpeed(«скорость в оборотах в минуту»),
  3. motor.release(),
  4. motor.step(«угол поворота», «направление», «режим вращения»).

Первая описывает шаговый двигатель. В нашем случае двигателя с 200 шагами на оборот, подключенного к первому и второму портам Motor Shield, инициализация выглядит так:

AF_Stepper motor(200, 1)

Вторая задает скорость вращения — на практике все нормально работает при скорости 4 оборота в минуту:

motor.setSpeed(4)

Третья инструкция «освобождает» двигатель, чтобы его можно было вращать:

motor.release()

Отмечу, что так как редуктор в установке не используется, в процессе съемки для фиксации неподвижной камеры питание с обмоток двигателя не снимается — команда motor.release() не подается внутри цикла, только лишь на этапе прицеливания. Чтобы установка не раскачивалась шаговым двигатель, выбран режим поворота Interleave — двойной точности и половинной скорости, при этом аргумент «угол поворота», задаваемый в шагах двигателя, нужно удвоить. Четвертая инструкция:

motor.step(angle*2, FORWARD, INTERLEAVE)

Язык программирования, применяемый в среде Arduino. exe, близок к C++. Программа имеет две обязательные функции: void setup() и void loop(). В первой выполняется инициализация, объявление переменных и объектов. Вторая — цикл выполнения инструкций, повторяющийся раз за разом, пока контроллер не будет отключен от цепи питания. Чтобы программа съемки панорамы не выполнялась более одного раза, цикл съемки нужно поместить не в void loop(), а в void setup(). Время в программе задается в миллисекундах. Код программы («скетч» в среде Arduino.exe) выглядит так:

Окно программы после компиляции. Код программы в виде текстового файла — pano_usb_shot_m.txt

Программа загружается в контроллер Freeduino и хранится там, даже если питание отключить. Чтобы запустить программу из памяти контроллера, нужно просто включить питание на блоке питания или нажать кнопку Reset.

Видеоролик о работе установки, файл 1 МБ, MP4.

11 июля 2011 Г.

Новости

  • Nikon готовит полнокадровую беззеркальную камеру Z8 – c 46-мегапиксельным сенсором и записью видео 8К 60 к/с

    12 марта 2023

  • Sony готовит новую полнокадровую камеру ZV FF и топовую камеру с датчиком APS-C

    12 марта 2023

  • Fujifilm прощается со 100-мегапиксельной среднеформатной камерой GFX 100

    5 марта 2023

Раздел новостей >

The Maker Show: Эпизод 8.

Управление шаговым двигателем с помощью Arduino

Episode

The Maker Show

В этом выпуске The Maker Show Брет Стейтхэм покажет вам, как управлять шаговым двигателем с помощью Arduino.

Шаговые двигатели — один из незамеченных героев века. Без них просто не существовало бы жестких дисков, фрезерных станков с ЧПУ, 3D-принтеров и многого другого. Они могут делать гораздо больше, чем обычный двигатель постоянного тока, но эта возможность сопряжена с небольшой сложностью. Это видео надеется демистифицировать это и показать вам, как легко начать.

Двигатель 28BYJ-48, использованный в этом видео, недорог и легко доступен. Вы сможете найти их в Интернете менее чем за 10 долларов США, и они предложат фантастический способ попасть в мир шаговых двигателей. Возьмите один и следуйте за ним!

В этом видео рассказывается, как на самом деле управлять двигателем с помощью Arduino. Чтобы лучше понять внутреннее устройство двигателей 28BYJ-48 и то, как плата ULN2003 используется для их управления, посмотрите видео Брета «28BYJ-48 Stepper Motor and ULN2003 Driver Intro» (https://aka. ms/). 28BYJ).

Наконец, вы можете взять весь код и слайды из этого эпизода из репозитория Брета 28BYJ-48 на GitHub: https://aka.ms/28byjrepo

Нет, идите и включите моторы!

В этом выпуске:

[01:44] Подключаем все это
[05:20] Управление волнами
[07:15] Получение кода с GitHub
[08:10] Демонстрация управления волнами
[15:28] ] Демонстрация обратного направления
[16:40] Перемещение на определенное расстояние
[18:24] Рефакторинг кода для использования массивов
[20:05] Полный шаг и полушаг
[25:11] Библиотеки шаговых двигателей
[26:30] Демонстрация AccelStepper

FoIIow @bretstateham
FoIIow themakershow

В этом выпуске The Maker Show Брет Стейтхэм покажет вам, как управлять шаговым двигателем с помощью Arduino.

Шаговые двигатели — один из незамеченных героев века. Без них просто не существовало бы жестких дисков, фрезерных станков с ЧПУ, 3D-принтеров и многого другого. Они могут делать гораздо больше, чем обычный двигатель постоянного тока, но эта возможность сопряжена с небольшой сложностью. Это видео надеется демистифицировать это и показать вам, как легко начать.

Двигатель 28BYJ-48, использованный в этом видео, недорог и легко доступен. Вы сможете найти их в Интернете менее чем за 10 долларов США, и они предложат фантастический способ попасть в мир шаговых двигателей. Возьмите один и следуйте за ним!

В этом видео рассказывается, как на самом деле управлять двигателем с помощью Arduino. Чтобы лучше понять внутреннее устройство двигателей 28BYJ-48 и то, как плата ULN2003 используется для их управления, посмотрите видео Брета «28BYJ-48 Stepper Motor and ULN2003 Driver Intro» (https://aka.ms/). 28BYJ).

Наконец, вы можете взять весь код и слайды из этого эпизода из репозитория Брета 28BYJ-48 на GitHub: https://aka.ms/28byjrepo

Нет, идите и включите моторы!

В этом выпуске:

[01:44] Подключаем все это
[05:20] Управление волнами
[07:15] Получение кода с GitHub
[08:10] Демонстрация управления волнами
[15:28] ] Демонстрация обратного направления
[16:40] Перемещение на определенное расстояние
[18:24] Рефакторинг кода для использования массивов
[20:05] Полный шаг и полушаг
[25:11] Библиотеки Stepper
[26:30] AccelStepper demo

FoIIow @bretstateham
FoIIow themakershow

Отсутствует

Отсутствует

Код 404 страница не найдена.

К сожалению, страница отсутствует или перемещена.

Ниже приведены основные подразделы этого сайта.

  • Главная страница General Electronics
  • Мой канал электроники на YouTube
  • Проекты микроконтроллеров Arduino
  • Raspberry Pi и Linux
  • Новый взгляд на регистры портов Arduino
  • Digispark ATtiny85 с расширителем GPIO MCP23016
  • Программа безопасного построения H-моста
  • Построить управление двигателем H-Bridge без фейерверков
  • H-мост MOSFET для Arduino 2
  • Гистерезис компаратора и триггеры Шмитта
  • Учебное пособие по теории компараторов
  • Работа фотодиодных цепей и их использование
  • Оптопара MOSFET Реле постоянного тока с фотогальваническими драйверами
  • Подключение твердотельных реле Crydom MOSFET
  • Руководство по схемам фотодиодных операционных усилителей
  • Входные цепи оптопары для ПЛК
  • h21L1, 6N137A, FED8183, TLP2662 Оптопары с цифровым выходом
  • Цепи постоянного тока с LM334
  • LM334 Цепи CCS с термисторами, фотоэлементами
  • LM317 Цепи источника постоянного тока
  • TA8050P H-образный блок управления двигателем
  • Оптическая изоляция элементов управления двигателем H-Bridge
  • Все транзисторы NPN H-Bridge Control Motor Control
  • Базовые симисторы и SCR
  • Твердотельные реле переменного тока с симисторами
  • Светоактивируемый кремниевый управляемый выпрямитель (LASCR)
  • Базовые схемы управления транзисторами для микроконтроллеров
  • ULN2003A Транзисторная матрица Дарлингтона с примерами цепей
  • Учебное пособие по использованию силовых транзисторов Дарлингтона TIP120 и TIP125
  • Управление силовыми транзисторами 2N3055-MJ2955 с транзисторами Дарлингтона
  • Общие сведения о биполярных транзисторных переключателях
  • Учебное пособие по переключению мощных N-канальных МОП-транзисторов
  • Учебное пособие по силовым P-канальным переключателям MOSFET
  • Создание схемы управления двигателем на транзисторном мосту H-Bridge
  • H-мост управления двигателем с силовыми МОП-транзисторами
  • Дополнительные примеры схем H-моста MOSFET
  • Сборка высокомощного транзистора управления двигателем H-Bridge
  • Теория и работа конденсаторов
  • Сборка лампового AM-радиоприемника 12AV6
  • Катушки для высокоселективного кристаллического радиоприемника
  • Добавление двухтактного выходного каскада в аудиоусилитель Lm386
  • Выпрямление источника питания
  • Базовые силовые трансформаторы
  • Схемы стабилизатора транзистор-стабилитрон
  • Советы и рекомендации по регуляторам напряжения серии LM78XX
  • Биполярные источники питания
  • Создание регулируемого источника питания 0–34 В с помощью Lm317
  • Использование датчиков Холла с переменным током
  • Использование переключателей и датчиков на эффекте Холла
  • Использование ратиометрических датчиков Холла
  • Использование датчиков Холла с Arduino-ATMEGA168
  • Простой преобразователь 12-14 В постоянного тока в 120 В переменного тока
  • Проверка цепей оконного компаратора
  • Автоматическое открытие и закрытие окна теплицы
  • La4224 Аудиоусилитель мощностью 1 Вт
  • Управление двигателем H-Bridge с мощными МОП-транзисторами Обновлено