A Python interface to AutomationShield's AeroShield Arduino shield
Project description
python-aeroshield
python-aeroshield
is a Python package that implements a Python interface to Automationshield's Aeroshield. Automationshield creates cheap and accessible tools for control engineering education in the form of Arduino shields, of which the Aeroshield is one.
This project was built to allow TU Delft students learning control engineering to use Python in their assignments, since that is what they are thought in the curriculum. This package provides a flexible controller class that lets users conveniently implement a controller and run it on the Arduino hardware.
Installation
python-aeroshield
requires Python >= 3.10 and can be installed with the following command:
$ pip install python-aeroshield
Usage
Below is a very simple example to get started. Read more in the documentation.
Use the AeroShield
class to interface directly with the Arduino.
from aeroshield import AeroShield
with AeroShield() as aero_shield:
for _ in range(100):
aero_shield.write(flag=aero_shield.RUN, motor=50)
out = aero_shield.read()
print(f"Potentiomneter [%]: {out[0]}, Angle [°]: {out[1]}")
Use the AeroController
class to conveniently implement a controller.
from aeroshield import AeroShield, AeroController
class MyController(AeroController):
def controller(self, t: float, dt: float, ref: float, pot: float, angle: float) -> float:
"""Set the motor value to the provided reference."""
return ref
# create controller instance
my_controller = MyController(AeroShield())
# run the controller on the Arduino.
hist = my_controller.run(freq=200, cycles=1000, ref=45)
Plot the experiment data using the plotting.Plotter
class
from aeroshield.plotting import Plotter
fig, ax = Plotter.plot(hist)
fig.show()
Below is an example of a figure plotting the result of a PID controller with a constant reference at 45°.
Contributing
Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
License
python-aeroshield
was created by Bert Van den Abbeele. It is licensed under the terms of the MIT license.
Credits
python-aeroshield
was created with cookiecutter
and the py-pkgs-cookiecutter
template.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file python_aeroshield-0.3.3.tar.gz
.
File metadata
- Download URL: python_aeroshield-0.3.3.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/5.4.109+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3379748ea89271c25100dbcf65c68c29ca90105c7b935f1d26d7eac1376eb442 |
|
MD5 | 220122c68a025bf59d0aa372def58d9f |
|
BLAKE2b-256 | ff5524c936007e9e76b642975c0b48c9e01bfc9e05602a0d7fbce4dc29ce2381 |
File details
Details for the file python_aeroshield-0.3.3-py3-none-any.whl
.
File metadata
- Download URL: python_aeroshield-0.3.3-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/5.4.109+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1be99060610d4ecabe470f2468f57a89c745b06fe5cfce4acb56bacd61e1760 |
|
MD5 | 2014c5cf34f77c6ce21de2428319d478 |
|
BLAKE2b-256 | 9cfb87a297fdc5442c5ac9d33db000a532df1987a892fc53545fe894435b85b6 |