PyDMXControl icon indicating copy to clipboard operation
PyDMXControl copied to clipboard

Node-RED Controller

Open pdawcewicz opened this issue 1 year ago • 3 comments

Hi Matt.

I'm looking for way to control my DMX decoder using RS485 hat on Rpi. I'd love to control it in Node-RED environment. Shield's manufacturer supplied a sample python code, sending a simple test string over RS485, and it works, but I'm wandering how can I modify this code, making it send DMX frames. Maybe you could give me some tips how to do it, because unfortunately, I don't know python.

Here is the code which I've simplified a little bit, and original one in the link below.

import serial import os import sys import logging

logging.basicConfig(level=logging.INFO) libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(file))), 'lib') if os.path.exists(libdir): sys.path.append(libdir)

import RPi.GPIO as GPIO import time from waveshare_2_CH_RS485_HAT import config

TXDEN_1 = 27 TXDEN_2 = 22

ser = config.config(dev = "/dev/ttySC0") data = '' GPIO.output(TXDEN_1, GPIO.LOW) ser.Uart_SendString('Waveshare 2-CH RS485 HAT\r\n') time.sleep(0.005)#Waiting to send GPIO.output(TXDEN_1, GPIO.HIGH)

https://www.waveshare.com/wiki/2-CH_RS485_HAT

Regards, Paweł

pdawcewicz avatar Dec 02 '22 19:12 pdawcewicz

Hey! it sounds like this is a serial device? If so, the serial controller in the project might be what you want?

https://github.com/MattIPv4/PyDMXControl/blob/master/PyDMXControl/controllers/_SerialController.py

If it isn't a true serial device, you might be able to use that controller as a basis for implementing your own controller that makes the right calls to send each DMX frame

MattIPv4 avatar Dec 09 '22 23:12 MattIPv4

Hey. Thanks. That is what I was looking for. I was wandering how to get this >88 usec break and >8 usec idle before sending the pocket, and you are doing it at the very end of the code:

    self.__device.send_break(100e-6)
    sleep(10e-6)
    self.__device.write(data)
    

It seems I will be able to handle DMX protocol this way, using your python code, but maybe you could give me some ideas how to achieve that in Node-RED, if you have any experience with this environment.

pdawcewicz avatar Dec 12 '22 09:12 pdawcewicz

Unfortunately, I'm not familiar with Node-RED, sorry.

MattIPv4 avatar Dec 12 '22 14:12 MattIPv4