Программа Flowcode – это среда разработки программ для микроконтроллеров, использующая графический язык программирования.
Использование графики в программировании осуществляется давно. Блок-схему программы легче «увидеть» и понять, чем программу, описанную обычным языком.
Пример блок-схемы из Wiki |
Задача разработчиков программы Flowcode сводилась к выбору наиболее часто используемых базовых операций любого языка программирования высокого уровня для создания набора иконок, полностью перекрывающих нужды в программировании микроконтроллеров. Затем разработчики создали компилятор с графического языка на язык Си, наиболее часто используемый в программировании. Последний позволял получить файл, который можно загрузить в микросхему с помощью программатора.
Любая современная среда разработки кроме редактора и компилятора должна иметь средства отладки программы. Поскольку язык программирования был выбран графический, отладочные средства логично было использовать графические. А наглядность этим отладочным средствам придавали элементы анимации. Вот пример работы отладчика в Flowcode 3:
Пример работы отладки в Flowcode 3 |
Выключатель, соединенный с выводом B0, можно «нажать» с помощью мышки, тогда светодиод, соединенный с выводом A0 микроконтроллера, зажигается. Согласитесь, что такая отладка программы нагляднее, чем отслеживание состояния портов.
Во многом программа Flowcode, видимо, ориентирована на задачи обучения, что и определяет используемые графические средства. Но скорость создания программ и наглядность их работы, скорее всего, не оставили равнодушными и профессиональных разработчиков устройств на базе микроконтроллеров. Поскольку уже следующая версия программы, Flowcode 4, имела более развитый отладочный компонент. Появилась панель, на которой можно было размещать дополнительные компоненты, сопутствующие разработке устройств.
Панель для дополнительных компонентов в Flowcode 4 |
Кнопки приобрели наглядный, а не схематичный вид, все компоненты располагались на панели, что позволяло превратить ее, скажем, в панель управления прибора. После сборки программы можно не только проверить ее работоспособность, но и проверить, удобно ли управление с задуманной приборной панелью.
Кроме того, в этой версии появилась группа электромеханических устройств на инструментальной панели дополнительных компонентов:
Группа электромеханических компонентов и шаговый двигатель |
Теперь при отладке программы можно было видеть вращение шагового двигателя.
Насколько удачна была эта идея можно судить по разделу электромеханических компонентов в следующей версии Flowcode.
Группа электромеханических компонентов в Flowcode 5 |
Среди новшеств сегодняшней версии программы Flowcode 6 не только наличие двух панелей, системной и панели управления, но и трехмерный вид компонентов, и развитые средства анимации. В примерах к программе можно найти ряд реализаций:
Пример анимации в Flowcode 6 |
Вентиль слева открывается, позволяя жидкости заполнить резервуар, вентиль справа позволяет слить жидкость. На второй панели располагаются приборы и элементы управления.
Вот фрагмент программы, управляющей анимацией:
Фрагмент программы в Flowcode 6 |
Кроме основной части программа имеет много макросов, а анимация в сочетании с программой выглядит достаточно сложной. Но средства анимации позволяют использовать и минимум программных компонентов, как в еще одном примере от Matrix.
Пример еще одной анимации |
Вся программа – это бесконечный цикл, в котором не происходит ничего, а двигатель на системной панели вращается, светодиод загорается, устройство «живет», если включить выключатель.
Средства анимации Flowcode 6 оказываются разнообразны, но о том, как сделать первый шаг, пойдет речь далее.
Создаем новый проект. На системной панели выбираем сферу, которую добавляем на панель:
Добавление объекта на системную панель |
Используем панель свойств, чтобы дать имя объекту:
Задание имени нового объекта |
Имя нового объекта можно оставить, как есть по умолчанию, но удобнее задать имя, которое будет понятно, когда объектов окажется несколько.
Чтобы изменить имя по умолчанию, достаточно щелкнуть в окне Handle и изменить имя на новое.
Некоторые объекты появляются на системной панели с размерами, которые очень малы (или слишком велики). Можно изменить эти размеры, используя в панели свойств параметры раздела World size: Wi…, He…, De…
На инструментальной панели дополнительных компонентов в разделе Machatronics выберем элемент Animator:
Выбор элемента управления объектом |
Из вариантов размещения следует выбрать размещение на системной панели. Варианты размещения появляются после щелчка по кнопке (слева) или после щелчка правой клавишей мышки по названию элемента.
После появления нового элемента на системной панели может потребоваться изменение его размеров. У меня этот элемент почти не виден на панели. И появляется он под сферой, которая была помещена ранее на системную панель. Можно сдвинуть сферу в сторону, выделив ее, затем на панели свойств изменить размеры нового компонента.
Придание объектам удобного для работы вида |
Если новый элемент трудно выделить, чтобы изменить его размеры, можно выбрать его на панели свойств. И в панели свойств элемента изменить его размеры.
Выбор объекта на панели свойств |
Кроме размеров следует задать подключение этого элемента к ранее созданной сфере, используя свойство Target. Полезно и заменить имя по умолчанию на имя удобное для запоминания, например animator_ball. После указания цели для аниматора на системной панели появится стрелка, соединяющая эти два элемента.
Соединение объекта и средства управления |
Создадим макрос, который назовем move_ball.
В основной программе добавим элемент Simulation (взяв его с панели программных компонентов) и выберем для симуляции элемент:
Состав закладки симуляции после появления новых компонентов |
Основная программа выглядит следующим образом:
Первоначальный вид основной программы |
А макрос выглядит так:
Первоначальный вид макроса |
Теперь можно запустить программу на симуляцию, чтобы увидеть, как шар начинает двигаться.
Первый запуск программы |
Осталось разобраться в параметрах настройки, которые были выбраны в элементах Simulation произвольно. Можно прочитать о настройках в файле подсказки, можно опробовать разные настройки, используя созданную программу.
Определившись с движением созданного шара, можно модифицировать основную программу и макрос:
Модификация программы |
Переменная input создана для выключателя, который можно добавить на панель управления (чтобы не мешать анимации на основной панели). Теперь, запустив программу на симуляцию, можно наблюдать за движением шара, а выключателем остановить симуляцию. То есть, анимация связана с событиями, на которые реагирует микроконтроллер.
Используя возможности анимации Flowcode 6, можно создать иллюстрацию технологического процесса. А если использовать тот факт, что программа Flowcode работает с COM-портом компьютера, если через интерфейсную микросхему подключить к нему второй, реальный микроконтроллер, снабженный датчиками, то получится хорошее наглядное пособие полезное, скажем, в школе. А радиолюбителям создание такого наглядного пособия поможет в освоении работы с микроконтроллерами, да и просто должно быть интересно.