ตัวอย่างที่ 1 ทดสอบอ่านค่าจากวงจรตรวจจับแสง
ในตัวอย่างนี้นำเสนอการสร้างโค้ดสำหรับอ่านค่าความเข้มแสงจากวงจรตรวจจับแสงบนบอร์ด KidBright เพื่อนำมาแสดงที่ส่วนแสดงผล LED 16 x 8 จุด
ขั้นตอนปฏิบัติการ
(1) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์ หากเป็นบอร์ด KidBright32 V1.5i หรือ KidBright32i ให้รอจนกระทั่ง LED สีฟ้าที่ตำแหน่ง USB ของบอร์ด KidBright ติดสว่าง เพื่อแจ้งว่าคอมพิวเตอร์ติดต่อกับบอร์ด KidBright ได้แล้ว
(2) เปิดโปรแกรม microBlock IDEสร้างโค้ดตามโปรแกรมที่ 1-1 บันทึกไฟล์ชื่อ KBi-LightRead.mby
(3) อัปโหลดโค้ดไปยังบอร์ด KidBright ด้วยการคลิกปุ่ม Upload รอจนกระทั่งอัปโหลดเสร็จ
(4) หลังจากอัปโหลดโค้ดเรียบร้อย บอร์ด KidBright จะทำงานทันที ทดลองใช้มือบังแสงที่ตกกระทบตัวตรวจจับแสงบนบอร์ด
บอร์ด KidBright แสดงระดับของความเข้มแสงที่ตรวจจับได้โดยมีค่า 0 ถึง 100 ค่าที่แสดงยิ่งมากเมื่อตรวจจับแสงได้มาก
ตัวอย่างที่ 2 ทดสอบอ่านค่าจากวงจรตรวจจับอุณหภูมิ
ในตัวอย่างนี้นำเสนอการสร้างโค้ดอ่านค่าอุณหภูมิจากวงจรตรวจจับอุณหภูมิบนบอร์ด KidBright เพื่อนำมาแสดงที่ส่วนแสดงผล LED 16 x 8 จุด โดยแสดงเป็นค่าอุณหภูมิในหน่วยองศาเซลเซียส ความละเอียดทศนิยม 1 ตำแหน่ง
ขั้นตอนปฏิบัติการ
(1) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(2) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 2-1 บันทึกไฟล์ชื่อ KBi-TempRead.mby
(3) อัปโหลดโค้ดไปยังบอร์ด KidBright ด้วยการคลิกปุ่ม Upload รอจนกระทั่งอัปโหลดเสร็จ
(4) หลังจากอัปโหลดโค้ดเรียบร้อย บอร์ด KidBright จะทำงานทันที ทดลองใช้นิ้วสัมผัสที่ตัวตรวจจับอุณหภูมิของบอร์ด
บอร์ด KidBright แสดงค่าอุณหภูมิเพิ่มขึ้นสูงขึ้น เมื่อมีการให้ความร้อนแก่ตัวตรวจจับอุณหภูมิด้วยนิ้ว และลดลงเมื่อนำนิ้วออกหรือเป่าลมไปยังตัวตรวจจับอุณหภูมิ
ตัวอย่างที่ 3 ทดสอบการใช้งานพอร์ตเอาต์พุตของ KidBright (สำหรับ KidBright 1.5 ขึ้นไป)
บอร์ด KidBright 1.5 ขึ้นไป (ทั้ง V1.5i หรือ 32i และ V1.6) มีพอร์ตเอาต์พุตที่ต่อมายังขั้วต่อแบบ JST 3ขาสีแดง 2 ขาคือ OUT1 (ขาพอร์ต 26) และ OUT2 (ขาพอร์ต 27)
ขั้นตอนปฏิบัติการ
(1) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(2) นำมินิบอร์ด ZX-LED มาต่อที่พอร์ต OUT1 ดังรูปที่ 3-1
(3) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 3-1 บันทึกไฟล์ชื่อ KBi-BlinkLED.mby
(4) อัปโหลดโค้ดไปยังบอร์ด KidBright 1.5i ด้วยการคลิกปุ่ม Upload รอจนกระทั่งอัปโหลดเสร็จ
(5) หลังจากอัปโหลดโค้ดเรียบร้อย บอร์ด KidBright จะทำงานทันที ดูผลการทำงานที่มินิบอร์ด ZX-LED
LED บน ZX-LED ที่ต่อเข้ากับพอร์ต OUT1 ติดกะพริบทุกๆ 0.5 วินาที
ตัวอย่างที่ 4 ทดสอบการใช้งานพอร์ตอินพุตเอาต์พุต (สำหรับ KidBright 1.5 ขึ้นไป)
ในหัวข้อนี้เป็นตัวอย่างการติดต่ออุปกรณ์ภายนอกของ KidBright V1.5 ขึ้นไปกับพอร์ตเอาต์พุตดิจิทัลคือ OUT1 กับขาพอร์ตอินพุตดิจิทัล IN1 โดยต่อมินิบอร์ด ZX-LED เข้าที่พอร์ต OUT1 และมินิบอร์ดสวิตช์ ZX-BUTTON เข้าที่พอร์ต IN1 ดังรูปที่ 4-1
ขั้นตอนปฏิบัติการ
(1) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(2) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 4-1 บันทึกไฟล์ชื่อ KBi-InOut.mby
(3) อัปโหลดโค้ดไปยังบอร์ด KidBright
(4) หลังจากอัปโหลด บอร์ด KidBright จะทำงานทันที ทดลองกดสวิตช์แล้วปล่อย ดูผลการทำงาน
เมื่อโปรแกรมทำงาน KidBright จะรอการกดสวิตช์ที่พอร์ต IN1
เมื่อเกิดการกดสวิตช์ทำให้สถานะลอจิกเป็น “0” เงื่อนไขการตรวจสอบจึงเป็นจริง KidBright จะส่งสัญญาณลอจิก “1” ไปยังพอร์ต OUT1 ทำให้ LED ที่ต่ออยู่ติดสว่าง
เมื่อปล่อยสวิตช์ทำให้สถานะลอจิกเป็น “1” เงื่อนไขการตรวจสอบเป็นเท็จ KidBright จะส่งสัญญาณลอจิก “0” ไปยังพอร์ต OUT1 ทำให้ LED ที่ต่ออยู่ดับ
ตัวอย่างที่ 5 ทดสอบการใช้งานพอร์ตอินพุตแอะนาล็อก (สำหรับ KidBright 1.5 ขึ้นไป)
KidBright V1.5 ขึ้นไป มีพอร์ตอินพุตรับสัญญาณแอะนาล็อกที่เป็นจุดต่อแบบ JST รวม 4 ช่อง คือ IN1 (ขาพอร์ต 32), IN2 (ขาพอร์ต 33), IN3 (ขาพอร์ต 34) และ IN4 (ขาพอร์ต 35) รองรับแรงดันไฟตรงในย่าน 0 ถึง +3.3V ในการทดสอบนี้ทำการต่อมินิบอร์ดวงจรตัวต้านทานปรับค่าได้ ZX-POTV ที่ขาพอร์ต IN1 ดังรูปที่ 5-1
ขั้นตอนปฏิบัติการ
(1) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(2) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 5-1 บันทึกไฟล์ชื่อ KBi-AnalogTest.mby
(3) อัปโหลดโค้ดไปยังบอร์ด KidBright ด้วยการคลิกปุ่ม Upload
(4) หลังจากอัปโหลดโค้ดเรียบร้อย บอร์ด KidBright จะทำงานทันที
ส่วนแสดงผล LED 16 x 8 จุดบนบอร์ด KidBright แสดงข้อความ ADC test เลื่อนจากขวามาซ้าย เพื่อแจ้งการทำงานของโปรแกรมในบอร์ด KidBright
(5) หมุนแกนของตัวต้านทานปรับค่าได้บนมินิบอร์ด ZX-POTV สังเกตการณ์ทำงานที่ส่วนแสดงผล LED 16 x 8 จุดบนบอร์ด KidBright
เมื่อหมุนแกนของตัวต้านทานมาทางซ้ายมือสุด อ่านค่าได้ 0
เมื่อหมุนแกนของตัวต้านทานมาทางขวามือสุด อ่านค่าได้ 4095
เมื่อหมุนไปทางขวามือค่าที่อ่านได้จะเพิ่มขึ้น เมื่อหมุนไปทางซ้ายมือค่าที่อ่านได้จะลดลง
ตัวอย่างที่ 6 การใช้งาน Real Time Clock (RTC)
ใน microBlock IDE ได้จัดทำบล็อกคำสั่งสำหรับใช้งานวงจรฐานเวลานาฬิกาจริงหรือรีลไทม์คล็อก (Real-time Clock : RTC) ของบอร์ด KidBright อยู่ในแถบคำสั่ง RTC มีบล็อกคำสั่งที่เกี่ยวข้องทั้งหมด 8 บล็อก
โดยบล็อกแรก RTC Set date and time ใช้ตั้งค่าวันเวลาของ RTC โดยกำหนดค่าวันเวลาอีก 6 ตัว คือ ค่าชั่วโมง นาที วินาที วันที่ เดือน ปี ตามลำดับ
ส่วนอีก 7 บล็อกถัดมาคือบล็อกอ่านค่าของวันและเวลา ประกอบด้วย ชั่วโมง นาที วินาที ไมโครวินาที วัน เดือน และ ปี ตามลำดับ
หลังจากตั้งค่าวันเวลาให้กับ RTC แล้ว เวลาของระบบจะเดินต่อเองอัตโนมัติ
6.1 ทดสอบการตั้งค่าเวลาของ RTC
การใช้งานวงจร RTC ทำได้ง่าย เริ่มต้นให้ใช้บล็อก RTC Set date and time เพื่อตั้งเวลา เมื่อตั้งเวลาเสร็จแล้ว ต้องการอ่านค่าเวลาในส่วนใด ก็ใช้บล็อกอ่านค่าเพื่อแสดงผลหรือใช้เป็นข้อมูลสำหรับกำหนดเงื่อนไขของการทำงานก็ได้
ขั้นตอนปฏิบัติการ
(1) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(2) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 6-1 ทำการกำหนดวันเวลาที่ตรงกับวันที่ทำการทดลอง จากนั้นบันทึกไฟล์ชื่อ KBi-RTCset.mby
(3) อัปโหลดโค้ดไปยังบอร์ด KidBright ด้วยการคลิกปุ่ม Upload
(4) หลังจากอัปโหลดโค้ดเรียบร้อย บอร์ด KidBright จะทำงานเมื่อมีการกดสวิตช์ S1
เมื่อกดสวิตช์ S1 บนบอร์ด KidBright โปรแกรมจะทำการตั้งค่า RTC ตรงกับที่ได้ทำการโปรแกรมไว้ พร้อมแสดงข้อความ RTC set บน LED 16 x 8 จุดของบอร์ด KIdBright เมื่อแจ้งการตั้งค่าเวลา
6.2 ทดสอบการการแสดงเวลาจากRTC แสดงผลที่ LED 16×8 จุด
หลังจากทำการตั้งเวลาให้กับ RTC แล้ว ผู้พัฒนาโปรแกรมสามารถเลือกได้ว่า จะแสดงค่าของเวลา ชั่วโมง นาที วินาที ไมโครวินาที วัน เดือน ปี ที่ส่วนแสดงผล LED 16 x 8 จุดของบอร์ด KidBright ในตัวอย่างนี้เลือกแสดงค่า ชั่วโมง และ นาที เพื่อแสดงเวลาให้เหมือนกับนาฬิกาดิจิติอล
ขั้นตอนปฏิบัติการ
(1) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(2) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 6-2 บันทึกไฟล์ชื่อ KBi-RTCshow.mby
(3) อัปโหลดโค้ดไปยังบอร์ด KidBright 1.5i ด้วยการคลิกปุ่ม Upload
(4) หลังจากอัปโหลดโค้ดเรียบร้อย บอร์ด KidBright จะทำงานทันที
ส่วนแสดงผล LED 16 x 8 จุดบนบอร์ด KidBright แสดงเวลาในรูปแบบนาฬิกาดิจิตอล โดยกำหนดให้ LED ฝั่งซ้ายแสดงค่าชั่วโมงและ LED ฝั่งขวาแสดงค่านาที
ตัวอย่างที่ 7 ทดสอบการอ่านค่าอุณหภูมิและความชื้นสัมพัทธ์จากตัวตรวจจับ DHT11 (สำหรับ KidBright 1.5 ขึ้นไป)
ตัวอย่างนี้เป็นการวัดค่าอุณหภูมิและความชื้นสัมพัทธ์ด้วยตัวตรวจจับ DHT11 แล้วนำค่ามาแสดงที่ส่วนแสดงผล LED 16 x 8 จุดบนบอร์ด KidBright V1.5 ขึ้นไป โดยแสดงเป็นค่าอุณหภูมิในหน่วยองศาเซลเซียส ส่วนค่าความชื้นสัมพัทธ์มีหน่วยเป็น %RH
ขั้นตอนปฏิบัติการ
(1) นำ DHT11 ต่อกับขา IN1 หรือขาพอร์ต 32 ของบอร์ด KidBright ดังรูปที่ 7-1
(2) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(3) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 7-1 บันทึกไฟล์ชื่อ KBi-DHT11.mby
(4) อัปโหลดโค้ดไปยังบอร์ด KidBright ด้วยการคลิกปุ่ม Upload
(5) หลังจากอัปโหลดโค้ดเรียบร้อย บอร์ด KidBright ทำงานทันที ดูผลการทำงานที่ส่วนแสดงผล LED
บอร์ด KidBright นำค่าอุณหภูมิและค่าความชื้นสัมพัทธ์ที่อ่านได้จาก DHT11 มาแสดงที่ส่วนแสดงผล LED 16 x 8 จุด โดยแสดงค่าอุณหภูมิ 1 วินาทีสลับกับค่าความชื้นสัมพัทธ์ 1 วินาที
ตัวอย่างที่ 8 ทดสอบการใช้งาน KSERVO-360J เซอร์โวมอเตอร์แบบหมุนรอบตัว (สำหรับ KidBright 1.5 ขึ้นไป)
KSERVO-360 และ 360J เป็นเซอร์โวมอเตอร์ชนิดพิเศษที่ปรับแต่งกลไกภายในให้แกนหมุนสามารถหมุนรอบตัวได้ (360 องศา) จึงนำไปใช้แทนมอเตอร์กระแสตรงได้ทันที โดยไม่ต้องต่อวงจรขับภายนอก ดังนั้นผู้พัฒนาสามารถควบคุมทิศทางและความเร็วได้โดยใช้สายสัญญาณเพียงเส้นเดียว
บอร์ด KidBright V1.5 ขึ้นไป รวมทั้ง KidBright32i สามารถขับเซอร์โวมอเตอร์ KSERVO-360 ผ่านพอร์ต SERVO1 และ SERVO2 โดยต้องใช้แยกไฟเลี้ยง แต่ในตัวอย่างนี้จะใช้เซอร์โวมอเตอร์รุ่น KSERVO-360J ต่อเข้าที่พอร์ต OUT1 โดยไม่ต้องแยกไฟเลี้ยง อาจใช้เพาเวอร์แบงก์หรือแหล่งจ่ายไฟ +5V จ่ายให้กับ KidBright ที่จุดต่อ microUSB หลังจากอัปโหลดโปรแกรมแล้ว
การขับเซอร์โวมอเตอร์รุ่น KSERVO-360J ให้ทำการกำหนดค่ามุมในหน่วยองศาเพื่อกำหนดทิศทางและความเร็วในการหมุนแกนดังนี้
ค่าองศาที่กำหนด | ทิศทางการหมุน | ความเร็ว % |
---|---|---|
89 – 0 | หมุนตามเข็มนาฬิกา | 0 ถึง 100 |
90 | หยุดนิ่ง | 0 |
91 – 180 | หมุนทวนเข็มนาฬิกา | 0 ถึง 100 |
ขั้นตอนปฏิบัติการ
(1) นำเซอร์โวมอเตอร์ KSERVO-360J ต่อกับขา OUT1 หรือพอร์ต 26 ดังรูปที่ 8-1
(2) เชื่อมต่อบอร์ด KidBright กับคอมพิวเตอร์
(3) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 8-1 บันทึกไฟล์ชื่อ KBi-KSERVO.mby
(4) อัปโหลดโค้ดไปยังบอร์ด KidBright ด้วยการคลิกปุ่ม Upload
(5) บอร์ด KidBright จะรอทำงานจากการกดสวิตช์ S1 และ S2 บนบอร์ดKidBright
เมื่อกดปุ่ม S1 เซอร์โวมอเตอร์ KSERVO-360J หมุนทวนเข็มนาฬิกาด้วยความเร็ว 100%
เมื่อกดปุ่ม S2 เซอร์โวมอเตอร์ KSERVO-360J หมุนตามเข็มนาฬิกาด้วยความเร็ว 100%
เมื่อไม่มีการกดปุ่มใดๆ เซอร์โวมอเตอร์ KSERVO-360J จะหยุดนิ่ง
ตัวอย่างที่ 9 ขยายความสามารถในการเชื่อมต่ออุปกรณ์อินพุตเอาต์พุตของ KidBright
บอร์ด KidBright มีพอร์ตต่ออินพุตเอาต์พุตสำหรับเชื่อมต่ออุปกรณ์ภายนอกจำนวนหนึ่ง เพื่อให้นำไปต่อยอดสร้างโครงงานได้หลากหลายจึงนำมาใช้งานร่วมกับ iKB-1 บอร์ดขยายพอร์ตอินพุตเอาต์พุตและขับมอเตอร์ผ่านบัส I2C ทำให้บอร์ด KidBright (ทุกเวอร์ชัน) ทำงานกับอุปกรณ์อินพุตเอาต์พุตได้มากขึ้น ขับมอเตอร์ไฟตรงได้ 2 ตัวและขับเซอร์โวมอเตอร์ได้ 6 ตัว บอร์ด KidBright มีจุดเชื่อมต่ออุปกรณ์ภายนอกแบบ I2C อยู่ 1 ช่อง คือ แบบ KB chain ที่มี 5 ขา จึงใช้สาย KB-CHAIN เชื่อมต่อกับบอร์ด iKB-1 ได้โดยตรง ดังรูปที่ 9-1
การเพิ่ม Extension สำหรับบอร์ด iKB-1
ในการใช้งานกับบอร์ด iKB-1 ของบอร์ด KidBright จะต้องติดตั้งบล็อกคำสัง่เพิ่มเติมหรือ Extension ตามขั้นตอนต่อไปนี้
(1) คลิกที่ปุ่ม Extension
(2) เลื่อนหา Extension ของบอร์ด iKB-1 จากนั้นคลิกที่ Install เมื่อเสร็จแล้วคลิกปุ่ม Close
(3) ปรากฎแถบคำสั่งของ iKB-1
ทดสอบการใช้งานระหว่างบอร์ด KidBright 1.5i กับ iKB-1
ขั้นตอนปฏิบัติการ
(1) นำสาย KB-CHAIN ต่อระหว่างบอร์ด KidBright กับ iKB-1 ผ่านจุดต่อ KB-CHAIN
(2) นำมินิบอร์ด ZX-LED ต่อกับพอร์ต 0 บนบอร์ด iKB-1 ดังรูปที่ 9-2
(3) เปิดโปรแกรม microBlock IDE สร้างโค้ดตามโปรแกรมที่ 9-1 บันทึกไฟล์ชื่อ KBi-Blink on iKB-1.mby
(4) อัปโหลดโค้ดไปยังบอร์ด KidBright ด้วยการคลิกปุ่ม Upload
(5) หลังจากอัปโหลดโค้ด บอร์ด KidBright จะทำงานทันที ดูผลการทำงานที่มินิบอร์ด ZX-LED
LED บน ZX-LED ที่ต่อเข้ากับพอร์ต 0 บนบอร์ด iKB-1 ติดกะพริบทุกๆ 1 วินาที
อ่านบทความนี้ในรูปแบบ PDF : microBlockIDE_BasicLab
บทความนี้จัดทำโดย ธนโชติ ศรีภักดี ถือลิขสิทธิ์โดย บริษัท อินโนเวตีฟ เอ็กเพอริเมนต์ จำกัด (INEX) อนุญาตให้เผยแพร่บนเว็บไซต์ microBlock การทำซ้ำ ดัดแปลง เผยแพร่ส่วนใดส่วนหนึ่งหรือทั้งหมดของบทความนี้ จำเป็นต้องได้รับอนุญาตจาก บริษัท อินโนเวตีฟ เอ็กเพอริเมนต์ จำกัด (INEX) ก่อน ติดต่อ INEX |