Go Down

Topic: Arduino interface with L3DGEWorld (a 3D data visualisation tool) (Read 951 times) previous topic - next topic

sirsquidness

(tl;dr: A library to interface Arduino with a 3D data visualisation and monitoring tool on a PC - download  - brief examples - L3DGEWorld overview )

Hey all,

I'm currently a student doing a work placement at one of my university's research departments, the Centre for Advanced Internet Architectures. As part of my placement, I developed a library for Arduino to interface with another of our (FOSS) projects, L3DGEWorld.

L3DGEWorld was designed to monitor networks and networked computer systems using a realtime 3D interface. Different statistics are represented through different visual attributes. For example, one of the super computing clusters at Swinburne University uses L3DGEWorld to provide a visual overview of the state of every node. Each node is a floating entity, and the CPU utilisation is represented by rotation speed, the memory utilisation by size and the network utilisation by bounce height. (See example here. )

Additionally, the user may also interact with the entities. Using the different "tools" (weapons) available, a user may trigger a l3dgecomm enabled device to perform certain actions.

l3dgecomm is the protocol for communicating between L3DGEWorld and an input or output daemon. Arduino-l3dgecomm provides an interface to allow an Arduino to provide input and take output from L3DGEWorld and other l3dgecomm compatible programs.*

We put together two proof of concept videos to demonstrate the main functionality of arduino-l3dgecomm.

In the first video, the arduino acts only as an input daemon. We read an analog input and set the spin rate of an entity on-screen accordingly. Input from any source can be used, as long as you can express it as an integer.

http://www.youtube.com/watch?v=QlJ-gJRMt80

In the second video, we demonstrate the output functionality of L3DGEWorld, with the Arduino acting as an output daemon. We interact with entities in-game, which controls the actions of the Arduino. When an action is sent, the Arduino is provided with the tool ID, entity ID and a string containing the states of the various attributes of the entity. In this case, we use the entity ID to determine which angle the servo actuates to.

http://www.youtube.com/watch?v=DWyvQAS01qM

Both of these are very simplistic examples of the functionality - L3DGEWorld can be expanded far beyond these examples with minimal effort.  For example, monitoring temperatures around a datacenter, while allowing a user to turn additional localised cooling devices on and off .

Both L3DGEWorld and arduino-l3dgecomm are free, opensource software. Download it from here, see the examples page here, and read the L3DGEWorld overview here

* W3bworld is our other l3dgecomm compatible program, which is a HTML5 and NodeJS implementation of L3DGEWorld.

Go Up