Язык программирования XOD и IDE получили первое обновление в 2018 году. Рад сообщить об этом. Мы исправили десяток ошибок и внесли несколько заметных улучшений. Схема ниже.

Восемь новых глав учебника

Часы, импульсы, строки и ЖК-дисплеи. Эти темы выделены в новых исправлениях встроенного учебника XOD. Также доступна Web-версия.

Если вы не прошли обучение, потому что оно выглядит массивно, не запутайтесь. Каждая глава действительно небольшая и содержит ровно одну новую концепцию. Вы сможете пройти все уроки за два-три часа.

Если у вас возникнут какие-либо вопросы или вы хотите предложить новые темы для расширения учебника, сообщите нам об этом на форуме XOD.

Узел для термометров DS18B20

Вы знаете этого парня? Повсеместная водонепроницаемая версия датчика DS18B20 - отличное решение для измерения температуры в воде, почве, открытом воздухе и других средах, агрессивных по отношению к электронике. Теперь у XOD есть стандартный узел для чтения таких датчиков.

Узел для ПИД-регулирования

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

Например, какую яркость нужно установить светодиодной ленте, чтобы итоговая интенсивность освещения в комнате составила 150 люкс? Это зависит от множества факторов и не может быть легко вычислено. Здесь поможет ПИД-регулятор. Передайте значение датчика освещенности и желаемое значение на входы узла pid-controller, и он будет «настраивать» выходную яркость светодиода до тех пор, пока желаемое не будет соответствовать фактическим измерениям. Все, что вам нужно сделать, это выбрать правильные коэффициенты, которые влияют на скорость и стабильность реакции.

Вот несколько идей о том, что можно построить с помощью PID:

  • Климат-контроль
  • Робот-последователь линии
  • Дирижабль

Комментарии поддерживают Markdown

Вы можете сделать свои патчи еще красивее. При редактировании комментария используйте синтаксис Markdown, чтобы ввести заголовки, гиперссылки, списки, выделение и все, что поддерживает спецификация Markdown.

Новая функция уже активно используется в учебном проекте. Посмотрите там, чтобы понять, как вы можете его использовать.

Разумное управление файлами проекта

Все опытные разработчики хранят свои проекты в нескольких файлах под контролем Git. Для нашей технической команды это было настолько очевидно, что мы не заметили, что многие пользователи XOD этого не понимают.

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

Теперь XOD предлагает аналогичный опыт. По умолчанию ваши проекты представляют собой простые файлы с расширением .xodball. Чтобы опытные разработчики остались довольны, мы сохранили удобный для Git многофайловый режим, и он больше не привязан к каталогу, который XOD называет «рабочей областью». Сохраните свой проект где хотите.

Для пользователей Windows и macOS файлы XOD получают собственные значки в файловом менеджере. Двойной щелчок по ним откроет проект в XOD, как и следовало ожидать. Примечание для пользователей Windows: вам необходимо установить XOD в масштабе всей системы (т. Е. В C: \ Program Files \), чтобы ассоциации файлов работали.

Сгенерированный код более эффективен

Как раньше работал XOD:

  • Граф программы переводится в структуры C ++
  • Код механизма выполнения интерпретирует программу, просматривая эти структуры данных.

Проблема в том, что структуры данных графа должны иметь заранее заданную форму и всегда занимать драгоценную память микроконтроллера. Таким образом, даже такая константа, как 42, приводит к сохранению всех этих структур, хотя константы полностью статичны. Кроме того, с перекрестными ссылками между такими узлами довольно сложно работать: было задействовано множество низкоуровневых хаков для сохранения компактности информации о ссылках.

Все это сделало великолепный механизм оптимизации компилятора C ++ почти бессмысленным. В такой сложной среде просто невозможно было понять возможности оптимизации.

В 0.18.0 все меняется. Теперь XOD работает так:

  • Граф программы транслируется непосредственно в движок C ++. Сгенерированный код является программой, запускающей график.

Удаление промежуточного уровня делает C ++ более естественным для компилятора, и он может снова проводить оптимизацию: удалять неиспользуемый код, встроенные функции, устранять подвыражения и т. Д. И т. Д.

Конечные последствия:

  • Программы XOD потребляют меньше оперативной памяти. Коэффициент усиления зависит от программы и варьируется от 1,5 × до 7 ×.
  • Программы XOD выполняются быстрее. Когда ввод / вывод не задействован, усиление начинается с 2х.
  • Программы XOD кушают больше Flash. Это небольшое снижение на ~ 10%, заслуживающее улучшений, указанных выше.

Что еще

Полный журнал изменений доступен на странице релиза GitHub. Перейдите по ссылке https://xod.io, чтобы скачать новую версию или запустить ее прямо в браузере.