ตอนนี้เราลองมาจำลองสถานการณ์การใช้งานกัน สมมติใช้เซ็นเซอร์แสงวัดค่าแสงในห้อง ถ้าแสงน้อยให้เปิดไฟ ถ้าแสงมากให้ปิดไฟ ตอนนี้เราจะยังใช้หลอดไฟมาต่อกับบอร์ด เริ่มต้นลองเขียนโปรแกรมว่า ถ้าแสงน้อยให้แสดงผลบนจอแอลอีดีว่า Turn on และถ้าแสงน้อยให้แสดงผลว่า Turn off งานนี้ต้องใช้ if...do...อีกแล้ว ลองดูภาพด้านล่างนะ
จากภาพบล็อกคำสั่งเราต้องการให้จอแอลอีดีแสดงค่าแสงที่วัดได้ รอจนแสดงค่าครบแล้วใช้คำสั่ง if...do...ตรวจสอบค่าแสง ถ้าค่าแสงน้อยกว่า 30% (if Light Level sensor < 30)ให้แอลอีดีแสดงผลว่า "Turn on" (LED 16x8 Scroll "Turn on") นอกเหนือจากนี้ (else) ให้แอลอีดีแสดงผลว่า "Turn off" (LED 16x8 Scroll "Turn off") คำสั่ง Wait LED matrix ready ใช้รอเพื่อให้จอแอลอีดีแสดงผลจนหมดแล้วทำงานต่อไป หากเราเขียนโปรแกรมตามนี้จะได้ผลลัพธ์ตามวิดีโอด้านล่าง
เมื่อเราลองทดสอบแล้วจะเห็นได้ว่าบอร์ดได้ทำงานตามที่เราต้องการไว้เป๊ะทุกอย่างเลย คราวนี้เราจะได้ลองต่อหลอดไฟจริงกันนะ ที่บอร์ดนอกจากจอแสดงผลแอลอีดีเป็นเอาท์พุตตัวหนึ่งแล้ว เราก็ยังมีพอร์ต USB อีกตัวที่เป็นเอาท์พุตที่สามารถจ่ายไฟเลี้ยงขนาด 5V. ให้กับอุปกรณ์ภายนอกได้ (ตามรูปที่วงกลมแดง ๆ ไว้) แต่ต้องระวังอย่าเอาอุปกรณ์ที่กินกระแสสูง ๆ มาใช้กับพอร์ตนี้นะอาจทำให้บอร์ดเสียหายได้ อุปกรณ์ที่กินกระแสต่ำ ๆ ที่ใช้ได้ เช่น ไฟแอลอีดีแบบพกพา หรือพัดลมแบบพกพาแบบที่มีปลั๊กต่อแบบ USB อย่างในรูปเป็นต้น
สำหรับวันนี้ผู้เขียนจะใช้แถบไฟแอลอีดีที่ติดตั้งกับกล่องถ่ายรูปขนาดเล็กนำมาจำลองเป็นห้องห้องหนึ่งในบ้านโดยนำมาต่อเข้ากับพอร์ต USB ตัวนี้ แล้วจะสั่งการผ่านบอร์ดว่าถ้าแสงน้อยให้เปิดไฟ และแสงมากให้ปิดไฟ
ก่อนอื่นเราต้องปรับโปรแกรมเราให้สามารถสั่งการพอร์ต USB ได้ก่อน ให้ไปที่เมนู I/O ในแถบเครื่องมือ ลากบล็อก Write USB status OFF ออกมา 2 บล็อกเลย
จากนั้นสร้างโปรแกรมตามภาพด้านล่าง ในบล็อก Write USB status OFF ตรงที่เป็น OFF สามารถกดเปลี่ยนให้เป็น ON ได้ คำสั่งนี้หมายถึงให้ปิดหรือเปิดการจ่ายกระแสไฟที่พอร์ต USB นั่นเอง
สังเกตว่าโปรแกรมใหม่นี้คล้ายกับตัวเดิมที่เขียนไว้เพียงแต่แทรกบล็อกคำสั่ง Write USB status ON และ Write USB status OFF ให้เปิดและปิดไฟเข้าไปก่อนหน้าการแสดงผลบนจอแอลอีดี บางคนอาจจะสงสัยว่าจะเอาบล็อกคำสั่งนี้ใส่หลังจากบล็อกคำสั่งให้จอแอลอีดีแสดงผลได้ไหม คำตอบคือสามารถทำได้ผลลัพธ์แค่จะมีการเปลี่ยนแปลงลำดับการทำงานของโปรแกรมเพียงเล็กน้อย ลองทำแล้วสังเกตดูนะจ๊ะ ตอนนี้ลองดูผลจากโปรแกรมด้านบนจากวิดีโอนี้ก่อน
โอเคเป็นอย่างไรบ้าง วันนี้เป็นตัวอย่างการต่อใช้งานบอร์ดที่มีการนำข้อมูลจากเซ็นเซอร์มาประมวลผลแล้วสั่งการกับอุปกรณ์ภายนอกเป็นครั้งแรก ซึ่งบอร์ด KidBright ยังสามารถทำอะไรได้อีกเพราะยังมีเอาท์พุตอีกหลายช่อง แต่ทุก ๆ การประยุกต์ใช้มักจะจำแนกส่วนได้เป็นฝั่งอินพุต-บอร์ด-เอาท์พุต เสมอ ถ้าเราค่อย ๆ เริ่มจากพื้นฐานเล็ก ๆ แล้วเติมทีละตัว ๆ ระบบพื้นฐานเราจะมีความซับซ้อนขึ้นได้เอง
ครั้งหน้าเปลี่ยนเป็นอะไรดี อุบไว้ก่อนน้า.....
#Kidbright #Kidbright คืออะไร #Kidbright ทำอะไรได้บ้าง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น