MD_Cubo LED Cube Arduino Library
2.1
Library to control LED Cubes
|
The MD_Cubo library implements methods and a framework that enable the software elements of any monochrome or color LED cube to be easily implemented. This allows the programmer to use the LED matrix as a voxel device addressable through XYZ cartesian coordinates, displaying graphics elements much like any other voxel addressable display.
If you like and use this library please consider making a small donation using PayPal
The library implements functions that allow LED cubes to be abstracted in software so that underlying hardware changes do not affect the definition and structure of the controlling code.
In this scenario, it is convenient to abstract out the concept of the hardware device and create a uniform and consistent 3D cartesian (XYZ) voxel address space, with the libraries determining device-element address for each LED. Similarly, control of the devices should be uniform and abstracted to a system level.
There appears to be 2 major architectures for implementing cubes:
The software must take into account these differences and allow both to work using the same basic software pattern. At a fundamental level, the hardware dependent code required needs to do the following:
The standard library supports several different types of cubes, listed below. To add a new type of hardware architecture, refer to Adding New Cube Types
To enable user code to work properly a convention related to the orientation of the XYZ axes needs to be implemented in the hardware dependent code.
Decide on a 'bottom' corner to be the origin (0,0,0). This will usually be one of the corners just above the supporting PCB. Orient the cube so one face of the cube is directly towards you and the origin is located in the lower left hand corner.
From this reference point
Oct 2020 - version 2.1
Sep 2019 - version 2.0.2
Jul 2018 - version 2.0.1
Mar 2018 - version 2.0.0
Feb 2016 - version 1.1
Aug 2015 - version 1.0
Copyright (C) 2015-2019 Marco Colli. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA