This is an automatic translation, may be incorrect in some places.
This library is a collection of deceleration options for my servo libraries. Since this functionality is not mandatory, I decided to move it to a separate library.
Library features:
- Allows you to create iterators based on: value, time, regrettable slowdown.
Materials used to create the library:
- Material CSS Transitions, by MDN
- Material easings.net by Andrey Sitnik and Ivan Solovev
- MicroPython 1.19.1
- Raspberry Pi Pico
On the hardware above the library has been tested and works correctly.
You use this module at your own risk. I am new to MicroPython programming. So there may be nuances that I did not take into account. If you notice an error or have suggestions for improvement, please write to Issues.
- Install the library via pip (Thonny -> Manage Packages) by name smooth-servo
- Or manual installation:
- Download library from GitHub
- take the smooth_servo folder from the archive.
- upload to the root of the microcontroller or to the lib folder.
This library is primarily designed to be used with my servo libraries. But you can also use it in other projects like this:
from smooth_servo import SmoothLinear
# Set parameters
value = 100 # End value the iterator should reach
time_ms = 1000 # Time in milliseconds to reach end value
start_value = 0 # Start value
tick_time_ms = 50 # Time between iterations (used to calculate the number of steps)
# Create an instance of the iterator class
linear = SmoothLinear(value, time_ms, start_value)
# create an iterator with a given time between iterations
iterator = linear.generate(tick_time_ms)
# Use an iterator
for i in iterator:
print(i)
Parameter | type | default | description |
---|---|---|---|
value | int | None | End value |
time_ms | int | None | The time in milliseconds it takes to reach the final value |
start_value | int | 0 | Initial value |
value
- cannot be equal to or less than 0.time_ms
- cannot be equal to or less than 0.start_value
- cannot be greater thanvalue
.
Class | Easing type | Description |
---|---|---|
ServoSmoothBase | None | Base class for iterators |
SmoothLinear | Linear | Linear dependence of value on time. |
SmoothEaseIn | EaseIn | Example |
SmoothEaseOut | EaseOut | Example |
SmoothEaseInOut | EaseInOut | Example |
SmoothEaseInQuad | EaseInQuad | Example |
SmoothEaseOutQuad | EaseOutQuad | Example |
SmoothEaseInOutQuad | EaseInOutQuad | Example |
SmoothEaseInCubic | EaseInCubic | Example |
SmoothEaseOutCubic | EaseOutCubic | Example |
SmoothEaseInOutCubic | EaseInOutCubic | Example |
SmoothEaseInQuart | EaseInQuart | Example |
SmoothEaseOutQuart | EaseOutQuart | Example |
SmoothEaseInOutQuart | EaseInOutQuart | Example |
SmoothEaseInQuint | EaseInQuint | Example |
SmoothEaseOutQuint | EaseOutQuint | Example |
SmoothEaseInOutQuint | EaseInOutQuint | Example |
SmoothEaseInExpo | EaseInExpo | Example |
SmoothEaseOutExpo | EaseOutExpo | Example |
SmoothEaseInOutExpo | EaseInOutExpo | Example |
SmoothEaseInCirc | EaseInCirc | Example |
SmoothEaseOutCirc | EaseOutCirc | Example |
SmoothEaseInOutCirc | EaseInOutCirc | Example |
SmoothEaseInBack | EaseInBack | Example |
SmoothEaseOutBack | EaseOutBack | Example |
SmoothEaseInOutBack | EaseInOutBack | Example |
Create an issue when you find bugs. The library is open for revision and your pull requests.