Case StudiesArrow - Elements Webflow Library - BRIX Templates
Analog Control of Classroom Projector System

Analog Control of Classroom Projector System

February 21, 2019

The Parallax Design team provided for the integrator the following schematic drawing and equipment list to accomplish there goal: a simple yet cost effective analog control solution for a single classroom projection system.

Classroom A/V Control Solution Example

Full Equipment List:

1QTY PARALLAX CM4-NANO CONTROL PROCESSOR (NO UI LICENSE REQUIRED)

1QTY RDL D SERIES RC2ST

1QTY RDL PS-24AS 24V PSU

1QTY AVPROEDGE AC-CXWP-VGA-T

1QTY AVPROEDGE AC-EX70-SC2-R

1QTY SONY VPLPHZ60

1QTY DA-LITE COSMO 70281L

1QTY DA-LITE LVC3 KEYPAD

RDL 2 Button Keypad

This is a summary of the node flow used for controlling both a projector and projection screen from an RDL 2 button keypad.

Here is the Node-RED code:

The flow consists of various nodes that interact with different components and perform specific actions. Here is an overview of the main nodes and their functionalities:

  1. TCP Request Node (Projector):– This node is responsible for sending commands to the projector.– It connects to the projector’s IP address and port.– It sends commands to control the projector’s power status.
  2. Debug Node (Projector Debug):– This node displays debug information related to the projector.
  3. Function Node (Power On):– This node generates the command to power on the projector.
  4. Function Node (Rx):– This node converts the received payload to a string.
  5. Debug Node (btn_state_bottom):– This node displays the status of the bottom button (startup) connected to GPIO pin 27.
  6. Debug Node (btn_state_top):– This node displays the status of the top button (shutdown) connected to GPIO pin 4.
  7. Inject Node (Test ON):– This node injects a test payload to simulate the ON state of the button.
  8. Inject Node (Test OFF):– This node injects a test payload to simulate the OFF state of the button.
  9. Trigger Node (Screen Down):– This node triggers an action when the screen-down button is pressed.– It sets GPIO pin 19 to a low level (0) to control the screen.
  10. Trigger Node (Screen Up):– This node triggers an action when the screen-up button is pressed.– It sets GPIO pin 20 to a low level (0) to control the screen.
  11. Function Node (show gpio state):– This node generates a command to retrieve the state of a specific GPIO pin.
  12. Inject Node (GPIO 20 – screen down output):– This node injects a test payload to retrieve the state of GPIO pin 20 (screen-down output).
  13. Exec Node:– This node executes the command to retrieve the state of the GPIO pin.
  14. Debug Node (Console Debug):– This node displays the debug information from the executed command.
  15. Inject Node (GPIO 19 – screen up output):– This node injects a test payload to retrieve the state of GPIO pin 19 (screen-up output).
  16. Inject Node (GPIO 27 – Button Input – Startup):– This node injects a test payload to retrieve the state of GPIO pin 27 (button input – startup).
  17. Inject Node (GPIO 4 – Button Input – Shutdown):– This node injects a test payload to retrieve the state of GPIO pin 4 (button input – shutdown).
  18. Switch Node:– This node checks the state of GPIO pin 4 (shutdown button) and triggers an action when it detects a specific value.
  19. Switch Node:– This node checks the state of GPIO pin 27 (startup button) and triggers an action when it detects a specific value.
  20. Trigger Node (Power Off):– This node triggers an action to power off the projector.
  21. Debug Node (debug 2):– This node displays the debug information related to the projector.
  22. Debug Node (debug 3):– This node displays the debug information related to the projector.

The provided Node-RED code showcases a basic implementation for controlling a projector and projection screen using the Parallax Control Engine. It can be further customized and expanded to suit specific requirements.

Node Red Program Flow:

Classroom Projector Flow – 3.10.23.json [download coming soon]

Note, you may want to first run the following command to install the node red gpio package on the unit, this will ensure the required packages are included prior to importing the flow:

npm install rpi-gpio

Note that you can also install node red locally on your machine for local testing:

sudo npm install -g --unsafe-perm node-redStart

the server on the default 1880 port:

node-red

For example, will start the server on port 1234 instead of the default 1880.

node-red -p 1234

Open a web browser and navigate to http://localhost:1880. This is the default address where Node-RED’s graphical editor is accessible.