Nanobit with microPython ตอนที่ 4

เริ่มต้นเขียนโค้ดด้วย LED 5×5

เมื่อเปิดหน้าต่าง จาก https://python.microbit.org/v/2 ขึ้นมาครั้งแรก ส่วนแก้ไขโค้ดจะมีตัวอย่างมาให้เพื่อใช้ทดสอบอยู่แล้ว โดยถ้าต้องการทดสอบโค้ดนี้ไปยังตัว Nanobit ให้เชื่อมต่อ Nanobit กับคอมพิวเตอร์ก่อน โดย

1. เสียบสาย USB ระหว่าง Nanobit กับคอมพิวเตอร์

2. กดที่ปุ่ม Connect เพื่อเชื่อมต่อ

3. ที่หน้าต่าง เลือกชื่ออุปกรณ์ DAPLink ตามที่เห็นในรูป จากนั้นกดปุ่ม Connect

4. ปุ่ม Connect เดิมจะเปลี่ยนชื่อเป็น Disconnect

5. ปุ่ม Download จะเปลี่ยนชื่อเป็น Flash แทน

6. ให้กดปุ่ม Flash เพื่อส่งข้อมูลไปยัง Nanobit

โปรแกรมตัวอย่างเมื่อใช้งานครั้งแรก
 
# Add your Python code here. E.g.
from microbit import *
while True:
    display.scroll('Hello, World!')
    display.show(Image.HEART)
    sleep(2000)
การทำงานของโปรแกรม

from microbit import *

บรรทัดนี้เป็นการเพิ่มชุดคำสั่งต่างๆ ที่เกี่ยวข้องกับ micro:bit (Nanobit) เข้ามาในโปรแกรมเพื่อเรียกใช้งาน

display.scroll(‘Hello, World!)

เป็นการแสดงข้อความแบบเลื่อน บน LED 5×5 โดยข้อความจะต้องอยู่ในเครื่องหมาย ‘ ‘

Note : ในภาษา Python ตัวอักษรที่มองว่าเป็นข้อความหรือ String สามารถใช้เครื่องหมาย ” ” หรือ ‘ ‘ ครอบไว้ก็ได้

display.show(Image.HEART)

เป็นการแสดง Icon รูปหัวใจที่ LED 5×5

*ย้อนกลับไปดูตอนก่อนหน้านี้สำหรับคำสั่ง display ครับ

sleep(2000)

หน่วงเวลา 2 วินาที

คำสั่ง Sleep หน่วงเวลา
รูปแบบ

    sleep(time)
โดย time คือค่าเวลาที่กำหนดหน่วยเป็นมิลลิวินาที

ตัวอย่าง

    sleep(1500)     # หน่วงเวลา 1.5 วินาที

คำสั่ง While วนทำซ้ำจนกว่าจะเป็นเท็จ
รูปแบบ

    while เงื่อนไข:

        คำสั่งที่ 1

        คำสั่งที่ 2

การทำงาน

ถ้าเงื่อนไขเป็นจริงจะวนทำคำสั่งไปเรื่อยๆ จนกว่าจะเป็นเท็จ ยกเว้นเจอคำสั่ง Break ภายในลูปของ while

เครื่องหมายที่ใช้สำหรับการเปรียบเทียบ

>    เป็นจริงถ้ามากกว่า

>=    เป็นจริงถ้ามากกว่าหรือเท่ากับ

<=    เป็นจริงถ้าน้อยกว่าหรือเท่ากับ

<    เป็นจริงถ้าน้อยกว่า

==    เป็นจริงถ้าเท่ากับ

!=    เป็นจริงถ้าไม่เท่ากับ

in    ตรงกับค่าใน List หรือเปล่า

AND    จริงทั้งคู่ ให้ผลลัพธ์เป็นจริง

OR    จริงอันใดอันหนึ่งให้ผลลัพธ์เป็นจริง

NOT    สลับจริงเป็นเท็จ เท็จเป็นจริง

ตัวอย่างที่ 9 การสร้างรูปภาพ ICON ตามรูปแบบของตัวเอง

สำหรับการแสดงจุดที่ LED 5×5 ซึ่งมีจำนวน LED ทั้งหมด 25 ดวง แต่ละดวงกำหนดความสว่างได้ตั้งแต่ 0 ถึง 9 ถ้าต้องการให้ติดสว่างที่ตำแหน่งไหนก็ให้ค่าที่ตำแหน่งนั้นเป็นเลข 9 ยกตัวอย่างการสร้างกรอบสี่เหลี่ยม สามารถสร้างเป็นตัวแปรชื่อ RECT ได้ดังนี้

 
 
Rect= Image(“99999:90009:90009:90009:99999“)

เมื่อนำมาเขียนโค้ดจะได้เป็น

โปรแกรมตัวอย่างการสร้าง ICON ด้วยตัวเอง
 
from microbit import *
Rect= Image("99999:90009:90009:90009:99999")
display.show(Rect)

ตัวอย่างที่ 10 สั่งให้ LED ติดในพิกัด X,Y ที่ต้องการ

คำสั่ง set_pixel(x,y,b) ใช้เพื่อกำหนดให้ตำแหน่ง LED ในพิกัดที่ต้องการติดหรือดับตามความสว่างที่ต้องการได้

โดย

    x = ตำแหน่ง LED ในแนวแกน x ค่า 0 ถึง 4

    y = ตำแหน่ง LED ในแนวแกน y ค่า 0 ถึง 4

    b = ความสว่างของ LED ค่า 0 ถึง 9

 
 
from microbit import *
display.set_pixel(2,2,9)


เมื่อกำหนดพิกัดแกน x และ y ด้วยค่า 2 ทั้งคู่ LED จะติดสว่างที่ตำแหน่งตรงกลาง

คำสั่ง for

รูปแบบ

    for ตัวแปร in ชุดข้อมูล :

        คำสั่งที่ 1

        คำสั่งที่ 2

เป็นคำสั่งวนลูปตามจำนวนชุดข้อมูล จนครบจำนวนข้อมูลที่กำหนด

ตัวอย่าง A
 
 
from microbit import *
for number in [1, 3, 5, 7, 9, 11]:
      print (number)

เป็นการส่งตัวเลขไปแสดงที่หน้าต่าง REPL ทดสอบโดย

1. คลิกที่ Open Serial เพื่อเปิดหน้าต่าง REPL

2. กดปุ่ม Reset บนบอร์ด AX-Nanobit เพื่อเริ่มต้นทำงานใหม่อีกครั้ง

3. ผลลัพธ์ที่ได้จะแสดงตัวเลขในชุดข้อมูลดังรูป

ตัวอย่าง B
 
 
from microbit import *
for number in   range(1,10):
print (number)


range (1,10) จะประกอบไปด้วยตัวเลข 1-9 ดังรูป

ตัวอย่างที่ 11 ใช้ For ให้ LED 5×5 ไล่ติดทีละดวงจนครบ

 
 
from microbit import *
while True:
    for x in range(0,5):
              for y in range(0,5):
            display.set_pixel(x,y,9)
            sleep(100)
    for x in range(0,5):
              for y in range(0,5):
            display.set_pixel(x,y,0)
            sleep(100)
การทำงานของโปรแกรม

    โปรแกรมแบ่งเป็นสองช่วง ช่วงแรกให้ LED ไล่ติดตามพิกัดแกน X,Y ไปจนครบ ส่วนช่วงที่ 2 ให้ LED ไล่ดับตามพิกัดจนครบตำแหน่งเช่นเดียวกัน

ฟังก์ชั่นคณิตศาสตร์ภายในที่สำคัญ

คำสั่งกำหนดช่วงของตัวเลข

range(start, end [,step])

ตัวอย่าง

    range (1,6)     # ผลลัพธ์จะประกอบด้วย 1,2,3,4,5

คำสั่งกำหนดจำนวนตำแหน่งทศนิยม

round(var, digits)

ตัวอย่าง

    round(1234.56789, 2) # ผลลัพธ์คือ 1234.57

คำสั่งหาค่าต่ำสุด สูงสุด ของเลขในชุด

min(var), max(var)

ตัวอย่าง

    min(range(5,10)) # ผลลัพธ์คือ 5

    max(range(5,10)) # ผลลัพธ์คือ 9

คำสั่งแสดงค่าสัมบูรณ์ (เปลี่ยนเป็นค่าบวก)

abs(var)

ตัวอย่าง

    abs(-50) # ผลลัพธ์คือ 50

ตัวอย่างที่ 12 การสั่งเปิดปิดหน้าจอ LED 5×5

จาก 3 คำสั่งนี้

on() เปิดการแสดงผลหน้าจอ LED 5×5

off() ปิดการแสดงผลหน้าจอ LED 5×5

is_on() ตรวจสอบสถานะของหน้าจอว่าปิดหรือเปิดอยู่

นำมาเขียนโค้ดเพื่อให้ ICON PACMAN ที่หน้าจอกะพริบ โดยใช้คำสั่ง if มาช่วยตรวจสอบ

 
 
from microbit import *
display.show(Image.PACMAN)
while True :
if display.is_on() :
        display.off()
          else:
        display.on()
          sleep(300)

การทำงานของโปรแกรม

1. โปรแกรมวนทำงานอย่างต่อเนื่องภายใต้ลูป while

2. ทำการตรวจสอบว่า หน้าจอเปิดอยู่หรือไม่ ถ้าเปิดอยู่ สั่งให้หน้าจอปิด LED ที่ติดอยู่ทั้งหมดจะดับ

3. ถ้าเป็นเท็จไปทำงานที่ else LED 5×5 ทำงานแสดง ICON เดิมออกมา

4. หน่วงเวลา 0.3 วินาทีเพื่อให้เห็นการกะพริบ

คำสั่ง if

ถ้าเงื่อนไขเป็นจริงให้เข้าไปทำคำสั่ง ถ้าเงื่อนไขเป็นเท็จให้ข้าม หรือไปทำในส่วนของ else

รูปแบบที่ 1

    if เงื่อนไข :

        คำสั่งที่ 1
        คำสั่งที่ 2
        คำสั่งที่ 3

รูปแบบที่ 2

    if เงื่อนไข :

        คำสั่งที่ 1
        คำสั่งที่ 2

    else :

        คำสั่งที่ 3
        คำสั่งที่ 4

รูปแบบที่ 3

    if เงื่อนไข :

        คำสั่งที่ 1
        คำสั่งที่ 2

    elif เงื่อนไข :

        คำสั่งที่ 3
        คำสั่งที่ 4

    else :

        คำสั่งที่ 5
        คำสั่งที่ 6

ตัวอย่างที่ 13 ลูกศรชี้ทิศทางด้วยการตรวจสอบเงื่อนไขหลายชุด

เป็นตัวอย่างให้เห็นการใช้ if แบบมีการตรวจสอบหลายๆ เงื่อนไข ถ้าเงื่อนไขแรกไม่เป็นจริงค่อยดูเงื่อนไขต่อไป

 
 
from microbit import *
while True:
    for x in range(0,4):
        if x==0:
            display.show(Image.ARROW_N)
        elif x==1:
            display.show(Image.ARROW_E)
        elif x==2:
            display.show(Image.ARROW_S)
        else :
            display.show(Image.ARROW_W)
        sleep(500)

การทำงานของโปรแกรม

โปรแกรมนี้วนลูปทำงานต่อเนื่อง

คำสั่ง for ใช้เพื่อกำหนดช่วงการวนลูปค่าตัวเลข อยู่ระหว่าง 0 ถึง 3

ถ้า x เป็น 0 เงื่อนไขแรกเป็นจริง แสดงไอคอนลูกศรทิศเหนือ

ถ้า x เป็น 1 เงื่อนไขที่สองเป็นจริง แสดงไอคอนลูกศรทิศตะวันออก

ถ้า x เป็น 2 เงื่อนไขที่สามเป็นจริง แสดงไอคอนลูกศรทิศใต้

ถ้าไม่ตรงกับเงื่อนไขข้างต้น น่าจะเป็น 3 ให้แสดงไอคอนลูกศรทิศตะวันตก

เป็นอย่างไรบ้างครับ กับการเตรียมความพร้อม ด้วยตัวอย่างหลายๆ ตัวอย่าง ให้เห็นรูปแบบการเขียนโค้ดด้วยภาษา Python ยังมีเรื่องที่น่าสนใจอีกเยอะ คอยติดตามตอนต่อไปครับ

Facebook Comments Box

Press Ctrl+C to copy the following code.
"