Программа для программирования робота логотип
:: GAME LOGO ::
ЯЗЫК ПРОГРАММИРОВАНИЯ ЛОГО
GAME LOGO - бесплатная среда для начального знакомства с программированием, включающая основную модель языка Лого.
Программирование на русском языке.
Game Logo включает работу с графикой, управление графическими объектами, звуком, программирование клавиатуры, работу с массивами. Имеет продуманный синтаксис, ориентированный на легкий переход к популярным языкам высокого уровня.
GameLogo идеально подходит для обучения программированию и проведения традиционных занятий по информатике.
Возможно, наиболее драматическое и революционное влияние на развитие обучения программированию оказал ЛОГО - язык, настолько простой в использовании, что создавать на нем программы способен даже пятилетний ребенок.
Язык Лого был создан в 1967 году в Лаборатории Искусственного Интеллекта Массачусетского технологического института (MIT, USA) профессором Сеймуром Папертом (Seymour Papert). (В том же институте появились первые компьютерные игры, там же зародилось движение хакеров). С момента своего рождения Лого, сохраняя неизменными свои основные черты, постоянно развивается и совершенствуется.
В Лого предусмотрен специальный исполнитель команд - черепашка. При движении черепашка может оставлять след, подобно живой черепахе, движущейся по песку, и эта ее способность используется для вычерчивания фигур на экране. Черепашка является как раз тем переходным объектом, который служит своеобразной метафорой, позволяющей превращать опыт телесных манипуляций с вещами в понятийные обобщения и абстракции.
Наблюдая за поведением черепашки, можно легко увидеть смысл каждой из отдаваемых команд и тем самым освоить не только средства языка программирования, но и легко научиться алгоритмизации.
Черепашка обеспечивает связь "объект - мысль" (сначала использовалась механическая черепашка, ползающая по полу, а затем ее условное изображение на экране компьютера), которая и придает языку очарование и притягательность.
Черепашка обладает важным качеством: у нее есть "направление", что позволяет идентифицировать себя с ней и легче понять основную логику работы программ.
Первоначальные команды очень просты: они указывают, на какое количество шагов должна переместиться черепашка и в каком именно направлении. Обучение Черепашки "действовать" или "думать" заставляет осмысливать собственные действия и мысли, поэтому процесс обучения программированию становится более эффективным.
Настало время рассмотреть существующие программные решения для разработки, управления и программирования роботов.
ROS – это распределённая система процессов (узлов). Эти процессы могут быть сгруппированы в Пакеты и Стеки, которые можно легко распространять.
ROS легко интегрируется с программными другими фреймворками (на данный момент интегрирован с OpenRAVE, OROCOS и Player).
ROS старается не зависеть от языка программирования – на данный момент уже реализованы версии на C++ и Python (есть экспериментальные библиотеки на LISP, Octave Java, Lua).
ROS имеет встроенный пакет для тестирования – rostest, что облегчает тестирование приложений.
ROS поддерживает возможность масштабирования.
ROS имеет две основных “стороны”: сторона операционной системы ROS и ros-pkg — пользовательские пакеты (организованные в наборы, называемые стеком), которые и реализуют весь функционал – локализация, картографирование, планирование, восприятие, моделирование и т.д.
В настоящее время ROS работает только под UNIX-подобными системами. Основная разработка ведётся под Ubuntu Linux.
В ноябре прошлого года, платформе ROS исполнилось 3 года!
На текущий момент, последняя версия — ROS «C Turtle» (август 2010-го).
Поддерживаемые роботы:
Lego NXT
STAIR 1 — Stanford University
Aldebaran Nao
i-Sobot
Kawada HPR2-V
TUM-Rosie
Marvin
HERB
Penn Quadrotors
Robotino
Meka Robots
Skybotix CoaX Helicopter:
Самый известный робот, работающий под управлением ROS – это, естественно, робот PR2 от Willow Garage.
Microsoft Robotics Developer Studio
* VPL (Visual Programming Language) — язык визуального программирования для написания приложений для роботов (диаграммы VPL сохраняются в виде XML-схем)
* Simulation environment — симулятор — окружение для выполнения приложения для роботов в симулируемых условиях (однако, модель физики в Microsoft Robotics Studio, для наглядности, достаточно упрощена и этот симулятор не подойдет там, где нужны точные расчеты.).
В Robotics Studio, приложение — это композиция слабосвязанных параллельно выполняющихся компонентов. При этом — все компоненты в Robotics Studio — это независимо исполняемые сервисы, т.е., например, для разработчика программы не существует физического мотора, а есть сервис с интерфейсом, к которому нужно обратиться, чтобы работать с мотором из написанной программы.
Пакет RDS позволяет разрабатывать программы для различных аппаратных платформ.
Поддерживаемые роботы:
Pioneer 3Dx
Lego Mindstorms NXT
iRobot Create
Aldebaran Nao
Parallax Boe-Bot
Segway RMP
RoombaDevTools
Parallax Boe-Bot
CoroWare CoroBot
Lynxmotion Lynx 6 Robotic Arm
На текущий момент, пакет Microsoft Robotics Developer Studio 2008 R3 (RDS) распространяется бесплатно и свободно доступен для всех желающих. Единственная проблема в том, что никто не может быть уверен, что перетянув на себя часть разработчиков роботов Microsoft снова не захочет получать деньги за свой продукт.
Серьёзный минус RDS – это зависимость от Windows и закрытые исходники.
Кроме того, необходимо отметить, что Robotics Developer Studio не имеет встроенных систем ИИ – систем компьютерного зрения, навигации и машинного обучения. А используемый протокол SOAP, для взаимодействия распределенных сервисов, всё же не предназначен для приложений работающих в режиме реального времени.
URBI — это кроссплатформенная открытая программная платформа на C++, используемая для разработки приложений для робототехники и сложных систем.
URBI основывается на распределенной компонентной архитектуре UObject.
Она также включает urbiScript — параллельный и событийный скриптовый язык.
URBI реализует свой слой абстракции, отделяя управляющую программу на urbiScript от взаимодействия с ОС и т.д. с помощью прослойки из UObject-драйверов.
Т.е. чтобы подружить своего робота с URBI нужно создать промежуточные UObject-драйвера для своего оборудования.
Большой плюс URBI — это кроссплатформенность системы – она работает под Windows, Linux, и Mac OS.
URBI имеет набор графических утилит разработки — Gostai Studio и Gostai Lab. Своего симулятора у URBI нет, но можно использовать Webots.
Начиная со второй версии Urbi может взаимодействовать с ROS от компании Willow Garage.
И что немаловажно — Gostai открыла исходный код URBI SDK под лицензией GNU AGPL v3.
Система хорошо документирована и поддерживает самые популярные модели роботов:
* Segway
* Aibo ERS7/ERS2xx (Urbi 1.x only)
* iRobot Create
* Lego Mindstorms NXT
* HRP-2 (restricted release to members of JRL)
* Nao от Aldebaran
* Robotis Bioloid
* Mobile Robots Pioneer
Написание модулей UObject вполне посильная задача, что и было сделано – был написан модуль Urbiduino для взаимодействия URBI и контроллера Arduino (через последовательное соединение по протоколу Firmata)
OROCOS
OROCOS (Open Robot Control Software project) — открытое программное обеспечение для управления роботами.
Проект OROCOS поддерживает следующие направления четырёх C++ библиотек:
1. The Real-Time Toolkit,
2. The Kinematics and Dynamics Library,
3. The Bayesian Filtering Library
4. The Orocos Component Library.
Так как OROCOS — это просто набор библиотек, то как следствие у OROCOS отсутствуют новомодные графические инструменты разработки и собственный симулятор.
* The Orocos Real-Time Toolkit (RTT) не существует сам по себе, но обеспечивает инфраструктуру и функциональность других приложений. Данная библиотекя акцентируется на приложениях реального времени, позволяющих интерактивно управлять модулями системы.
* The Orocos Components Library (OCL) предоставляет готовые к использованию компоненты управления, а также компоненты для управления и доступа к аппаратным средствам.
* The Orocos Kinematics and Dynamics Library (KDL) является частью программ, разработанных на C++ ,которая, в свою очередь, позволяет позволяет вычислять кинематику в реальном времени
* Библиотека Orocos Bayesian Filtering Library (BFL) обеспечивает независимую структуру (framework) для Dynamic Bayesian Networks, то есть, рекурсивную обработку информации в соответствии с алгоритмами оценки, применяемых в Bayes’ rule , такие как (Extended) Kalman Filters, Particle Filters (Sequential Monte methods).
Не так давно проект OROCOS стал доступен в виде стека под ROS
orocos_toolchain_ros
Плюсы: бесплатный + open source + Real-Time.
Player, Stage, Gazebo
Проект Player (ранее проект Player/Stage или проект Player/Stage/Gazebo) представляет собой проект по созданию свободного программного обеспечения для исследования робототехники и сенсорных систем.
Проект состоит из 3 основных компонентов: сервера Player и платформ для симуляции роботов – Stage (двумерный симулятор) и Gazebo (трёхмерный симулятор).
Вероятно, Player — наиболее часто используемый интерфейс в робототехнических исследованиях. Большинство ведущих журналов о робототехнике, регулярно публикуют статьи о применении Player (Stage и Gazebo) для управления и моделирования робототехнических экспериментов (в академических, правительственных и индустриальных лабораториях).
Player, обеспечивает сетевой интерфейс для различных роботов и сенсорного оборудования. Клиент-серверная модель Player-а позволяет программам управления робота быть написанными на любом языке программирования и работать на любом компьютере, подключённого к сети вместе с роботом.
Компоненты проекта работают на POSIX-совместимых операционных системах, включая Linux, Mac OS X, Solaris и BSD; планируется портирование на Microsoft Windows.
Проект был основан в 2000 году Brian Gerkey, Richard Vaughan и Andrew Howard в Университете Южной Калифорнии в Лос-Анджелесе и широко используется в робототехниких исследованиях и обучении.
Программное обеспечение распространяется под лицензией GNU General Public License с документацией под GNU Free Documentation License.
Особенности проекта:
* независимость от робототехнической платформы,
* поддержка нескольких языков программирования, включая C, C++, Java, Tcl и Python,
* минимальной и гибкий дизайн,
* поддержка нескольких устройств в одном интерфейсе,
* конфигурации сервера «на лету».
Player работает путём создания нескольких уровней абстракции. Он скрывает низкоуровневые аппаратно-зависимые реализации за набором установленных «интерфейсов».
Высоко-уровневый контроль(логика) взаимодействует только с этими интерфейсами, что
означает, что программа управления может не учитывать что скрывается, за этими интерфейсами.
Компания Willow Garage использует проект Player для разработки программного стека для робота PR2. Все три компонента проекта — Player, Stage и Gazebo были адаптированы для использования внутри ROS с целью полной интеграции обеих платформ.
Основной продукт — Robot Learning and Behavior Control System
, в состав которого входят:
* Система машинного зрения — Robot Vision System ( распознавание и отслеживание объектов, описание которых содержатся в специальной базе данных )
* Система навигации — Visual Localization System (определения ориентации в помещениях после обучающей сессии)
* элементы отказоустойчивой системы управления — Fault-Tolerant Control Framework ( — это JAUS-совместимая система управления для координации совместной работы всех модулей).
Философия продукта состоит в создании полностью обучаемой системы управления. После установки программного обеспечения в робота, пользователь начинает взаимодействовать с роботом, обучая его новым моделям поведения, использовать новые стимулы для обучения робота. Идея состоит в демонстрации необходимой последовательности действий (робот должен распознать жесты тренера и составить себе шаги выполнения задачи).
Итерационный процесс обучения робота продолжается до тех пор, пока робот не сможет делать свою работу самостоятельно.
ERSP от компании Evolution Robotics — это среда для разработки ПО роботов. Она состоит из трех основных частей:
* ViPR (Visual Pattern Recognition) модуль визуального распознавания,
* vSLAM — модуль ориентирования – на основе данных от одной камеры и оптических энкодеров, позволяет осуществлять локализацию и построение карты местности с точностью до 10 см.
* ERSA — операционная система робота – предоставляет всю инфраструктуру и функционал для управления всеми аппаратными и программными компонентами робота
Система компьютерного зрения и система SLAM основана на алгоритме SIFT.
Для платформы ERSP существует программа для визуального программирования на основе различных “поведенческих” блоков. Кроме того, в ERSP возможна разработка программ на скриптовом языке программирования – Питоне (Python).
ERSP – кросс-платформенная разработка и поддерживает следующие платформы:
32-bit(64-bit) Debian 4.0
32-bit(64-bit) Fedora Core 8
32-bit Windows XP
Данный софт распространяется вместе с универсальным шасси для ноутбуков — ER-1 🙂
В ERSP нет среды моделирования, а так же не поддерживается распределённая архитектура.
К сожалению, система ERSP выглядит заброшенной, т.к. новых релизов давно не появлялось.
Другие системы:
какой-то конкретной информации об этой коммерческой разработке нет. Это архитектура, с которой должны быть совместимы все решения сторонних разработчиков для роботов iRobot
LabVIEW Robotics
В основе LabVIEW лежит парадигма потоков данных.
По проводам(Wire) передаются данные от одних элементов другим. Вся эта концепция называется Data Flow. Суть Блок Диаграммы — это узлы (ноды), выходы одних узлов присоединены ко входам других узлов. Узел начнёт выполнение только тогда, когда прибудут все необходимые для работы данные.
Одна из главных особенностей визуального программирования — код действительно может быть наглядным и красивым! С другой стороны, он может запросто превратиться в лапшу…
LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами.
LabVIEW поддерживает огромный спектр оборудования различных производителей и имеет в своём составе многочисленные библиотеки компонентов, в том числе, для управления роботами и системами машинного зрения.
Именно на LabView основана среда программирования Lego NXT, но и обычная LabView с модулем LabVIEW LEGO MINDSTORMS NXT Module так же позволяет взаимодействовать со всеми сенсорами робота LEGO Mindstorm NXT.
Итоги
Рассмотрев существующие решения ПО для роботов, можно сделать следующие обобщения:
— робософт работает в виде в промежуточного слоя между обычной ОС и программами/скриптами управления роботом
— робософт имеет модульную структуру, которая работает поверх базовой прослойки (фреймворка)
— робософт имеет распределённую клиент-серверную структуру
“стандартный” робософт – это:
* фреймворк, обеспечивающий типовые операции, слой абстракции от оборудования, межпотоковое взаимодействие и т.д.
* дополнительные модули, реализующие различные роботехнические алгоритмы (компьютерное зрение, SLAM, машинное обучение, кинематика)
* симулятор (симулятор является важной частью программного обеспечения для разработки роботов — он позволит отлаживать алгоритмы в виртуальной среде, без покупки дорогостоящего оборудования.)
* оболочка для визуального программирования и управления роботом (наглядное и доступное предметно-ориентированное программирование, представление состояния робота в виде иерархического конечного автомата и т.п.)
Из перечисленных систем, я бы выделил для более подробного знакомства – ROS и URBI.
А так как URBI уже более-менее здесь описана, значит настала пора поближе познакомиться с ROS!
Среда программирования RobotON Studio является графической и разработана специально для детей и взрослых, не имеющих начальных навыков программирования, но имеющих огромное желания заниматься робототехникой на Arduino. Данная программа была разработана программистами «RobotON» и используется как основной инструмент для программирования роботов в наших кружках.
Зачем мы создали данный софт? Дело в том, что графическое ПО открывает двери в мир робототехники для студентов любого уровня (особенно для новичков!). Необходимость изучать синтаксис программного кода, искать мелкие ошибки в огромных программах, состоящих из страниц кода, – все это часто приводит к падению интереса у обучающихся, особенно у детей. Обратное происходит, если ребенок сразу видит результат своих действий, интерес в таком случае возрастает многократно!
Принцип работы RobotON Studio следующий: обучающиеся собирают разноцветные блоки в логическую цепочку, программный код, при этом, генерируется автоматически. Загрузка кода в плату Arduino происходит напрямую из программы. Таким образом, пользователи могут управлять различными устройствами, начиная светодиодами и заканчивая различными электромоторами и датчиками. С каждым обновлением мы расширяем базу поддерживаемых устройств, которые могут управляться с помощью среды программирования RobotON Studio.
Программирование Arduino и Arduino-совестимых плат в среде RobotON Studio подходит и для продвинутых пользователей, которые хотят перейти от простого графического программирования к реальному написанию кода. Изучать реальные команды можно, наблюдая за изменением кода в специальном окне RobotON Studio, во время любых взаимодействий с блоками (код генерируется в реальном времени!).
RobotON Studio в наших кружках робототехники
Все обучающиеся на наших курсах робототехники получают бесплатную лицензию на использование программы и могут пользоваться ей для домашних упражнений с роботами.
Что дает RobotON Studio
- Возможность программирования Arduino без начальных знаний и навыков программирования
- Возможность результативного использования детьми от 7 лет
- Широкий спектр поддерживаемых плат, моторов, датчиков итд.
- Бесплатное использование для наших учеников
- Простой и понятный интерфейс
Установка RobotON Studio
В нашем постиндустриальном обществе в первую очередь ценятся: уровень образования, обучаемость, профессионализм и способность творческого подхода в решении задач. Так как большинство современных профессий, в той или иной мере, связано с компьютерной техникой и автоматикой, то вполне логично, что при обучении детей особое внимание необходимо уделять компьютерной грамотности. При должном подходе к обучению и интересе, со стороны ребенка, стоит обратиться к углубленному изучению информационных технологий и программированию в частности.
С каждым годом возможности компьютерной техники непрерывно растут и даже взрослому тяжело обучаться программированию, что же говорить о детях? Как их к привлечь к программированию? Давайте разбираться в этом.
У большинства людей, когда они слышат слово - программист, перед мысленным взором сразу же возникает образ быстропечатающего человека, сидящего перед экраном монитора по которому пробегает множество непонятных букв и символов. Но это только отчасти правда. Действительно, даже не большая программа может занимать несколько десятков печатных страниц кода. Но программирование это не всегда рутина, особенно заметно на этапе обучения.
Давайте подумаем как обычно можно заинтересовать ребенка какой-либо профессией? Конечно же через игры и игрушки, соответствующие изучаемой профессии. Если для обычных профессий вполне подойдут конструкторы или наборы инструментов, то при обучении программированию без компьютера и специализированных программам практически не обойтись.
Давайте найдем специализированные программы, применяемые для обучения детей программированию.
Scratch
Одним из лучших инструментов для обучения детей и подростков программированию считается Scratch (Скретч) — визуальная событийно-ориентированная среда программирования. Он появился в 2007 году и завоевал миллионы поклонников по всему миру. Скретч специально разработан для обучения программированию. Однако в первую очередь он ориентирован на создание визуальных проектов в самом приложении. Например, интерактивных видео и игр. В части управления роботами и программирования конструкторов приложение поддерживает исключительно конструкторы Lego и micro:bit.
Однако наиболее популярной базой, для большинства роботизированных конструкторов, является Arduino и ардуино-совместимые платы. Поэтому нам нужно найти универсальную среду программирования или хотябы совместимую с Arduino платами.
Scratch for Arduino (S4A)
Scratch for Arduino, или как чаще ее называют S4A - модификация среды Скретч позволяющая работать с платами ардуино. Давайте найдем и изучим ее.
Прямых ссылок с официального сайта Скретч на нее нет. Идем в поиск. По запросу «S4A» поисковик уверено выдает нам сайт s4a.cat.
Официальная страница Scratch for Arduino (S4A).
Изучение сайта наводит на мысль о его заброшенности: версия сайта 2015 года, последняя статья выложена в феврале 2016, версия программы для Windows датирована концом 2014 года.
Установка и запуск
На сайте предлагаются версии программы для:
Win OS (версия 1.6);
Mac OS (версия 1.6);
Linux (Debian) (версия 1.6);
Linux (Fedora) (версия 1.5);
Raspbian (Debian для RaspberryPi) (версия 1.5).
Архив занимает 27МБ, а после установки программа займет 53МБ дискового пространства.
Интерфейс программы Scratch for Arduino (S4A).
Для привязки платы к программе потребуется установить Arduino IDE и загрузить на плату скетч S4AFirmware16.ino (размещен на сайте). S4A переведена на 40 языков, в том числе и на русский. Имеет простой и понятный дизайн с минимальным функционалом. Программа не имеет дополнительных библиотек с блоками управления. Однако есть библиотеки примеров, звуков и спрайтов низкого качества.
Программа работает только в онлайн режиме, то есть скетч выполняется на компьютере, а Ардуино выполняет посылаемые ей команды. Это означает, что записать программу на плату и использовать ее в автономном режиме не выйдет.
Однако, S4A не всегда корректно ведет себя при работе с неоригинальными платами.
Snap4Arduino
Если Скретч – разработка массачусетского технологического института, то Snap! (или BYOB) – это его модификация выполненная Университетом Беркли. Ключевым нововведением стало добавление в программу возможности создания пользовательских блоков. Это позволило разработать сообществом множество библиотек для управления различными модулями и платами.
По запросу «Snap4Arduino» и нам выдает ссылку на сайт snap4arduino.rocks.
Официальная страница Snap4Arduino.
Этот сайт выглядит свежее. Однако здесь язык сайта также только английский, но найти ссылки на скачивание программы, примеры и форум сообщества не составляет сложности.
Актуальная версия программы на сайте 6.2 от 09.01.2020.
К установке предлагаются версии для:
Windows (32-bit и 64-bit);
GNU/Linux (32-bit и 64-bit);
портативная версия для Windows;
плагин для Chrome и Chromium.
Мобильная версия для Android представлена «сырым» дистрибутивом и его разработка временно приостановлена.
Установка и запуск
Установка не примечательна и заострять внимание на ней нет смысла. Дистрибутив для 64-битной версии Windows «весит» 163МБ до установки и 350МБ – после.
Окно выбора типа платы и порта подключения. Программа Arduino IDE.
Далее открываем вкладку «Library Manager» или проходим в меню Tools – Manage Libraries… Набираем в поиске Firmata и устанавливаем библиотеку «Firmata by Firmata Developers».
Вкладка Library Manager. Программа Arduino IDE.
Теперь во вкладке «Уроки» находим нужный скетч: File → Examples → Firmata → StandardFirmata
Выбор скетча во вкладке «Уроки». Программа Arduino IDE.
Открывшийся скетч загружаем в нашу Arduino-плату и по окончанию установки открываем установленный ранее Snap4Arduino. Выбираем вкладку "Arduino", кликаем по кнопке "Подключится к Arduino" и выбираем порт. Если все прошло успешно, то вы увидите соответствующие уведомления.
Информационные окна. Программа Snap4Arduino.
Для проверки работоспособности пишем простую программу мерцания встроенным светодиодом, расположенном на 13 пине нашей платы.
Интерфейс программы Snap4Arduino.
Нажимаем на зеленый флажок и наблюдаем работу скетча.
Работа скетча на плате Arduino UNO.
Все отлично работает.
К особенностям работы с Snap4Arduino можно отнести:
поддержка работы платы только в online-режиме;
возможность замедления работы выполнения скетча, что позволяет отследить работу программы и выявить наличие ошибок;
возможность сохранения скетча как в облаке, так и на ПК;
возможность копирования как одного, так и нескольких блоков скетча;
есть несколько примеров программ для работы с сенсорами и графикой.
Также в программу включено множество библиотек с блоками для:
итерационных и композиционных вычислений;
работы со списками, текстом, музыкой и координатами;
работы с базами данных, диаграммами и анимацией;
К сожалению программа не имеет офлайн режима, дополнительные блоки не русифицированы, а графический интерфейс давно не обновлялся и выглядит скудно. Меню программы не интуитивно и часть настроек не ясна.
Однако множество учебников, примеров и иной обучающей информации делают Snap4Arduino достаточно привлекательной платформой. При этом программа поддерживает работу с платами SP8266 и NodeMCU, а также Picaxe, micro:bit, Lego WeDo, Boost и ряд других конструкторов.
Программа вполне подойдет для дистанционного управления ардуино-совместимыми роботами, конструкторами и собственными проектами на их базе.
МакеBlock
Заглянем на официальный сайт mBlock.
Официальная страница МакеBlock (mBlock)
Сайт производит более приятное впечатление. Отличный дизайн в спокойном детском стиле. Присутствует анимация. Отдельно стоит отметить возможность выбора языка сайта. Доступны английский, китайский и японский языки.
Здесь также найти вкладки «Download» и «Community» не затруднительно.
Установка и запуск
Авторы предлагают к установке следующие варианты дистрибутивов:
Win OS (для версий Windows 7 - Windows 10 (64-bit);
Mac OS (версия 10.12 и старше);
веб-версия (для работы с ней требуется предварительная установка драйвера mLink);
версия для Chromebooks;
для мобильных устройств (для Android 6.0 и выше (только ARM) и iOS 10.0 и выше).
Последняя версия программы для Windows - 5.3.5 от 18.06.2021 занимает 250МБ, а после установки - 888МБ.
При установке программы нам предлагают установить драйвер, для поддержки плат на базе контроллеров CH340/CH341.
Интерфейс программы mBlock.
mBlock предлагает набор библиотек для почти 150 видов плат, конструкторов и роботов. По умолчанию установлено расширение для приставки CyberPi, но можно ее удалить и добавить ту или иную плату из множества доступных.
В программе доступны к выбору один из 27 языков, в том числе и русский. Многие, наиболее популярные, библиотеки полностью переведены на русский. Остальные - на английском и китайском языках.
Ключевой особенностью mBlock является возможность работать с платами в двух режимах: онлайн – «Жить» и офлайн – «Загрузить в». Для работы в онлайн-режиме программе требуется установки прошивки (скетча) на плату, однако эта процедура выполняется без необходимости установки Arduino IDE.
Подключаем плату к компьютеру через USB кабель. Выбираем порт. При этом появляется желтая кнопка: «Обновление». После нажатия которой нам предлагается обновить прошивку на плате, т.е. загрузить на нее управляющий скетч.
Информационные окна программы mBlock.
После загрузки скетча повторно подключаем нашу плату и проверяем ее работу.
В режиме «Жить» пишем простую программу мерцания встроенным на плате светодиодом. Затем нажимаем кнопку «Загрузить», внизу экрана, и любуемся результатом.
Особенности работы с mBlock:
отсутствие необходимости установки Arduino IDE;
возможность копирования нескольких блоков скетча (выбранного и последующих за ним);
возможность программирования как блоками, так и в классическом виде;
возможность просмотра составленной блоками программы в формате языка С (только режим «Загрузить в»);
возможность сохранения скетча как в облаке, так и на ПК;
комментарии к блокам;
большая база примеров и расширений.
ArduBlock
Еще один представитель программ блочного программирования ArduBlock. Разработана российским инженером программистом Петровым В.Н. Программа абсолютно бесплатна, имеется сообщество в ВК, Instagramm и канал на YouTube. Автор активен: выкладывает уроки и обеспечивает поддержку.
Официальная страница ArduBlock.
Сайт выполнен в традиционных цветах ардуино. Предлагается два языка на выбор: русский и английский.
Здесь же автором размещено: справка, ссылки на модули (Aliexpress) и его же учебники.
Установка и запуск
К установке предлагаются варианты дистрибутивов:
Актуальная версия программы 2.0. По ссылке на WinOS версию скачивается архив на 262МБ в котором включены все необходимые программы:
Arduino IDE 1.8.5;
драйвер CH341SER, для китайских плат;
скрипт Elevate для соединения ArduBlock с Arduino IDE;
сама программа ArduBlock.
Последовательность установки описана в текстовом файле находящимся в скачиваемом архиве. Сама программа ArduBlock не требует установки и замает 400МБ дискового пространства. Взглянем на ее.
Интерфейс программы ArduBlock.
Из особенностей стоит отметить:
полная русификация программы;
справка для каждого блока со схемами и маркой подключаемого модуля;
отображение кода программы с возможностью его сохранения в формате *.ino.
отсутствие спрайтов и работы с графикой в программе;
работа с платами только в офлайн режиме;
поддержка только плат Arduino.
ВЫВОДЫ
Родоначальником всех рассмотренных нами программ является Scratch и хотя, на первый взгляд, все они достаточно похожи все же давайте составим сводную таблицу из их ключевых особенностей, а затем дадим общую оценку каждой программе.
В нашем блоге мы много внимания уделяем вопросам алгоритмической и автоматизированной торговли на бирже, рассматривая, как теоретические аспекты, вроде выбора языка программирования, так и практические — например, реализацию системы событийно-ориентированного бэктестинга на Python.
Сегодня мы представляем вашему вниманию подборку сред программирования и инструментов для создания торговых роботов.
TradeScript (SMARTx)
В торговом терминале компании ITinvest под названием SmartX есть специальный плагин с конструктором торговых роботов TradeScript. С помощью простого, но довольно мощного скриптового языка трейдеры могут создавать механические системы различного уровня сложности.
Существует также модуль бэктестинга, позволяющий оценить продуктивность работы запрограммированной стратегии на исторических данных. Кроме того предоставлена и возможность тестирования торговой системы «на лету» с использованием текущих биржевых данных, но без вывода приказа на биржу — время виртуальной сделки, цена и получившаяся доходность будут показываться в отдельном окне.
Язык TradeScript был изначально создан американской компанией Modulus FE специально для написания на нем торговых роботов. Он довольно прост в изучении, а многие алгоритмы схожи по написанию с Metastock, что облегчает работу пользователям, знакомым с этим программным пакетом.
Плюсом TradeScript по сравнению с Wealth-Lab и тем же Metastock является отсутствие необходимости создания сложных конструкций и использования различных коннекторов для передачи приказов в торговый терминал. Конструктор роботов встроен в SmartX, что позволяет добиваться значительно более высокой надежности и быстродействия.
Ниже представлен код торговой стратегии на TradeScript:
Кроме того пользователь может запускать столько одновременно работающих алгоритмов, сколько позволит тактовая частота процессора и память компьютера. Учитывая большое число слов и операндов скриптового языка, это означает возможность создания сколько угодно сложных торговых стратегий.
Более подробно вопрос написания торговых роботов на TradeScript мы рассматривали в наших предыдущих материалах (первый, второй).
CQG Integrated Client
Это популярная у трейдеров во всем мире профессиональная многофункциональная платформа технического анализа, предоставляющая котировки в реальном времени с множества торговых площадок. Также в программе предусмотрены возможности по автоматизации торговых операций.
Wealth-Lab
TSLab
Что немаловажно для трейдеров, которые не владеющих навыками программирования, логику робота можно реализовать с помощью блок-схемы.
LiveTrade (CoFiTe)
Программный комплекс LiveTrade создан разработчиками петербуржской компании CoFiTe. Помимо прочего он включает в себя программное решение для создания торговых роботов — Robotlab. Этот инструмент, как и TSLab, позволяет трейдерам создавать автоматизированные торговые системы с помощью блок-схем в визуальном конструкторе:
После того, как торговая логика приложения реализована с помощью блок-схемы, ее можно запустить в терминале.
TradeMatic
Еще один инструмент, позволяющий создавать торговых роботов с помощью визуального конструктора без программирования как такового. Предоставляет возможность тестирования получившегося робота с помощью встроенного источника исторических данных.
Предусмотрены различные режимы работы торговой системы —от ручного, при которого для исполнения сигналов требуется выставление заявок руками, до полностью автоматического, когда все торговые сигналы сразу исполняются, не требуя участия трейдера.
SmartCOM
Также существует дополнительный плагин SmartCOM для программного пакета AmiBroker, применение которого облегчает анализ загруженных данных.
MetaStock
Также популярный зарубежный продукт. Система MetaStock содержит обширную библиотеку индикаторов и средств для создания собственных формул. Также предусмотрен простой язык программирования, с помощью дополнительных модулей можно генерировать приказы на покупку и продажу.
Как и Wealth-Lab на российском рынке применяется в связке с торговыми терминалами, функционирующих с помощью дополнительных библиотек. Это может приводить к различным сложностям интеграции, а также негативно влиять на надежность работы получившейся связки.
StockSharp
Бесплатная в базовой версии платформа StockSharp с открытым исходным кодом. На ее основе разработаны продукты для создания торговых роботов.
В итоге, фактически за день трейдер может разработать полнофункциональный модуль для подключения к торгам, вывода графической информации и тестирования создаваемой стратегии на исторических данных.
К его плюсам можно отнести простоту использования, удобный доступ к данным из торгового терминала и общую интегрированность с ним, привлекала трейдеров и возможность пошаговой отладки алгоритмов в терминале. Однако были и существенные минусы — например, невозможность тестирования стратегии на исторических данных, отсутствие графического интерфейса помимо стандартных таблиц Quik, скорость работы и т.п.
Версии Quik старше 6.4.0 поддерживают скрипты на Lua. Этот язык также встроен в терминал, довольно прост и обладает большей функциональностью, чем Qpile. Поскольку Lua – это интерпретируемый язык, то для работы с его кодом используется специальная библиотека QLua.
TRANSAQ
Популярная на российском рынке система брокерского обслуживания, с помощью которой трейдеры могут получить доступ к торгам на бирже. Инструмент позволяет торговцам получать информацию о текущем состоянии дел на рынке, выставлять приказы на покупку и продажу финансовых инструментов вручную, а также создавать механические торговые системы.
Создавать роботов можно как с помощью подключения к TRANSAQ внешних сред разработки вроде Metastock, Omega, Wealth-Lab, так и при помощи встроенного языка программирования ATF (Advanced Trading Facility). По этому языку есть довольно подробная документация, в которой, помимо прочего, представлены и примеры кода готовых роботов.
Читайте также: