สวัสดีผู้อ่านทุกท่าน Blog นี้ถือว่าเป็นงานชิ้นแรกเลยที่ทำไว้เพื่อเก็บข้อมูลให้ตัวเองและอาจจะเป็นประโยชน์สำหรับเด็ก ๆ หรือผู้ที่ไม่เคยเล่นอะไรอย่างงี้มาก่อนและอยากเรียนรู้ว่ามันคืออะไร ต้องออกตัวก่อนเลยว่าเราก็ไม่ได้เป็นคนเชี่ยวชาญอะไรมากมาย เริ่มรู้จักพวกบอร์ดไมโครคอนโทรลเลอร์มาแค่ไม่กี่ปี เริ่มหยิบมันมาดูเพราะอยากรู้ว่ามันอะไรยังไงเนี่ย ส่วนหนึ่งเพราะคิดว่าไม่เรียนรู้ไม่ได้แล้วเทคโนโลยีก็ไปเร็วไปไวเหลือเกิน ส่วนจะถามใครก็ไม่ได้ก็เลยต้องลองเรียนรู้เองนี่แหละ Blog นี้เลยตั้งใจให้ผู้อ่านได้เห็นการใช้งาน KidBright อย่างง่าย ๆ ในมุมที่คนที่เป็นผู้ใช้งานอย่างเราเริ่มทำความคุ้นเคยกะสิ่งนี้
เมื่อครั้งเริ่มต้นจากศูนย์ ไม่รู้อะไรก็หยิบบอร์ดไปเรื่อยมาเล่นเริ่มที่ Microbit บอร์ดน่ารัก ๆ ที่ใคร ๆ ก็ว่าเล่นง่ายที่สุดขนาดเด็กประถมที่อังกฤษยังเล่นเป็น (แต่เราว่ายากอะ นั่งอ่าน tutorial ของ BBC ยังงง) ตามมาที่ Arduino หรือ บอร์ดของค่ายไทยอย่าง ATX และ iduino ของ Inex บอร์ดตระกูล Arduino ที่สามารถโหลด library หรือโปรแกรมที่มีคนเขียนไว้มาแก้ไขได้มากมาย ล่าสุดสักเกือบสองปีที่แล้วได้มาเจอกับบอร์ด KidBright v1.3 ซึ่งได้รับมาจาก เนคเทค (สวทช.) ส่งให้โรงเรียนทั่วประเทศได้ใช้งานกันฟรี ๆ อันนี้คือดีงามมาก
ที่มา doc.inex.co.th ที่มา microbit.org
เมื่อได้โอกาสก็เริ่มต้นทดลองเล่นดูยังอดเปรียบเทียบบอร์ด KidBright กะ Microbit ไม่ได้ บอร์ดทั้งสองมีปุ่มให้กดและมีหน้าจอแสดงผลมาให้ และสังเกตได้เลยว่า KidBright มีขนาดใหญ่กว่ากันเยอะก็เพราะข้อดีคือ KidBright มีช่องไว้เสียบแจ๊คกะช่องบัดกรีพินรับสัญญาณอินพุตและส่งสัญญาณเอาท์พุตเพื่อต่อกับเซ็นเซอร์และอุปกรณ์ภายนอกได้เลย แถมยังมีพอร์ต I2C ที่ขยายการเชื่อมต่ออุปกรณ์อื่น ๆ ได้อีกในขณะที่บอร์ด Microbit เราต้องซื้อบอร์ดขยายพอร์ตเพิ่มอีกตัว และที่ชอบที่สุดที่ควรต้องพูดถึงคือบอร์ด KidBright เชื่อมต่อ Bluetooth และ WiFi ได้นะ เอามาทำงานออนไลน์ IoT ได้ ข้อเสียอย่างเดียวคือสัญญาณอินพุตเอาท์พุตของ KidBright ต้องเป็นดิจิตอลเท่านั้นน่ะสิ ส่วนนี้อึดอัดมากเพราะเซ็นเซอร์ส่วนใหญ่ส่งสัญญาณอนาล็อค แน่นอนมันมีวิธีแก้ไขให้ KidBright สามารถรับสัญญาณอนาล็อคได้แต่ผู้ใช้งานมือใหม่อย่างเราจะรู้ได้อย่างไรหนอได้แต่นั่งเล่นโปรแกรมซิมไปซึมไป รอจนกระทั่งทีมงาน Inex ออกบอร์ดขยายที่เรียกว่า iKB-1 มาช่วยทำให้การนำบอร์ด KidBright ไปใช้ได้ง่ายขึ้นมาก ๆ สามารถต่อเซ็นเซอร์และมอเตอร์ได้ด้วยทำรถหุ่นยนต์วิ่งได้เป็นคัน ๆ เลยทีเดียว
ล่าสุดจาก NECTEC ตั้งแต่เวอร์ชั่น 1.5 เป็นต้นไปบอร์ด KidBright มีพอร์ตอินพุตแบบอนาล็อคมาพร้อมบนบอร์ดแล้ว และมีการออก plugin ให้เพื่อต่อเชื่อมพอร์ต I2C กับบอร์ดที่มีชิป ADS1115 เพื่อใช้เพิ่มจำนวนพอร์ตอินพุตแบบอนาล็อคได้อีกมากมายเหมาะกับการต่อเชื่อมเซ็นเซอร์หลายตัวพร้อมกัน นอกจากนี้ก็มีช่องต่อมอเตอร์เซอร์โวให้อีกสองตัว เอาไว้เขียนไปเรื่อย ๆ แล้วจะมีตัวอย่างการใช้งานให้ดูนะ ตอนนี้ขอยังไม่ลงลึกเรื่องบอร์ดอื่น ๆ ดูเวอร์ชั่น 1.3 เป็นหลักก่อน
สิ่งที่จะเน้นในบทความนี้คือ เมื่อเริ่มต้นจากไม่รู้อะไรเลยเราจะเรียนรู้การใช้งาน KidBright ได้ยังไง ตอบแบบกำปั้นทุบดินคือต้องหยิบมันมาดูซะ แต่วิธีการดูเราต้องดูอย่างเป็นระบบ บอร์ดไมโครคอนโทรลเลอร์พวกนี้มีตุ่มมีช่องมีลายวงจรวุ่นวายน่าปวดหัวไปหมด แต่ทุก ๆ บอร์ดถูกออกแบบให้เป็นสมองกลเสมือน ทำหน้าที่เหมือนกันคือมีการรับข้อมูลเรียกว่าอินพุต คำนวณประมวลผลทำงาน แล้วสั่งการเป็นการส่งสัญญาณเอาท์พุตออกไปอุปกรณ์ภายนอก ให้เราดูภาพด้านล่าง
โดยทั่วไปเรามักวัดค่าอะไร ๆ ในสิ่งแวดล้อมด้วยเซ็นเซอร์ Sensor มาจาก Sense หรือประสาทสัมผัส มนุษย์เรามีสัมผัสรับรู้ที่เราเรียนมาตั้งแต่เด็ก ประสาทสัมผัสทั้ง 5 มี ตา-มองเห็น หู-ได้ยิน จมูก-รับกลิ่น ลิ้น-รับรส ผิวหนัง-สัมผัสลักษณะ เป็นสิ่งที่ทำให้เรารับรู้สภาพแวดล้อมที่เป็นสิ่งเร้าแลัวคิดประมวลผลตัดสินสั่งการให้ร่างกายทำงาน เช่น เมื่อมีแสงจ้าเราจะหลับตา หากได้กลิ่นเหม็นจะรีบปิดจมูก หรือเมื่อสัมผัสของร้อนจะรีบปล่อยมือ เช่นเดียวกันกับระบบควบคุมด้วย KidBright เพียงแต่เราต้องโปรแกรมบอกให้บอร์ดทำงานทีละขั้นตอนเริ่มจากว่าจะอ่านค่าจากเซ็นเซอร์ตัวไหน นำค่าที่ได้มาคำนวณแล้วเปรียบเทียบประมวลผล แล้วจึงส่งสัญญาณออกไปสั่งอุปกรณ์ภายนอกให้ทำงานตามเกณฑ์ที่เรากำหนด การคิดคำนวณและส่งสัญญาณเอาท์พุตเกิดขึ้นที่ชิป ESP32 บน KidBright ส่วนอุปกรณ์รับเอาท์พุตเพื่อทำงานก็จะนำมาต่อเชื่อมภายหลัง ขึ้นอยู่กับว่าอยากให้ทำอะไรส่วนใหญ่ที่ใช้ก็จะเป็น หลอดไปแอลอีดี มอเตอร์ เป็นต้น
บอร์ดเปล่า ๆ ที่ได้มาเค้ามีภาคอินพุตและเอาท์พุตรวมถึงเซ็นเซอร์มาให้แล้วเราแค่ต้องเรียนรู้แยกประเภทมันก่อน ในการใช้งานระดับพื้นฐานให้ดูภาพด้านล่างสีส้มหมายเลข 1-4 เป็นอินพุต ส่วนหมายเลข 5-7 เป็นเอาท์พุต
มาลองไล่ดูกัน
อินพุตหรือภาครับสัญญาณที่ป้อนเข้าสมองกล พอร์ตอินพุตเป็นพอร์ตเปล่าๆ บางพอร์ตของ KidBright ได้ต่อเซ็นเซอร์กะปุ่มกดเอาไว้แล้ว
หมายเลข 1 สวิตช์ S1 และ S2 กดติดปล่อยดับ กดปุ๊บ บอร์ดจะรับรู้ว่ากดปุ่มนะ
หมายเลข 2 เซ็นเซอร์วัดอุณหภูมิ
หมายเลข 3 เซ็นเซอร์วัดความเข้มของแสงที่ระดับ 0 ถึง 100
หมายเลข 4 พอร์ตอินพุต IN1-IN4 รับค่าสัญญาณแบบดิจิตอล
IN1-IN4 นี้เอาเซ็นเซอร์ที่ส่งสัญญาณดิจิตอลมาต่อได้เพิ่มเติมอีก 4 ชนิด รองรับแรงดันไฟฟ้าได้ 0 ถึง 5V
เวลาเราใช้งานที่สมองกลของบอร์ดเราจะสั่งว่าไปอ่านค่าจากอินพุตตัวที่เราต้องการ แล้วหลังจากนั้นสั่งเอาท์พุตที่เชื่อมต่อกับอุปกรณ์ให้ทำงาน เช่นกันกับพอร์ตอินพุต KidBright มีพอร์ตเอาท์พุตว่างไว้ 2 พอร์ต และอีก 2 พอร์ตได้ต่อกับอุปกรณ์แสดงผลและลำโพงเอาไว้
หมายเลข 5 หน้าจอแสดงผลแอลอีดีขนาด 16x8
หมายเลข 6 บัสเซอร์หรือลำโพงใช้สร้างเสียงต่าง ๆ
หมายเลข 7 พอร์ตเอาท์พุต OUT1-OUT2 ส่งสัญญาณดิจิตอล
OUT1-OUT2 ทำงานแบบ Open-drain รองรับการเชื่อมต่อกับอุปกรณ์ที่ใช้กระแสไฟฟ้าไม่เกิน 200mA
เริ่มต้นก็ยังไม่ต้องไปสนใจพอร์ต IN1-IN4 กับ OUT1-OUT2 เอาแค่ทดลองสั่งการให้บอร์ดใช้เซ็นเซอร์ปุ่มกด ร่วมกับอุปกรณ์แสดงผลและบัซเซอร์เป็นอินพุตเอาท์พุตก่อน
มาตอนหน้าจะเริ่มด้วยเตรียมบอร์ดและทดลองสั่งการอะไรง่าย ๆ กันดู