Approved content

The content below is provided by a partner.

jcubuntu/pxt-iKB1 1.0.2 GitHub

iKB-1 block package for iKB-1 Board

powered by micro:bit

iKB-1

The package adds support for the iKB-1 conroller board from Innovative Experiment INEX.

!Caution do not use iKB-1 with i-BIT board the I2C Address is same ADC IC on i-BIT board (0x48)

micro:bit Pin Assignment

The following micro:bit pins are used for communication to iKB-1 to use analog and digital sensors, DC motor drivers and servo motors:

Motor control Block

Use iKB1’s motor block to drives motor forward and backward. The speed motor is adjustable between 0 to 100.

iKB1.Motor(iKB1Motor.Forward, 100)

iKB1.Motor(iKB1Motor.Backward, 100)

Spin Block

Spin block is used to control both motors separately. For example, choose one motor spin with forward direction another one spin with backward direction.

iKB1.Spin(iKB1Spin.Left, 100)

iKB1.Spin(iKB1Spin.Right, 100)

Turn Block

The Turn block is used to to control the robot movment by turning. The one motor will stop, another one is moving. The vipot point is a center of the robot body.

iKB1.Turn(iKB1Turn.Left, 100)

iKB1.Turn(iKB1Turn.Right, 100)

Motor Stop Block

The Motor Stop block is used to stop both motors. The speed is set to 0 automatic.

iKB1.AO()

Servo Block

Use this block for control the servo port 10-15 on iKB-1 board moving degree from -1 to 200

iKB1.Servo(sv.SV10, 90)

ADC Block

This block is used to read the analog input data from the iKB-1 board. The resolution of conversion is 10-bit. Data will be 0 to 1023. iBIT have 8-ch analog inputs. The pinout voltage range is 0 to +5V

Example

basic.showNumber(iKB1.ADC(iKB1ADC.ADC0))
let speed = 0
basic.forever(() => {
    for (let speed = 0; speed <= 100; speed++) {
        iKB1.Motor(iKB1Motor.Forward, speed)
        basic.pause(50)
    }
    for (let speed = 0; speed <= 100; speed++) {
        iKB1.Motor(iKB1Motor.Backward, speed)
        basic.pause(50)
    }
})
input.onButtonPressed(Button.A, () => {
    iKB1.Turn(iKB1Turn.Left, 50)
})
input.onButtonPressed(Button.B, () => {
    iKB1.Turn(iKB1Turn.Right, 50)
})
input.onButtonPressed(Button.A, () => {
    iKB1.Spin(iKB1Spin.Left, 50)
})
input.onButtonPressed(Button.B, () => {
    iKB1.Spin(iKB1Spin.Right, 50)
})
basic.forever(() => {
    for (let Degree = 0; Degree <= 180; Degree++) {
        iKB1.Servo(sv.SV10, Degree)
        iiKB1.Servo(sv.SV11, Degree)
        basic.pause(10)
        while (Degree == 180) {
            Degree = 0
        }
    }
})
input.onButtonPressed(Button.A, () => {
    iKB1.Servo(sv.SV10, 90)
})
input.onButtonPressed(Button.B, () => {
    iKB1.Servo(sv.SV10,-1)
})

License

MIT

Supported targets

ikb1=github:jcubuntu/pxt-iKB1#v1.0.2