Approved content
The content below is provided by a partner.
This robot car with the mega 328 MCU is already assembled; it can be connected to the Micro:bit and programmed with MakeCode.
There is a 4-pin IO port in the front of the car. By plugging different electronic modules, you can add functions like ultrasonic obstacle avoidance, ws2812 LED control and LED matrix display.
The car is small and flat, which is suitable for all ages to start to learn programming as beginners.
The built-in rechargeable 18650 lithium battery allows you to charge the car with the USB cable.
There is a special firmware on the car that features functions like PID line following and obstacle avoidance, which is suitable for beginners to finish and showcase their project easily.
minilfr.minilfrInit()
let num = 0
basic.forever(function () {
for (let index = 0; index < 15; index++) {
num += 1
minilfr.RingRgbStatic(num, minilfr.NeoPixelColors.Red)
basic.pause(200)
}
basic.pause(500)
minilfr.RingAllRgbStatic(minilfr.NeoPixelColors.Black)
basic.pause(500)
for (let index = 0; index < 15; index++) {
minilfr.RingRgb(
num,
0,
0,
255
)
num += -1
basic.pause(100)
}
basic.pause(500)
minilfr.RingAll(0, 0, 0)
basic.pause(500)
})
input.onButtonPressed(Button.A, function () {
minilfr.spotLight(minilfr.ONOFF.ON, minilfr.ONOFF.ON)
basic.pause(500)
minilfr.spotLight(minilfr.ONOFF.OFF, minilfr.ONOFF.OFF)
})
input.onButtonPressed(Button.B, function () {
minilfr.rgbBrightness(255)
minilfr.hoverRgbStatic(minilfr.RGBIDX.ALL, minilfr.NeoPixelColors.Red)
basic.pause(1000)
minilfr.rgbBrightness(30)
minilfr.hoverRgb(
minilfr.RGBIDX.ALL,
0,
255,
0
)
basic.pause(1000)
minilfr.hoverRgbStatic(minilfr.RGBIDX.ALL, minilfr.NeoPixelColors.Black)
})
minilfr.minilfrInit()
input.onButtonPressed(Button.A, function () {
minilfr.buzz(200, 100)
basic.pause(500)
minilfr.buzz(300, 200)
basic.pause(500)
minilfr.buzz(400, 300)
basic.pause(500)
minilfr.buzzBuildMusic(minilfr.LFRMelodies.Ode)
})
input.onButtonPressed(Button.B, function () {
minilfr.buzzMusic("c4:4 g3:2")
})
minilfr.minilfrInit()
minilfr.minilfrInit()
basic.forever(function () {
if (minilfr.Ultrasonic() < 15) {
minilfr.UltrasonicRgbStatic(minilfr.RGBIDX.ALL, minilfr.NeoPixelColors.Red)
} else {
minilfr.UltrasonicRgbStatic(minilfr.RGBIDX.ALL, minilfr.NeoPixelColors.Green)
}
})
Car move
`
blocks
input.onButtonPressed(Button.A, function () {
minilfr.spotLight(minilfr.ONOFF.ON, minilfr.ONOFF.ON)
minilfr.motorSpeed(255, 255)
basic.pause(1000)
minilfr.spotLight(minilfr.ONOFF.OFF, minilfr.ONOFF.OFF)
minilfr.motorSpeed(-255, -255)
basic.pause(1000)
}) input.onButtonPressed(Button.B, function () {
minilfr.motorStop()
}) minilfr.minilfrInit()
---
* Line Follow
```blocks
input.onButtonPressed(Button.A, function () {
minilfr.calibrateSensor()
})
input.onButtonPressed(Button.AB, function () {
minilfr.goIdle()
})
input.onButtonPressed(Button.B, function () {
minilfr.goLinefollow()
})
minilfr.minilfrInit()
basic.forever(function () {
if (minilfr.SensorRead(minilfr.SensorEnum.B) < 50) {
minilfr.spotLight(minilfr.ONOFF.OFF, minilfr.ONOFF.ON)
} else if (minilfr.SensorRead(minilfr.SensorEnum.D) < 50) {
minilfr.spotLight(minilfr.ONOFF.ON, minilfr.ONOFF.OFF)
} else {
minilfr.spotLight(minilfr.ONOFF.OFF, minilfr.ONOFF.OFF)
}
})
MIT
minilfr=github:Kittenbot/pxt-minilfr
minilfr=github:KittenBot/pxt-minilfr#v0.3.4