Approved content
The content below is provided by a partner.
powered by micro:bit
The package adds support for the i-BIT conroller board from Innovative Experiment INEX.
The following micro:bit pins are used for analog and digital sensors, DC motor drivers and servo motors:
P0
– Analog Input 0 (micro:bit default)P1
– Analog Input 1 (micro:bit default)P2
– Analog Input 2 (micro:bit default)P8
– Digital Input/Output and AnalogWrite/Servo1P12
– Digital Input/Output and AnalogWrite/Servo2P13
– DigitalWrite Pin for DC motor control direction 1P14
– AnalogWrite Pin for DC motor speed control 1P15
– DigitalWrite Pin for DC motor control direction 2P16
– AnalogWrite Pin for DC motor speed control 2P19
– SCL connected to I2C-based 12-bit ADC chip (ADS7828)P20
– SDA connected to I2C-based 12-bit ADC chip (ADS7828)Use iBIT’s motor block to drives motor forward and backward. The speed motor is adjustable between 0 to 100.
Forward
or Backward
0 - 100
iBIT.Motor(ibitMotor.Forward, 100)
iBIT.Motor(ibitMotor.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
iBIT.Spin(ibitSpin.Left, 100)
iBIT.Spin(ibitSpin.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
iBIT.Turn(ibitTurn.Left, 100)
iBIT.Turn(ibitTurn.Right, 100)
The Motor Stop block is used to stop both motors. The speed is set to 0
automatic.
iBIT.MotorStop()
Use this block for control the servo’s moving degree from 0 to 180
0 - 180
iBIT.Servo(ibitServo.SV1, 90)
This block is used to read the analog input data from the I2C-based ADC integrated circuit, ADS7828. The resolution of conversion is 12-bit. Data will be 0 to 4095. iBIT have 8-ch analog inputs. The pinout voltage range is 0 to +3.3V
ADC0 - ADC7
ADC0 - ADC7
for reading the analog sensor.basic.showNumber(iBIT.ReadADC(ibitReadADC.ADC0))
0 - 100
let speed = 0
basic.forever(() => {
for (let speed = 0; speed <= 100; speed++) {
iBIT.Motor(ibitMotor.Forward, speed)
basic.pause(50)
}
for (let speed = 0; speed <= 100; speed++) {
iBIT.Motor(ibitMotor.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, () => {
iBIT.Turn(ibitTurn.Left, 50)
})
input.onButtonPressed(Button.B, () => {
iBIT.Turn(ibitTurn.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, () => {
iBIT.Spin(ibitSpin.Left, 50)
})
input.onButtonPressed(Button.B, () => {
iBIT.Spin(ibitSpin.Right, 50)
})
0 - 180
and back to 0 to restart again. basic.forever(() => {
for (let Degree = 0; Degree <= 180; Degree++) {
iBIT.Servo(ibitServo.SV1, Degree)
iBIT.Servo(ibitServo.SV2, Degree)
basic.pause(10)
while (Degree == 180) {
Degree = 0
}
}
})
input.onButtonPressed(Button.A, () => {
iBIT.Servo(ibitServo.SV1, 90)
})
input.onButtonPressed(Button.B, () => {
iBIT.ServoStop(ibitServo.SV1)
})
MIT
iBIT=github:emwta/pxt-iBit#v5.0.1