Approved content
The content below is provided by a partner.
powered by micro:bit
![]()
The package adds support for the iKB-1 conroller board from Innovative Experiment INEX.
The following micro:bit pins are used for communication to iKB-1 to use analog and digital sensors, DC motor drivers and servo motors:
GND – GND connected to iKB-1 GND3V – 3V connected to iKB-1 +3.3P19 – SCL connected to iKB-1 SCLP20 – SDA connected to iKB-1 SDAUse iKB1’s motor block to drives motor forward and backward. The speed motor is adjustable between 0 to 100.
Forward or Backward0 - 100iKB1.Motor(iKB1Motor.Forward, 100)
iKB1.Motor(iKB1Motor.Backward, 100)
Spin block is used to control both motors separately. For example, choose one motor spin with forward direction another one spin with backward direction.
Left or Right0 - 100iKB1.Spin(iKB1Spin.Left, 100)
iKB1.Spin(iKB1Spin.Right, 100)
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.
Left or Right0 - 100iKB1.Turn(iKB1Turn.Left, 100)
iKB1.Turn(iKB1Turn.Right, 100)
The Motor Stop block is used to stop both motors. The speed is set to 0 automatic.
iKB1.AO()
Use this block for control the servo port 10-15 on iKB-1 board moving degree from -1 to 200
(-1) - 200iKB1.Servo(sv.SV10, 90)
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
ADC0 - ADC7ADC0 - ADC7 for reading the analog sensor.basic.showNumber(iKB1.ADC(iKB1ADC.ADC0))
0 - 100let 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)
}
})
A and B. Turn Left by speed 50 when pressed button A and Turn Right by speed 50 when pressed button B.input.onButtonPressed(Button.A, () => {
iKB1.Turn(iKB1Turn.Left, 50)
})
input.onButtonPressed(Button.B, () => {
iKB1.Turn(iKB1Turn.Right, 50)
})
A and B. Spin Left by speed 50 when pressed button A and Spin Right by speed 50 when pressed button B.input.onButtonPressed(Button.A, () => {
iKB1.Spin(iKB1Spin.Left, 50)
})
input.onButtonPressed(Button.B, () => {
iKB1.Spin(iKB1Spin.Right, 50)
})
0 - 180 and back to 0 to restart again. 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)
})
MIT
ikb1=github:jcubuntu/pxt-iKB1#v1.0.2