Продолжаем апробацию предоставленного компанией ПАКПАК набора BT Стартовый набор от Fishertechnik.
Ранее были представлены материалы:
1.fischertechnik. BT Стартовый набор. Первые впечатления
2. fischertechnik. BT Стартовый набор. Пробуем ROBO Pro Light
По впечатлениям на первых этапах напомню: добротно, но необычно, программное обеспечение предоставляет много возможностей для создания умных игровых ситуаций и учебных заданий.
И, тем не менее, после работы с визуальной средой Scratch/mBlock с наборами Lego WeDo, Arduino и MakeBlock, очень хотелось попробовать возможности конструктора fischertechnik при программировании в подобной среде. Жалко, конечно, что поддержка не встроена в современные версии Scratch и нет расширения для mBlock под fischertechnik, хотя вроде бы среды открытые и упускать такую возможность, на мой взгляд, стратегически неправильно. Но существует on-line решение, хотя и в виде beta-версии, которое вполне позволяет почувствовать, как бы это было, если бы такая поддержка была.
Итак, для работы потребуется:
1. Установленный драйвер USB для набора. Если у вас уже установлено ПО ROBO Pro Light, то он уже у вас есть, если нет, напомню:
Программное обеспечение для BT.Стартовый набор можно брать с сайта.
https://www.fischertechnik.de/en/service/downloads/robotics - загрузка ПО
https://www.fischertechnik.de/en/service/downloads/robotics отдельно usb драйвер.
2. Подключение к Интернет и страничка проекта FTScratchBTSmart
3. Установленный .NET Framework 4 или старше (я пробую на Windows 8 и 10, ничего специально не доустанавливал, но может кому-то и придется).
4. Поддержка браузером Adobe Flash Player.
Далее инструкция по подключению и запуску.
1. Переходим на страницу FTScratchBTSmart
2. Скачиваем по ссылке Download приложение FTScratchBTSmart.exe, (для удобства дальнейшего использования переносим его из загрузок в удобную папку, делаем ярлык для запуска).
3. Подключаем контроллер Fishertechnik к компьютеру, не забываем о питании.
4. Запускаем FTScratchBTSmart.exe
В появившемся окошке видим приглашение указать порт соединения, а также схематику контроллера, где будут отображены происходящие с ним процессы.
В моем варианте порт com7, выбрали, нажимаем ОК.
5. В браузере открывается окно приглашения, соглашаемся (зеленый выбор).
Все, попадаем в on-line вариацию Scratch, способную работать с fischertechnik.
6. Начинаем осваивать специализированные блоки для работы с нашим контроллером.
Я не буду очень подробно рассказывать о всех действиях по работе со средой. Очень похоже на обычный Scratch. Блоки fischertechnik можно запускать щелчками, проверяя работу с разными параметрами, комбинировать между собой и с стандартными блоками Scratch. Пробуйте, экспериментируйте. Единственно отмечу, что у меня (может это специфический случай и вы с таким не столкнетесь) иногда онлайн редактор как бы застывал и, например, не давал вводить цифры в соответствующие окошки блоков. Я даже Блокнот запустил параллельно, чтобы проверить, что с клавиатурой. И помогло! В дальнейшем достаточно было при таком подвисании переключиться в окно Блокнот и обратно - все дальше нормально работало. Может, кому понадобится)))
Первый проект
Я воспользовался все той же каруселью, собранной в прошлый раз для статьи Fischertechnik. BT Стартовый набор. Пробуем ROBO Pro Light
Правда, не буду пользоваться кнопкой, попробую управление с клавиш компьютера. Мотор подключен к M1, светодиод к M2, датчик света на I2.
Для начала посмотрим, какие значения показывает датчик света при освещении светодиодом и при перекрытии света (см. прошлую статью и схемы сборки). Для этого поручим любому спрайту (я просто шарик выбрал) все время "Думать", использовав в качестве аргумента показания датчика и указав его порт (у меня I2).
Когда становится понятно, что значения освещенного датчика в моем случае не превышают 250, а при выключении света они становятся значительно больше, использую 300 как условие выбора действия при затенении датчика (небольшой запас обусловлен колебаниями значений и небольшой зависимостью еще и от внешнего света, не только от светодиода).
Ну, а дальше раздолье для учебных задач, которые могут носить вполне практический характер.
Например:
Пусть карусель сначала довернется до исходного положения (пересечение пластиной света датчика) и после этого прокрутится заданное количество оборотов.
В блоках управления моторами и светодиодом значения можно задавать по тому же принципу, что и в стандартном ПО ROBO Pro Light: 0 - отсутствие сигнала, 8 - максимум (скорость, или свет).
Для решения таких задач потребуются переменные и организация счетчика. Пример - на скриншоте ссылка на фото. В конце дам ссылку на все проекты, они замечательно грузятся и выполняются в онлайн среде.
Далее можно предложить сделать вариант с запросом - а сколько раз вы хотите прокрутить карусель? И т.д.
Проект 2
Продолжим. Для нашей карусели хотелось бы обеспечить автоматический вариант работы с одной кнопкой оператора. Алгоритм: по первому нажатию (утром) карусель медленно поворачивается и останавливается в заданном положении. По второму и последующему нажатиям - катаем публику по 10 секунд на максимальной скорости, после чего, опять же, карусель останавливается в заданном положении для выпуска/загрузки пассажиров. Экономим лампы, выключаем в ожидании заполнения карусели пассажирами.
В ходе решения этой задачи будут интересные моменты, связанные с определением требуемой скорости поиска исходного положения, зазоров времени, можно использовать сложные алгоритмы для постепенного раскручивания и остановки карусели.
вариант реализации: ссылка на фото
Проект 2 с дополнением.
Для повышения безопасности аттракциона реализуем:
1. Экстренное торможение по нажатию на кнопку Z.
2. Вспомогательное управление для оператора: кнопками "стрелка влево" или "стрелка вправо" он может скорректировать положение карусели для загрузки-выгрузки пассажиров, если, например, произошла экстренная остановка.
Пример реализации. ссылка на фото.
Проект 3
Одна из интереснейших возможностей использования связки микроконтроллер - Scratch, это вариант совмещения событий, происходящих в реальном мире и в виртуальном. Т.е. в то время, как контроллер руководит действиями конструктора, датчики передают сигналы и т.д., в виртуальном мире персонажи отыгрывают свои роли в соответствии с вводными из реального мира. Как простой пример: гасим свет в кабинете, а в нарисованном в Scratch домике должно зажечься освещение)))) Легко, всего лишь датчик света, но уже практически принцип умного дома показываем)))
В последнем проекте попробуем просто показать, как это может быть. Рисую спрайт - карусель (приложу к архиву программ) и пусть она вертится в нужную сторону, когда оператор вручную управляет каруселью. Здесь интересно подбирать/считать значения блоков поворота спрайта, для "реальности" происходящего. Из этого можно сделать целое учебное задание, считать, на сколько оборотов повернется реальная карусель за определенное время, считать угловую скорость, применять все это для расчета аргументов блока поворотов и т.д. Вообще - соединение виртуального и реального мира дает огромное поле для таких заданий, ну и для создания игр, разумеется.
Видео к проекту
В качестве заключения: соединение набора с визуальной средой разработки в стиле Scratch - отличный вариант для реализации учебных и игровых проектов. Ну пора уже маркетологам fischertechnik озаботится такой возможностью серьезно, создав расширение для того же mBlock или Scratch 3.