Архив рубрики: 258 Base Duino

Скачать 258 Base Duino

Устройство 258_Base_Duino создавалось для применения его на платах Arduino (Uno, Nano, Pro Mini). Плата Arduino уже имеет всю необходимую для работы устройства обвязку, включая встроенный преобразователь USB-UART для связи с ПК.

Скачать устройство 258:
258_base_duino (699 Загрузок)
* Поддержка этого устройства в Тюнере реализована по умолчанию
(скачивать и устанавливать это устройство в Тюнер не нужно).

Скачать ZiChip Tuner

Устройство является базовым и предназначено для ознакомления с основными принципами работы системы ZiChip но, несмотря на это, имеет довольно обширный набор периферии, с которой может работать.

Обзор 258_Base_Duino.

Устройство 258_Base_Duino создавалось для применения его на платах Arduino (Uno, Nano, Pro Mini). Плата Arduino уже имеет всю необходимую для работы устройства обвязку, включая встроенный преобразователь USB-UART для связи с ПК.

Устройство является базовым и предназначено для ознакомления с основными принципами работы системы ZiChip но, несмотря на это, имеет довольно обширный набор периферии, с которой может работать.

Периферия устройства,
с привязкой к точкам доступа (вход / выход), выводам Arduino и портам микроконтроллера:
point.1 = Вход — ИК-пульт (D2 — PD2)
point.2 = Вход — Дискретные линии (A0-A7 — PC0-PC7)
point.3 = — точки 3-9 общего назначения
point.10 = Вход — Аналоговая линия 0 (A0 — PC0)
point.11 = Вход — Аналоговая линия 1 (A1 — PC1)
point.12 = Вход — Аналоговая линия 2 (A2 — PC2)
point.13 = Вход — Аналоговая линия 3 (A3 — PC3)
point.14 = Вход — Аналоговая линия 4 (A4 — PC4)
point.15 = Вход — Аналоговая линия 5 (A5 — PC5)
point.16 = Вход — Аналоговая линия 6 (A6 — PC6)
point.17 = Вход — Аналоговая линия 7 (A7 — PC7)
point.18 = — общего назначения
point.19 = — общего назначения
point.20 = Выход — ШИМ 0 (D5 — PD5)
point.21 = Выход — ШИМ 1 (D6 — PD6)
point.22 = Выход — ШИМ 2 (D7 — PD7)
point.23 = Выход — ШИМ 3 (D8 — PB0)
point.24 = Выход — ШИМ 4 (D9 — PB1)
point.25 = Выход — ШИМ 5 (D10 — PB2)
point.26 = Выход — ШИМ 6 (D11 — PB3)
point.27 = Выход — ШИМ 7 (D12 — PB4)
point.28 = Выход — ШИМ 8 (D13 — PB5) — индикатор Arduino
point.29 = — общего назначения
point.30 = Выход — Сервопривод (D3 — PD3)
point.31 = Выход — Зуммер (D4 — PD4)
point.32 = — точки 32-46 общего назначения
point.47 = — Зеркало 1WIR-сети (системная точка)
point.48 = — ИК-код последней нажатой кнопки пульта (системная точка)
point.49 = — Флаги устройства (системная точка)
point.50 = — Время «жизни» устройства (системная точка)
point.51 = — Случайное число (системная точка)

Параметры устройства:
— 51 точка доступа
— 320 байт EEPROM и 512 байт RAM для сценария поведения
— поддержка 32 кнопок ИК-пульта (с возможностью изучения любого пульта)
— 24 ячейки памяти EEPROM для хранения точек

Схема устройства для микроконтроллеров ATmega88/168/328:
Для случая применения своей платы с микроконтроллером ATmega88/168/328 схема будет иметь следующий вид:

 

Инфографика по устройству:

Для построения алгоритма работы устройства используется набор элементов:

0 Разделитель
Элемент не выполняет никаких действий, не использует ресурсов устройства. Используется лишь для визуально разделения блоков сценария.

  1 Конец сценария
Элемент, которым должен заканчиваться любой сценарий. После этого элемента все последующие элементы будут проигнорированы устройством.

  2 Начало микропрограммы
Элемент является указателем начала микропрограммы.

  3 Конец микропрограммы
Любая микропрограмма должна завершаться этим элементом.

  4 Инициализирующая микропрограмма
Элемент является аналогом элемента «Начало микропрограммы», но начатая с такого элемента микропрограмма выполнится только один раз при запуске (или сбросе) устройства. Применяется для инициализирующих действий в сценарии.

  5 Запрет микропрограммы
В случае, если нужно временно исключить микропрограмму из сценария (не удаляя цепочки элементов и их настройки), применяется данный элемент (вместо «Начало микропрограммы»).

  7 Изменение события
Элемент изменяет тип предыдущего события, позволяя организовывать более гибкие варианты реагирования на события.

  8 Засыпание
Переводит устройство в режим пониженного энергопотребления. Любое сообщение по сети возобновляет нормальную работу устройства. Очевидно, бесполезно применять этот элемент в сети с активными пересылками сообщений по ней. (в разработке)

  9 Комментарий
Элемент не выполняет никаких действий, не использует ресурсов устройства. Используется лишь для ставки комментария в сценарий.

  10 Событие от изменения точки
Элемент формирует событие, в случае если произошло изменение значения заданной точки доступа.

  11 Событие по условию
Элемент формирует событие по заданному условию изменения значения в заданной точке доступа.

  12 Событие от кнопок
Элемент формирует событие по факту нажатия кнопок устройства.

  13 Событие от ИК-пульта
Элемент формирует событие по факту нажатия кнопок на ИК-пульту.

  14 Событие по таймеру
Элемент формирует событие по таймеру с заданным количеством повторов.

  15 Событие от АЦП
Элемент формирует событие по изменению значения АЦП

  16 Событие случайное
Элемент формирует случайное событие с заданной вероятностью его возникновения.

  19 Событие от сателлита
Элемент формирует событие по факту приема нужного сообщения от IR-сателлита

  30 Действие со светодиодом
Элемент выполняет дискретные действия (включить, выключить, переключить) со светодиодом, подключенным к ШИМ-выходу.

  31 Действие с ШИМ-выходом
Элемент изменяет скважность (уровень сигнала) на ШИМ-выходе.

  32 Действие с зуммером
Элемент формирует звуковые сигналы на зуммере устройства.

  33 Действие с мотором
Элемент управляет скоростью и направлением вращения двигателей устройства.

  34 Действие с сервоприводом
Элемент управляет поворотами сервопривода устройства.

  35 Действие с цифровыми выходами
Элемент управляет выходами устройства, формируя на выбранных линиях двоичный код.

  36 Возврат значения точки
Элемент запоминает и возвращает значение выбранной точки после «ухода» события (возврат к исходному значению).

  40 Дублирование точки
Элемент выполняет заполнение определенного количества последовательных точек заданным значением. Также используется для различных действий копирования и наложения точек.

  41 Отправка значения точки
Элемент отправляет значение точки другой сетевой точке. (в разработке)

  42 Запрос значения точки
Элемент формирует запрос значения точки другого сетевого устройства (другое устройство в автоматическом режиме отправит значение запрашиваемой точки назад). (в разработке)

  43 Арифметические действия
Элемент выполняет различные арифметические действия над точками

  44 Формирование случайного числа
Элемент формирует случайное число для заданной точки.

  45 Битовая сборка
Элемент «сбивает» заданные биты точки источника и помещает их в точку приемник.

  46 Сохранение значения точки
Элемент сохраняет значение точки в ячейке памяти EEPROM. (в разработке)

  47 Восстановление значения точки
Элемент извлекает значение из ячейки памяти EEPROM и помещает его в заданную точку. (в разработке)


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

Общие принципы 258_Base_Duino

258_Base_Duino – это готовое устройство с определенным функционалом, позволяющее простыми и доступными средствами настроить логику работы «под себя». Кроме того, 258_Base_Duino по умолчанию поддерживает сеть устройств и в любой момент можно внести новое устройство в сеть и «прописать» его взаимодействие с уже работающими устройствами.

В устройстве 258_Base_Duino есть три ключевых момента, относительно которых все работает:
1 Точки доступа (интерфейс устройства)
— это, своего рода, ячейки памяти, которые содержат результат работы обработчиков входных сигналов и исходные данные для формирования выходных сигналов. Точки доступа выполняют роль стандартного способа получения данных и управления устройством вне зависимости от того, что из себя это устройство представляет. Аналогией могут служить порта ввода/вывода у микроконтроллера, выполняющие роль интерфейса между программой и периферией.

2 Обработчики и формирователи (функционал устройства)
Обработчики это независимые асинхронные модули в устройстве, которые по факту входного воздействия (нажата кнопка, изменилось значение АЦП и т.д.) формируют результат этого воздействия (номер нажатой кнопки, значение АЦП и т.д.) в точке доступа.
Формирователь сигнала работает «в обратную сторону». Исходными данными для него служит точка доступа (вернее значение в ней) а выходной сигнал формируется на ножке МК (или нескольких ножках, если требуется управление более сложной периферией). Например, для ШИМ-выхода значение точки доступа будет содержать значение скважности.

3 Сценарий поведения, микропрограммы (логика работы устройства)
Сценарий поведения – это набор элементов формирующих логику работы устройства. Сценарий состоит из независимых частей — микропрограмм.
Микропрограммы — это правила реакции (алгоритмы поведения) устройства на различные воздействия. Одна микропрограмма отвечает за одно воздействие и реакцию на него. Если в устройстве нужно обрабатывать несколько воздействия, то для каждого создается своя микропрограмма. Можно условно считать, что каждая микропрограмма независимо друг от друга обрабатывает входные события и формирует выходной сигнал.
Микропрограмму формируют (описывают) элементы устройства

Графически взаимодействие всех вышеописанных частей ZiChip можно отобразить следующим образом:

Логика формирования управления при помощи микропрограммы показана на диаграмме:

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

Элементы сценария разделены на два типа:
— «События» — элементы формирующие условие для выполнения и отвечающие за получение данных из точек доступа обработчиков
— «Действия» — выполняющие определенную работу по условию (формируют управляющие значения в точках доступа)

В самом простом случае (нажали кнопку – загорелся светодиод) микропрограмма будет иметь следующий вид:

Данный сценарий следует «читать» следующим образом:
— если нажата кнопка (в настройщике указывается точка, отвечающая за кнопки и номер опрашиваемой кнопки)
— выполнить действие со светодиодом (в настройщике указывается точка, отвечающая за светодиод и вариант выполняемого действия).

Ниже приведены окна настройщиков для кнопки и светодиода.

Общие правила построения сценария:
— каждая микропрограмма в сценарии должна начинаться элементом «Начало микропрограммы» и заканчиваться — «Конец микропрограммы»;
— микропрограмма должна иметь хотя бы один элемент «событие» и один — «действие»;
— микропрограмма может содержать больше чем одно «событие», тогда сигнал для выполнения «действия» будет формироваться по логическому «И», то есть «действие» будет выполнено при условии что все предыдущие «события» сформируют сигнал одновременно;
— микропрограмма может содержать больше чем одно действие, в этом случае при активном сигнале от «события» все последующие «действия» будут выполнены одновременно;
— любой сценарий должен заканчиваться элементом «конец сценария» — любые элементы после него будут проигнорированы.

47 Извлечение из памяти

    Элемент восстанавливает из ячейки памяти значение точки.

ОПИСАНИЕ

Элемент восстанавливает из Мемо-ячейки значение в заданную точку доступа. В устройстве организовано 24 ячейки Мemo, все они являются энергонезависимыми.

ПАРАМЕТРЫ ЭЛЕМЕНТА

1 Ячейка Мемо — источник:
Выбираем Мемо-ячейку для восстановления значения точки.

2 Точка доступа — приемник:
Выбираем точку доступа, в которую запишется значение из Мемо-ячейки.

ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
Размер элемента:
EEPROM – 3 байта, SRAM – 0 байт

Распределение параметров элемента в EEPROM:
0 – Номер элемента (всегда = 47)
1 – Точка доступа — приемник
2 – Ячейка памяти — источник

46 Сохранение в память

    Элемент сохраняет выбранную точку в энергонезависимую EEPROM-память.

 ОПИСАНИЕ

Элемент записывает (сохраняет) значение заданной точки доступа в ячейку Мemo. В устройстве организовано 24 ячейки Мemo, все они являются энергонезависимыми.
Внимание!
Количество перезаписей ячейки EEPROM (Memo) ограничено. Не допускайте бесконтрольной записи в ячейку Мемо!

ПАРАМЕТРЫ ЭЛЕМЕНТА

1 Точка доступа — источник:
Выбираем точку доступа, значение которой необходимо сохранить в ячейку Мемо.

2 Ячейка Мемо — приемник:
Выбираем Мемо-ячейку для сохранения значения точки.

 

ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
Размер элемента:
EEPROM – 3 байта, SRAM – 5 байт

Распределение параметров элемента в EEPROM:
0 – Номер элемента (всегда = 46)
1 – Точка доступа — источник
2 – Ячейка памяти — приемник

 Распределение параметров элемента в SRAM:
3-0 – буфер для хранения значения точки
4 – таймер повторной записи в ячейку

45 Битовая сборка

    Элемент выполняет «упаковку» выбранных бит в точке.

 ОПИСАНИЕ

Элемент «собирает» из указанных бит значение, «сбивая» результат влево (младшая сторона).

ПАРАМЕТРЫ ЭЛЕМЕНТА

1 Точка доступа источник данных:
Выбираем точку доступа над которой будет проведена операция.

2 Битовое поле участвующих бит:
Выбираем биты точки которые будет смещены в младшую часть точки.

3 Точка доступа для результата:
Выбираем точку, куда нужно поместить результат.

ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ

Размер элемента: EEPROM – 7 байт, SRAM – 0 байт

Распределение параметров элемента в EEPROM:
0 – Номер элемента (всегда = 45)
1 – Точка доступа источник
2 – Точка доступа приемник
3,4,5,6 – битовое поле собираемых бит

44 Случайное число

    Элемент формирует случайное число в выбранной точке.

 ОПИСАНИЕ

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

ПАРАМЕТРЫ ЭЛЕМЕНТА

1 Точка доступа для случайного числа:
Выбираем точку доступа, где будет формироваться случайное число.

2 Вариант формирования случайного числа:

— размером в байт
— размером в слово
— размером в двойное слово
— в заданном промежутке (в пределах слова)
— по битовому полю

ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ

Размер элемента: EEPROM – 3(7) байта, SRAM – 0 байт

Распределение параметров элемента в EEPROM:
0 – Номер элемента (всегда = 44)
1 – Точка доступа приемник
2 – селектор
b0-4 – вариант формирования случайного числа=
=0 – величиной в байт
=1 – слово EEPROM=3
=2 – двойное слово EEPROM=3
=3 – по заданному промежутку (не больше слова) EEPROM=7
=4 – по битовому полю) EEPROM=7
3, 4 нижняя граница случайного числа b0-4=3
5, 6 верхняя граница случайного числа b0-4=3
3,4,5,6 – битовое поле b0-4=4

43 Арифметическое действие

    Элемент выполняет различные арифметические операции над точкой и константой (или точкой и точкой).

 ОПИСАНИЕ

Довольно насыщенный функционалом элемент. Позволяет выполнять различные предустановленные арифметические операции с точками,

ПАРАМЕТРЫ ЭЛЕМЕНТА

1 Точка доступа — А-аргумент:
Выбираем точку доступа — первый аргумент.

2 В-аргумент, задан:
Выбираем тип второго аргумента. Может быть или константой или другой точкой доступа.

3 Результат поместить в точку С:
Выбираем точку, куда нужно поместить результат.

4 Выполнить следующую операцию:
Выбираем тип операции над аргументами.
— прямое копирование  А -> С
— битовый сдвиг вправо А>> -> С (деление на 2)
— битовый сдвиг влево <<А -> С (умножение на 2)
— битовая инверсия |А -> С
— инкремент А++ -> С
— декремент А— -> С
— сложение   A + B -> C
— вычитание  A — B -> C
— логическое (побитовое) сложение  A OR B -> C
— логическое (побитовое) умножение  A AND B -> C
— исключающее или A XOR B -> C
— копировать если больше  IF A>B {А -> С}
— копировать если меньше IF A<B {А -> С}

ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
Размер элемента:
EEPROM – 4(5|8) байта, SRAM – 0 байт

Распределение параметров элемента в EEPROM:
0 – Номер элемента (всегда = 43)
1 – Точка доступа А – аргумент
2 – Точка доступа С – результат
3 – селектор
b7 значение аргумента В (0-константа EEPROM=8 /1-точка EEPROM=5)
b4-0 — Тип арифметической операции=
=0 – прямое копирование  А -> С EEPROM=4
=1 – битовый сдвиг вправо (деление на 2) EEPROM=4
=2 – битовый сдвиг влево (умножение на 2) EEPROM=4
=3 – битовая инверсия |А -> С EEPROM=4
=4 – инкремент А++ -> С EEPROM=4
=5 – декремент А— -> С EEPROM=4
=6 – сложение   A + B -> C EEPROM=5|8
=7 – вычитание  A — B -> C EEPROM=5|8
=8 – логическое (побитовое) сложение  A OR B -> C EEPROM=5|8
=9 – логическое (побитовое) умножение  A AND B -> C EEPROM=5|8
=10 – исключающее или A XOR B -> C EEPROM=5|8
=11 – копировать если больше  IF A>B {А -> C} EEPROM=5|8
=12 – копировать если меньше IF A< B {А -> C}) EEPROM=5|8
4 – Точка доступа B – аргумент
4,5,6,7 — константа

42 Запрос точки у другого устройства

    Элемент отправляет запрос для получения значения точки от другого устройства.

 ОПИСАНИЕ

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

ПАРАМЕТРЫ ЭЛЕМЕНТА

1 Устройство и точка доступа — источник значения:
Выбираем устройство и точку доступа от которой хотим получить значение.

2 Точка доступа для принятого значения:
Выбираем точку доступа куда запишется запрашиваемое значение.

ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
Размер элемента:
EEPROM – 4 байта, SRAM – 0 байт

Распределение параметров элемента в EEPROM:
0
– Номер элемента (всегда = 42)
– Номер точки-приемника
2 – Номер точки-источника
3 – Номер устройства-источника

41 Отправка значения точки другому устройству

    Элемент отправляет по сети значение точки другому устройству.

 ОПИСАНИЕ

Это один из базовых элементов устройств ZiChip. Позволяет организовывать связь устройств между собой. Отправляет значение точки любому устройству в сети.
Внимание! Контролируйте частоту отправки сообщений для уменьшения нагрузки на сеть и во избежании переполнения буфера.

ПАРАМЕТРЫ ЭЛЕМЕНТА

1 Пересылаемая точка доступа — источник:
Выбираем точку доступа, которую нужно отправить другому устройству.

2 Устройство и точка доступа — приемник:
Выбираем устройство и точку доступа куда необходимо направить значение.

 

ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
Размер элемента:
EEPROM – 4 байта, SRAM – 0 байт

Распределение параметров элемента в EEPROM:
0
– Номер элемента (всегда = 41)
1 – Номер точки-источника
– Номер точки-приемника
3 – Номер устройства-приемника