роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  

BEAM-РОБОТЫ
Создание BEAM-роботов - это не просто технологический процесс или увлекательное хобби. BEAM - это целая культура, со своей философией и эстетикой.  

Патч от myROBOT
WinAVR Patch устраняет проблему совместимости WinAVR с Windows 10, Windows 8.1.  

Обзор подходов к созданию роботов с элементами самосознания
Корнеллский робот. Робот университета Мейдзи. Эволюционное моделирование самосознания.

Программирование микроконтроллеров AVR
на графическом языке функциональных блоков FBD


Среди многообразия средств программирования микроконтроллеров AVR не так давно появилась российская система программирования на языке функциональных блоков (Function Block Diagram) под названием Horizont-Configurator. Configurator является составной частью программного комплекса Horizont, представляющего SCADA-систему (Supervisory Control And Data Acquisition System - Система оперативного диспетчерского управления и сбора данных).

Язык FBD очень прост в освоении и удобен как для схемотехников, не имеющих специальной подготовки в области программирования, так и для начинающих осваивать мир электроники, автоматики и робототехники. Весь процесс программирования в FBD-системе заключается в соединении линиями связи готовых элементарных блоков. Практически каждый функциональный блок в Horizont-Configurator имеет графическое изображение, принятое при разработке функциональных схем электронных устройств. Блоки представлены в виде прямоугольников, внутри которых имеется обозначение функции, и являют собой операции над входными переменными.

Система программирования на языке функциональных блоков Horizont-Configurator

Линии связи, которыми соединяют функциональные блоки, указывают распространение сигнала. Функциональная диаграмма системы управления, построенная в Horizont-Configurator, имеет сходство с электрическими схемами и может быть откомпилирована в файл прошивки для микроконтроллера AVR.

Horizont-Configurator & BEAM Система программирования, позволяющая строить программу из набора стандартных логических элементов, очень удобна, если Вы хотите сделать BEAM-робота, но предварительно решили проверить логику разработанной вами схемы. Нарисовать схему в программе Horizont-Configurator гораздо быстрее, чем собрать ее даже на макетной плате. Использование Horizont-Configurator также удобно при отладке или проверке различных вариантов схемы BEAM-робота на реальной платформе. Конечно, при исполнении BEAM-схемы на микроконтроллере потеряются ее аналоговые свойства, но основная логика работы будет вполне видна. Особенно удобно использовать Configurator при разработке многотактных конечных автоматов, являющихся центром управляющей системы BEAM-роботов со сложным поведением.

Для того, чтобы начать работу с Horizont-Configurator, необходимо скачать установочный файл по ссылке horizont-configurator_for_avr_setup.exe) и установить программу к себе на компьютер.

Установив Configurator, можно загрузить примеры проектов, посмотреть на работу программы, откомпилировать примеры (меню "Проект" -> "Конфигурация -> "Создать файл конфигураций", затем меню "Проект" -> "Конфигурация -> "Собрать проект"). Пока среда Horizont-Configurator еще находится в стадии разработки, но уже представляет собой удобный и гибкий инструмент, с помощью которого можно создавать самые разнообразные прошивки для микроконтроллеров AVR.

Элементы, доступные в Horizont-Configurator:
  • Порты микроконтроллера (сразу конфигурируются как входы или выходы)
  • Логические блоки (НЕ, И, ИЛИ, Исключающее ИЛИ)
  • Логические константы
  • Триггеры (RS, SR, D, DC, RTRIG, FTRIG)
  • Логический генератор
  • Генератор импульсов
  • Блоки для работы с числами (Арифм. операции, Сравнение и т.д.)
  • Таймеры
  • Счетчики
  • Индикаторы
  • Элементы памяти

В качестве тестового проекта попробуем создать прошивку для простого робота, описанного в статье "Робот с фотодатчиком для следования по линии".

В меню Файл выберем "Новый проект", дадим ему название и зададим тип микроконтроллера, например, ATMega8. Нажмем несколько раз "применить" в появляющихся окнах.

После проделанных действий у нас появится поле для нашего проекта, а в левой панели необходимые элементы. Теперь перетащим элементы на рабочее поле. Нам понадобятся: Вход PinD1 из раздела "Порт D", Выходы PinC1, PinC2, Pin3, PinC4 из раздела "Порт C", две логические константы из раздела "Логические блоки" и Логическое НЕ из того же раздела. Развернуть элементы зеркально можно в правой панели "Свойства" с помощью изменения свойства "Turn" на "180 град".

кнопки переключения между режимами выделения и рисования Соединим элементы сигнальными линиями. В панели инструментов есть кнопки переключения между режимами выделения и рисования соединительных линий. Если объекты отказываются соединиться, то можно поступить следующим образом: нарисуйте соединительную линию, а затем придвиньте к ней элемент (они соединятся).

Робот с фотодатчиком для следования по линии


Зададим значения для логических констант последовательно выделив их и изменив значение "Value" в правой панели "Свойства" на "true".

Осталось откомпилировать получившуюся функциональную диаграмму. В меню Проект выберем "Конфигурация -> "Создать файл конфигураций", а затем "Конфигурация -> "Собрать проект". После проделанных действий у нас появится файл с прошивкой для микроконтроллера. Перейти в папку с получившимися файлами можно выбрав "Конфигурация -> "Открыть созданный проект". Среди списка файлов можно без труда найти файл "имя проекта.hex" - это и есть файл прошивки. Загрузить файл в микроконтроллер можно, например, с помощью программы-загрузчика PonyProg2000.

В качестве еще одного тестового примера попробуем сделать систему управления роботом для соревнований Кегельринг из статьи "Робот для соревнований".

Нам понадобятся: Вход PinD1 из раздела "Порт D", Выходы PinC1, PinC2, Pin3, PinC4 из раздела "Порт C", два Логических НЕ и Триггер FTRIG из раздела "Логические блоки", два Таймера с задержкой отключения из раздела "Таймеры/Счетчики" и Счетчик милисекунд из того же раздела.

Счетчик милисекунд необходим для нормальной работы таймеров (он использует внутренний Timer0 микроконтроллера). Установим его "Делитель" на 1 MHz в правой панели. Триггер FTRIG отслеживает падающий фронт логического сигнала.

Робот для соревнований Кегельринг


При изменении состояния входа "FTRIG" с 1 на 0, происходит формирование короткого импульса на его выходе. Данный импульс поступает на входы блоков Таймеров с задержкой отключения, данные блоки формируют необходимые по длительности интервалы высокого уровня на своих выходах. Сигнал с вывода первого Таймера с задержкой отключения поступает на выходы PinC1 и PinC2, управляющие первым мотором. Блок "Логическое НЕ" необходим для реализации инверсии мотора. Аналогичным образом работает другая цепь Таймера с задержкой отключения, которая управляет вторым мотором. Интервалы для таймеров можно установить изменив свойство "T" в правой панели свойств. Зададим значение равное 1800 милисекунд для первого таймера и 2400 милисекунд для второго. Таким образом, при изменении состояния входа нашей схемы с 1 на 0, в тот момент, когда робот наткнется на черную ограничительную линию, триггер сформирует короткий импульс, запускающий таймеры. Направление вращения моторов инвертируется и робот начнет двигаться назад. Когда первый таймер перестанет работать, другой таймер еще 600 милисекунд будет обеспечивать вращение второго мотора в обратном направлении и робот повернется на небольшой угол. Когда и второй таймер закончит свою работу, робот снова поедет в прямом направлении.

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

В текущей версии (0.3.0.60) поддерживаются следующие микроконтроллеры AVR: ATmega128, ATmega1284, ATmega1284P, ATmega128A, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16M1, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega325, ATmega3250, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega329, ATmega3290, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1, ATmega32HVB, ATmega32M1, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega64, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega645, ATmega6450, ATmega6450A, ATmega645A, ATmega649, ATmega6490, ATmega6490A, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64HVE, ATmega64M1, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega8A, ATmega8HVA, ATtiny13, ATtiny13A, ATtiny1634, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny24, ATtiny24A, ATtiny25, ATtiny261, ATtiny261A, ATtiny4313, ATtiny43U, ATtiny44, ATtiny44A, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny84, ATtiny84A, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88.


09.05.2015




myROBOT.ru Это оригинальная статья myROBOT.ru
Постоянный адрес статьи: http://myrobot.ru/articles/mc_horizont-configurator.php









Copyright © myrobot.ru, 2005-2023


Яндекс.Метрика   Рейтинг@Mail.ru