Home

Awesome

Moto:bit

SparkFun Moto:bit

The package adds support for the moto:bit add-on board from SparkFun.

TODO: To use this package, go to https://pxt.microbit.org, click Add package and search for moto-bit.

~ hint

Not currently integrated into pxt. It must be manually added. This package is still under development and subject to changes.

~

Usage

The package adds support for the moto:bit add-on board from SparkFun.

Micro:bit Pins Used

The following micro:bit pins are used for analog and digital sensors, motor driving:

Set Motor Speed

To set the speed and direction for a motor, place the |set motor| block. The block takes three parameters: motor select, direction, and speed.

motobit.setMotorSpeed(Motor.Left, MotorDirection.Forward, 50)

Invert Motor Directon

When a motor turns opposite to the direction that was declared, the invert block may be used. The block accepts two parameters: motor select, and a boolean variable. When the boolean is set to true, the motor direction is inverted so that Forward no longer causes the motor to spin in Reverse, but rather Forward.

motobit.invert(Motor.Left, true)

Enabling Motors

Regardless of the set motor speed, before the motors will turn on the switch on moto:bit must be set to "Run Motors", and the enable motors command must be set to ON

motobit.enable(MotorPower.On)

Examples

Example: Receiving a packet of data over wireless

The following program reads a string to control the direction of two motors.

radio.onDataPacketReceived( ({ receivedNumber }) =>  {
    // Drive forward
    if (receivedNumber == 128) {
        led.plot(2, 0)
        motobit.setMotorSpeed(Motor.Left, MotorDirection.Forward, 50)
        motobit.setMotorSpeed(Motor.Right, MotorDirection.Forward, 50)
        motobit.enable(MotorPower.On)
    } else {
        led.unplot(2, 0)
    }
    // Turn left
    if (receivedNumber == 64) {
        led.plot(0, 2)
        motobit.setMotorSpeed(Motor.Left, MotorDirection.Reverse, 50)
        motobit.setMotorSpeed(Motor.Right, MotorDirection.Forward, 50)
        motobit.enable(MotorPower.On)
    } else {
        led.unplot(0, 2)
    }
    // Turn right
    if (receivedNumber == 32) {
        led.plot(4, 2)
        motobit.setMotorSpeed(Motor.Left, MotorDirection.Forward, 50)
        motobit.setMotorSpeed(Motor.Right, MotorDirection.Reverse, 50)
        motobit.enable(MotorPower.On)
    } else {
        led.unplot(4, 2)
    }
    // Drive in reverse
    if (receivedNumber == 16) {
        led.plot(2, 4)
        motobit.setMotorSpeed(Motor.Left, MotorDirection.Reverse, 50)
        motobit.setMotorSpeed(Motor.Right, MotorDirection.Reverse, 50)
        motobit.enable(MotorPower.On)
    } else {
        led.unplot(2, 4)
    }
    // Stop
    if (receivedNumber == 0) {
        motobit.enable(MotorPower.Off)
    }
})
radio.setGroup(13)

License

MIT

Supported targets

motobit=github:sparkfun/pxt-moto-bit