Visual2k. Интегрированная среда для программирования микроконтроллерных кукол-роботов

Последнее обновление: 3 апреля 2006

Visual2k - это интегрированная среда программирования аппаратуры кукольных спектаклей театра Link2+Ку и спектаклей, создаваемых в рамках проекта "Оживление пространства". Аппаратура выполнена как сеть микроконтролеров, работающих автономно или под управлением персонального компьютера. Микроконтроллеры управляют различными приводами - шаговыми двигателями, двигателями постоянного тока, электромагнитами, тиристорными регуляторами мощности, получают и обрабатывают сигналы от датчиков.

Visual2k предоставляет для управления куклами-роботами высокоуровневой язык, на котором можно описать достаточно сложные движения механизмов. Компилятор Visual2k может генерировать исполняемый код как для компьютера, работающего под управлением Windows 95-98, так и для микроконтроллеров серии 51.

Главное окно Visual2k

Кроме управления механизмами, Visual2k может проигрывать звуковые файлы (это дает возможность делать говорящих кукол), а также управлять презентациями Power Point. С помощью Power Point можно создавать видеоряд, который будет во время спектакля отображаться на экране дисплея - эта возможность используется, когда создается сложный кукольный спектакль, например, для рекламных целей или для выставок. Куклы могут демонстрировать некоторый выставочный экспонат, рассказывать о нем и показывать его технические характеристики на экране.

Но возможности Visual2k не ограничиваются только созданием полностью автоматических кукол или спектаклей. Visual2k может использоваться также на концертах, театральных представлениях и выставках как режиссерский пульт, с которого оператор может управлять механизмами кукол, светом и звуком, запускать по ходу представления заранее заготовленные фрагменты сценария. Эта возможность реализуется за счет формы - диалоговой панели, содержащей множество вкладок. На вкладках можно разместить элементы управления - кнопки, переключатели, ползунки. Диалоговая панель проектируется в дизайнере формы, который очень напоминает редактор форм Delphi.

Дизайнер форм Visual2k

Visual2k-программа (сценарий) выглядит как иерархическая последовательность операторов. Блоки-веточки программы можно сворачивать и разворачивать, что позволяет очень удобно работать с большими программами. Главное окно Visual2k содержит программу в графическом виде и инспектор операторов, позволяющий определить параметры каждого оператора.

Краткое описание операторов

Сценарий может содержать множество параллельных процессов, что позволяет формировать сложные движения механизмов, выполняя одновременно множество действий. При разработке Visual2k была использована библиотека параллельного программирования LinkGala.

Редактор актеров

Аппаратная конфигурация микроконтроллеров, управляющих механизмами, определяется в редакторе актеров. По описанию актеров Visual2k автоматически синтезирует программу для микроконтроллеров. Это позволяет режиссеру кукольного спектакля совершенно не вникать в вопросы програмирования микроконтроллеров; единственный язык, с которым он работает - это Visual2k. Вот некоторые диалоги, которые помогают выбрать аппаратную конфигурацию:

Выбор типа микроконтроллера

Выбор типа актера-механизма

Выбор действия для шагового двигателя

Настройка функции изменения скорости

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

Visual2k позволяет разрабатывать не только сложные спектакли с множеством кукол, но и простые куклы, которые работают автономно, без управляющего компьютера. Сценарий для таких конфигураций не отличается от программы с компьютером. Более того, сценарий сначала создается и отлаживается с использованием компьютера, а потом просто перекомпилируется и зашивается в память микроконтроллера. Для микроконтроллеров серии 51 Visual2k автоматически создает программу со встроенной операционной средой, позволяющей выполнять параллельные процессы в режиме кооперативной мультизадачности. Реализация мультизадачности использует сопрограммный механизм переключения контекстов. Для микроконтроллеров, работающих под управлением компьютера, операционная среда не содержит средств мультизадачности, но включает средства сетевого взаимодействия.

Для программистов может представлять интерес тот способ, которым я создаю исполняемые Visual2k-сценарии. Сценарий, который будет выполняться в операционной среде Windows, создается следующим образом: сначала компилятор Visual2k проводит синтаксический анализ сценария и на его основе генерирует текстовый файл - программу на языке Object Pascal. Все ошибки обнаруживаются Visual2k-компилятором, так что генерируется всегда синтаксически правильный Pascal-код. Затем вызывается компилятор Object Pascal, которому передается сформированный файл. В качестве компилятора я использую dcc32.exe из поставки Delphi 5. Идея ипользования dcc32 возникла у меня при создании программы LinkSigSim и более подробно описана в LinkDccUsing. Полученная DLL содержит собственно код сценария. Для запуска сценария Visual2k имеет исполняемое ядро - программу Run2k.exe, которая динамически загружает DLL и запускает ее главную функцию. Достоинство такого подхода состоит в том, что заказчику поставляется только Run2k.exe и одна DLL. Сама же среда Visual2k используется только на этапе разработки. Для сценария, который будет выполняться на автономном микроконтроллере, используется похожий прием - компилятор Visual2k формирует программу на языке C и вызывает C-компилятор, в качестве которого я использую icc8051.exe фирмы IAR. Затем полученные объектные модули линкуются вместе с операционной средой и формируется двоичный образ, загружаемый в флэш-память микроконтроллера.

Download

Downloadvisual2k.zip - Документация к Visual2k в формате Word (686K).

Сама программа является коммерческим продуктом, права на который приобрели фирмы LinkAnimatronic и LinkТеатр Владимира Захарова.