ZTX IP CONTROLLER.



  • ZTX IP CONTROLLER

    LoadControl

    LOAD CONTROL BOARD

    LoadControl

    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

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

    ![LoadControl](
    Плата Load Control была создана специально по Orange Pi Zero. В нее очень легко и просто устанавливается mini PC. Список интерфейсов, которые поддерживает плата Load Control:

    • ETHERNET
    • GPIO
    • 1-WIRE
    • USB
    • I2C
    • CAN
    • RS-232

    LoadInterfaces

    Топология платы "Load Control"

    TopologyLoadControl

    На плате «Load Control» размещен расширитель портов MCP23016. Он подключен к шине «I2C» «Orange Pi Zero». С помощью утылиты «i2c-tools» по «I2C» шине можно осуществлять управление этим расширителем портов. Все входы/выходы MCP23016 выведены на разьем «H3» платы.
    Микросхема MCP23016 имеет 16 независимых входов/выходов, которые можно сконфигурировать как угодно, например: 16 входов, 16 выходов, 8 входов, 8 выходов и т.д.

    MCP23016

    MCP23016_Registers

    Для того, что бы управлять расширителем портов, для начала нам нужно задать режим работы (Вход / Выход). Что бы сделать это, нам нужно в регистры «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 **

    DeviceConnection

    Пример подключения датчиков температуры и влажности

    Sensors

    Входы/выходы расширителя портов MCP23016

    Первоначально в MC23016 порт GPIO_1 настроен как «INPUT», а порт GPIO_0 настроен как «OUTPUT» (8 входов, 8 выходов).

    MCPGPIO

    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 кнопок) управления, текущее состояние портов отображается в виде "лампочек".

    IOBrokerVIS

    Ссылка на образ для 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

    Ссылка на рисунки и схемы:

    https://github.com/ztxdevelopers/Pictures

    Схема платы LODCONTROL:

    https://drive.google.com/open?id=19PAF_mo25jl-PgNo_hnNF6GmbJyG9jaO
    https://github.com/ztxdevelopers/ZTX-IP-CONTROLLER/blob/master/CIRCUIT_BOARD_LOADCONTROL.pdf



Suggested Topics

598
Online

21.7k
Users

26.4k
Topics

323.1k
Posts