MotionControlBase
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.
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 9, .NET 10, .NET Framework 4.8, and .NET Standard 2.0
Installation
Install via NuGet:
dotnet add package MotionControlBase
Or via the Package Manager Console:
Install-Package MotionControlBase
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
Essy.CrankedSyringe
CrankedSyringe
License
This project is licensed under the MIT License. See LICENSE for details.
Happy motion controlling!
Changes from Previous Version
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.