Core motion-control abstractions and helpers for linear and peristaltic pumps, gantries, etc.
Install
| Product | Versions |
|---|---|
| .NET | |
| .NET Standard | |
| Other |
README
MotionControlBase
MotionControlBase is a .NET library providing core abstractions and helpers for motion control devices—such as linear actuators, gantries, peristaltic pumps, and syringe pumps—across multiple .NET targets (net8.0, net48, netstandard2.0).
Features
Interfaces for:
- Linear movement (
ILinearMovement,HGantryimplementations) - Pump control (
IPump,ISyringe) - Peristaltic pump (
PeristalticPump) - Motor abstraction (
IMotor,IStoppableMotor)
- Linear movement (
Unit conversion helpers (mm ↔ motor steps, µL ↔ steps)
Stop‑channel support with configurable modes
Motion profiling: acceleration, speed, deceleration, trapezoidal/triangular profiles
Cross‑platform: usable in .NET 8, .NET Framework 4.8, and .NET Standard 2.0
Installation
Install via NuGet:
dotnet add package MotionControlBase --version 1.1.0
Or via the Package Manager Console:
Install-Package MotionControlBase -Version 1.1.0
Quick Start
using Essy.LinearMovements;
using Essy.Motor;
// 1. Create your motor (IMotor or IStoppableMotor)
IStoppableMotor motor = new MyStepperMotor();
// 2. Instantiate a LinearMovement (e.g. gantry or slide)
var gantry = new HGantry(motorA: motor, motorB: motor, distancePerRotation: 5.0);
gantry.Powered = true;
gantry.SetPosition(0, 0);
gantry.MoveToPosition(x: 10, y: 20, acceleration: 50, speed: 100, deceleration: 50);
Console.WriteLine($"Current position: ({gantry.XPos:F2}, {gantry.YPos:F2}) mm");
using Essy.Pump;
using Essy.PeristalticPump;
IMotor pumpMotor = new MyPumpMotor();
var pump = new PeristalticPump(pumpMotor, volumePerRotation: 100.0);
pump.StartAspirating(volume: 200.0, speed: 50.0);
pump.WaitForPumpActionToComplete();
Console.WriteLine("Aspirated 200 µL");
API Overview
Essy.Motor
IMotor,IStoppableMotorinterfacesMotorStopChannel,MotorStopChannelMode, exceptions
Essy.LinearMovements
ILinearMovement,HGantry,LinearMovementLinearStopChannel
Essy.Pump
IPump,ISyringe
Essy.PeristalticPump
PeristalticPump,PeristalticPumpException
For detailed API docs, see docs/ or IntelliSense.
Contributing
- Fork the repository on GitHub
- Create a feature branch:
git checkout -b feat/my-feature - Commit your changes:
git commit -m "Add my feature" - Push to your fork:
git push origin feat/my-feature - Open a Pull Request
Please follow the existing code style and include unit tests where applicable.
License
This project is licensed under the MIT License. See LICENSE for details.
Happy motion controlling!
Adoption Assessment
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.