
## Основные понятия

**Сегмент матрицы** - заводская матрица размером 8x8, 16x16, 32x8 или собственноручно собранная матрица произвольного размера.  
**Сборная матрица** - сборка из ***сегментов*** одинакового размера, дающая в результате одну матрицу большего размера.  

### Тип матрицы

Линейки светодиодов в строках или колонках матрицы соединяются последовательно, один за другим.  
Строки/колонки матрицы могут соединяться последовательно (тип "Зигзаг") или параллельно (тип "Параллельная")  

![Тип матрицы](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/scheme1.jpg)

Обратите внимание на нумерацию диодов в матрице в последовательном и параллельном типе матриц.  
Наиболее предпочтительным типом с точки зрения эффективности и удобства сборки - последовательная матрица с параллельным питанием.

![Тип матрицы](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/scheme3.jpg)

### Тип подключения матрицы

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

Угол подключения определяется тем, в каком углу находится первый в цепочке светодиод, когда матрица находится перед вами и вы смотрите на нее.  
Угол подключения задается параметром **CONNECTION_ANGLE**, который может принимать следующие значения:  

- **CONNECTION_ANGLE = 0** - левый нижний
- **CONNECTION_ANGLE = 1** - левый верхний
- **CONNECTION_ANGLE = 2** - правый верхний
- **CONNECTION_ANGLE = 3** - правый нижний

Второй параметр **STRIP_DIRECTION** определяет направление следования цепочки светодиодов из угла подключения:  
- **STRIP_DIRECTION = 0** - вправо  
- **STRIP_DIRECTION = 1** - вверх  
- **STRIP_DIRECTION = 2** - влево  
- **STRIP_DIRECTION = 3** - вниз  

![Тип подключения](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/scheme2.jpg)

### Заводские матрицы

В настоящее время в магазинах доступны три разновидности матриц заводской сборки на гибкой алюминиевой основе размером 8х8, 16х16 и 32x8 "пикселей".

![Заводские матрицы](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/led_matrix.jpg)

Все заводские матрицы имеют тип соединения строк - ***Зигзаг*** *(Последовательная)*, в прошивке **MATRIX_TRYPE = 0**

**Матрица 8x8**  
![Матрица 8x8](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/Matrix8x8.jpg)

**Матрица 16x16**  
![Матрица 16x16](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/Matrix16x16.jpg)

**Матрица 32x8**  
![Матрица 32x8](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/Matrix32x8.jpg)


# Сборная матрица

Из отдельных модулей заводских матриц 8х8, 16х16, 32х8 (или самостоятельно сделанных сборок) можно составить матрицу большего размера.
В составной матрице используются те же принципы - *угол подключения и направление из угла*, как и для отдельных светодиодов в сегментах матрицы.
Все сегменты составной матрицы **должны иметь одинаковый размер и быть сориентированы однообразно** - иметь один и тот же угол подключения первого 
светодиода в сегменте и направление следования цепочки светодиодов из угла.  

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

## Сборная матрица 3x2 из шести сегментов 8x8 - вариант 1

![Сборная матрица №1](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/scheme4.jpg)

**Размеры составной матрицы** - количество сегментов в ***ширину*** и в ***высоту*** задаются параметрами **META_MATRIX_WIDTH** и **META_MATRIX_HEIGHT** соответственно. 
**Тип расположения** сегментов в собрной матрице - змейкой или параллельно задается параметром **META_MATRIX_TYPE**:  

- **META_MATRIX_TYPE = 0** - зигзаг (последовательное соединение) сегментов  
- **META_MATRIX_TYPE = 1** - параллельное соединение сегментов  

**Угол начала** сборки составной матрицы (первый сегмент) - задается параметром **META_MATRIX_ANGLE**:  
- **META_MATRIX_ANGLE = 0** - левый нижний
- **META_MATRIX_ANGLE = 1** - левый верхний
- **META_MATRIX_ANGLE = 2** - правый верхний
- **META_MATRIX_ANGLE = 3** - правый нижний

**Направление**, в котором находится следующий сегмент матрицы - параметром **META_MATRIX_DIRECTION**:  
- **META_MATRIX_DIRECTION = 0** - вправо  
- **META_MATRIX_DIRECTION = 1** - вверх  
- **META_MATRIX_DIRECTION = 2** - влево  
- **META_MATRIX_DIRECTION = 3** - вниз  

Перед компиляцией скетча вам следует указать размеры, тип и способ подключения матриц в скетче в файле **a_def_hard.h**  
Сборная матрица, приведенная на рисунке выше описывается следующей комбинацией параметров:  

![Пример 1](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/Example1.jpg)

## Сборная матрица 3x2 из шести сегментов 8x8 - вариант 2

![Сборная матрица №1](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/scheme5.jpg)

Сборная матрица, приведенная на рисунке выше описывается следующей комбинацией параметров:  

![Пример 2](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/Example2.jpg)

## Панель из одного сегмента

Если ваша панель состоит из одного сегмента матрицы, укажите ширину и высоту вашего сегмента и способ его подключения.
Параметры **META_MATRIX_WIDTH** и **META_MATRIX_HEIGHT** - ширина и высота сборной матрицы укажите **1**, 
остальные параметры - **META_MATRIX_TYPE**, **META_MATRIX_ANGLE** и **META_MATRIX_DIRECTION** не имеют значения.

![Пример 3](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/Example3.jpg)

# Настройка из приложения

Настроить размеры матрицы (в том числе и сборной) и способ ее подключения можно из приоложения на смартфоне.
Запустите приложение-компаньон ***WiFi Panel Setup*** и подключитесь к работающему контроллеру.
Перейдите к странице настроек параметров матрицы

![Panel Setup](https://github.com/vvip-68/GyverPanelWiFi/blob/master/wiki/Matrix/WiFiPanelSetup.jpg)

В интерфейсе вы увидите два раздела - ***настройка сегмента матрицы*** и ***настройка сборной матрицы***.
1. Укажите размеры одного сегмента матрицы - **ширину** и **высоту**, выберите тип подключения цепочки светодиодов - **"Зигзаг"** (*последовательное соединение*)
или **"Параллельное"**. Отметьте чекбокс расположения **угла матрицы** (где находится первый светодиод в цепочке) и
**направление** следования цепочки светодиодов из этого угла.  
2. Укажите количество сегментов сборной матрицы в **ширину** и **высоту**. Выберите тип последовательности соединения сегментов - **зигзагом** или **параллельно**.
Отметьте чекбокс расположения **угла** сборной матрицы (где находится первый сегмент в цепочке сегментов) и
**направление** следования цепочки сегментов из этого угла.  
3. Нажмите кнопку **"Сохранить"** для применения выполненных настроек. После завершения конфигурирования матрицы контроллер автоматически перезагрузится и
новые параметры вступят в силу.
