AutomationShield Versions Save

Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering education.

v0.4.1

2 years ago

This release fixes the Arduino Mega2560 sampling issue.

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.1.tar file to include the necessary submodules. The files below under the Source Code name (zip and 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.

v0.4

2 years ago

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.

v0.3

4 years ago

This is the third release of the AutomationShield library. The LQ and MPC control of FloatShield has been implemented.

Release Beta Arduino MATLAB Simulink
FloatShield
HeatShield
MagnetoShield
MotoShield
OptoShield
LinkShield
TugShield
BOBShield

Please note that GitHub does not include submodules in the archive, therefore you should download the AutomationShield_v0.3.zip file to include the necessary submodules. The files below under the Source Code name (v0.3.zip and v0.3.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.

v0.2

4 years ago

This is the second release of the AutomationShield library. We have added a relatively well tested support for the FloatShield and MagnetoShield. There is provisional support for the BOBShield, LinkShield and TugShield is available here too.

Release Beta Arduino MATLAB Simulink
FloatShield
HeatShield
MagnetoShield
MotoShield
OptoShield
LinkShield
TugShield
BOBShield

Please note that GitHub does not include submodules in the archive, therefore you should download the AutomationShield_v0.2.tar file to include the necessary submodules. The files below under the Source Code name (v0.2.zip and v0.2.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.

v0.1

5 years ago

This is the first release of the AutomationShield library. It contains a relatively stable support for the OptoShield and the HeatShield. The rest of the shields are quite patchy actually. Sampling should work for AVR, SAM and SAMD but it is not compatible with the Servo library.

Release Beta Arduino MATLAB Simulink
FloatShield
HeatShield
MagnetoShield
MotoShield
OptoShield

Please note that GitHub does not include submodules in the archive, therefore you should download the AutomationShield_v0.1.tar file to include the necessary submodules. The files below under the Source Code name (v0.1.zip and v0.1.tar.gz) do not include external repositories.