Публикации сообщества

Александр Григорьев • 18 августа 2020

Средства визуального программирования микроконтроллеров, краткий обзор обновлений

Приближается новый учебный год. Хочется встретить его во всеоружии, ведь нас наверняка ждёт масса сюрпризов. В каких условиях и в каком режиме придётся проводить занятия, до сих пор не совсем понятно. Особенно это касается внеурочной и кружковой деятельности.

Сегодня я хотел бы сделать небольшой обзор новых версий программных продуктов, служащих для визуального программирования микроконтроллеров. Со времени прошлого обзора очень многое успело поменяться, есть что рассказать.

  • Обзор визуальных средств программирования микроконтроллеров (часть 1)
    https://novator.team/post/558
  • Обзор визуальных средств программирования микроконтроллеров (часть 2)
    https://novator.team/post/566

Прежде всего напомню, что как и в прошлый раз буду говорить в основном о тех продуктах, которые способны создавать программы для автономной работы микроконтроллера, и при этом имеют интерактивный режим, позволяющий сэкономить время занятий, сделать их интересными даже для учеников младших классов. Основоположник данного подхода - среда программирования mBlock компании Makeblock. Я предполагаю, что читателям материал первого обзора уже знаком. Список важных для меня (и думаю, не только для меня) критериев оценки каждого приложения - в конце этой статьи.

 

MindPlus v.1.6.4 RC2.0

image-20200818194125-1

http://mindplus.cc/download-en.html

Эта среда программирования на базе Scratch3 избавилась от многих своих "детских болезней". Прежде всего надо сказать, что теперь и операции записи, и операции чтения состояния портов микроконтроллера Arduino в интерактивном режиме происходят очень быстро. Это позволяет реализовывать и игровые проекты с использованием платы Arduino или Micro:bit в качестве игрового "джойстика", и разнообразные робототехнические. Любимый многими робот Mcqueen программируется именно в этой среде. Правда, как обстоят дела с беспроводным управлением, непонятно.

Из плюсов - поддерживается управляющая структура "if - else if - else", это удобно и делает скрипты компактнее.

Что приятно, есть расширение для модуля видеозрения HuskyLens. Есть и расширение ML5 ("Machine Learning") для реализации проектов с элементами искусственного интеллекта на базе видеозрения.

Но следует учитывать, что программа MindPlus сориентирована всё-таки не на универсальные микроконтроллеры, а в первую очередь на коммерческие продукты компании DFrobot. И даже здесь возможности на мой взгляд урезаны. В частности, при подключении шаговых двигателей запускать их можно лишь поочерёдно, робота-художника сделать не получится.

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

 

Kittenblock v.1.84z

image-20200818194125-2

https://www.kittenbot.cc/pages/software

"Одноклассник" программы MindPlus. Настолько же быстро работает в интерактивном режиме, но у меня возникло ощущение, что соединение чуть менее стабильно.

Прежде всего хочется отметить, что в списке доступных расширений, причём частично уже предустановленных, оборудование сторонних разработчиков. Среда Kittenblock явно ориентирована на хорошую совместимость с разными аппаратными платформами, и это крайне импонирует. И свидетельствует об уверенности компании Kittenbot в своих силах. Добавлять можно и собственные расширения, но к сожалению, лишь через сервис Github, по веб-ссылке. Этот механизм ещё недоработан, и библиотека расширений хоть и присутствует, но пока не сравнится с библиотекой mBlock.

Тем не менее, компания Kittenbot со своей программой Kittenblock явно рассчитывает оказаться в числе лидеров. И у неё есть козыри в виде специализированных проработанных наборов для изучения робототехники и основ искусственного интеллекта. Само собой, есть собственный модуль видеозрения (он входит в набор) и расширения для работы с ним, а также расширения для реализации элементов искусственного интеллекта, в частности, TensorFlow и тот же ML5.

Можно управлять одновременно обоими шаговыми двигателями. В отличие от MindPlus Kittenblock способен заставить робота крутить сразу двумя колёсами, чтобы тот ехал прямо - большое достижение!

Кроме того, Kittenbot предлагает единственное пока что известное мне средство для решения проблемы беспроводной коммуникации между компьютером и платой Micro:bit. Это специализированный, предназначенный именно для Micro:bit USB-модуль стандарта BLE.

https://aliexpress.ru/item/32911028409.html

Kittenblock понадобится и тому, кто рассчитывает перейти на использование "старшего брата" Micro:bit с  шестью встроенными кнопками и цветным жидкокристаллическим экраном с разрешением 160 на 128 точек. Называется это чудо "Meowbit".

https://www.kittenbot.cc/products/meowbit-codable-console-for-microsoft-makecode-arcade

Текущая версия Kittenblock имеет достаточно богатый набор средств для программирования классической платы Arduino вместе со всяческой распространённой периферией, можно создавать и интерактивные, и автономные проекты. Очень существенно, что разработчики Kittenblock не стали увлекаться модной идеей, не стали прятать от пользователей команду "pinMode" для переключения режимов работы портов ввода вывода. В результате среда Kittenblock годится для реализации множества проектов продвинутого уровня.

Но и здесь не обошлось без недостатков. Мне неизвестен способ создания и использования в Arduino-проектах массивов, а также целочисленных и строковых переменных. И это серьёзное ограничение возможностей.

 

MagicBlock v.1.2.3.0

image-20200818194125-3

http://www.emakefun.com/en/download

Ещё один клон mBlock (даже по названию) почти того же класса, что две предыдущие программы, новичок от компании eMakeFun.

Эта среда, мягко говоря, ещё сыровата, и огрехов в ней полно. Достаточно сказать, что пока можно создавать лишь что-то одно, либо автономные проекты для микроконтроллеров, либо интерактивные проекты без участия микроконтроллеров. Использовать плату Arduino с джойстик-шилдом как приставку для придуманной самостоятельно и запрограммированной игры не получится. И язык следует выбирать исключительно английский, чтобы не смотреть на экран с недоумением.

Однако потенциал у этой программы есть. Кому-то несомненно понравится набор средств: работа со строками, с прерываниями, управляющие структуры "if - else if - else", циклы с предварительной и конечной проверкой условия, операция "pinMode", возможность создавать целочисленные переменные произвольного типа, а также функции, возвращающие значения (наконец-то!).

Но к сожалению, создание и использование массивов недоступно и здесь, хотя есть надежда, что с тем подходом, который практикуют разработчики, это дело недалёкого будущего.

Можно добавлять собственные расширения, сохранённые в виде локального файла. Конечно, необходимо вначале разобраться, каким образом подобные расширения создавать, однако это свидетельствует о том, что разработчики MagicBlock подумали о пользователях тех компьютеров, которые не имеют выхода в интернет.

Имеет смысл следить за развитием данного проекта, не говоря уже о том, что сами продукты компании eMakeFun, для программирования которых и предназначен MagicBlock, хороши и интересны.

 

Mixly v.0.999

image-20200818194125-4

http://www.emakefun.com/en/download

Скажу и об этой среде программмирования, используемой теми же разработчиками. Несмотря на то, что средств создания интерактивных проектов в ней нет совсем, это очень интересный и функциональный вариант для тех случаев, когда нас интересуют исключительно программы для автономной работы микроконтроллера. Но следует учесть, что интерфейс данной среды для пользователей Scratch во многом непривычен.

 

Snap4arduino v.6.1.2 RC

image-20200818194125-5

http://snap4arduino.rocks/

Очень мощная среда программирования, в первую очередь с точки зрения создания интерактивных проектов. Эталон в отношении скорости и надёжности соединения между компьютером и микроконтроллером. Использует очень продуктивный подход - любой файл с экспортированным набором блоков уже и является расширением, которое можно хранить у себя на диске или в облаке (это делает созданное расширение доступным для всех). Имеет серьёзные средства объектного программирования. В свежей версии добавились некоторые новые возможности, интересные скорее для ценителей данной программы.

К сожалению, эта среда программирования так пока и не избавилась от основного своего недостатка - необходимости использовать Arduino IDE для загрузки на микроконтроллер прошивки StandartFirmata. Но можно установить MindPlus для удобной загрузки альтернативной совместимой прошивки, об этом я писал в прошлом обзоре.

Другой недостаток - по-прежнему бедноватый набор предустановленных средств для создания проектов, работающих в автономном режиме. Более того, для этого потребуется ещё и загружать сгенерированный текстовой скетч в Arduino IDE, что малоприменимо при занятиях со младшими школьниками.

 

microBlocks v.0.6.2

image-20200818194125-6

http://microblocks.fun/download#download

Это среда программирования с особыми возможностями. Она является своего рода антиподом Snap4arduino, при этом повторяя многие его особенности. Оптимальным вариантом было бы объединить эти две среды в одной программе, такой проект существовал, но к огромному сожалению, уже долго остаётся заброшенным.

В текущей версии microBlocks нельзя использовать Сцену и спрайты, можно лишь создавать программы для автономной работы микроконтроллера. Зато результат мы видим немедленно при добавлении того или иного блока - скрипты дозагружаются на микроконтроллер непосредственно во время их создания. И остаются работать после выключения питания и перезагрузки. Идеально при обучении детей.

Программировать возможно лишь 32-разрядные микроконтроллеры, в числе которых Micro:bit и ESP32. Причём прошивка загружается очень легко прямо из меню. Допустимо использовать и Arduino M0 или Arduino Due, если прошить плату при помощи Arduino IDE. Достаточно сделать это один раз.

Из недостатков можно отметить отсутствие поддержки использования гироскопа (сегодня каждому роботу пора уже научиться ориентироваться в пространстве) и микросхемы PCA9685, повсеместно применяемой для управления двигателями.

В числе уникальных особенностей программы - возможность добавления нескольких параллельно исполняющихся циклов. Это радикально упрощает создание сложных проектов. Также как в Snap4arduino легко использовать собственные и чужие библиотеки расширений, функции, возвращающие значения и т.д. Не стоит забывать и о том, что данный проект отличается целостностью. С любым микроконтроллером мы работаем сходным образом и способны использовать переменные с динамической типизацией, списки и прочие программные инструменты, ставшие привычными в Scratch.

 

Makecode Microbit v.3.0.17

image-20200818194125-7

https://makecode.microbit.org/

Программная среда, которую используют для работы с Micro:bit чаще всего. Отличается проработанностью средств управления аппаратными компонентами и наличием документации по созданию расширений. В результате множество разработчиков ориентируется именно на неё при выборе программной среды для своих продуктов (робототехнических контроллеров, сенсоров и т.д.).

О наличии какой-то интерактивности можно было бы не говорить, если бы не встроенный эмулятор платы Micro:bit. Это решение не без недостатков, но действительно серьёзное достоинство программы.

Другое очень серьёзное достоинство - возможность создания нескольких параллельно работающих циклов, как у microBlocks.

Ранее интерфейс Makecode вызывал много недоумения и раздражения. Реализовать сколько-нибудь объёмный проект было сложно. Но после обновления ситуация улучшилась, разработчики явно учли замечания пользователей.

 

mBlock5 v.5.2.0

image-20200818194125-8

https://www.mblock.cc/en-us/download

Обновление этой программы и её расширений наконец-то позволило создавать не только автономные, но и интерактивные проекты с универсальными микроконтроллерами. Скорости работы несколько маловато для проектов с чтением состояния большого количества портов, но эту проблему есть способ решить (об этом чуть позже). И главное, благодаря большому наработанному контингенту пользователей и механизму загрузки собственных расширений компании Makeblock удалось получить уже достаточно обширную библиотеку для новой "реинкарнации" mBlock.

Хоть большинство пользовательских расширений отличается "сыростью", некоторые из них действительно полезны. Например, есть расширение для создания и использования массивов. Конечно, логичный и целостный набор средств, удобный для проведения занятий с детьми, ещё только предстоит создать, но теперь стало понятно, что mBlock5 - по прежнему перспективный продукт, имеющий свои сильные стороны при работе с открытыми аппаратными платформами. Конечно, нельзя не заметить, что mBlock3 имел более "дружественный" набор инструментов для этого. Но несмотря на собственные коммерческие успехи компания Makeblock всё-таки продолжает поддержку оборудования сторонних производителей.

 

Итог

В ходе своего мини-исследования мне очень хотелось найти свою "программу мечты", годящуюся для всех случаев жизни, и способную заменить старенькую проверенную среду mBlock3 с расширением "Advanced Arduino".

https://www.lab169.ru/mblock/extensions/advanced-arduino-extension-c-v/

Я опирался на следующие критерии:

  • возможность создавать автономные проекты;
  • возможность создавать интерактивные проекты, в том числе с использованием спрайтов и Сцены, а также с "моментальной" реакцией платы на команды, отправляемые с компьютера;
  • поддержка использования разнообразных типизированных переменных или переменных с динамической типизацией;
  • поддержка использования массивов или списков;
  • поддержка работы с параллельным соединением на разных скоростях в автономных проектах;
  • поддержка переключения режимов работы портов ввода-вывода в автономных проектах;
  • поддержка использования прерываний в автономных проектах;
  • поддержка параллельных циклов либо заданий, запускаемых по таймеру в автономных проектах;
  • поддержка наиболее критичного для разных робототехнических платформ оборудования - светодиодов Neopixel, гироскопа, микросхемы PCA9685 драйвера двигателя;
  • лёгкость добавления расширений, в том числе своих собственных;
  • достаточно высокая скорость чтения большого количества портов в интерактивном режиме.

Что же, полноценную замену мне пока найти так и не удалось. При использовании платы Arduino Uno связка "mBlock3 + Advanced Arduino Extension" всё ещё оказывается по функциональности значительно лучше.

Sample

Самый главный недостаток по сравнению со средами Snap4arduino, Kittenblock и MindPlus, это меньшая скорость работы в интерактивном режиме, препятствующая созданию проектов, в которых требуется читать состояние сразу нескольких портов. Но этот недостаток можно устранить и даже превратить в интересную учебную задачу. Об этом я хочу рассказать в одной из своих следующих публикаций.

И всё-таки для "mBlock3+AAE" уже следует потихоньку подбирать "дублёра". Компания Adobe заявила о будущем прекращении использования Adobe Flash Player. А это значит, что веб-страница Scratch2 перестанет быть доступной. Радует то, что оффлайн-версия Scratch2 и mBlock3, базирующиеся на Adobe AIR, ещё какое-то время продолжат работать, и вполне можно успеть найти подходящую замену.

 

Кол-во комментариев: (16)

Лора Кравченко
Александр, спасибо большое за подробный пост. В этом году работу с arduino планируем сместить в 7 класс. Но программируют они на C, конечно, с трудом. Как на Ваш взгляд, среда, которую описываете Вы, будет проще для понимания детям в 7 классе (я прочитала, Вы пишете, что увлекает даже младших) Это от того, что она интуитивно понятнее? Я решила попробовать.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    Это здорово! Безусловно, пробуйте! Я уверен, что Вы на собственном опыте убедитесь, что детям гораздо проще и понятнее программирование в Scratch-подобных средах, и будете приятно удивлены, насколько это проще и понятнее :) Важно здесь несколько моментов. Во-первых, не надо учить синтаксис языка. Ошибка буквально в одном символе - и программа не работает. А когда ошибок сразу несколько (типичная ситуация для новичка), это вызывает ощущение непреодолимого препятствия и желание забросить программирование куда-нибудь подальше. Во-вторых, чудовищно важно то, что первые шаги в освоении микроконтроллера проходят в режиме интерактивного управления. Щёлкнул по блоку - лампочка зажглась. Щёлкнул - погасла. При программировании в Arduino IDE приходится ждать десятки секунд, чтобы программа откомпилировалась. И практически всегда это время ожидания не готового результата, а первого сообщения об ошибке. И в третьих, в mBlock и прочих средах есть спрайты! А это значит, что начинать можно с создания забавных увлекательных, но при этом несложных мини-игр. Очень советую ознакомиться с нашей книжкой "Scratch и Arduino для юных программистов и конструкторов". Или как вариант с электронной книжкой Дениса Голикова "Школа капитана Грампа". С комиксами. Только имейте ввиду, юмор там специфический... Я уверен, Вы очень быстро поймёте, что всё не так сложно, хотя тонкостей, как и в любом другом деле, полно! Удачи Вам! :)
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Alexander Chernov
    Александр, спасибо за добротный как всегда у вас материал. Мы начали работать с Mind+. Пока нашли один косяк, если загрузить программу с Extenstions в среду без них, то они просто пропадают, а не горят красным цветом, как в mBlock. А среда разработки собственных блоков есть и ее можно найти по следующей ссылке https://mindplus.dfrobot.com/extensions-user.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    Александр, спасибо! Насторожило "Адаптер USB Bluetooth 4,0, совместимый с microbit". Разве не любой Адаптер USB Bluetooth 4,0, должен работать с микро:битом? BLE у микро:бита "кривое"?
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    Всё непросто, и в этой чудовищно важной проблеме ещё разбираться и разбираться. С Bluetooth вообще очень много сложностей, а времени вникнуть в тему основательно пока не хватает. В двух словах - спецификация Bluetooth 4 и 5 включает независимые технологии EDR и BLE, и не факт, что чип, поддерживающий EDR спецификации Bluetooth 4 поддерживает и BLE. А для BBC Micro:bit, кстати, требуется Bluetooth 4.1. Отличие от предыдущей версии, как пишут - мобильные сети и Bluetooth меньше мешают друг другу. Если осознать этот факт, то получается, что сочетание факторов (в том числе версия Bluetooth на компьютере) определяет успешность или неуспешность соединения. И предположим, может оказаться, что в лесу установить беспроводное соединение с Micro:bit удаётся, а в городе нет.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Alexander Chernov
    У нас появился пока небольшой опыт использования среды Mind+ для программирования роботов Maqueen Plus. Пока можно отметить следующее: Плюсы Mind+ 1. Очень быстрая компиляция и загрузка. 2. Большая область окна для разработки кода, так как можно сдвинуть область компиляции влево и область блоков полупрозрачная, что позволяет видеть свой код под ней. 3. Окно компиляции чистится и позволяет выводить сюда данные по серийному порту, что очень удобно для отладки. Для платы micro:bit есть готовый набор блоков. 4. В базовом наборе команд есть 10 блоков для работы со списками и он работает в том числе и при загрузке программы в робот. 5. Есть возможность разработки и добавления собственных блоков. 6. Для платы micro:bit можно выбирать между Arduino C и microPython. 7. Всегда отображается имя файла, который в данный момент редактируется и список всех ранее редактированных файлов появляется при загрузке, как в Arduino IDE. 8. И самое главное, пока все блоки, что мы использовали работают. Минусы Mind: 1. Иногда зависает серийный порт, помогает его отключение и заново подключение. 2. Нет уменьшения окна разработки, чтобы видеть всю программу, как в mBlock. 3. При загрузке программы с блоками из Extensions в среду с незагруженными Extensions, программе теряются блоки. Нужно сначала загрузить Extensions, затем прикладную программу. В mBlock эти блоки красились красным цветом. Это связано с тем, что в этой среде нет возможности Настройки на определенные Extensions и их сохранения. Она при создании нового файла теряет их. Плюсы Maqueen Plus: 1. Маленькие размеры и очень емкая батарея, можно подзаряжать раз в неделю. 2. Зарядка встроена в “шилд”. 3. 4 ИК сенсора для езды по линии, позволяющие ехать по евролинии, расстояние примерно 1 см между центрами датчиков и два смещённых назад сенсора расположены по краем, для определения перекрёстков. 4. Все ИК сенсоры могут работать как цифровые, так и аналоговые. Это позволяет построить PID регулятор на 4 цифровых или даже всего на двух аналоговых с использованием программной калибровки. 5. Высокое качество изготовления. Например гайки вделаны в крепление двигателей. 6. Возможность использования Смарт-камеры. 7. Переднее колесо стоит перед ИК сенсорами и защищает их от ударов. 8. Если сгорит контроллер, он просто заменяется. 9. Очень удобно подсоединять и крепить сенсоры сторонних производителей или сервоприводы на анодированной платформе с отверстиями. Минусы: 1. Блок остановки моторов срабатывает медленно, а распиновка в документации отсутствует для написания своего блока. 2. Хотелось бы более быстроходные моторы. Они выпаиваются легко, будем пробовать. Это пока небольшой опыт, мы используем этот робот для Line Maze Solving с использованием евролинии и он великолепно подходит для этих задач, именно за счёт продуманного конструктива и размеров,
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    Александр, спасибо огромное за отличный отзыв! Это очень существенная информация! А есть ли у Вас опыт управления роботом в интерактивном режиме по беспроводному соединению? Это было бы очень интересно. Что касается блоков управления моторами - работа идёт через расширитель портов на чипе PCA9685, так же, как практически во всех других роботах на базе Micro:bit. Вот только DFrobot решил использовать собственный набор контактов PCA9685, отличающийся от тех, что используются в роботах Kittenbot, Elecfreaks, LOBOT, eMakeFun и некоторых прочих. Так что для исправления придётся повозиться с MindPlus, софт других разработчиков (предусматривающий динамическое торможение моторов) можно будет использовать лишь если написать специальное расширение для Maqueen. Есть вариант попытаться связаться с разработчиками DFrobot. Может, у Вас получится, я как-то пытался (по другому поводу, относительно их нового интересного микроконтроллера), но толку не было.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    Извините, отвечаю на обращение к Александру. Управление микробитовым роботом - не проблема по радио, так что BLE для старта не нужен (на фестивале у нас роботы управлялись судейским роботом по радио). С пульта так я и не пробовал, но София, дочь Владимира Ненахова ("папы-профессионала" из поста О. Тузовой), благополучно осилила. По поводу обращения к разработчика Dfrobot: там реагируют на предложения, но, естественно, это должно вписаться в их представления и планы, чтобы попало в продукт.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    Михаил, спасибо! Да я знаю, что коммуникация между двумя платами Микробит легко настраивается, использовал, это очень здорово! Кстати, есть даже учебный проект для эмулятора Makecode, при помощи которого можно ознакомиться с тем, как это делается. Владимир и его дочь молодцы! :) Меня интересует настройка беспроводной связи между средой программирования (MindPlus, Kittenblock и прочие) и Микробит, это более заморочная задача. Что касается разработчиков DFrobot - да, по поводу моего вопроса и предложения именно так и ответили, что это не входит в их планы :))
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Alexander Chernov
    По поводу беспроводного управления мы пока использовали для старта робота Maqueen ИК пульт от mBot и он прекрасно работает. Есть возможность анализировать нажатие разных кнопок и выполнять различные действия. Но основным устройством для беспроводного управления является программируемый на базе micro:bit GamePad. Это устройство может как посылать команды, так и принимать их, что позволяет наладить интерактивное управление с обратной связью, для тактильного ощущения ее используется вибромотор. Ссылка На описание устройства с примерами кода: https://github.com/DFRobot/DFR0536_GamePad_V3.0_WIKI_EN/blob/master/DFR…
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Alexander Chernov
    Понемножку двигаемся в освоении Mind+ с расширением для робота Maqueen Plus. 1. Можно использовать команду “forever” в разных блоках, в том числе вложенных друг в друга. Интерпретатор Arduino C заменяет их на “while”. “Loop” остаётся в этом случае пустой. 2. Команды управления двигателями имеют достаточно большую задержку, которая где-то спрятана в коде. Это очень неприятный момент, так как при повышение скорости эти команды начинают отрабатывать с запозданием. Их надо переписать, будем заниматься. И если при движении по прямой это практически не сказывается, то в плавных поворотах робот начинает делать небольшие ступеньки. Может там используются энкодеры? Они на моторах установлены. 3. ИК датчики в цифровом режиме работают Довольно хорошо, срабатывают достаточно быстро, но будем проверять их работу в аналоговом режиме.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    Александр, трансляция программы на Arduino C слишком прямолинейна, происходит примитивное объединение двух циклов в один. Это не то же самое, что два независимых цикла. Попробуйте в один из циклов поставить команду "ждать" - задержки возникнут в работе всех функциональных частей программы. Что касается долгой реакции драйверов двигателей, боюсь, это неустранимый недостаток. Управление происходит по протоколу I2C, отсюда и задержки. Если только у Маквин нет какой-нибудь дополнительной проблемы, конечно. Любой робот на Микробит годится больше для обучения, а не для гоночных спортивных дисциплин. Там, где нужна высокая скорость реакции, следует использовать микроконтроллер с достаточным количеством собственных портов, чтобы не пришлось подключать расширитель портов. По поводу скорости чтения аналоговых значений - никаких проблем не будет, эта скорость Вас более чем устроит.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Alexander Chernov
    В этом примере робот сначала проходит лабиринт по правилу правой руки от точки старта до финиша. В процессе прохождения он строит модель лабиринта и на финише заканчивает ее построение и оптимизирует на основе этой модели новый маршрут. Во второй попытке он использует оптимизированный маршрут и повышает скорость прохождения.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии