Flprog — объединение плат arduino в информационное кольцо

Flprog — объединение плат arduino в информационное кольцо

Начиная с версии 1.10.5, программа FLProg разрешает объединять пара плат Arduino в кольцевую UART сеть. Сперва разглядим, как это происходит. Платы соединяются между собой в соответствии со схемой, изображённой на заглавной иллюстрации. Предположим, что плата 1 отсылает через UART пакет данных содержащий идентификаторы платы, переменной, конечно значение переменной. Плата 2 принимает этот пакет и в случае если эти из данной переменной ей не необходимы, то данный пакет дальше.

В случае если в соответствии с программой значение данной переменной нужно контроллеру, то значение из пакета копируется во внутреннюю переменную, и пакет так же отправляется дальше по кольцу. В то время, когда так пакет, пройдя всё кольцо, возвратится к плате, пославшей его, передача пакета закончится. Так, эти из пакета дешёвы любой плате подключённой к кольцу, и инициатором отправки пакета так же возможно каждая из плат.
Смотрите кроме этого: Управление Arduino посредством Excel

Хороший сутки. День назад на форуме программы FLProg пользователем Rw6cm был выложен весьма увлекательный пост. Я сделал вывод, что информация из него может оказаться занимательной более широкому кругу людей и переношу его ко мне.

Авторский текст сохранён без трансформаций.Пример, как из Excel руководить Arduino и приобретать эти. Информация возможно нужна приверженцам Excel и опытным базы VBA. Пример реализован в FLProg 1.10.5 на Windows7 — 32 и 64, и MsOffice 2007.

Все нужное для его повтора находится в архиве.

Схема тестового стенда: Логика работы следующая:

  • Arduino №1 приобретает информацию о влажности и температуре c датчиков.
  • Arduino №2 отображает температуру с датчика DS18B20.
  • Arduino №3 отображает влажность и температуру с датчика DHT-22.

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

  • Цифровое значение температуры от датчика DS18B20 ловит Arduino№3, после этого преобразует его в строчок и отправляет в кольцо. Эту строчок ловит Arduino№2 и отображает на дисплее.
  • Цифровое значение температуры от датчика DHT-22 ловит Arduino№2, после этого преобразует его в строчок и отправляет в кольцо. Эту строчок ловит Arduino№3 и отображает на дисплее.
  • Цифровое значение влажности от датчика DHT-22 ловит Arduino№3, после этого преобразует его в строчок и отображает на дисплее.

Итак, начнём.Открываем программу FLProg и создаём проект для Arduino№1. На первую плату кидаем блок сканирования шины OneWare (библиотека элементов, папка «Различное»). Данный блок по переднему фронту на входе En создаёт сканирование шины OneWare и при нахождении на них датчиков складывает найденные адреса в привязанные массивы.

Для параметрирования блока вызываем редактор блока (двойной клик на блоке).

  1. Сперва создаём новую шину OneWare.
  2. После этого создаём массив. Потому, что датчик у нас на шине планируется один, создаём один массив.

Сейчас организуем схему запуска этого блока один раз при старте программы. Для этого соберём такую схему.R – Триггер находится в папке «Триггеры» библиотеки элементов. Он помогает для выделения переднего фронта импульса подаваемого на вход.

На его выходе будет импульс длительностью один цикл программе при переходе уровня на входе от низкого к высокому.После этого создаём новую плату и перетаскиваем на неё датчик температуры DS18x2x (библиотека элементов, папка «Датчики»). Вызываем редактор блока и параметрируем датчик.

  1. Из выпадающего перечня выбираем ранее созданную шину OneWare на пине 4
  2. Выбираем режим задания адреса «Массив»
  3. Выбираем ранее созданный массив «Датчик»
  4. Выставляем периодический режим опроса датчика, с частотой опроса раз в 1 сек.

Сейчас полученное с датчика значение нужно послать в кольцо.В программе FLProg подключить контроллер к кольцу возможно двумя методами. В данном проекте для Arduino№1 разглядим первый метод – через блоки отправки переменной в кольцо.Извлечём на плату блок «Отправка переменной в кольцо» (библиотека элементов, папка UART), и позовём для него редактор блока.

  1. Сперва добавляем контроллер к кольцу.В открывшемся окне нужно выбрать порт подключения к кольцу, скорость порта, и задать имя устройства в кольце. Так же для удобства работы с проектом нужно создать файл перечня переменных кольца, через что будут синхронизироваться все контроллеры, участвующие в нём.
  2. После этого создаем переменную, которая будет передаваться в кольцо В окне создания переменной нужно задать имя переменной и её тип.
  3. Затем задаём периодический режим отправки переменной, с периодом в 1 сек.

По окончании параметрирования блока соединяем отправки и блоки датчика между собой и устанавливаем на входе En блока отправки переменной константу true.Создаём новую плату и перетаскиваем на неё датчик DHT-22 (библиотека элементов, папка «Датчики»). Вызываем редактор блока и параметрируем датчик.

  1. Выбираем пин подключения датчика
  2. Выбираем тип датчика
  3. Задаём влажности выходов и наличие температуры
  4. Задаём периодический метод опроса датчика с периодичностью в 1 секунду

После этого перетащим на третью плату два блока отправки переменной в кольцо, в настройках блоков выберем существующее кольцо, и создадим в каждом из них по переменной.Поле чего соединим блоки между собой, и поставим константы true на входы En блоков отправки переменных.С проектом для Arduino№1 закончили. Обязана окажется такая схема:Сейчас создаём новый проект для Arduino№2. Сходу подключаем плату к кольцу.

Тут воспользуемся вторым способом, через дерево проекта. Раскрываем дерево до ветки «Коммуникации» включительно и делаем клик правой кнопкой по пункту «Кольца». В показавшемся контекстном меню выбираем пункт «Добавить кольцо».Раскрывается уже знакомое нам окно параметров кольца.

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

Наряду с этим машинально синхронизируются переменные между проектами.Все параметры кольца возможно поменять через дерево проекта, вызывая контекстное меню на соответствующих ветках.В соответствии с методу Arduino№2 ловит переменную о температуре от датчика DHT-22, превращает её значение в строчок и отправляет в кольцо. Для этого перетащим на схему блок «Получение переменной из кольца» (библиотека элементов, папка «UART»)и позовём для него редактор.В редакторе выберем кольцо и соответствующую переменную.

После этого перетащим на схему блок «Преобразование строчков» (библиотека элементов, папка «Конвертация типов») и соединим вход этого блока с выходом блока «Получение переменной из кольца»По окончании чего позовём редактор для блока «Преобразование строчков».Потому, что на входе этого блока значение типа Float, у нас имеется возможность задать количество знаков по окончании запятой при преобразовании в строчок. Я думаю, одного символа по окончании запятой нам хватит.После этого извлекаем на схему блок «Отправка переменной в кольцо» (библиотека элементов, папка UART), и помощью редактора выбираем кольцо, и создаем новую переменную, которая будет отправляться в кольцо.

Так же выставляем периодический режим отправки, с периодом в 1 сек.По окончании чего соединяем блоки между собой и устанавливаем константу true на входе En блока отправки переменной.Создадим новую плату и перетащим на неё блок «Получение переменной из кольца» (библиотека элементов, папка «UART»)и позовём для него редактор. В редакторе выберем подключенное кольцо. Потому, что в соответствии с методом значение для отображения на дисплее нам готовит Arduino№3, создадим новую переменную, которую нам данный контроллер будет отправлять.Сейчас перетащим на схему блок «Дисплей на чипе HD44780» (библиотека элементов, папка «Дисплеи»), и позовём для него редактор и запараметрируем его.

  1. Создадим новый дисплей
  2. Зададим подключение в соответствии с схеме
  3. Зададим параметры дисплея
  4. Настроим отображение данных с входа блока
  5. Настроим отображение по центру первой строки

Затем соединим блоки и установив константу true на входе En блока дисплея.С проектом для Arduino№2 закончили. Обязана окажется такая схема:Создаем проект для Arduino№3. Подключаем контроллер к кольцу любым из указанных выше способов.

При подключении выбираем созданный ранее файл переменных кольца.В соответствии с метода, контроллер Arduino№3 ловит значение температуры с датчика DS18B20 от Arduino№1 и преобразует его в строчок и отправляет эту строчок в кольцо для Arduino№2. Все нужные переменные для этого у нас уже существуют.

Исходя из этого, подобно Arduino№2. перетаскиваем на схему блоки «Получение переменной из кольца» (библиотека элементов, папка «UART»), «Преобразование строчков» (библиотека элементов, папка «Конвертация типов») и блок «Отправка переменной в кольцо» (библиотека элементов, папка UART). По окончании чего параметрируем их.«Получение переменной из кольца»«Преобразование строчков»«Отправка переменной в кольцо»Затем собираем их в схемуСоздаём новую плату для отображения температуры с датчика DHT-22.

Так же подобно Arduino№2 перетаскиваем «Получение переменной из кольца» (библиотека элементов, папка «UART») и «Дисплей на чипе HD44780» (библиотека элементов, папка «Дисплеи»). Параметрируем их.«Получение переменной из кольца»«Дисплей на чипе HD44780»Соединяем между собой.Создаём новую плату для отображения влажности.

Так же перетаскиваем на плату блок «Получение переменной из кольца» (библиотека элементов, папка «UART») и параметрируем.После этого перетаскиваем блок «Преобразование строчков» (библиотека элементов, папка «Конвертация типов»), соединяем его с блоком «Получение переменной из кольца» да и то же параметрируем.Ну и в последнюю очередь перетаскиваем блок «Дисплей на чипе HD44780» (библиотека элементов, папка «Дисплеи»). При параметрировании блока выбираем уже существующий дисплей и выводим значение влажности по центру второй строки.Соединяем блоки между собой.Создание программы для Arduino№3 законченно. Конечный итог.Благодарю за внимание.

Случайная статья:

ИК Управление на Arduino в программ Flprog


Похожие статьи:

  • Flprog+noolite (продолжение)

    В прошлом посте я поведал о реализации помощи оборудования nooLite в программе FLProg. Моим упущение было не поведать об одной весьма эргономичной…

  • Flprog + nextion hmi. урок 3

    На прошлых уроках (урок 1, урок 2) я поведал, как рисовать интерфейс панели Nextion HMI, как руководить панелью посредством Arduino. В этом уроке я…

  • Создание проектов в программе flprog. урок первый

    В прошлой статье я представил проект FLProg. Сейчас я желаю поведать, как трудиться в данной программе.У программистов в качестве первого урока принято…

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.