top of page
สนธยา นงนุช

การเขียนโปรแกรมสั่งงานบอร์ด KidBright ด้วยภาษาไพทอน (MicroPython) เบื้องต้น

อัปเดตเมื่อ 15 พ.ค. 2565


ไพทอน (Python) เป็นภาษาด้านโปรแกรมมิ่งที่นิยมใช้งานในปัจจุบัน ถูกบรรจุอยู่ในหลักสูตรวิชาวิทยาการคำนวณในระดับมัธยมปลาย โค้ดไพทอนที่ใช้บนเครื่องคอมพิวเตอร์ใช้ CPython เป็นตัวแปรภาษา (interperter) ส่วนในฝั่งระบบสมองกลฝังตัวใช้ MicroPython เนื่องจากใช้ทรัพยากรของระบบ แรม รอม น้อยกว่า CPython แม้ MicroPython และ CPython จะยึดมาตรฐานเดียวกัน แต่ก็มีรูปแบบไวยากร (Syntex) ที่แตกต่างกันบ้าง ดังนั้นหากพบเห็นโค้ดโปรแกรมที่ใช้บน CPython หากนำมาใช้ใน MicroPython อาจทำให้เจอ Syntex error ได้

ในบทความนี้จะแนะนำการเขียนโปรแกรมสั่งงานบอร์ด KidBright ด้วยภาษาไพทอน โดยใช้ MicroPython ที่มีการปรับแต่งมาเฉพาะ โดยโครงการ microBlock ได้ดำเนินการจัดทำและดูแลเรื่องการอัพเดทให้บอร์ด KidBright รุ่นใหม่ ๆ รองรับการเขียนโปรแกรมด้วย MicroPython รวมทั้งเครื่องมือ Text Editor / IDE ก็ใช้ microBlock IDE ในการเขียนโปรแกรมและอัพโหลดโค้ด

การติดตั้งโปรแกรม microBlock IDE การติดตั้ง MicroPython และการอัพโหลดโค้ด

อ่านขั้นตอนได้ที่บทความ เริ่มต้นใช้งาน microBlock IDE เวอร์ชั่นโปรแกรม โดยติดตั้งโปรแกรม microBlock IDE, เลือกบอร์ด KidBright แล้วอัพเดท / อัพโหลด MicroPython ตามลำดับ

ที่ microBlock IDE กดเปลี่ยนโหมดเป็น Code จากนั้นพิมพ์คำสั่ง print("Hello, MicroPython !") แล้วอัพโหลดโปรแกรม ที่หน้าต่าง Terminal สังเกตว่าหากมีข้อความ Hello, MicroPython ! ขึ้นแสดงว่าอัพโหลดโปรแกรมได้ โค้ดโปรแกรมถูกต้อง

ไวยากรพื้นฐานของภาษาไพทอน

ภาษาไพทอนเป็น Text Programming คือการเขียนโปรแกรมสั่งงานต้องพิมพ์คำสั่งทีละบรรทัด จากนั้นเมื่อรันโปรแกรมคำสั่งที่เขียนไว้จะถูกดำเนินการทีละบรรทัด โดยมีลักษณะการทำงานเป็นแบบทำ 1 คำสั่งจบ แล้วจึงไปบรรทัดต่อไป

คำสั่งเงื่อนไข (if) คำสั่งวนรอบ (for, while, do) การสร้างฟังก์ชั่น (Function) คำสั่งที่อยู่ภายใต้จะใช้การเคาะเว้นวรรคโดยใช้ Tab หรือเคาะเว้นวรรค โดยควรเลือกใช้ Tab หรือเว้นวรรคเพียงอย่างเดียว เพื่อป้องการกันสับสน และการเคาะจะต้องเคาะให้เท่ากันทุกบรรทัดมิฉนั้นจะแจ้ง Error syntex การแยกแต่ละคำสั่งใช้การเคาะแยกบรรทัด กรณีต้องการใช้หลายคำสั่งในบรรทัดเดียวกัน ให้ใช้ ; (Semicolon) คั่นแต่ละคำสั่งในบรรทัดนั้น ๆ

การคอมเม้น (Comment)

คอมเม้นคือการใส่ข้อความลงในโค้ดโปรแกรมโดยที่ไม่ต้องการให้นำข้อความนั้น ๆ ไปประมวลผล มักใช้ในการอธิบายหลักการทำงานของโปรแกรม หรือโน็ตข้อความบางอย่างเพื่อความสะดวกในการให้ผู้อื่นแก้ไขโค้ดโปรแกรมนั้น ๆ ต่อ การคอมเม้นกรณีต้องการให้มีผลเพียงบรรทัดเดียวจะใช้เครื่องหมาย # แล้วตามด้วยข้อความที่เป็นคอมเม้น ในโปรแกรม microBlock IDE จุดที่เป็นคอมเม้นตัวอักษรจะเป็นสีเขียว ดังรูปตัวอย่างด้านล่าง

การคอมเม้นหลายบรรทัดใช้ฟันหนูคู่วางติดกัน 3 ตัว คร่อมบรรทัดที่ต้องการคอมเม้น ตัวอย่างการคอมเม้นหลายบรรทัดแสดงดังรูป

จะเห็นได้ว่าในโปรแกรม microBlock IDE หากคอมเม้นบรรทัดเดียว คอมเม้นจะเป็นตัวสีเขียว หากคอมเม้นหลายบรรทัด ตัวอักษรจะเป็นสีน้ำตาล

การใช้คำสั่ง import

คำสั่ง import ใช้นำเข้าคำสั่งจากไลบารี่ ที่ปกติไม่ได้บรรจุเป็นคำสั่งมาตรฐานในภาษาไพทอน โดยเฉพาะการเขียนโปรแกรมติดต่อกับเซ็นเซอร์ หน้าจอ การสั่งงานขา GPIO ต่าง ๆ ต้องอาคัยคำสั่งที่ไม่ใช่มาตรฐานเป็นตัวสั่งงาน ซึ่งจำเป็นจะต้องใช้คำสั่ง import ก่อนเสมอ

คำสั่ง import มักจะอยู่ด้านบนสุดของโปรแกรม ตัวอย่างการเรียกใช้คำสั่งอ่านค่าแสงจาก LDR แสดงด้านล่าง

import sensor # ใช้คำสั่ง import นำเข้าคำสั่งเกี่ยวกับเซ็นเซอร์จากไลบารี่

print(sensor.light()) # อ่านค่าแสง แล้วแสดงผลใน Terminal

จากโค้ดโปรแกรมด้านบนจะเห็นได้ว่าต้องมีการ import ไลบารี่ที่ชื่อ sensor มาก่อน จึงจะใช้คำสั่ง sersor.light() เพื่ออ่านค่าแสงจากเซ็นเซอร์ได้

กรณีต้องการใช้เฉพาะบางคำสั่งในไลบารี่ สามารถใช้คำสั่ง from <ชื่อไลบารี่> import <คำสั่งที่ต้องการใช้งาน> ได้ ตัวอย่างโค้ดโปรแกรมเรียกใช้เฉพาะคำสั่ง light ที่อยู่ในไลบารี่ sensor แสดงดังโค้ดด้านล่าง

from sensor import light # ใช้คำสั่ง import นำเข้าคำสั่ง light จากไลบารี่ sensor

print(light()) # อ่านค่าแสง แล้วแสดงผลใน Terminal

จากโค้ดโปรแกรมด้านบนจะสังเกตว่าหากใช้ from ... import .... ตอนเรียกใช้งานคำสั่ง จะไม่ต้องใช้ <ชื่อไลบารี่>. นำหน้าชื่อคำสั่ง ซึ่งเพิ่มความสะดวกในการใช้งานมากกว่า และมีผลให้โค้ดโปรแกรมโดยรวมทำงานได้เร็วมากยิ่งขึ้น (เล็กน้อย)

การใช้ตัวแปร

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

a = 10 # กำหนดเลข 10 ลงตัวแปร a

การใช้งานจริงมักจะนำค่าที่ได้จากคำสั่ง เช่น คำสั่งอ่านค่าจากเซ็นเซอร์ คำสั่งอ่านค่าจากสวิตช์ มาเก็บลงตัวแปร ตัวอย่างการนำค่าแสงที่ได้จากคำสั่ง sensor.light() มาเก็บลงตัวแปร a แสดงด้านล่าง

import sensor # นำเข้าคำสั่งเกี่ยวกับเซ็นเซอร์จากไลบารี่ sensor

a = sensor.light(); # อ่านค่าแสงแล้วเก็บลงตัวแปร a
print(a) # นำค่าในตัวแปร a แสดงผลใน Terminal

การใช้คำสั่ง print()

คำสั่ง print() ใช้แสดงผลข้อความ หรือค่าในตัวแปร บน Terminal โดยรูปแบบการใช้งานคือ

print(สิ่งที่ต้องการให้แสดงผล 1, สิ่งที่ต้องการให้แสดงผล 2, สิ่งที่ต้องการให้แสดงผล 3, ...)

ตัวอย่างต้องการให้แสดงผลคคำว่า Hello!

print("Hello !")

ตัวอย่างตัองการให้แสดงผลค่าในตัวแปร

a = 20.3
print(a) # แสดงผลค่าในตัวแปร a

การใช้คำสั่ง if

ใช้ตรวจสอบ เปรียบเทียบ แล้วดำเนินการ เช่น เทียบว่าถ้าแสงมากกว่า ... ให้จอแสดงรูปหัวใจ เป็นต้น การใช้คำสั่ง if ใช้งานร่วมกับตัวดำเนินการ =, >, <, >=, <=, <> ตัวอย่างการใช้คำสั่ง if เปรียบเทียบค่าแสงมากกว่า 40 หรือไม่ ถ้าใช่ ให้แสดงข้อความ more 40 ใน Terminal

import sensor # นำเข้าคำสั่งเกี่ยวกับเซ็นเซอร์จากไลบารี่ sensor

if sensor.light() > 40: # ถ้าแสงมากกว่า 40 ให้ ...
    print("more 40") # แสดงข้อความ more 40 ใน Terminal

การใช้คำสั่งวนรอบ

คำสั่งวนรอบมี 2 คำสั่งหลัก ๆ คือ for และ while โดย for ใช้วนรอบแบบมีจำนวนรอบชัดเจน ส่วน while ใช้วนรอบแบบใช้เงื่อนไขในการออกจากการวน หรือใช้วนตลอดไป

ตัวอย่างการใช้คำสั่งวนรอบ for แสดงด้านล่าง

for i in range(20): # วนรอบ 20 ครั้ง รอบเก็บลงตัวแปร i
    print(i) # แสดงค่ารอบในตัวแปร i

ตัวอย่างการใช้คำสั่งวนรอบ while แสดงดังด้านล่าง

from time import sleep_ms # นำเข้าคำสั่ง sleep_ms จากไลบารี่ time

while True: # วนรอบแบบตลอดไป
    print("Hello") # แสดงข้อความ Hello ใน Terminal
    sleep_ms(500) # หน่วงเวลา 0.5 วินาที (500 มิลลิวินาที)

ศึกษาไวยากรของภาษาไพทอนแบบละเอียดได้ที่ https://www.tutorialspoint.com/python/index.htm

การเขียนโปรแกรมสั่งงาน KidBright ด้วยภาษาไพทอน

บนบอร์ด KidBrigh มีเซ็นเซอร์ และอุปกรณ์ต่อร่วมที่หลากหลาย การเขียนโปรแกรมสั่งงานอุปกรณ์เหล่านั้นจำเป็นต้อง import ไลบารี่เข้ามาก่อน จึงจะใช้งานได้

การเขียนโปรแกรมสั่งงาน LED 16x8

การเขียนโปรแกรมสั่งงานจอ LED 16x8 จำเป็นต้อง import display เข้ามาก่อน คำสั่งที่มีในไลบารี่ display มีดังนี้

display.show("XY") # แสดงข้อความบนหน้าจอ
display.scroll("Hello !") # แสดงข้อความแบบเลื่อน
display.show4x8(1234) # แสดงผลตัวเลขสูงสุด 4 หลัก
display.left(12) # แสกงผลตัวเลขด้านซ้ายจอ
display.right(34) # แสดงผลตัวเลขด้านขวาจอ
display.plot(1) # พลอตกราฟบนจอ
display.clear() # ล้างการแสดงผลบนหน้าจอ

ตัวอย่างแสดงผลข้อความ Hello, microBloc and KidBright and MicroPython บนหน้าจอ

display.scroll("Hello, microBlock and KidBright and MicroPython")

ตัวอย่างแสดงตัวเลขค่าที่อ่านได้จากเซ็นเซอร์แสง

import display # นำเข้าคำสั่งจากไลบารี่ display
import sensor # นำเข้าคำสั่งจากไลบารี่ sensor
from time import sleep_ms # เรียกใช้คำสั่ง sleep_ms ในไลบารี่ time

while True: # วนรอบแบบไม่จำกัด
    a = sensor.light() # อ่านค่าแสง เก็บลงตัวแปร a
    display.show4x8(a) # นำค่าแสงในตัวแปร a ไปแสดงผลบนหน้าจอ LED 16x8
    sleep_ms(100) # หน่วงเวลา 100 มิลลิวินาที

การอ่านค่าจากสวิตช์

สวิตช์ S1 และ S2 ใช้ไลบารี่ switch ในการเขียนโปรแกรมสั่งงาน โดยมีคำสั่งให้ใช้ดังนี้

switch.press(pin, callback)
switch.release(pin, callback)
switch.value(pin)

ตัวอย่างการเขียนโปรแกรมแสดงข้อความ S1 press เมื่อกดปุ่ม S1

import switch # นำเข้าคำสั่งจากไลบารี่ switch

def S1PressCallback(): # สร้างฟังก์ชั่นที่จะถูกเรียกเมื่อกด S1
    print("S1 press") # แสดงข้อความ S1 press บน Terminal
    
switch.press(switch.S1, S1PressCallback) # กำหนดให้กดปุ่ม S1 แล้วไปเรียกฟังก์ชั่น S1PressCallback

เมื่อกดปุ่ม S1 จะมีข้อความขึ้นบน Terminal

การอ่านค่าจากเซ็นเซอร์

การอ่านค่าจากเซ็นเซอร์แสง เซ็นเซอร์อุณหภูมิ เซ็นเซอร์วัดความเอียง ใช้ไลบารี่ sensor โดยมีคำสั่งให้ใช้งานดังนี้

sensor.light()
sensor.temperature()

ตัวอย่างการแสดงค่าอุณหภูมิบน Terminal มีดังนี้

import sensor # นำเข้าคำสั่งจากไลบารี่ sensor
from time import sleep_ms # นำเข้าคำสั่ง sleep_ms จากไลบารี่ time

while True: # วนรอบแบบไม่จำกัด
    print(sensor.temperature(), "*C")
    sleep_ms(1000) # หน่วงเวลา 1000 มิลลิวินาที

ผลที่ได้ใน Terminal มีอุณหภูมิที่วัดได้แสดงขึ้นมาแล้ว

การส่งเสียงผ่านบัสเซอร์

บัสเซอร์สามารถส่งเสียงแบบโน็ตดนตรีได้ การสั่งงานบัสเซอร์ใช้ไลบารี่ buzzer ซึ่งมีคำสั่งให้ใช้งานดังนี้

buzzer.tone(freq, duration) # ส่งเสียงแบบกำหนดความถี่และระยะเวลาส่งเสียง
buzzer.notes(notes, duration) # เล่นเมโลดี้พร้อมกำหนดความเร็ว
buzzer.volume = level # กำหนดความดังของเสียง กำหนดได้ 0% ถึง 100%

ตัวอย่างการใช้บัสเซอร์ส่งเสียงความถี่ 1 kHz เป็นเวลา 0.1 วินาที เมื่อกดปุ่ม S1

import switch # นำเข้าคำสั่งจากไลบารี่ switch
import buzzer # นำเข้าคำสั่งจากไลบารี่ buzzer

def S1PressCallback():
    buzzer.tone(1000, 0.1) # ส่งเสียง 1000 Hz (1 kHz) เป็นเวลา 0.1 วินาที

switch.press(switch.S1, S1PressCallback) # กำหนดให้กดปุ่ม S1 แล้วไปเรียกฟังก์ชั่น S1PressCallback

การสั่งงานช่อง USB

ใช้ไลบารี่ usb ในการสั่งงาน มีคำสั่งให้ใช้งานดังนี้

usb.on() # สั่งให้อุปกรณ์ช่อง USB ทำงาน
usb.off() # สั่งให้อุปกรณ์ช่อง USB ไม่ทำงาน

ตัวอย่างการเขียนโปรแกรมสั่งงานหลอดไฟแบบ USB กระพริบ

import usb # นำเข้าคำสั่งจากไลบารี่ usb
from time import sleep_ms # นำเข้าคำสั่ง sleep_ms จากไลบารี่ USB

while True: # วนรอบแบบไม่จำกัด
    usb.on() # สั่งให้อุปกรณ์ช่อง USB ทำงาน
    sleep_ms(500) # หน่วงเวลา 500 มิลลิวินาที
    usb.off() # สั่งให้อุปกรณ์ช่อง USB ไม่ทำงาน
    sleep_ms(500) # หน่วงเวลา 500 มิลลิวินาที

ตัวอย่างโครงงาน

สร้างโครงงานโค้ดดิ้งใช้งานได้จริงด้วยภาษาไพทอน

โครงงานพัดลมทำงานอัตโนมัติ

มีแนวคิดหลักคือ เมื่ออุณหภูมิสูงกว่าที่กำหนด ให้สั่งเปิดพัดลมเพื่อระบายความร้อน เมื่ออุณหภูมิลดลงแล้ว ให้พัดลมหยุดทำงาน สามารถเขียนโปรแกรมโดยใช้คำสั่งอ่านค่าอุณหภูมิร่วมกับเงื่อนไข (if) และคำสั่งสั่งงานพัดลมช่อง USB พร้อมแสดงค่าอุณหภูมิที่วัดได้ปัจจุบันบนหน้าจอ LED 16x8 เขียนโปรแกรมดังนี้

import sensor # นำเข้าคำสั่งจากไลบารี่ sensor
import usb # นำเข้าคำสั่งจากไลบารี่ usb
import display # นำเข้าคำสั่งจากไลบารี่ display
from time import sleep_ms # นำเข้าคำสั่ง sleep_ms จากไลบารี่ time

while True: # วนรอบแบบไม่จำกัด
    t = sensor.temperature() # อ่านค่าอุณหภูมิเก็บลงตัวแปร t
    display.show4x8(t) # แสดงค่าอุณหภูมิในตัวแปร t
    if t > 32: # ถ้าอุณหภูมิที่วัดได้ มากกว่า 32 องศาฯ ให้ ...
        usb.on() # พัดลม USB ทำงาน
    else: # ถ้าไม่ใช่ ให้ ..
        usb.off() # พัดลม USB หยุดทำงาน
    sleep_ms(300) # หน่วงเวลา 300 มิลลิวินาที (0.3 วินาที)

โครงงานนาฬิกานับถอยหลัง (Countdown)

เริ่มต้นนาฬิกาจะเริ่มที่ 60 แล้วนับถอยหลังไปเรื่อย ๆ จนถึง 0 เมื่อกดปุ่ม S1 นาฬิกาจะหยุด แต่หากไม่กดปุ่ม S1 เวลาจะนับเรื่อย ๆ จนถึง 0 แล้วหยุด เมื่อหยุดนับเวลาแล้วมีเสียงออกมาจากบัสเซอร์เพื่อเตือนหยุดเวลา/หมดเวลา

จากหลักการทำงานดังกล่าวสามารถเขียนโปรแกรมได้ดังนี้

import display # นำเข้าคำสั่งจากไลบารี่ display
import switch # นำเข้าคำสั่งจากไลบารี่ switch
import buzzer # นำเข้าคำสั่งจากไลบารี่ buzzer
from time import sleep_ms # นำเข้าคำสั่ง sleep_ms จากไลบารี่ time

for i in range(60, 0, -1): # วนรอบ 60 ครั้งโดยให้ตัวแปร i มีค่าเป็น 60 59 ... 0
    display.show4x8(i) # แสดงผลค่าในตัวแปร i 
    if switch.value(switch.S1): # ถ้ากดสวิตช์ ให้ ...
        break # ออกจากการวนรอบ
    sleep_ms(1000) # หน่วงเวลา 1 วินาที

buzzer.tone(500, 0.5) # ส่งเสียงความถี่ 500 Hz เป็นเวลา 0.5 วินาที

เครื่องนับคะแนนชูทบาส

กีฬาบาสแบ่งเป็น 2 ทีม คือทีม A และทีม B หากฝั่งใดชูทบาสลงห่วงให้นับคะแนนเพิ่มที่ฝั่งนั้น ฝั่งใดได้คะแนน 10 คะแนนก่อนเป็นผู้ชนะ

จากหลักการดังกล่าวสามารถใช้คำสั่งจอแสดงผล LED 16x8 แบ่งเป็นฝั่งซ้ายและฝั่งขวา โดยฝั่งซ้ายแสดงผลคะแนนฝั่ง A และฝั่งขวา ใช้แสดงคะแนนฝั่ง B กดปุ่ม S1 จะเพิ่มคะแนนฝั่งซ้าย กดปุ่ม S2 จะเพิ่มคะแนนฝั่งขวา ฝั่งไหนครบ 15 คะแนนก่อน จะแสดงข้อความ ... win ค้างไว้ กดปุ่ม Reset คะแนนจะกลับมาเป็น 0 อีกครั้งทั้ง 2 ฝั่ง

จากหลักการดังกล่าว สามารถเขียนโปรแกรมได้ดังนี้

import display # เรียกใช้ไลบารี่ display
import switch # เรียกใช้ไลบารี่ switch
from time import sleep_ms # เรียกใช้คำสั่ง sleep_ms จากไลบารี่ time

A_score = 0 # สร้างตัวแปร A_score ใช้เก็บคะแนนฝั่ง A กำหนดค่าเริ่มต้นเป็น 0
B_score = 0 # สร้างตัวแปร B_score ใช้เก็บคะแนนฝั่ง B กำหนดค่าเริ่มต้นเป็น 0

def S1PressCallback(): # สร้างฟังก์ชั่นที่จะถูกเรียกเมื่อกด S1
    global A_score
    A_score = A_score + 1 # เพิ่มค่าในตัวแปร A_score ขึ้น 1 ค่า

def S2PressCallback(): # สร้างฟังก์ชั่นที่จะถูกเรียกเมื่อกด S2
    global B_score
    B_score = B_score + 1 # เพิ่มค่าในตัวแปร B_score ขึ้น 1 ค่า
    
switch.press(switch.S1, S1PressCallback) # กำหนดให้กดปุ่ม S1 แล้วไปเรียกฟังก์ชั่น S1PressCallback
switch.press(switch.S2, S2PressCallback) # กำหนดให้กดปุ่ม S2 แล้วไปเรียกฟังก์ชั่น S2PressCallback

while True: # วนรอบแบบไม่จำกัด
    display.left(A_score) # แสดงค่าในตัวแปร A_score ที่ฝั่งซ้ายของจอ
    display.right(B_score) # แสดงค่าในตัวแปร A_score ที่ฝั่งขวาของจอ
    if (A_score >= 15) or (B_score >= 15): # ถ้าตัวแปร A_score หรือ B_score มากกว่าหรือเท่ากับ 15 ให้ ...
        break # ออกจากการวนรอบ
    sleep_ms(100) # หน่วงเวลา 100 มิลลิวินาที

while True: # วนรอบแบบไม่จำกัด
    if A_score >= 15: # ถ้าตัวแปร A_score มากกว่าหรือเท่ากับ 15 ให้ ...
        display.scroll("A wins") # แสดงข้อความ A wins แบบเลื่อนบนหน้าจอ
    if B_score >= 15: # ถ้าตัวแปร B_score มากกว่าหรือเท่ากับ 15 ให้ ...
        display.scroll("B wins") # แสดงข้อความ B wins แบบเลื่อนบนหน้าจอ

เมื่ออัพโหลดโปรแกรมจะมีตัวเลข 0 และ 0 ขึ้นบนหน้าจอ กดปุ่ม S1 ตัวเลขฦั่งซ้ายจะเพิ่ม กดจนเพิ่มไปถึง 15 จะมีขอความ A wins แสดงขึ้นมา

สรุป

การเขียนโปรแกรมภาษาไพทอน (Python) บนบอร์ด KidBright สามารถทำได้โดยใช้เฟิร์มแวร์ MicroPython ที่ปรับแต่งมาเฉพาะ รองรับการเขียนโปรแกรมสั่งงานเซ็นเซอร์ สวิตช์ หน้าจอแสดงผล และทำโครงานใช้งานได้จริงได้ สำหรับท่านใดที่สนใจการเขียนโปรแกรม MicroPython สามารถศึกษาได้จาก Code Reference > Display และเอกสารอย่างเป็นทางการของ MicroPython


ดู 1,659 ครั้ง0 ความคิดเห็น

Comments


bottom of page