Kitronik :MOVE mini MK2: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 162: | Riadok 162: | ||
=== Line following robot === | === Line following robot === | ||
Robot musí byť doplnený špeciálnym senzorom, ktorý sa pripojí k expanznej doske, umožňujúcej využiť aj viac ako 3 vstupy P0 - P3. | |||
Samozrejmosťou je tiež vopred nahrať knižnicu '''<code>Kitronik</code>''' | |||
* Product page https://kitronik.co.uk/products/5659-line-following-add-on-for-move-mini-v2 | |||
<gallery heights= | <gallery heights=600px mode="packed"> <!-- slideshow? --> | ||
Image:microbit- | Image:microbit-KitronikMoveLinefollower.png|''Robot sleduje čiernu čiaru na svetlom podklade.'' | ||
</gallery> | </gallery> | ||
Riadok 173: | Riadok 174: | ||
<tabs> | <tabs> | ||
<tab name="Javascript"><source lang="javascript"> | <tab name="Javascript"><source lang="javascript"> | ||
let Left_Detector = 0 | |||
let Right_Detector = 0 | |||
pins.setPull(DigitalPin.P15, PinPullMode.PullUp) | |||
pins.setPull(DigitalPin.P16, PinPullMode.PullUp) | |||
basic.forever(function on_forever() { | |||
Right_Detector = pins.digitalReadPin(DigitalPin.P15) | |||
Left_Detector = pins.digitalReadPin(DigitalPin.P16) | |||
if (Left_Detector == 1 && Right_Detector == 1) { | |||
kitronik.forward() | |||
} else if (Left_Detector == 0 && Right_Detector == 1) { | |||
kitronik.left() | |||
} else if (Left_Detector == 1 && Right_Detector == 0) { | |||
kitronik.right() | |||
} else if (Left_Detector == 0 && Right_Detector == 0) { | |||
kitronik.forward() | |||
} | |||
}) | |||
</source></tab> | </source></tab> | ||
<tab name="MS Python"><source lang="python" style="background: LightBlue;"> | <tab name="MS Python"><source lang="python" style="background: LightBlue;"> | ||
Left_Detector = 0 | |||
Right_Detector = 0 | |||
pins.set_pull(DigitalPin.P15, PinPullMode.PULL_UP) | |||
pins.set_pull(DigitalPin.P16, PinPullMode.PULL_UP) | |||
def on_forever(): | |||
global Right_Detector, Left_Detector | |||
Right_Detector = pins.digital_read_pin(DigitalPin.P15) | |||
Left_Detector = pins.digital_read_pin(DigitalPin.P16) | |||
if Left_Detector == 1 and Right_Detector == 1: | |||
kitronik.forward() | |||
elif Left_Detector == 0 and Right_Detector == 1: | |||
kitronik.left() | |||
elif Left_Detector == 1 and Right_Detector == 0: | |||
kitronik.right() | |||
elif Left_Detector == 0 and Right_Detector == 0: | |||
kitronik.forward() | |||
basic.forever(on_forever) | |||
</source></tab> | </source></tab> | ||
</tabs> | </tabs> | ||
=== Ultrazvukový senzor === | === Ultrazvukový senzor === |
Verzia z 11:53, 14. jún 2021
Druhá, vylepšená verzia :MOVE od firmy Kitronik.
- Product page https://kitronik.co.uk/products/5652-move-mini-mk2-buggy-kit-excl-microbit
- Aplikácia na ovládanie cez mobil (Android): https://play.google.com/store/apps/details?id=com.kitronik.blemove&gl=SK
Základné programy
Blinker
Pre prácu so svetielkami na hornej hrane robota je potrebné nahrať knižnicu Neopixel
Jednoduchý program pre blinker, funguje na tlačítka - stlačením ľavého tlačidla 🅰 sa zapne ľavá smerovka, pravým tlačidlom 🅱 sa zapne pravá. Stlačením oboch 🅰+🅱 sa blinker vypne.
-
Smerovky
input.onButtonPressed(Button.A, function () {
turn_left_indicator_on = true
turn_right_indicator_on = false
indicator.clear()
indicator.show()
})
input.onButtonPressed(Button.AB, function () {
turn_left_indicator_on = false
turn_right_indicator_on = false
indicator.clear()
indicator.show()
})
input.onButtonPressed(Button.B, function () {
turn_left_indicator_on = false
turn_right_indicator_on = true
indicator.clear()
indicator.show()
})
let turn_right_indicator_on = false
let turn_left_indicator_on = false
let indicator: neopixel.Strip = null
indicator = neopixel.create(DigitalPin.P0, 5, NeoPixelMode.RGB)
indicator.setBrightness(80)
basic.forever(function () {
if (turn_left_indicator_on == true) {
indicator.setPixelColor(0, neopixel.colors(NeoPixelColors.Orange))
indicator.show()
basic.pause(75)
indicator.setPixelColor(0, neopixel.colors(NeoPixelColors.Black))
indicator.show()
basic.pause(75)
} else if (turn_right_indicator_on == true) {
indicator.setPixelColor(4, neopixel.colors(NeoPixelColors.Orange))
indicator.show()
basic.pause(75)
indicator.setPixelColor(4, neopixel.colors(NeoPixelColors.Black))
indicator.show()
basic.pause(75)
}
})
def on_button_pressed_a():
global turn_left_indicator_on, turn_right_indicator_on
turn_left_indicator_on = True
turn_right_indicator_on = False
indicator.clear()
indicator.show()
input.on_button_pressed(Button.A, on_button_pressed_a)
def on_button_pressed_ab():
global turn_left_indicator_on, turn_right_indicator_on
turn_left_indicator_on = False
turn_right_indicator_on = False
indicator.clear()
indicator.show()
input.on_button_pressed(Button.AB, on_button_pressed_ab)
def on_button_pressed_b():
global turn_left_indicator_on, turn_right_indicator_on
turn_left_indicator_on = False
turn_right_indicator_on = True
indicator.clear()
indicator.show()
input.on_button_pressed(Button.B, on_button_pressed_b)
turn_right_indicator_on = False
turn_left_indicator_on = False
indicator: neopixel.Strip = None
indicator = neopixel.create(DigitalPin.P0, 5, NeoPixelMode.RGB)
indicator.set_brightness(80)
def on_forever():
if turn_left_indicator_on == True:
indicator.set_pixel_color(0, neopixel.colors(NeoPixelColors.ORANGE))
indicator.show()
basic.pause(75)
indicator.set_pixel_color(0, neopixel.colors(NeoPixelColors.BLACK))
indicator.show()
basic.pause(75)
elif turn_right_indicator_on == True:
indicator.set_pixel_color(4, neopixel.colors(NeoPixelColors.ORANGE))
indicator.show()
basic.pause(75)
indicator.set_pixel_color(4, neopixel.colors(NeoPixelColors.BLACK))
indicator.show()
basic.pause(75)
basic.forever(on_forever)
Základné pohyby
Výrobca, firma Kitronik poskytuje pre robota špeciálnu knižnicu. Niekedy sa volá iba Kitronik
, ale väčšinou ju nájdete pod názvom Servo:Lite
Tento ukážkový program len pohýbe všetkými smermi a potom skončí.
-
Základné pohyby
kitronik_servo_lite.forward()
basic.pause(500)
kitronik_servo_lite.backward()
basic.pause(500)
kitronik_servo_lite.right()
basic.pause(500)
kitronik_servo_lite.left()
basic.pause(500)
kitronik_servo_lite.stop()
kitronik_servo_lite.forward()
basic.pause(500)
kitronik_servo_lite.backward()
basic.pause(500)
kitronik_servo_lite.right()
basic.pause(500)
kitronik_servo_lite.left()
basic.pause(500)
kitronik_servo_lite.stop()
Line following robot
Robot musí byť doplnený špeciálnym senzorom, ktorý sa pripojí k expanznej doske, umožňujúcej využiť aj viac ako 3 vstupy P0 - P3.
Samozrejmosťou je tiež vopred nahrať knižnicu Kitronik
-
Robot sleduje čiernu čiaru na svetlom podklade.
let Left_Detector = 0
let Right_Detector = 0
pins.setPull(DigitalPin.P15, PinPullMode.PullUp)
pins.setPull(DigitalPin.P16, PinPullMode.PullUp)
basic.forever(function on_forever() {
Right_Detector = pins.digitalReadPin(DigitalPin.P15)
Left_Detector = pins.digitalReadPin(DigitalPin.P16)
if (Left_Detector == 1 && Right_Detector == 1) {
kitronik.forward()
} else if (Left_Detector == 0 && Right_Detector == 1) {
kitronik.left()
} else if (Left_Detector == 1 && Right_Detector == 0) {
kitronik.right()
} else if (Left_Detector == 0 && Right_Detector == 0) {
kitronik.forward()
}
})
Left_Detector = 0
Right_Detector = 0
pins.set_pull(DigitalPin.P15, PinPullMode.PULL_UP)
pins.set_pull(DigitalPin.P16, PinPullMode.PULL_UP)
def on_forever():
global Right_Detector, Left_Detector
Right_Detector = pins.digital_read_pin(DigitalPin.P15)
Left_Detector = pins.digital_read_pin(DigitalPin.P16)
if Left_Detector == 1 and Right_Detector == 1:
kitronik.forward()
elif Left_Detector == 0 and Right_Detector == 1:
kitronik.left()
elif Left_Detector == 1 and Right_Detector == 0:
kitronik.right()
elif Left_Detector == 0 and Right_Detector == 0:
kitronik.forward()
basic.forever(on_forever)
Ultrazvukový senzor
Pre prácu so svetielkami na hornej hrane robota je potrebné nahrať knižnicu Neopixel
Jednoduchý program pre blinker, funguje na tlačítka - stlačením ľavého tlačidla 🅰 sa zapne ľavá smerovka, pravým tlačidlom 🅱 sa zapne pravá. Stlačením oboch 🅰+🅱 sa blinker vypne.
-
Smerovky
👉 Späť na zoznam príkladov....