Описание

Заказали блок управления для самодельной установки с целью изучения влияния ультрафиолетового излучения с различной длиной волны на мономер. Устройство представляет собой круглый поворотный стол, на котором закреплены 8 чашек Петри. Все чашки соединены ременным приводом для вращения вокруг своей оси. Снизу стола под чашкой стоит ультрафиолетовый проектор. Вращением стола чашки подводятся под проектор. Над чашкой установлен цифровой штангенциркуль для измерения толщины полимеризировавшейся пленки. Штангенциркуль приводится в движение шаговым двигателем. Данные со штангенциркуля оцифровываются МК и записываются во внешнюю память микроконтроллера (at24c64). УФ-лампы включаются через реле (на плате 7 реле для таких нужд). Оператор управляет устройством из программы через USB (rs232).

Алгоритм измерения примерно такой:
1. Одна из чашек подводится под УФ-излучатель.

1.1. Штангенциркулем измеряется расстояние до дна чашки Петри.
1.2. Включается УФ-лампа, например, на 10 секунд.
1.3. Лампа выключается и штангенциркулем измеряется толщина полимерной пленки.
1.4. Чашка поворачивается на 45 градусов и повторяется измерение с п 1.1.

После 4-х измерений на каждой чашке стол поворачивается и подводит следующую чашку с другим полимером для испытаний.

Все данные сохраняются во внешнюю память для дальнейшего изучения. Сделано это для предотвращения ошибок при потери связи с ПК.
Программа измерения полностью настраивается в приложении на ПК, затем "заливается" в память устройства. Каждый отдельный блок настраивается. Количество блоков ограничено памятью, очередность может быть произвольной. Программа измерения может быть любой, как ее настроит оператор. Есть возможность сохранить в файл XML, а также загрузить с устройства.

Терминал программы представляет собой консоль с элементами управления. Есть кнопки управления двигателями, есть возможность откалибровать количество шагов на один оборот двигателя (двигатели бывают с разным углом поворота на шаг, а также со встроенным понижающим редуктором).

В процессе работы устройства необходимая информация отображается в консоли программы. Дополнительно можно прочитать лог работы устройства кнопкой "Read results".

Часть 2

Устройство питается от напряжения 12 В.
В качестве драйвера шаговых двигателей я выбрал модули popolu на A4988, которые часто используются в 3d-принтерах. Каждый драйвер оснащен перемычками для переключения делителя оборотов. A4988 имеет шаг 1/16. Модули удобны тем, что в случае выхода из строя их легко заменить. На рынке существует еще один тип модулей — DRV8825 (сравнение), которые совпадают по ногам с A4988 и имеют делитель 1/32. 
Контроллеры stm8s03. Для связи с ПК стоит usb-uart преобразователь на ch340g. Устройство оснащено компьютерным зуммером для звукового оповещения. Зуммер включается в программе в виде блока.
Для расширения портов используются 3 сдвиговых регистра 74hc595.
Во время разработки я решил разбить работу на несколько частей. Отдельно собрал плату для модуля шагового двигателя, отдельно для сдвиговых регистров. Для микроконтроллера использовал stm8 Discovery board. Все соединялось проводами.

Сдвиговые регистры
  Плата для модулей popolu
Думаю, они могут пригодиться в моей дальнейшей работе. Положил в коробочку =)

Штангенциркуль

Идею использовать штангенциркуль мне подсказал заказчик. Оказывается, внутри маленькой китайской коробочки есть порт для снятия показаний. Он закрыт специальной крышкой и представляет собой 4 дорожки на плате. Т.к. подходящего разъема я найти не смог, решил припаять стандартный, чуть подогнув ноги.


Интерфейс похож на SPI, 24 бита. Вот что показывает осциллограф:

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

Сборка

Проектировалось в альтиуме, собиралось вручную.


В процессе наладки неосторожными движениями щупом осциллографа спалил пару микросхем ch340g. Пришлось закрасить лаком =)

На данный момент устройство отправлено в Лондон, где заказчик заканчивает работу над механикой устройства.