From 1d3e21dcad99b46c9f2d74c855e84fc4a280ad7d Mon Sep 17 00:00:00 2001 From: Hiroyasu Nishiyama Date: Sat, 16 May 2020 11:11:19 +0900 Subject: [PATCH] add GPIO node enhancements --- designs/gpio-plus/GPIO-settings.png | Bin 0 -> 77290 bytes designs/gpio-plus/README.md | 231 ++++++++++++++++++++++++++++ 2 files changed, 231 insertions(+) create mode 100644 designs/gpio-plus/GPIO-settings.png create mode 100644 designs/gpio-plus/README.md diff --git a/designs/gpio-plus/GPIO-settings.png b/designs/gpio-plus/GPIO-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..bf5baf5fdbc2f4325ca771b687a50c44522f0f9b GIT binary patch literal 77290 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 D_A#sc literal 0 HcmV?d00001 diff --git a/designs/gpio-plus/README.md b/designs/gpio-plus/README.md new file mode 100644 index 0000000..6cffc67 --- /dev/null +++ b/designs/gpio-plus/README.md @@ -0,0 +1,231 @@ +--- +state: draft +--- + +# Enhanced GPIO Node + +This proposal covers enhancement to the GPIO node (`node-red-node-pi-gpio`). + +The GPIO node provide an easy way to control hardware using Node-RED. +However, there are some cases where it is difficult to control certain types of hardware using current GPIO node. +Therefore, this proposal aims to extend the GPIO node to meet such requirements. + +### Authors + + - @HiroyasuNishiyama + +### Details + +#### Current Implementation of GPIO Node + +The current GPIO node can define input and output to a single GPIO pin using the following setttings interface. + +![GPIO settings panel](GPIO-settings.png) + +The GPIO node internally uses the **RPi.GPIO** python module to control a hardware. + +When GPIO is used to control a hardware, in some cases, the following features are required: + +1. simultaneous signal output to multiple pins, +2. sequencing of signal outputs to multiple pins, +3. specifying the delay between signal outputs, +4. abstraction of processing including GPIO input and output using subflow. + +With the underlying RPi.GPIO module, item 1 can be realized by specifying the output pins as an array. + +Item 2 and 3 can be realized by combining complete and delay nodes, but it becomes difficult to understand the dependency between GPIO node and complete node, and the flow becomes complicated. + +Item 4 needs some way to pass GPIO control information from environment variable. + +### Proposal of Enhancements to GPIO Node + +In order to solve the above problems, we propose the following extensions to GPIO nodes. + +#### GPIO in node + +1. Add advanced mode checkbox. +2. In advanced mode, the **GPIO in** node has input port and can receive a payload value: + + a. JavaScript object containing following properties: + + | Name | Type | required | Desc. | + |:--------|:--------|:------------|:-------------------------| + | `pin` | int | + | GPIO pin number | + | `delay` | number | - | delay after input in ms | + | `wait` | number | - | wait befor input in ms | + + These property values are uses to specify input pins and related delay values. Output payload value is `0`/`1`. + + - Example: input from pin#11 then wait for 100ms + + ```[javascript] + { + pin: 11, + delay: 100 + } + ``` + + b. `pin` of (a) can be array of GPIO pin numbers. In this case, an object that contains pin number as a key and corresponding GPIO input value as its value is sent as payload value. + + - Example: input from pin#11 and pin#12 then wait for 100ms + + ```[javascript] + { + pin: [11, 12], + delay: 100 + } + ``` + + - Example of output message payload + + ```[javascript] + { + '11': 1, + '12': 0 + } + ``` + + c. array of object of (a) ~ (b). In this case, the objects in the array are applied sequentially. Output message is same as (b). + + - Example: input from pin#11, wait for 100ms, then input from pin#12 + + ```[javascript] + [ + { + pin: 11, + delay: 100 + }, + { + pin: 12 + } + ] + ``` + + d. JavaScript object containing following properties: + + | Name | Type | required | Desc. | + |:-----------|:-------|:----------|:---------------------| + | `pin` | int | + | GPIO pin number | + | `setup` | string | + | pullup/pulldown/none | + | `debounce` | number | - | debounce time in ms | + + In this case, input payload property values are used to setup a corresponding GPIO pin. Output payload value is `true`. + + - Example: setup pin#11 for pullup and 25ms debounce time + + ```[javascript] + { + pin: 11, + setup: "pullup", + debounce: 25 + } + ``` + +#### GPIO out node + +1. Add advanced mode checkbox. +2. In advanced mode, the following values can be received as a payload value instead of simple integer value: + + a. JavaScript object containing following properties: + + | Name | Type | required | Desc. | + |:--------|:------|:----------|:-------------------------| + | `pin` | int | + | GPIO pin number | + | `value` | number| - | value to output | + | `delay` | number| - | delay after output in ms | + | `wait` | number| - | wait befor output in ms | + + These property values are used to output values to GPIO pins. + + - Example: output `1` to pin#11 then wait for 100ms + + ```[javascript] + { + pin: 11, + value: 1 + delay: 100 + } + ``` + + b. `pin` of (a) can be array of GPIO pin numbers. In this case, value specified by `value` is outputted to specified GPIO pins. + + - Example: output `1` to pin#11 and pin#12 then wait for 100ms + + ```[javascript] + { + pin: [11, 12] + value: 1 + delay: 100 + } + ``` + + c. `pin` and `value` of (a) can be arrays of same length. In this case, a value in `value` array is outputted to corresponding pin in `pin` array. + + - Example: output `1` to pin#11 and `0` to pin#12 then wait for 100ms + + ```[javascript] + { + pin: [11, 12] + value: [1, 0] + delay: 100 + } + ``` + + d. `pin` of (a) can point to a object that contains pin number as a key and corresponding GPIO input value as its value is sent as payload value. + + - Example: output `1` to pin#11 and `0` to pin#12 then wait for 100ms + + ```[javascript] + { + pin: { + '11': 1, + '12': 0 + }, + delay: 100 + } + ``` + + d. array of object of (a) ~ (c). In this case, the objects in the array are applied sequentially. + + - Example: output `1` to pin#11, wait for 100ms, then output `0` to pin#12 + + ```[javascript] + [ + { + pin: 11, + value: 1, + delay: 100 + }, + { + pin: 12, + value: 0 + } + ] + ``` + + e. JavaScript object containing following properties: + + | Name | Type | required | Desc. | + |:-----------|:------|:----------|:----------------| + | `pin` | int | + | GPIO pin number | + | `mode` | string| + | pmw/digital | + | `frequency`| number| - | for PWM mode | + + These properties are used to setup mode of a GPIO output pin. + In PWM mode, output value of GPIO pin can be floating point or `null`/`undefined`. If the values is `null`/`undefined`, PWM for specified GPIO pin is stopped. + + - Example: setup pin#11 for PWM mode for 5hz + + ```[javascript] + { + pin: 11, + mode: "pwm", + frequency: 5 + } + ``` + +3. In advanced mode, **GPIO out** node has an output port. The **GPIO out** node outputs a message containing payload with `true` value. + +## History + + - 2020-05-16 - initial draft proposal \ No newline at end of file