NEWS
ZTX IP CONTROLLER.
-
ZTX IP CONTROLLER
LOAD CONTROL BOARD
Orange Pi Zero
Мини-компьютер Orange Pi Zero 512Mb - это миниатюрный одноплатный компьютер на процессорах Allwinner H2+, в который входят четыре вычислительных ядра Cortex A7 с тактовой частотой до 1,2 ГГц. с открытым исходным кодом. Он может работать под управлением Android 4.4, Ubuntu, Debian. Он имеет 512 МБ DDR3 оперативной памяти SDRAM. Также этот миникомпьютер оснащен графическим ускорителем Mali-400MP2, который позволяет декодировать 4К-видео формата H.265/HEVC с частотой воспроизведения до 30 кадров в секунду и поддерживает microSD карты памяти ёмкостью до 64 гигабайт.
Мини-компьютер Orange Pi Zero 512Mb отлично подходит для построения встраиваемых систем управления и систем контроля. Поддерживает следующие операционные системы: Ubuntu MATE, Debian, Armbian и другие. Питается компьютер от блока питания 5В 2А через microUSB разъем.
Список интерфейсов, которые поддерживает Orange Pi Zero:- ETHERNET
- GPIO
- SPI
- I2C
- UART
- USB
С помощью этих интерфейсов миникомпьютер может поддерживать связь а так же управлять огромным количеством различных устройств, датчиков.
Плата Load Control была создана специально по Orange Pi Zero. В нее очень легко и просто устанавливается mini PC. Список интерфейсов, которые поддерживает плата Load Control:- ETHERNET
- GPIO
- 1-WIRE
- USB
- I2C
- CAN
- RS-232
Топология платы "Load Control"
На плате «Load Control» размещен расширитель портов MCP23016. Он подключен к шине «I2C» «Orange Pi Zero». С помощью утылиты «i2c-tools» по «I2C» шине можно осуществлять управление этим расширителем портов. Все входы/выходы MCP23016 выведены на разьем «H3» платы.
Микросхема MCP23016 имеет 16 независимых входов/выходов, которые можно сконфигурировать как угодно, например: 16 входов, 16 выходов, 8 входов, 8 выходов и т.д.MCP23016
Для того, что бы управлять расширителем портов, для начала нам нужно задать режим работы (Вход / Выход). Что бы сделать это, нам нужно в регистры «IODIR(0/1)» записать логическую «1» или логический «0».
● "1" - режим Input;
● "0" - режим Output.Для управления самими портами MCP23016, нужно в регистры «GP(0/1)» записать соответствующую конфигурацию пинов в шестнадцатеричном виде зависимости от потребности.
Пример записи в регистры:i2cset -y 1 0x20 0x06 0x00, где
- i2cset -y 1 - команда для записи в “i2c1”.
- 0x20 – адрес устройства “i2c”.
- 0x06 - адрес регистра IODIR0.
- 0x00 - адреса пинов.
Пример чтения с регистров GP(0/1):
i2cget -y 1 0x20 0x00, где
- i2cget -y 1 - команда для чтения с “i2c1”.
- 0x20 - адрес устройства “i2c”.
- 0x06 - адрес регистра GP0.
**Пример подключения кнопок, датчиков, устройств к плате Load Control **
Пример подключения датчиков температуры и влажности
Входы/выходы расширителя портов MCP23016
Первоначально в MC23016 порт GPIO_1 настроен как «INPUT», а порт GPIO_0 настроен как «OUTPUT» (8 входов, 8 выходов).
Orange Pi Zero. Программное обеспечение.
В образе установлена система "Armbian_5.90_Orangepizero_Debian_buster_next_4.19.57". Параметры входа в систему:
Логин: root
Пароль: root1234Была сделана предварительная настройка интерфейсов: GPIO, USB, I2C, 1-WIRE, CAN.
В папке "home/example/" расположены примеры скриптов:
- "oled_display.py" - пример управление дисплеем (OLED DISPLAY MODULE 128x64 0.96 INCH 4PIN), вывод статуса загрузки системы Orange Pi Zero.
- "dht_example.с" - пример чтения датчиков температуры и влажности "DHT".
- "dht_example" - скомпилированый исполняемый файл.
- "ds18b20_example.py" - пример чтения даных one_wire датчиков температуры "D18B20".
- "serial_read.py" - пример чтения serial порта (RS-232).
- "serial_write.py" - пример записи в serial порт (RS-232).
В папке "home/" расположены примеры скриптов:
- "ds18b20_mqtt.py" - пример чтения и отправки даных по MQTT на IOBroker "one-wire" датчиков температуры "D18B20".
- "dht_example" - пример чтения датчиков температуры и влажности "DHT".
- "dht_mqtt.py" - пример чтения данных датчиков температуры и влажности "DHT" через скрипт "dht_example" и и отправка даных по MQTT на IOBroker.
- "mcp23016_mqtt.py" - пример управления портами микросхемы I2C "MCP23016" через MQTT в IOBroker vis. Настроено: GPIO_1 - INPUT, GPIO_0 - OUTPUT.
- "can_mqtt.py" - пример чтения/записи шины CAN. Скрипт написан под модуль ZTX_RELAY_BOARD.
В систему был установлен IOBroker, с преднастройкой для чтения по MQTT датчиков DHT11, D18B20 и выводом данных с датчиков на главный экран IOBrokervis. В IOBroker vis выведено текущее состояние портов микросхемы mcp23016, которое отображается в виде "лампочек", а также выведены 8
переключателей, которые управляют портами GPIO_0. Под устройство ZTX_RELAY_BOARD в IOBroker vis выведено (8 кнопок) управления, текущее состояние портов отображается в виде "лампочек".Ссылка на образ для Orange Pi Zero:
https://drive.google.com/open?id=1VsjcYONh33YHjJgRBBUj8eQGVNDqsJXB
Ссылка на плату LODCONTROL (Altium Designer):
https://drive.google.com/open?id=1eswctbBn8OdKM3PahSVlwfSGJnC4jD-w
Ссылка на Gerber:
https://drive.google.com/open?id=1-Glb6r7VXzynMiEbGvqNBCZyAI__i-gK
Ссылка на рисунки и схемы:
Схема платы LODCONTROL:
https://drive.google.com/open?id=19PAF_mo25jl-PgNo_hnNF6GmbJyG9jaO
https://github.com/ztxdevelopers/ZTX-IP-CONTROLLER/blob/master/CIRCUIT_BOARD_LOADCONTROL.pdf