Визуальное программирование контроллера BT Smart
Невиданные ранее успехи в микроэлектронике и объёмы крупносерийного производства сделали программируемые контроллеры чрезвычайно доступными. Они нашли широкое применение в учебном процессе в высших и профессиональных учебных заведениях, в общеобразовательных школах и в проектах любителей инженерного творчества. Сегодня мы рассмотрим возможности визуального программирования учебного контроллера Fischertechnik BT Smart в средах разработки ROBO Pro Light и Scratch версии 3.0.
Контроллер BT Smart (арт. 161944) входит в состав образовательного набора «STEM PREP 2.0 Физика, Робототехника, Экотехнологии» (арт. 548904) и электромеханических конструкторов «BT Стартовый набор 2.0» (арт. 540586) и «BT Стартовый набор» (арт. 540587), предназначенных для знакомства с основами программирования, автоматики и робототехники.
История вопроса
С формальной точки зрения ROBO Pro Light и Scratch относятся к так называемым инструментам визуального программирования, которые не требуют написания программ в текстовом виде и знания традиционных языков программирования. В учебных средах разработки ROBO Pro Light и Scratch реализована парадигма структурного программирования. Программы в Scratch составляются из цветных графических блоков с выступами и углублениями, которые соединяются между собой на экране компьютера так же, как конструктивные элементы обычного пластикового конструктора с системой крепления «шип-паз». Используя Scratch, дети продолжают «играть с конструктором» на экране компьютера уже привычным для себя образом. Визуальная среда программирования ROBO Pro Light придерживается традиционного подхода к знакомству с программированием и изучению информатики, предлагая составлять управляющие программы в виде стандартных блок-схем. Для наглядности графические блоки содержат в себе изображения датчиков и исполнительных устройств.
Блок-схемы появились как способ наглядного описания алгоритмов и процессов. В настоящее время они используются не только для составления различных схем, но и применяются в средствах графического программирования встроенных приложений для микроконтроллеров и промышленных программируемых логических контроллеров (ПЛК). Ещё в начале 90-х годов прошлого века для конструкторов fischertechnik из серии «Computing» появилось программное обеспечение LuckyLogic, которое позволяло составлять управляющие программы из псевдо-графических блоков.
В свою очередь Scratch продолжил традицию языка Лого, придуманного коллективом авторов, в число которых входил Сеймур Пейперт [1]. Язык Лого представляет собой инструмент взаимодействия детей с компьютером через посредника в виде черепашки, которая может выполнять различные команды на экране компьютера. Лого-черепашка оказалась «долгожительницей» под стать настоящим черепахам. Со временем ей на смену пришёл рыжий кот со своими помощниками, которых дети могут оживить в среде Scratch и, таким образом, рассказать свою историю, придумать мультфильм или создать простую компьютерную игру.
Благодаря стремительному развитию цифровых технологий сегодня у нас есть выбор – можно продолжать «командовать» забавным персонажем на экране компьютера и составлять программы, управляющие его поведением, а можно запрограммировать контроллер, который будет получать информацию от датчиков робота собранного из конструктора и управлять его исполнительными устройствами.
И ROBO Pro Light, и Scratch доступны в виде приложений для компьютеров, работающих под управлением операционной системы (ОС) Windows. У Scratch есть онлайн-версия, не требующая установки на компьютер. Для планшетов и смартфонов под управлением ОС Android и iOS имеется приложение ROBO Pro Smart, которое по функциям аналогично приложению ROBO Pro Light для Windows. У Scratch тоже есть приложение для Android. Программирование учебного контроллера BT Smart с помощью Scratch в настоящий момент доступно только в онлайн-версии на сайте https://www.ftscratch3.com/.
Функциональные возможности
В среде программирования ROBO Pro Light имеются графические блоки, которые позволяют работать с двумя типами цифровых датчиков: кнопочным переключателем (англ. switch) и фототранзистором светового барьера (англ. light barrier). Поддержка аналоговых и других видов цифровых датчиков реализована в полнофункциональной версии ROBO Pro для более мощного контроллера TXT, входящего в комплект поставки конструктора «TXT Набор первооткрывателя» (арт. 524328).
В то же время в расширении Scratch для контроллера BT Smart имеются программные блоки для проверки состояния не только кнопочного переключателя и фототранзистора, но и таких цифровых датчиков, как геркон – (англ. reed contact) и датчик траектории (англ. trail sensor), а также блок для получения информации от аналоговых датчиков: NTC-резистора (англ. NTC resistor), фоторезистора (англ. photoresistor) и датчика цвета (англ. color sensor). Для правильной интерпретации значений, получаемых на входах контроллера, имеется программный блок, позволяющий установить для входа контроллера один из четырёх типов датчика:
- «цифровой, напряжение» (англ. digital voltage) для фототранзистора светового барьера и датчика траектории;
- «цифровой, сопротивление» (англ. digital resistance) для кнопочного переключателя и геркона;
- «аналоговый, напряжение» (англ. analogue voltage) для датчика цвета;
- «аналоговый, сопротивление» (англ. analogue resistance) для NTC-резистора и фоторезистора.
Таким образом, использование расширения Scratch позволяет в полной мере раскрыть функциональный потенциал контроллера BT Smart и предоставляет огромное поле возможностей для усовершенствования стандартных и конструирования новых моделей. Например, подключив NTC-резистор к контроллеру BT Smart, модель пешеходного светофора можно легко превратить в индикатор температуры, который будет загораться красным светом, когда в помещении становится жарко, и гореть зелёным светом, если будет слишком прохладно.
Для управления исполнительными устройствами расширение Scratch предлагает больший набор программных блоков, но их функциональность аналогична возможностям двух блоков для управления лампами и моторами в среде ROBO Pro Light. Лампы и моторы можно включать и выключать. Включение исполнительных устройств возможно с изменением полярности для вращения моторов в разных направлениях и с разными уровнями напряжения, т.е. с разными скоростями вращения моторов и разными уровнями интенсивности свечения ламп (от 1 до 8).
И среда программирования ROBO Pro Light, и Scratch позволяют составлять линейные алгоритмы, алгоритмы с циклами, выполнять проверку условий с ожиданием и с ветвлением и поддерживают многопоточность.
Кроме этого, в Scratch можно создавать новые программные блоки, выполняющие функции подпрограмм. В упрощенной версии ROBO Pro Light такой возможности нет – подпрограммы появляются только в полнофункциональной среде программирования ROBO Pro. Scratch позволяет оживить не только модель, собранную из деталей конструктора, но и простейшую компьютерную модель, нарисованную с помощью встроенного графического редактора.
Примеры программ
Простейший алгоритм работы модели шлагбаума со световым барьером выглядит следующим образом: при пересечении светового барьера шлагбаум начинает открываться с задержкой в одну секунду и остаётся в открытом положении 5 секунд, после чего закрывается.
Представленные на рисунке примеры программ предполагают использование в конструкции шлагбаума двух концевых выключателей, роль которых выполняют кнопочные переключатели. Один концевой выключатель должен срабатывать при открытии шлагбаума, а другой при его закрытии, т.е. при подъёме стрелы шлагбаума в вертикальное положение и опускании стрелы в горизонтальное положение соответственно. Концевой выключатель горизонтального положения стрелы шлагбаума должен быть подключен к первому входу контроллера (I1), а концевой выключатель вертикального положения стрелы ко второму входу (I2).
Чтобы сделать шлагбаум более безопасным, подъём стрелы происходит со средней скоростью (V=4 и Set motor 1 to 4 backwards), а опускание с малой скоростью (V=2 и Set motor 1 to 2 forward). В начале программ после включения лампы светового барьера, подключенной к выходу контроллера M2, выполняется задержка продолжительностью 0,1 сек, которая предотвращает ложное срабатывание светового барьера. Включение светодиодной лампы в расширении Scratch выполняется с помощью блока управления мотором (Set motor 2 to 8 backwards), который позволяет задать необходимую полярность включения исполнительного устройства.
На рисунке видно, что один и тот же алгоритм работы шлагбаума, составленный из блоков Scratch, получился более компактным, а алгоритм в виде блок-схемы в среде ROBO Pro Light выглядит более наглядным и лучше отражающим структуру алгоритма. Таким образом, с одной стороны блок-схема даёт нам возможность в буквальном смысле «пройти» по всем ветвям алгоритма, следуя стрелкам и проверяя логические условия, а с другой стороны блок-схема перестаёт быть удобной и наглядной для больших алгоритмов, которые не умещаются на одном экране и их сложно «охватить» одним взглядом.
Рассмотренный нами простейший алгоритм имеет один существенный недостаток – он не обеспечивает безопасной работы шлагбаума. Если в процессе закрытия шлагбаума под его стрелой окажется пешеход или «замешкавшийся» автомобиль, то управляющая программа этого «не заметит» и стрела шлагбаума продолжит опускаться. Кроме этого, простейший алгоритм работы шлагбаума в начале своей работы не проверяет положение стрелы шлагбаума и не приводит её в исходное, т.е. закрытое положение. Реализация усовершенствованного алгоритма работы шлагбаума, лишённого вышеперечисленных недостатков, приведена на рисунках. На примере данных программ может быть наглядно продемонстрировано использование таких логических операций, как логическое «И» и логическое «ИЛИ».
Отладка программ
Процесс выполнения программы в среде ROBO Pro Light визуализирован в наглядной форме следующим образом – выполняемый в настоящий момент программный блок выделяется на блок-схеме красной рамкой, а на панели «Тест BT контроллера» можно наблюдать в реальном времени как за изменением состояния цифровых датчиков, например кнопка нажата или отжата, световой барьер не прерван или пересечён, так и исполнительных устройств: моторов и ламп.
В свою очередь, для отладки программ в среде Scratch можно временно использовать «отладочные» блоки, например, воспроизводящие различные ноты и звуки, что сделает рутинный процесс отладки увлекательным и более очевидным для учащихся. А приложение FTScratch BTSmart, обеспечивающее связь между расширением Scratch и контроллером BTSmart, отображает в наглядной форме показания датчиков (I1–I4) и состояние исполнительных устройств (M1–M2) как это показано на рисунке.
В качестве заключения
Конструктор и учебная среда программирования – всё это инструменты образовательного процесса, а выбор инструмента диктуется решаемой задачей. Scratch – это своего рода «мультитул» (от англ. multi-tool), т.е. универсальный многофункциональный инструмент. А ROBO Pro – специализированный набор инструментов (англ. toolkit) для будущих инженеров в области промышленной автоматизации – в нём есть всё самое необходимое и почти ничего лишнего. В руках хорошего мастера эти два инструмента будут отлично дополнять друг друга.
- Устройство контроллера BT Smart
- ROBO Pro Light версия 4.3.6 для Windows 7/8/10
- ROBO Pro Smart для Android
- ROBO Pro Smart для iOS
- Онлайн-версия Scratch 3.0 для контроллеров fischertechnik BT Smart и TXT
- Примеры программ в среде ScratchX для контроллера BT Smart
- Пейперт С. Переворот в сознании: Дети, компьютеры и плодотворные идеи: Пер. с англ. — М.: Педагогика, 1989. — 224 с., ил.
- Marji, Majed, Learn to program with Scratch: a visual introduction to programming with games, art, science, and match: No Starch Press. Inc., San Francisco
- Руководство к конструктору: Книга экспериментов Experimentierbuch Profi Computing: Pflaum Verlag München fischerwerke Artur Fischer GmbH & Co. KG
- Рабочая тетрадь для Стартового набора с заданиями по программированию контроллера BT Smart с помощью визуальной среды ROBO Pro Light
- Дидактический материал по программированию контроллера BT Smart с помощью визуальной среды ScratchX на немецком языке
- ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
- Видео-ролик BBC Buggy — Line Follower