node-red-node-pi-sense-hat-simulator ==================================== A node to simulate a Raspberry Pi Sense HAT. This allows you to create flows that interact with a virtual Sense HAT without the actual hardware - whether you're running on a Raspberry Pi, a laptop or elsewhere. Once a Sense HAT simulator node has been deployed, the web page that provides a UI to the simulator can be accessed by clicking the link in the node's info panel. ## Install Run the following command in your Node-RED user directory (typically `~/.node-red`): npm install node-red-node-pi-sense-hat-simulator ## Usage ### Input Node This node sends readings from the various sensors on the Sense HAT, grouped into three sets; motion events, environment events and joystick events. #### Motion events **The current version of the simulator does not support Motion events** Motion events include readings from the accelerometer, gyroscope and magnetometer, as well as the current compass heading. They are sent at a rate of approximately 10 per second. The `topic` is set to `motion` and the `payload` is an object with the following values: - `acceleration.x/y/z` : the acceleration intensity in Gs - `gyroscope.x/y/z` : the rotational intensity in radians/s - `orientation.roll/pitch/yaw` : the angle of the axis in degrees - `compass` : the direction of North in degrees #### Environment events Environment events include readings from the temperature, humidity and pressure sensors. They are sent at a rate of approximately 1 per second. The `topic` is set to `environment` and the `payload` is an object with the following values: - `temperature` : degrees Celsius - `humidity` : percentage of relative humidity - `pressure` : Millibars #### Joystick events Joystick events are sent when the Sense HAT joystick is interacted with. The `topic` is set to `joystick` and the `payload` is an object with the following values: - `key` : one of `UP`, `DOWN`, `LEFT`, `RIGHT`, `ENTER` - `state` : the state of the key: - `0` : the key has been released - `1` : the key has been pressed - `2` : the key is being held down ### Output Node This node sends commands to the 8x8 LED display on the Sense HAT. Commands are sent to the node in `msg.payload`. Multiple commands can be sent in a single message by separating them with newline (\n) characters. #### Set the colour of individual pixels Format: `,,` `x` and `y` must either be a value from 0 to 7, a `*` to indicate the entire row or column, or a range such as `3-6`. `colour` must be one of: - the well-known HTML colour names - eg `red` or `aquamarine`, - the CheerLights colour names, - a HEX colour value - eg `#aa9900` - an RGB triple - `190,255,0` - or simply `off` To set the entire screen to red: `*,*,red` To set the four corners of the display to red, green (#00ff00), yellow and blue (0,0,255): `0,0,red,0,7,#00ff00,7,7,yellow,7,0,0,0,255` To set a 3-pixel wide column to purple: `4-6,*,purple` #### Rotate the screen Format: `R` `angle` must be 0, 90, 180 or 270. #### Flip the screen Format: `R` `axis` must be either `H` or `V` to flip on the horizontal or vertical axis respectively. #### Scroll a message If `msg.payload` is not recognised as any of the above commands, it is treated as a text message to be scrolled across the screen. If the text is a single character, it will be displayed without scrolling. To scroll a single character, append a blank space after it - `"A "`.

The following message properties can be used to customise the appearance: - `msg.color` - the colour of the text, default: `white` - `msg.background` - the colour of the background, default: `off` - `msg.speed` - the scroll speed. A value in the range 1 (slower) to 5 (faster), default: `3` #### Set the screen brightness Format: `D` `level` must be 0 (low) or 1 (high).