[Из песочницы] Макрорельсы на MSP430

Привет, хабр! Майские праздники шествуют по стране, а значит фотосезон уже открыт. Кто-то едет в дальние страны, кто-то остаётся поближе к природе где-нибудь в деревне, ну, а я снимаю всякую мелочь. Как облегчить себе жизнь при макросъёмке? Об этом я сегодня и решил рассказать.Основная проблема в макросъёмке — очень малая глубина резко изображаемого пространства (ГРИП).Как пишет вики:

«Глубина резко изображаемого пространства (ГРИП) — способность объектива отображать резкими предметы, расположенные от него на разных расстояниях. Непосредственно зависит от важнейших характеристик оптической системы: главного фокусного расстояния и относительного отверстия, а также от дистанции фокусировки».

Рассказ про ГРИП это тема отдельной статьи с рисунками, табличками и ГОСТ 25205–82. Ссылку с теорией оставлю ниже.

Обычно для увеличения ГРИП закрывают диафрагму что ведёт к другим проблемам, например недостаток света заставляет повышать ISO, большие значения которого щедро отсыплют нам шума. Да и дифракционный предел оптики может сыграть злую шутку когда увеличивая зону резкости мы будем терять в самой резкости.

Один из способов борьбы с малой ГРИП — совмещённый фокус, объединение нескольких снимков у которых зона фокуса смещается вдоль интересующего нас объекта. Затем снимки выравниваются относительно друг друга, и собирается композит с использованием резких частей из каждого кадра.

Для удобства перемещения при съёмке вдоль одной оси придуманы макрорельсы.

Самые дешёвые модели имеют вот такой конструктив: 301886f3860d312333aeae9b4496a982.jpg

Но есть и топовые модели как например StackShot STKS-100-PKG ценой за 500$. И это без доставки!

Наткнувшись на этот девайс, я решил его повторить из подручного хлама.

Основное что нам понадобится, это CD/DVD привод, В нём как раз есть те самые направляющие, которые уже имеют довольно высокую точность. Естественно на них сам фотик не покатать, но если катать объект для съёмки то сойдёт. Поскольку документации на микросхему управления шаговиком CD-привода не найти, возьмём распространённый драйвер StepStick на микросхеме A4988.Минимальная схема для подключения МК: 5fe1b18c32bf7f132885d3bacd676eae.png

Этап разборки привода пропускаю, он скучный. Нам нужно снять платы, асинхронник что крутит диск, привод загрузки/выгрузки, и всё что мы сможем сковырять с каретки, не пропадать же добру! Отдельно замечу, что нам пригодится концевик open/closed и если наш привод достаточно древний, то переменный резистор аудиоусилка тоже выпилим. Я вырезал его с куском платы, уж очень круто он был впаян.

Получится примерно так:

f269a6b5475429d4768f6dda3ce6d899.jpg

Поскольку движок у нас небольшой, я решил уменьшить максимальный ток, отдаваемый драйвером. Делается это изменением величины резистора R1 который меняет опорное напряжение отвечающее за ток.

Считаем ток при питании логической части драйвера 3.3v: 827a5790ee8173897129f1b05f1af60b.png

Или графически:

ce0b4e110f209e93e7d9f2fc9a4a9846.png

Управлять драйвером будет кроха MSP430G2231. А как датчики лимитов я решил использовать оптопары OMRON EE-SX1103 (надеюсь это они, искал по картинкам) со старых флопов.

daaadb23e4faf755fb7117174401b9c1.pngПодтягивающий и токоограничивающий резисторы я повесил прямо на датчики, а датчики приклеил на суперклей к основанию будущих рельсов.

1f4f89d87889221f4a0cac74f916a0fc.jpg

Распилив сдутую с платы привода микруху, я вклеил её останки в пластмассовую часть каретки.

4bba99a0f162229c6bc80195f1a515c6.jpg

Отказался от разностной схемы опроса датчика, поскольку портов у МК и так мало, а как показал тест, датчик не глючит от видимого света:

e950a8ad1c307ec19d2c680071760461.png

На графике я пытался засветить датчик фонариком в строб режиме, а шум в районе 55 секунд — задел выводы пальцем.

Поскольку выводов по-прежнему не хватало, замультиплексировал переключатель движения делителем, и вот конечная схема:

57c4ce69b35801d67b5632d930d2b23f.png

Дальше как обычно, травим, лудим, паяем. И на каретку сверху приклеиваем самый большой мост с дохлой материнки.

93ce2901d899e8056a385bfb0cedf0bb.jpg

Готовое устройство:

d632790ed1ea603389bfdcd21933ec3b.jpg

Алгоритм работы:

Есть 2 режима, при которых мы управляем либо скоростью движения (драйвер работает в режиме 1/16 шага, для меня важна точность, а не скорость), либо «пачкой» импульсов на вход драйвера при постоянной скорости. МК проверяет в каком режиме мы находимся опрашивая кнопку с фиксацией (в этом случае не нужно писать код антидребезга кнопки, тормозящий работу нашего и без того медленного мк). затем 4 раза опрашивается АЦП переменного резистора для усреднения, и полученное число идёт в соответствующие функции при условии сработки переключателя направления движения и «тишины» с соответствующего датчика лимита.

Механические характеристики: в общем случае шаговики кареток имеют 20 шагов на оборот (инфа с PL15S-020). и ходовой винт 3 мм (бывают и меньше). Тогда в теории получается 3/20/16=0.009375 мм или 9.375 микрон. На деле жёсткости конструкции недостаточно, пластик же, и потому отрабатываемые «пачки» при малых величинах отличаются.

Косяки и идеи: Перепутал распиновку LDO стабилизатора, и пришлось припаивать его наоборот, кроме того он очень сильно грелся, потому перешёл к разнополярному питанию 5v USB и 12v силовая часть.

Заказал переменный резистор с логарифмической характеристикой, сейчас используется только примерно четверть всей поверхности переменника, а камень матаном грузить неохота.

Чтобы хватало однополярного питания, можно взять DRV8834 в качестве драйвера двигателя. Плюсом мы получим режим 1/32 шага, а если использовать ЦАП, то практически «бесконечное» деление (TI Application Report SLVA416, «High Resolution Microstepping Driver With the DRV88xx Series»).Можно, например, прикрутить обратную связь для увеличения точности перемещений на каком-нибудь линейном (магнитном) энкодере. Особо не думал, в этом случае придётся переделывать электронику, тогда уже можно и связь с компом добавить.

Как пример стекинга Cтекинг курильщика9b9312b781eab802cd72dde0da542a0b.jpgСтекинг здорового человека59cdeec6c668257e5808828532b86640.jpg Подробнее с теорией ГРИП можно ознакомиться здесьWiki драйвера StepStick.

© Habrahabr.ru