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.
Not currently integrated into pxt. It must be manually added. This package is still under development and subject to changes.
The package adds support for the moto:bit add-on board from SparkFun.
- moto:bit
- Shadow Chasis
- Hobby Gearmotor
- Wheel Pair
- RedBot Sensor - Line Follower
- ine Follower Array
- RedBot Sensor - Mechanical Bumper
- Servo Extention Cable
The following micro:bit pins are used for analog and digital sensors, motor driving:
- P0-- Analog Input 0
- P1-- Analog Input 1
- P2-- Analog Input 2
- P8-- Digital Input/Output
- P12-- Digital Input/Output
- P14-- Digital Input/Output
- P15-- Servo Motor
- P16-- Servo Motor
- P19-- motor driver - SCL
- P20-- motor driver - SDA
To set the speed and direction for a motor, place the |set motor| block.
The block takes three parameters: motor select, direction, and speed.
- The motor select must be either LeftorRight
- Direction must be either ForwardorReverse
- Speed is an integer value between 0and100
motobit.setMotorSpeed(Motor.Left, MotorDirection.Forward, 50)
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.
- The motor select must be either LeftorRight
- Invert must be either trueorfalse
motobit.invert(Motor.Left, true)
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
- Motor enable must be either OnorOff.
motobit.enable(MotorPower.On)
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)
MIT
- for PXT/microbit
motobit=github:sparkfun/pxt-moto-bit
