ตัวอย่างใช้งาน Micro:bit Education Kit V1.3 ตอนที่ 1

ชุด micro:bit Education Kit นอกจากจะมีบอร์ด micro:bit V2.0 เป็นหัวใจสำคัญแล้ว

ยังมีบอร์ด AX-microbit ให้สามารถต่อพ่วงอุปกรณ์ต่างๆ ได้โดยง่าย

เหมาะสำหรับทำโครงงานที่ต้องมีอุปกรณ์อินพุตเอาต์พุตต่างๆ

ในชุดประกอบด้วย

• microbit บอร์ดไมโครคอนโทรลเลอร์ x1

• AX-microBIT V1.9 x1

• ZX-LED แผงวงจร LED x2

• ZX-BUTTON แผงวงจรสวิตซ์ x2

• ZX-Sound แผงวงจรเสียง x1

• ZX-RGB3C แผงวงจร LED 3 สี RGB แบบโปรแกรมได้ 3 ดวงแผ่นกลม x2

• ZX-02F แผงวงจรตรวจจับแสง x1

• ZX-PIR V2.0 โมดูลตรวจจับความเคลื่อนไหว x1

• ZX-LUX มินิบอร์ดวัดความเข้มแสง x1

• แผงต่อวงจร 390 จุด

• MCP9701 ไอซีวัดอุณหภูมิ x1

• RC SERVO Motor x1

• อะแดปเตอร์ไฟตรง 5 โวลต์ x1

• สาย IDC40MF-4 x1

• สาย microUSB x1

• สาย JST3AF-8 x1

• สาย JST3AA-8 x7

• หนังสือเริ่มต้นเขียนโค้ดกับ micro:bit

เริ่มต้นกับ micro:bit V2.0

micro:bit V2.0 มาพร้อมคุณสมบัติใหม่ หลายๆ ตัว ประกอบด้วย

  • มีลำโพงขนาดเล็กติดตั้งในตัว

  • มีไมโครโฟนพร้อมไฟสถานะเมื่อมีการใช้งานไมโครโฟน
  • ปิดการทำงานตัวเองได้โดยการกดสวิตช์รีเซตค้างไว้
  • รองรับการสัมผัสแบบ Capacitive ที่ขา P0 P1 P2 และ โลโก้ ทำให้การสัมผัสตอบสนองเร็วขึ้น

     

เขียนโค้ดด้วย Microsoft Makecode

สำหรับการใช้งานกับ micro:bit V2.0 แนะนำเวอร์ชั่น Online ผ่าน https://makecode.microbit.org/ Browser เพื่อการนี้แนะนำให้ใช้ Microsoft Edge หรือ Google Chrome เท่านั้น และระบบปฏิบัติการต้องเป็น Windows 10 เนื่องจากการดาวน์โหลดข้อมูลสำหรับ micro:bit สามารถใช้ดาวน์โหลดผ่าน WebUSB ได้ และนอกจากการดาวน์โหลดแล้ว จะได้ความสามารถในการสื่อสารข้อมูลระหว่างบอร์ดกับคอมพิวเตอร์มาด้วย

 

สร้าง Project ลากบล็อกเขียนโค้ด

สร้าง Projects กันก่อน โดยจะมีหน้าต่างให้ตั้งชื่อปรากฏขึ้นมา ถ้าป้อนชื่อ MakeCode จะดีใจมาก จากนั้นกดปุ่ม Create

โค้ดแรกที่จะสร้างเป็นไฟกะพริบ โดยให้ติดดับสลับกันที่พิกัด X = 0 ,Y = 0 ซึ่งคือ LED ตำแหน่งมุมบนด้านซ้ายนั่นเอง

Pair device เพื่อเชื่อมต่อ micro:bit ผ่าน webUSB

เพื่อดาวน์โหลดโค้ดที่เขียนขึ้นส่งไปยัง micro:bit จะต้องเชื่อมต่อ micro:bit กับ Microsoft Makecode เสียก่อน โดยทำตามขั้นตอนดังนี้

กดที่เครื่องหมาย … ด้านขวาของปุ่ม Download
เลือกคำสั่ง Pair device จะพบหน้าต่างแนะนำขั้นตอนการจับคู่

ให้เชื่อมต่อ micro:bit เข้ากับคอมพิวเตอร์ผ่านสาย USB แล้วกดที่ปุ่ม Pair device

ที่หน้าต่างการเชื่อมต่อ จะพบอุปกรณืในชื่อ CMSIS-DAP หรือ DAPLink CMSIS-DAP ให้เลือกและกดเชื่อมต่อ

เมื่อเชื่อมต่อแล้ว สามารถกดปุ่ม Download เพื่อดาวน์โหลดโค้ดตรงไปยัง micro:bit ได้ทันที นอกจากนี้ยังสามารถใช้คำสั่งในการสื่อสารข้อมูลระหว่าง micro:bit กับคอมพิวเตอร์ได้ด้วย

สร้างเสียงออกลำโพง

micro:bit V2 จะติดตั้งลำโพงขนาดเล็กไว้บนตัว สามารถส่งคำสั่งสร้างเสียงออกไปยังลำโพงภายในได้เลย

คำสั่งที่เกี่ยวข้องกับการสร้างเสียง

Play melody เป็นชุดคำสั่งใหม่ที่มีอยู่ใน Microsoft MakeCode version: 6 ขึ้นไป ช่วยให้การสร้างโน๊ตดนตรีง่ายขึ้น นอกจากนี้ใน Tab Gallery ยังมีตัวอย่างโน๊ตให้ทดลองใช้งานได้ด้วย

set built-in speaker เป็นชุดคำสั่งใหม่ สำหรับ micro:bit V2 เท่านั้น ใช้เปิดใช้งานลำโพงที่ติดตั้งบน micro:bit V2 เพื่อเล่นเสียง

ปกติถ้าไม่ได้กำหนดค่า ค่าเดิมจะอยู่ที่ ON คือมีเสียงออกที่ลำโพงภายในตัวมัน (และออกที่ขาพอร์ตที่กำหนดไว้ด้วย)

ถ้าใช้บล็อกนี้กับ micro:bit V1 จะแสดงข้อผิดพลาด 927 ขึ้นที่หน้าจอ

play sound … until done เป็นชุดคำสั่งใหม่ สำหรับ micro:bit V2 เท่านั้น เป็นการเล่นเสียงในชุดโทนเสียงที่ระบุ คำสั่งสร้างเสียงจะทำงานจนเสร็จถึงจะไปทำงานคำสั่งถัดไปได้ แนวเสียงที่มีเป็นลักษณะเสียงสังเคราะห์ แสดงอารมณ์ต่างๆ ได้

ถ้าใช้บล็อกนี้กับ micro:bit V1 จะแสดงข้อผิดพลาด 927 ขึ้นที่หน้าจอ

play sound เป็นชุดคำสั่งใหม่ สำหรับ micro:bit V2 เท่านั้น เป็นการเล่นเสียงในชุดโทนเสียงที่ระบุ คำสั่งสร้างเสียงจะทำงานอยู่เบื้องหลัง คำสั่งที่ต่อท้ายจะทำต่อทันที แนวเสียงที่มีเป็นลักษณะเสียงสังเคราะห์ แสดงอารมณ์ต่างๆ ได้ ถ้าใช้บล็อกนี้กับ microbit V1 จะแสดงข้อผิดพลาด 927 ขึ้นที่หน้าจอ

set audio pin เป็นชุดคำสั่งใหม่ที่มีอยู่ใน Microsoft MakeCode version: 6 ขึ้นไป (อยู่ในหัวข้อ Pin) ทำหน้าที่กำหนดขาสำหรับการเชื่อมต่อลำโพงภายนอก สำหรับเวอร์ชั่นก่อนหน้านี้ลำโพงจะต่อเข้ากับขา P0 เท่านั้น โดยถ้าไม่กำหนดค่า ลำโพงภายนอกจะต้องต่อกับขา P0

ตัวอย่างที่ 1 สร้างเสียงหลายรูปแบบ

ตัวอย่างการสร้างเสียงออกไปยังลำโพงของ micro:bit จะกระตุ้นให้ทำงานด้วยการกดสวิตช์ A B และ การเขย่า (shake)

ถ้าไม่ต้องการเขียนโค้ดยาวๆ ก็เปิดทดสอบจากลิงก์นี้ได้เลย

https://makecode.microbit.org/_36q0xuiueC0r

ถ้ากดสวิตช์ A จะให้เล่นตัวโน๊ตเพลง Star War โดยปรับความเร็วไว้เป็นมาตรฐานคือ 120 bpm (Beat Per Minute)

ถ้ากดสวิตช์ B จะเป็นการเล่น Melody เพลงที่มีให้เลือกในรายการอยู่แล้ว ในที่นี้ใช้เพลง wedding โดยจะเล่นเพียงครั้งเดียว

ถ้ากดสวิตช์ A และ B พร้อมกันจะสร้างเสียง Melody ด้วยคำสั่ง play melody โดยจะเล่นตัวโน๊ตไล่ลำดับจากต่ำไปหาสูงและจากสูงมาหาต่ำ

ถ้าเขย่า (shake) จะกระตุ้นให้สร้างเสียงเมโลดี้ของ Pink Panter โดยกำหนดความเร็วไว้ที่ 120 bpm (Beat Per Minute)

ตัวอย่างนี้สามารถใช้งานได้ทั้ง microbit V1 และ V2


ถ้าต่อ micro:bit V2.0 เข้ากับ AX-microBIT สามารถสั่งให้ลำโพงดังทั้งบนตัว micro:bit และบน AX-microBIT

ตัวอย่างที่ 2 สร้างเสียง Robot สำหรับ micro:bit V2

คำสั่ง play sound ที่ให้ทดสอบนี้มี 2 รูปแบบคือแบบเล่นอันแรกเสร็จ แล้วค่อยเล่นอันที่ 2 ต่อไป กับแบบให้ทำงานอยู่เบื้องหลัง

ถ้ากดปุ่ม A ผลลัพธ์ที่ได้จะเป็นการเล่นเสียงแรกจนเสร็จแล้วค่อยเล่นเสียงอันที่ 2

ถ้ากดปุ่ม B จะได้ยินเสียงแรกและเสียงที่ 2 ออกมาคู่กัน

https://makecode.microbit.org/_bjfUYwfR6Eot

ไมโครโฟน ตรวจจับเสียง

สำหรับ microbit V2 นอกจากมีลำโพงติดตั้งมาให้ใช้งานแล้ว ยังมีไมโครโฟน ติดตั้งมาด้วย มาพร้อมกับชุดคำสั่งเรียกใช้งาน 3 คำสั่งอยู่ในหัวข้อ input ประกอบด้วย

on sound ประกอบไปด้วย on loud sound และ on quiet sound จะกระตุ้นให้ทำงานเมื่อเสียงดัง (loud) กว่าที่กำหนดหรือเงียบ(quiet) กว่าที่กำหนด ค่าระดับเสียงจะอยู่ในช่วง 0 (เงียบ) ถึง 255 (ดังที่สุด) ค่าอ้างอิงที่ใช้เปรียบเทียบว่าเสียงดังหรือค่อย สามารถปรับตั้งได้ผ่านคำสั่ง set Sound Threshold โดยถ้าไม่กำหนดค่าตั้งต้นจะอยู่ที่ 128

set sound threshold ใช้เพื่อกำหนดค่าอ้างอิงให้กับเหตุการณ์ on sound เมื่อ on loud sound ได้รับค่าเสียงมากกว่าค่าที่ตั้งไว้ จะถูกกระตุ้นให้ทำงานและ on quiet sound ได้รับค่าเสียงน้อยกว่าที่ตั้งไว้ จะถูกกระตุ้นให้ทำงาน ถ้าไม่ได้กำหนดค่าเดิมจะอยู่ที่ 128

sound level เป็นการคืนค่าเสียงที่ได้จากไมโครโฟนค่าระดับเสียงจะอยู่ในช่วง 0 (เงียบ) ถึง 255 (ดังที่สุด)

ตัวอย่างที่ 3 แสดงค่าเสียงผ่าน plot bargraph

https://makecode.microbit.org/_6VUXYraWWb2W

คำสั่ง Plot bargraph นอกจากแสดงผลที่ LED 5×5 แล้ว เมื่อดาวน์โหลดโค้ดไปยังบอร์ด micro:bit V2 ผ่านช่องทาง WebUSB จะสามารถแสดงผลผ่าน Show console device โดยแสดงผลเป็นเส้นกราฟที่เห็นการเปลี่ยนแปลงทันที พร้อมแสดงตัวเลขที่มีการเปลี่ยนแปลงตามเวลาจริง

ตัวอย่างที่ 4 ตบมือนับค่าขึ้นทีละ 1 ค่า

https://makecode.microbit.org/_ERDC4rPg9f8s

ตัวอย่างนี้เป็นการวนลูปตรวจสอบค่าเสียง ถ้าค่าความดังของเสียงมีค่ามากกว่า 128 ให้นับค่าขึ้น 1 ค่าแล้วแสดงค่าออกที่ LED 5×5 ในกรณีที่กดสวิตช์ A ให้เคลียร์ค่าการนับกลายเป็น 0 ใหม่

หมายเหตุ ตัวอย่างนี้มีการใช้ตัวแปร สร้างจากหัวข้อ Variable กำหนดชื่อเป็น X

ตัวอย่างที่ 5 ตบมือนับค่าขึ้นทีละ 1 ค่าแบบ Event

https://makecode.microbit.org/_64tM0kYrUMoV

ปรับเปลี่ยนโค้ดจากตัวอย่างก่อนหน้านี้ที่ใช้การวนลูป คอยตรวจสอบค่าเสียงให้เป็นการกระตุ้นให้ทำงานด้วยเหตุการณ์แทน จะเกิดเหตุการณ์เมื่อมีเสียงดังเกินกว่า 128

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

การใช้ Touch Sensor

อีกความสามารถที่สำคัญของ micro:bit V2 คือเรื่อง Capacitive Touch ที่แตะสำผัสได้ไวเหมือนกับเราสัมผัสหน้าจอมือถือ ใน V1 การสัมผัสทำได้ที่ขา P0 P1 และ P2 เท่านั้นและเป็นแบบ Resistive คือจะต้องมีการไหลผ่านของกระแส ในที่นี้เป็นการไหลผ่านจากขาที่สัมผัสไปลงกราวด์ (GND)

มาดูกันว่าใน micro:bit V2 การสัมผัสที่ขา P0 P1 P2 และเพิ่มจุดสัมผัสที่ Logo ขึ้นมา จะง่ายต่อการใช้งานมากแค่ไหน

คำสั่งที่ใช้งานการการ Touch

set to touch mode เป็นคำสั่งที่จะกำหนดให้ขาพอร์ต P0 P1 P2 และ Logo มีโหมดในการสัมผัสแบบ Capacitvie หรือแบบ Resistive โดยค่าเริ่มต้น ขาพอร์ต P0 P1 P2 จะเป็นแบบ Resistive ส่วน Logo จะเป็นแบบ Capacitive

เหตุการณ์ on logo บล็อกจะถูกกระตุ้นเมื่อ จากการสัมผัสที่ตัว Logo โดยมีหลายรูปแบบคือ

pressed จะเกิดขึ้นเมื่อมีการแตะแล้วปล่อย

touched จะเกิดขึ้นเมื่อมีการแตะ

released จะเกิดขึ้นเมื่อมีการปล่อยหลังจากแตะแล้ว

long pressed จะเกิดขึ้นเมื่อมีการกดค้างไว้นานๆ

logo is pressed บล็อกจะคืนค่าสถานะการกดที่ตัวโลโก้

เป็นจริง เมื่อมีการกดที่ Logo

เป็นเท็จ เมื่อไม่มีการกดที่ Logo

ตัวอย่างที่ 6 ทดสอบ Resistive และ Capacitive

https://makecode.microbit.org/_Tj3dEPaimCFu

ตัวอย่างนี้จะใช้สวิตช์ A เพื่อให้โหมดของขา P0 P1 P2 และ Logo สัมผัสแบบ Capacitive ส่วนสวิตช์ B จะเปลี่ยนโหมดเป็น Resistive

สำหรับเหตุการณ์สำหรับขา P0 P1 และ P2 จะให้แสดงด้วยเสียงออกลำโพง ส่วนสัมผัสที่โลโก้จะให้แสดงรูปหัวใจ โดยเมื่อปล่อยจะสั่งให้เคลียร์หน้าจอ

ทดสอบฟังก์ชั่นใหม่ๆ ของ micro:bit เวอร์ชั่น 2 กันแล้ว ต่อไปก็มาทดลองใช้ความสามารถอันหลากหลายของ micro:bit ผ่านชุดทดลอง micro:bit Education Kit กัน

ควบคุมอุปกรณ์เอาต์พุตดิจิทัล

คำสั่ง digital write pin

เป็นการส่งค่าดิจิทัลไปยังขาพอร์ตที่กำหนด

ตัวอย่างที่ 7 กดสวิตช์สลับสถานะ LED

https://makecode.microbit.org/_8w7DeR0tz933

ใช้สวิตช์ A และ สวิตช์ B กด 1 ครั้ง LED ติด กดอีกครั้ง LED ดับ

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

    ตัวอย่างนี้จะสร้างตัวแปร S1 และ S2 ไว้เก็บสถานะของ LED ว่าติดหรือดับ จากนั้นเมื่อมีการกดสวิตช์ ก่อนที่จะให้ LED ติดหรือดับ จะต้องตรวจสอบก่อนว่าค่าเดิมของมันคืออะไร ถ้าเดิมเป็นจริง จะเปลี่ยนให้กลายเป็นเท็จ และสั่งให้หลอดไฟติด ทางกลับกันถ้าเดิมเป็นเท็จ จะเปลี่ยนให้เป็นจริงและสั่ง LED ติดสว่าง

การอ่านค่าอินพุตดิจิทัล

คำสั่ง digital read pin จะคืนค่าลอจิก 0 หรือ 1 ออกมาจากขาที่ต้องการตรวจสอบ ซึ่งขาที่ใช้งานได้คือขา P0-P16

ตัวอย่างที่ 8 สร้างเสียงจากการกดสวิตช์ที่ต่อภายนอก

https://makecode.microbit.org/_hahismPJ2J8d

ZX-BUTTON จะต่างจากสวิตช์ A และ B บนบอร์ดตรงที่ เมื่อกดจะให้ผลลัพธ์เป็นเท็จหรือ 0 แต่เมื่อไม่กดสวิตช์จะให้ผลลัพธ์เป็น 1 เพื่อให้เห็นตัวอย่างการใช้งานง่าย ๆ จะให้การกดสวิตช์เป็นการส่งเสียงออกลำโพง โดยให้เสียงของเมื่อกดสวิตช์ทั้งสองตัวดังต่างกัน และถ้ากดสวิตช์ 2 ตัวพร้อมกันก็จะให้เสียงดังอีกความถี่เสียง

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

ตัวอย่างนี้ใช้ if เพียงชุดเดียวในการตรวจสอบเงื่อนไข โดยถ้าเงื่อนไขแรกเป็นจริง ไม่จำเป็นต้องตรวจสอบเงื่อนไขที่ 2 และ 3 ต่อ สำหรับเงื่อนไขแรกขา P12 และ P13 จะต้องเป็น 0 ทั้งคู่เงื่อนไขจึงจะเป็นจริง หมายความว่า สวิตช์ทั้งสองตัวจะต้องถูกกดพร้อมกันนั่นเอง

การอ่านค่าแอนะล็อก

สำหรับ microbit ทั้ง V1 และ V2 มีขาที่สามารถอ่านค่าแอนะล็อกเข้ามาได้ 6 ขา ประกอบด้วยขา P0 P1 P2 P3 P4 และ P10 โดยวงจรแปลงแอนะล็อกเป็นดิจิทัลภายในตัว microbit มีขนาด 10 บิต อ่านค่าได้ในช่วง 0-1023 เทียบกับแรงดันที่เข้าขาอินพุต 0-3.3V

analog read pin เป็นคำสั่งที่คืนค่าแอนะล็อก มีค่าระหว่าง 0-1023 จากขาที่กำหนด โดยขาที่สามารถแปลงแอนะล็อกเป็นดิจิทัลได้คือขา P0-P4 และ P10

ตัวอย่างที่ 9 ทดสอบวัดแรงดันแบตเตอรี่

โปรดใช้ความระมัดระวังในการใช้งาน อาจจะทำให้บอร์ด microbit เสียหายได้

ถ่านขนาด AA หรือ AAA ที่เป็นแบบอัลคาไลน์หรือถ่านชาร์จระมีแรงดันประมาณ 1.2-1.5V ซึ่งอยู่ในช่วงที่ไม่เกินแรงดันสูงสุดของ micro:bit สามารถเขียนโค้ดเพื่ออ่านค่าแรงดันจากแบตเตอรี่ประเภทนี้ได้ โดยการหาแรงดันที่วัดได้จะมาจากสูตร

แรงดันที่วัดได้ = ค่าแอนะล็อกที่อ่านได้ x แรงดันไฟเลี้ยงของ microbit /ค่าสูงสุดของวงจรแปลงแอนะล็อกเป็นดิจิทัล

แรงดันที่วัดได้ = ค่าแอนะล็อกที่อ่านได้ x 3.3 /1023

จากคุณสมบัตินี้นำมาเขียนเป็นโค้ดเพื่อตรวจสอบถ่านไฟฉาย พร้อมใช้งานหรือไม่พร้อมใช้งานได้

โดยถ้าแรงดันของแบตเตอรี่มีค่ามากกว่า 1.2V แสดงว่ามีไฟอยู่พร้อมใช้งาน

แต่ถ้ามีแรงดันต่ำกว่า 1.2V แสดงว่าไม่พร้อมใช้งาน

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

ขณะเริ่มต้น ให้แสดงข้อความ “Battery Tester” ขึ้นมาก่อน ผู้ใช้งานจะต้องใช้สายไฟ เสียบที่ขา P0 ของบอร์ด AX-microBIT ไปยังขั้วบวกของแบตเตอรี่ และขา GND ของบอร์ด AX-microBIT ไปยังขั้วลบของแบตเตอรี่ เมื่อกดสวิตช์ B จะเป็นการแสดงค่าแอนะล็อก ออกมาที่หน้าจอ โดยค่านี้เราจะไม่สามารถตีความได้ว่าแบตเตอรี่ดีหรือเสีย เมื่อกดสวิตช์ A จะเป็นการอ่านค่าแอนะล็อกแล้วนำมาแปลงเป็นแรงดัน นำมาแสดงที่หน้าจอ ค่าที่ได้จะเป็นแรงดันไฟที่วัดได้หน่วยเป็นโวลต์ จากนั้นทำการตรวจสอบว่าแรงดันที่อ่านได้มีค่ามากกว่า 1.2V หรือไม่ ถ้าไม่ใช่แสดงว่าแบตเตอรี่ไม่พร้อมใช้งานให้แสดงเครื่องหมายผิด แต่ถ้าใช่ให้แสดงเครื่องหมายถูก

พักไว้ตรงนี้ก่อนสำหรับตอนที่ 1 ยังมีอุปกรณ์ที่น่าสนใจในชุดอีกหลายตัว คอยติดตามในตอนที่ 2 นะครับ

 

 

Facebook Comments Box