เรียน-เล่น-โค้ด KidBright32iP กับ microBlock IDE EP13: ทดสอบเขียนโค้ดด้วย microPython

microBlock IDE ไม่ได้มีดีเฉพาะลากบล็อก การเขียนโค้ดฝั่ง microPython ก็ดีไม่แพ้กัน

เปลี่ยนโหมด Block/Code

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

ให้ตอบ Yes แล้วเปลี่ยนโค้ด ในบรรทัดที่ 5 จาก display.scroll (‘world’) เป็น display.scroll(‘KidBright’)

ถ้าการเขียนโค้ดไม่มีข้อผิดพลาด สามารถกดปุ่ม Upload เพื่อดูผลโค้ดที่เปลี่ยนไปได้เลย

หมายเหตุ เมื่อแก้ไขโค้ดแล้วย้อนกลับมาที่หน้าต่าง Block โค้ดทั้งหมดจะถูกยุบรวมเป็นบล็อกเดียวดังรูป

ในกรณีที่โค้ดยาวมาก ไม่ควรเปลี่ยนกลับมาโหมด Block อีก เพราะโปรแกรมจะใช้เวลานานมากเพื่อเปลี่ยนโค้ดให้กลายเป็นบล็อก

 

หน้าต่าง Terminal

ก่อนเขียนโค้ดจริงจังดัวย microPython ซ้อมมือกันก่อนที่หน้าต่าง Terminal นอกจากจะทำหน้าที่รับค่าข้อมูลมาแสดงผลแล้วยังมีโหมด REPL เพื่อทดสอบการพิมพ์โค้ดแบบทีละบรรทัดได้ด้วย

REPL คืออะไร

REPL ย่อมาจาก READ-EVAL-PRINT LOOP

เป็นสภาพแวดล้อมในการเขียนโปรแกรมแบบ Interactive ที่สามารถแสดงผลลัพธ์ได้ทันทีโดยไม่ต้องมีการคอมไพล์ ใช้กับซอฟต์แวร์ที่เป็นลักษณะ Interpreter แบบภาษา Python ได้เลย โดยผู้ใช้งานสามารถทดสอบพิมพ์คำสั่งเพื่อทดสอบการทำงานได้ เช่นคำสั่ง

>>> print (5+6)

11

โดย

Read = การอ่านข้อมูลอินพุตจากผู้ใช้

Eval = มาจาก Evaluate คือการแปลและประมวลผลข้อมูลอินพุตอันนั้น

Print = การแสดงผลที่ประมวลได้

Loop = วนกลับไปรอรับข้อมูลอินพุตใหม่

โดยการทดสอบแบบนี้จะต้องเชื่อมต่อบอร์ด KidBright32iP เข้ากับคอมพิวเตอร์ตลอดเวลาใช้งาน

 

ทดสอบคำสั่งคณิตศาสตร์ในโหมด REPL

หมายเหตุ ในกรณีที่บอร์ด KidBright32iP กำลังทำงานอยู่ ไม่สามารถเข้าสู่โหมด REPL ได้จะต้องกดคีย์ลัดดังนี้

CTRL+C หยุดการทำงานของโปรแกรมหลักเพื่อเข้าโหมด REPL

CTRL+D รีเซตการทำงานของ KidBright32iP

ทดสอบคำสั่ง print ในโหมด REPL

คำสั่ง print ใช้เพื่อนำค่าต่างๆ แสดงผลที่หน้าต่าง Terminal สามารถแสดงข้อความ (ในเครื่องหมาย ‘ ‘ หรือ ” ” ) ค่าตัวเลขหรือค่าตัวแปร นอกจากนี้ยังมีอักขระพิเศษ ที่ปกติพิมพ์ออกมาไม่ได้จะต้องขึ้นต้นด้วยเครื่องหมาย \

ตัวแปรใน microPython

microPython ใช้วิธีการง่ายๆ ในการสร้างตัวแปร เช่น

>>> X = 400            ### X จะเป็นตัวแปรแบบ Integer :int หรือจำนวนเต็ม

>>> Y = 4.5             ### Y จะเป็นตัวแปรแบบ Float :float หรือตัวเลขทศนิยม

>>> Z = True          ### Z จะเป็นตัวแปรแบบ Boolean : bool ให้ผลจริงกับเท็จ

>>> S = ‘inex’          ### S จะเป็นตัวแปรแบบ String :str หรือข้อความ

สำหรับการตรวจสอบชนิดของตัวแปรที่สร้างขึ้นให้พิมพ์ type (var) โดย var คือชื่อตัวแปรที่ต้องการตรวจสอบ

ตัวแปร list

list ใช้เก็บข้อมูลหลายชุดและหลายประเภท และชี้ข้อมูลด้วย index ใช้เหมือนกับ Array ในภาษาอื่น แต่ข้อมูลหลายประเภทอยู่ในตัวแปรเดียวกันได้ ข้อมูลจะอยู่ภายในเครื่องหมาย [] คั่นสมาชิกแต่ละตัวด้วยเครื่องหมาย ,

นอกจากนี้ list ยังมีฟังก์ชั่นพิเศษเพื่อจัดการข้อมูลที่อยู่ภายในหลายตัวดังนี้

ตัวแปร tuple

tuple มีลักษณะคล้าย list แต่เปลี่ยนค่าไม่ได้ ประกาศโดยให้สมาชิกอยู่ในเครื่องหมาย () และคั่นด้วยเครื่องหมาย ,

การเข้าถึงสมาชิกภายใน tuple

ใช้ตัวชี้แบบเดียวกับ list โดยใช้เครื่องหมาย [] แต่อ่านกลับได้อย่างเดียว ไม่สามารถเขียนค่าลงไปได้

การกำหนดค่าตัวแปร

  • ขึ้นต้นด้วยตัวอักษร
  • อักขระพิเศษเช่น -,/,#,@ ใช้ไม่ได้
  • ชื่อตัวแปรเว้นวรรคไม่ได้ใช้ ‘_’ แทน
  • ห้ามใช้คำสงวนเช่น print

คำสั่งเกี่ยวกับตัวแปรที่ใช้บ่อย





การตรวจสอบเงื่อนไข if


จากบล็อก if เมื่อนำมาเขียนเป็น microPython จะมีรูปแบบไวยกรณ์ดังนี้


การตรวจสอบเงื่อนไข while

การเปรียบเทียบ

ใช้งานได้เหมือนกับแบบบล็อกดังนี้

ตัวอย่าง

การสร้างฟังก์ชั่น

เพื่อรวมคำสั่งหลายๆ คำสั่งไว้ในที่เดียวกันแล้วเรียกใช้ในชื่อเดียว

ตัวอย่าง

ตัวแปรกับฟังก์ชั่น 

ตัวแปรที่อยู่ในฟังก์ชั่นจะถูกเรียกและใช้งานภายในฟังก์ชั่นเท่านั้น ถ้าต้องการให้ใช้งานภายนอกได้ด้วย จะต้องประกาศตัวแปรให้เป็นแบบ Global ก่อน

คำสั่งพิเศษอื่นๆ ที่ใช้งานบ่อย

 

ตัวอย่างที่ 13-1 การนับค่าเพิ่มทุกๆ 0.5 วินาที

เป็นการเขียนโค้ดเต็มๆ ด้วย microPython โดยให้พิมพ์โค้ดทั้งหมด จากนั้น upload โค้ดไปยังบอร์ด kidBright32iP และดูผลการทำงานที่หน้าต่าง Terminal

การทำงาน

บรรทัด 1 ถ้ามีการใช้คำสั่งหน่วงเวลา sleep จะต้องเพิ่มโมดูล time เข้ามาในโปรแกรมด้วยคำสั่ง import

บรรทัด 2 กำหนดตัวแปรสำหรับการนับ x ให้เท่ากับ 0

บรรทัด 3 วนลูปไปเรื่อยๆ (เทียบเท่าคำสั่ง forever ในแบบบล็อก)

บรรทัด 4 ส่งค่า x ไปแสดงที่หน้าต่าง terminal

บรรทัด 5 หน่วงเวลา 0.5 วินาที

บรรทัด 6 เพิ่มค่า x ขึ้น 1 ค่า

ผลลัพธ์

โปรแกรมจะวนส่งค่าตัวเลขไปแสดงที่หน้าต่าง terminal ไปเรื่อยๆ


ถ้าสนใจการเขียนโค้ดด้วย microPython ลองศึกษาข้อมูลจากภายนอกเพิ่มเติมนะครับ
แล้วเอามาประยุกต์กับบอร์ด kidBright32iP และ microBlock IDE กันนะครับ คอยติดตามตามต่อไปครับ

    

Facebook Comments Box