Remarks
MotorWing | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
MotorWing motorWing;
public override Task Initialize()
{
Console.WriteLine("Initializing ...");
var i2CBus = Device.CreateI2cBus(I2cBusSpeed.FastPlus);
motorWing = new MotorWing(i2CBus, new Frequency(100, Frequency.UnitType.Hertz), 0x61);
motorWing.Initialize();
return Task.CompletedTask;
}
public override async Task Run()
{
//Get DC motor 1
var dcMotor1 = motorWing.GetMotor(1);
//Get DC motor 2
var dcMotor2 = motorWing.GetMotor(2);
//Get Stepper motor number 2
var stepper = motorWing.GetStepper(2, 200);
dcMotor1.Run(Commmand.FORWARD);
dcMotor2.Run(Commmand.BACKWARD);
while (true)
{
Console.WriteLine("Speed up");
for (short i = 0; i <= 255; i++)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(50);
await Task.Delay(500);
Console.WriteLine("Slow down");
for (short i = 255; i >= 0; i--)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(-50);
await Task.Delay(500);
}
}
Sample project(s) available on GitHub
Characteristic | Locus |
---|---|
Inheritance | object > MotorWing |
Inherited Members | object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() |
Namespace | Meadow.Foundation.FeatherWings |
Assembly | MotorWing.dll |
Syntax
public class MotorWing
Constructors
MotorWing(II2cBus, Frequency, byte)
Creates a MotorWing driver
Declaration
public MotorWing(II2cBus i2cBus, Frequency frequency, byte address = 64)
Parameters
Type | Name | Description |
---|---|---|
II2cBus | i2cBus | The I2C bus connected to the device |
Frequency | frequency | The PWM frequency for the PCA9685 IC |
byte | address | The address of the i2c Peripheral |
Remarks
MotorWing | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
MotorWing motorWing;
public override Task Initialize()
{
Console.WriteLine("Initializing ...");
var i2CBus = Device.CreateI2cBus(I2cBusSpeed.FastPlus);
motorWing = new MotorWing(i2CBus, new Frequency(100, Frequency.UnitType.Hertz), 0x61);
motorWing.Initialize();
return Task.CompletedTask;
}
public override async Task Run()
{
//Get DC motor 1
var dcMotor1 = motorWing.GetMotor(1);
//Get DC motor 2
var dcMotor2 = motorWing.GetMotor(2);
//Get Stepper motor number 2
var stepper = motorWing.GetStepper(2, 200);
dcMotor1.Run(Commmand.FORWARD);
dcMotor2.Run(Commmand.BACKWARD);
while (true)
{
Console.WriteLine("Speed up");
for (short i = 0; i <= 255; i++)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(50);
await Task.Delay(500);
Console.WriteLine("Slow down");
for (short i = 255; i >= 0; i--)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(-50);
await Task.Delay(500);
}
}
Methods
GetMotor(short)
Returns a instance of a DC Motor object
Declaration
public DCMotor GetMotor(short dcMotorIndex)
Parameters
Type | Name | Description |
---|---|---|
short | dcMotorIndex | The motor port we want to use: 1 thru 4 are valid |
Returns
Type | Description |
---|---|
DCMotor | DCMotor |
Remarks
MotorWing | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
MotorWing motorWing;
public override Task Initialize()
{
Console.WriteLine("Initializing ...");
var i2CBus = Device.CreateI2cBus(I2cBusSpeed.FastPlus);
motorWing = new MotorWing(i2CBus, new Frequency(100, Frequency.UnitType.Hertz), 0x61);
motorWing.Initialize();
return Task.CompletedTask;
}
public override async Task Run()
{
//Get DC motor 1
var dcMotor1 = motorWing.GetMotor(1);
//Get DC motor 2
var dcMotor2 = motorWing.GetMotor(2);
//Get Stepper motor number 2
var stepper = motorWing.GetStepper(2, 200);
dcMotor1.Run(Commmand.FORWARD);
dcMotor2.Run(Commmand.BACKWARD);
while (true)
{
Console.WriteLine("Speed up");
for (short i = 0; i <= 255; i++)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(50);
await Task.Delay(500);
Console.WriteLine("Slow down");
for (short i = 255; i >= 0; i--)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(-50);
await Task.Delay(500);
}
}
GetStepper(short, int)
Returns a instance of a Stepper Motor object
Declaration
public StepperMotor GetStepper(short stepperMotorIndex, int steps)
Parameters
Type | Name | Description |
---|---|---|
short | stepperMotorIndex | The stepper motor port we want to use: only 0 or 1 are valid |
int | steps | The number of steps the motor has |
Returns
Type | Description |
---|---|
StepperMotor | StepperMotor |
Remarks
MotorWing | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
MotorWing motorWing;
public override Task Initialize()
{
Console.WriteLine("Initializing ...");
var i2CBus = Device.CreateI2cBus(I2cBusSpeed.FastPlus);
motorWing = new MotorWing(i2CBus, new Frequency(100, Frequency.UnitType.Hertz), 0x61);
motorWing.Initialize();
return Task.CompletedTask;
}
public override async Task Run()
{
//Get DC motor 1
var dcMotor1 = motorWing.GetMotor(1);
//Get DC motor 2
var dcMotor2 = motorWing.GetMotor(2);
//Get Stepper motor number 2
var stepper = motorWing.GetStepper(2, 200);
dcMotor1.Run(Commmand.FORWARD);
dcMotor2.Run(Commmand.BACKWARD);
while (true)
{
Console.WriteLine("Speed up");
for (short i = 0; i <= 255; i++)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(50);
await Task.Delay(500);
Console.WriteLine("Slow down");
for (short i = 255; i >= 0; i--)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(-50);
await Task.Delay(500);
}
}
Initialize()
Initialize the MotorWings
Declaration
public void Initialize()
Remarks
MotorWing | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
MotorWing motorWing;
public override Task Initialize()
{
Console.WriteLine("Initializing ...");
var i2CBus = Device.CreateI2cBus(I2cBusSpeed.FastPlus);
motorWing = new MotorWing(i2CBus, new Frequency(100, Frequency.UnitType.Hertz), 0x61);
motorWing.Initialize();
return Task.CompletedTask;
}
public override async Task Run()
{
//Get DC motor 1
var dcMotor1 = motorWing.GetMotor(1);
//Get DC motor 2
var dcMotor2 = motorWing.GetMotor(2);
//Get Stepper motor number 2
var stepper = motorWing.GetStepper(2, 200);
dcMotor1.Run(Commmand.FORWARD);
dcMotor2.Run(Commmand.BACKWARD);
while (true)
{
Console.WriteLine("Speed up");
for (short i = 0; i <= 255; i++)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(50);
await Task.Delay(500);
Console.WriteLine("Slow down");
for (short i = 255; i >= 0; i--)
{
dcMotor1.SetSpeed(i);
dcMotor2.SetSpeed(i);
await Task.Delay(10);
}
stepper.Step(-50);
await Task.Delay(500);
}
}