1-1 Show vs Scroll

    Show  your name first

inc. delay=100 & loop

e.g.("harrison", delay=100, loop=True)

=====

Show the Images

  display.show(Image.HEART)

=======


1-2  image

loop ( 迴圈 )

loop參數預設值是 False(假),表示僅執行一次而已;loop = True (真),即可使 scroll 函式反覆執行該動作,而各參數之間須加逗號以示區隔,且注意逗號和指令中間要留一個空白以示區隔,且指令大小寫需依規定,例如 TRUE 或 true 都是不可以的。

show裡面string的參數若是文字,前後要加單引號或雙引號,數字不用加引號


2. LED  control 

    Light brightness control

實作三:

【內置LED燈如何顯示】

from microbit import *

for x in range(5):

    for y in range(5):

        display.set_pixel(x, y, 9)

        sleep(200)


實作1:

將左列程式改另一種顯示模式

實作2:

如果我們不想要填滿整個LED矩陣,而只想讓LED在畫面上移動?

display.clear()

實作3:

將左列程式改成無限迴圈

(while True:)的顯



3. Music 播放音樂

import music

music.play("C4:4")

=========

import music 

A = ["C4:4", "E4:4"] 

music.play(A)


想一想輸出結果

from microbit import *

while True:

      sleep(500)

      if button_a.is_pressed():

         display.set_pixel(2, 2, 9)

         sleep(1000)

      else:

         display.set_pixel(2, 2, 0)


想一想輸出結果

from microbit import *

from random import randint

while True:

     val = 9

     x = randint(0, 4)

     y = randint(0,4)

     display.set_pixel(x, y, val)

     while (val > 0):

         display.set_pixel(x, y, val)

         sleep(500)

         val = val-1

         display.set_pixel(x, y, 0)



播放歌曲

若要播放音效,需先匯人 music 元件庫,「music.BIRTHDAY」 是内建的音效,其名稱均為大寫。

下列程式的輸出結果⋯⋯


from microbit import *

import music

while True:

    music.pitch(accelerometer.get_y(), 10)


 If else 指令


4. button (按鈕輸入)

下列程式的輸出結果⋯⋯

from microbit import *

import random

 

while True:

    if button_a.was_pressed():

        answer = random.randrange(3)

        display.show(answer)


is_pressed()在於:除非您在那個精確時刻按下按鈕,否則您將無法檢測該按鈕是否被按下。


下列程式的輸出結果⋯⋯


from microbit import *

import random

 

while True:

    if button_a.was_pressed():

        display.show(str(random.randint(1, 6)))


5. count button (計算按鍵次數)

get 代表「得到」presses 代表「按下」意思, get presses 得到的是數值。

若不想捲動顯示結果可將 scroll 改為show,若想反覆執行可以使用while True:


6. and  (檢查是否同時按下兩鍵)

如果同時按下兩個按鈕則顯示AB,並跳出迴圈。


Random

如果shake,就亂數產生點數


from microbit import *

import random 

while True:

    if button_a.was_pressed():

        display.scroll(random.randint(1, 30))

        sleep(1000)

左列程式的執行結果為何?


from microbit import *

import random 


begin = 5

while True:

    if button_a.was_pressed():

        begin += 1

        if begin > 9: 

            begin = 9

    elif button_b.was_pressed():

        begin -= 1

        if begin < 0:

            begin = 0

    display.show(begin)


請將左列調音器程式改方向 (按A鍵變小聲,按B鍵變大聲)


温度感測

看懂程式碼

加速感測器1

加速感測器2

光線偵測光線偵測

觸摸感測

磁力感測


TIP. Loop


指北針


import speech

speech.say("Hello, My name is Harrison")

文字轉語音

Sound meter

from microbit import *

 

# function to map any range of numbers to another range

def map(value, fromMin, fromMax, toMin, toMax):

    fromRange = fromMax - fromMin

    toRange = toMax - toMin

    valueScaled = float(value - fromMin) / float(fromRange)

    return toMin + (valueScaled * toRange)

 

# set of images for simple bar chart

graph5 = Image("99999:"

               "99999:"

               "99999:"

               "99999:"

               "99999")

 

graph4 = Image("00000:"

               "99999:"

               "99999:"

               "99999:"

               "99999")

 

graph3 = Image("00000:"

               "00000:"

               "99999:"

               "99999:"

               "99999")

 

graph2 = Image("00000:"

               "00000:"

               "00000:"

               "99999:"

               "99999")

 

graph1 = Image("00000:"

               "00000:"

               "00000:"

               "00000:"

               "99999")

               

graph0 = Image("00000:"

               "00000:"

               "00000:"

               "00000:"

               "00000")

allGraphs = [graph0, graph1, graph2, graph3, graph4, graph5]

 

# ignore first sound level reading

soundLevel = microphone.sound_level()

sleep(200)

while True:

    # map sound levels from range 0-255 to range 0-5 for choosing graph image

    soundLevel = int(map(microphone.sound_level(), 0, 255, 0, 5))

    display.show(allGraphs[soundLevel])

 


WS 2812 循環


from microbit import *

import neopixel


# 設置WS2812 LED燈條

np = neopixel.NeoPixel(pin0, 24)


# 紅、綠、藍三種顏色

colors = [ (255, 0, 0), (0, 255, 0), (0, 0, 255) ]


# 循環顯示每種顏色

while True:

    for color in colors:

        for i in range(len(np)):

            np[i] = color

        np.show()

        sleep(500)


WS 2812 呼吸燈

from microbit import *

import neopixel

# 設置WS2812 LED燈條

np = neopixel.NeoPixel(pin0, 24)

# 最大亮度

MAX_BRIGHTNESS = 50

 

# 呼吸燈效果

while True:

    for i in range(MAX_BRIGHTNESS):

        for j in range(len(np)):

            np[j] = (i, i, 0)

        np.show()

        sleep(20)

    for i in range(MAX_BRIGHTNESS, 0, -1):

        for j in range(len(np)):

            np[j] = (i, i, 0)

        np.show()

        sleep(20)


WS 2812 流水

from microbit import *

import neopixel


# 設置WS2812 LED燈條

np = neopixel.NeoPixel(pin0, 24)


# 紅、橙、黃、綠、青、藍、紫七種顏色

colors = [(255, 0, 0), (255, 127, 0), (255, 255, 0),

          (0, 255, 0), (0, 255, 255), (0, 0, 255), (127, 0, 255)]


# 彩虹效果

while True:

    for i in range(len(colors)):

        for j in range(len(np)):

            np[j] = colors[(i+j) % len(colors)]

        np.show()

        sleep(100)

想一想輸出結果



TBA


HC- SR04 感測



from microbit import *

import utime

 

# Trigger Echo 連接的引腳

TRIG = pin0

ECHO = pin1

 

def distance_measurement():

    TRIG.write_digital(0)

    utime.sleep_us(2)

    TRIG.write_digital(1)

    utime.sleep_us(10)

    TRIG.write_digital(0)

 

    while ECHO.read_digital() == 0:

        pass

    start = utime.ticks_us()

 

    while ECHO.read_digital() == 1:

        pass

    stop = utime.ticks_us()

 

    distance = (stop - start) / 58

    return distance

 

while True:

    dist = distance_measurement()

    if dist < 20:

        display.show(Image.SAD)

        sleep(500)

    else:

        display.clear()

    sleep(100)