bash.im ithappens.me zadolba.li
13056

Пятеро на одного

Жила-была экспериментальная установка, на которой измеряли характеристики лазерных стёкол. Когда-то она управлялась компьютером — здоровенным шкафом «Электроника-60» с восьмидюймовыми дисководами, ленточным приводом — хоть перфокарт не было, и на том спасибо. Компьютер этот со временем помер, и установка перешла на ручное управление.

Поначалу выглядело это так: спектр снимали по точкам. Выставляли монохроматор на длину волны, снимали показания частотомера, который считал фотоны. Поворачивали барабан монохроматора, вновь снимали показания. И так далее. У монохроматора был автоматический режим привода, когда он равномерно щёлкал шаговым двигателем безо всякого компьютера, но все упиралось в регистрацию измерений. Самописец к частотомеру не подключишь. Но зато у него был цифровой выход, на котором в двоичном коде появлялся результат. Разрядов только много — к LPT напрямую не подключишь. Можно сгородить схему на логике, которая передаст код по частям, но зачем, если есть микроконтроллеры? У PIC16F873 как раз хватило портов и на частотомер, и на LPT. Теперь оставалось только одновременно нажимать кнопку на компьютере и на блоке управления монохроматором.

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

Но всё остальное оставалось в ручном режиме. Заслонки и фильтры приходилось переключать руками, из-за чего в процесс измерения приходилось постоянно вмешиваться. Электрические приводы имело всё, что можно — даже фокусировка, так что устроить автоматику было делом техники. Появился третий контроллер, тоже ATMega8. Ног хватило не на всё, но на самое необходимое. И был занят последний COM-порт компьютера.

А тут понадобилось-таки управлять напряжениями на ФЭУ, интенсивностью света и прочими параметрами. В системе поселяется четвёртый микроконтроллер. COM-портов уже нет, так что вешаем на USB-COM…

В таком виде установка дожила до наших дней, а вот компьютер — всё. А у нового ни COM, ни LPT. Фигня вопрос — Arduino нам на что? Отныне установка удобно подключается единственным USB-кабелем, принимает текстовые команды и выдаёт в терминал колонки готовых результатов, которые остаётся вставить в Origin.

Итого — пять микроконтроллеров. В принципе, можно было на одном сделать, но зачем трогать то, что уже работает?