This is the fourth major pre-release of the AutomationShield library. The annual major release comes after an academic year's worth of work on the AutomationShield initiative.
Various API support of BOBShield and PressureShield have been added, along with drivers for the new MagnetoShield and FloatShield hardware (R4). The API for the improved hardware should be backwards compatible. The release contains numerous new examples and other features. Please consider the list of commits to learn about the added features.
The library currently supports the following AutomationShield hardware in their respective release (R) versions:
| | Release | Beta | Hardware |
|----------------|---------|-------|----------|
| MagnetoShield | ✅ | | R4 |
| FloatShield | ✅ | | R4 |
| BOBShield | ✅ | | R2 |
| LinkShield | ✅ | | R1 |
| MotoShield | ✅ | | R1 |
| PressureShield | ✅ | | R2 |
| HeatShield | ✅ | | R1 |
| OptoShield | ✅ | | R1 |
| TurboShield | | |❌¹ |
| TugShield | |✅ | R1 |
| TempShield | |❌² | -³ |
- ¹ Under development
- ² Not available
- ³ Hardware has not been realized yet.
The current status of the library for individual API is as follows:
| | Arduino | MATLAB | Simulink | Python³ | LabView | Octave | Scilab |
|----------------|-----------|--------|----------| --------| --------| -------| -------|
| MagnetoShield | ✅ | ❌¹ | ✅ |✅ |❌¹⋅² |❌¹ |❌¹ |
| FloatShield | ✅ | ✅¹⋅⁴ | ✅ |||||
| BOBShield | ✅ | | ✅ |||||
| LinkShield | ✅ | ❌¹ | |||||
| MotoShield | ✅ | ✅¹ | ✅ |||||
| PressureShield | ✅ | ✅ | ✅ |||||
| HeatShield | ✅ | ✅¹ | ✅ |||||
| OptoShield | ✅ | ❌¹ | ✅ |||||
| TurboShield | ✅ | | |||||
| TugShield | ✅ | ✅ | ✅ |||||
| TempShield | | | |||||
- ❌ Can not be deployed for technical reasons.
- ¹ Serial communication only, no deployment possible.
- ² LabView LINX: lower end of loop speed is about 140 Hz (7 ms) for a LED toggle example. Tested with LabView 2020.
- ³ CyrcuitPython
- ⁴ Works for FloatShield R1-R3. Currently under development for R4 - it is likely to be implementable.
The library implements the following feedback control concepts in real-time hardware examples in at least one of the API for at least one supported prototyping board:
| | Model¹ | Identification² | PID³ | LQ⁴ | MPC⁵ | PP⁶ |Kalman⁷ | Luenberger⁸ |
|----------------|---------|-----------------|------|-------|-------|------|--------|-------------|
| MagnetoShield |✅ |✅ |✅ |✅ |✅ |✅ | ✅ | ✅ |
| FloatShield |✅ |✅ |✅ |✅ |✅ | | ✅ | |
| BOBShield |✅ |✅ |✅ |✅ | | | | |
| LinkShield |✅ |✅ |✅ᵝ | | | | | |
| MotoShield |✅ |✅ |✅ | | | | | |
| PressureShield | |✅ |✅ |✅ᵞ | | | | |
| HeatShield | ✅ |✅ |✅ | | | | | |
| OptoShield | |✅ |✅ | | | | | |
| TurboShield | | | | | | | | |
| TugShield |
| TempShield | | | | | | | | |
- ¹ Mathemaical-physical analysis of the system dynamics
- ² Experimental system identification
- ³ Proportional-Integral-Derivative (PID) control
- ⁴ Linear Quadratic (LQ) control
- ⁵ Model Predictive Control
- ⁶ Pole placement
- ⁷ Kalman filtering
- ⁸ Luenenberger observer
- ᵝ According to the Positive Position/Velocity Feedback variant
- ᵞ Contains bugs
**Please note that GitHub does not include submodules in the archive, therefore you should download the `AutomationShield_v0.4.zip` file to include the necessary submodules.** The files below under the Source Code name (`v0.4.zip` and `v0.4.tar.gz`) do not include these external repositories. Please refer to the `readme.md` file on how to initialize submodules in your own Git clone, if you prefer this method.