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 Backward0 - 100iBIT.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 Right0 - 100iBIT.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 Right0 - 100iBIT.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 - 180iBIT.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 - ADC7ADC0 - ADC7 for reading the analog sensor.basic.showNumber(iBIT.ReadADC(ibitReadADC.ADC0))
0 - 100let 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