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 Backward
0 - 100
iKB1.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 Right
0 - 100
iKB1.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 Right
0 - 100
iKB1.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) - 200
iKB1.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 - ADC7
ADC0 - ADC7
for reading the analog sensor.basic.showNumber(iKB1.ADC(iKB1ADC.ADC0))
0 - 100
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)
}
})
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