วันอังคารที่ 1 กันยายน พ.ศ. 2563

ตอนที่ 7 KidBright เปิดปิดไฟได้

    ตอนนี้เราลองมาจำลองสถานการณ์การใช้งานกัน สมมติใช้เซ็นเซอร์แสงวัดค่าแสงในห้อง ถ้าแสงน้อยให้เปิดไฟ ถ้าแสงมากให้ปิดไฟ ตอนนี้เราจะยังใช้หลอดไฟมาต่อกับบอร์ด เริ่มต้นลองเขียนโปรแกรมว่า ถ้าแสงน้อยให้แสดงผลบนจอแอลอีดีว่า 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 ตัวเล็กใช้ต่อกับสายสีเขียวเพื่อเป็นสายต่อไฟเลี้ยงเข้าบอร์ดและสายแฟลชโปรแกรม ส่วนพอร์ต 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 ทำอะไรได้บ้าง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

ตอนที่ 11 KidBright ต่อ Output ควบคุมพัดลมตามเวลาและอุณหภูมิผ่านรีเลย์

     เมื่อเรามีบอร์ดควบคุมอย่าง KidBright และมีรีเลย์พร้อมกับแหล่งจ่ายไฟภายนอกเราก็สามารถควบคุมการทำงานของอุปกรณ์ขนาดใหญ่ขึ้นได้      บอกเสร...