หลังจากทำความรู้จัก Microcontroller น่าสนใจ ATmega328 กันไปแล้ว คราวนี้เราจะมาดูตัวอย่างการนำมาใช้งานกันบ้าง อย่างที่อาจรู้กันมาก่อนหน้านี้แล้วว่า microcontroller เป็น chip ตัวหนึ่ง มีขามากมาย แต่มันยังใช้ไม่ได้ ต้องนำมาต่อร่วมกับอุปกรณ์อย่างอื่น เพื่อช่วยกันทำงาน ในที่นี้จะยกตัวอย่างการนำมาใช้งานในการทำบอร์ดที่ใช้ในการพัฒนา (Development Board) หรือ บอร์ดควบคุม (Controller Board) โดย Development Board ที่ได้รับความนิยมมากตัวหนึ่งคือ Arduino Nano ซึ่งพัฒนาโดย บริษัท Arduino ประเทศอิตาลี แล้วที่ได้รับความนิยมอย่างมากก็น่าจะเป็นเพราะ เค้าทำเป็น Open Hardware คือเปิดเผยรายละเอียดในการทำ Board นี้ และยอมให้คนอื่นทำตามได้ จึงมีหลายบริษัททำตามโดยพยายามทำให้ต้นทุนต่ำออกมามากมาย (Arduino Nano Clone) ทำให้คนทั่วไปสามารถเข้าถึงอุปกรณ์ชนิดนี้ได้ง่ายขึ้น และมีการทำอุปกรณ์มารองรับกับ Arduino Nano ออกมามากมาย ทำให้มีตัวอย่างให้เรียนรู้มากมายใน internet โดยการที่เค้าทำแบบนี้ก็เป็นความตั้งใจที่จะให้คนทั่วไปสามารถเข้าถึงเทคโนโลยีเหล่านี้ได้ง่าย ซึ่งก็ต้องชื่นชมแนวคิดนี้อย่างมาก ทำให้ประชากรโลกที่มีรายได้ไม่มาก มีโอกาสที่จะเข้าถึงความรู้และเทคโนโลยีเหล่านี้ได้ง่ายขึ้น ใครที่อยากใช้ Arduino Nano Clone จากแหล่งผลิตที่เราเข้าถึงได้ ก็ไม่ต้องตะขิดตะขวงใจว่าเราจะไปสนับสนุนใครให้ละเมิดใครหรือเปล่า อย่างไรก็ตาม หากใครมีกำลังพอก็อยากให้ช่วยสนับสนุนสินค้าของ Arduino กันด้วยนะครับ จะได้เป็นกำลังให้กับบริษัทดี ๆ ช่วยกันทำงานเพื่อสังคมต่อไป
เรามาดูกันว่า บอร์ด Arduino Nano นั้นประกอบด้วยอะไรบ้าง
จากรูปจะเห็นว่าบนบอร์ดนั้นมีอุปกรณ์อยู่หลายตัวโดยขอแนะนำตัวสำคัญ ๆ ดังนี้
อุปกรณ์ที่อยู่ด้านบนของบอร์ด Arduino Nano เรียงจากบนลงล่าง
- USB (micro) Port เชื่อมต่อกับ computer หรือแหล่งจ่ายไฟให้กับ board
- ATmega328 นี่คือ microcontroller ที่เราพูดถึงก่อนหน้านี้นี่เอง
- Crystal ทำหน้าที่กำเนิดสัญญาณให้ microcontroller ทำงานได้ตามจังหวะของสัญญาณ
- Switch ทำหน้าที่ reset ตัว microcontroller
- LED แสดงสถานการณ์ทำงาน เรียงจากซ้ายไปขวา
- L: เมื่อมีการใช้งานขา D13 ของ Board
- ON: เมื่อมีไฟจ่ายให้กับ microcontroller
- Rx: เมื่อมีการใช้งานขา Rx (D0) ของ Board ซึ่งเป็นขารับข้อมูลของ UART
- Tx: เมื่อมีการใช้งานขา Tx (D1) ของ Board ซึ่งเป็นขาส่งข้อมูลของ UART
- ICSP (In Circuit Serial Programmer) ทำหน้าที่เป็นจุดเชื่อมต่อกับเครื่อง Programmer สำหรับการโปรแกรม microcontroller (ในกรณีที่ไม่ใช้ หรือไม่มี Bootloader)
อุปกรณ์ที่อยู่ด้านล่างของบอร์ด Arduino Nano เรียงจากบนลงล่าง
- USB to UART ทำหน้าที่เปลี่ยนสัญญาณกลับไปมาระหว่าง USB (ซึ่งเป็นสัญญาณมาจาก computer) และ UART(ซึ่งเป็นสัญญาณจาก microcontroller) ทำให้ computer และ microcontroller สามารถสื่อสารกันได้
- Voltage Regulator ทำหน้าที่แปลงไฟที่ส่งเข้ามาที่ขา Vin ของ board ให้เป็น 5V ก่อนที่จะส่งให้ microcontroller และอุปกรณ์อื่น ๆ
ส่วนตัวเล็ก ๆ อื่น ๆ จะเป็นตัวความต้านทานหรือตัวเก็บประจุซึ่งช่วยให้อุปกรณ์ที่กล่าวมาข้างต้นทำงานร่วมกันได้นั่นเอง
นอกจาก hardware ที่มองเห็นและจับต้องได้แล้ว Arduino Nano ยังมาพร้อมกับ Bootloader ที่ช่วยให้เราโปรแกรม ATmega328 โดยใช้แค่สาย USB เพื่อความสะดวกอีกด้วย
และทั้งหมดนี้ก็คือส่วนประกอบของ controller board ซึ่ง controller หรือ development board ทั่ว ๆ ไปก็จะมีองค์ประกอบพื้นฐานดังที่กล่าวมา หรืออาจน้อยกว่านี้ได้บ้างในกรณีที่ microcontroller บางตัวได้ใส่ความสามารถเหล่านี้รวมเข้าไปอยู่ในตัวของมัน เช่น microcontroller บางตัวก็รวมตัวกำเนิดสัญญาณนาฬิกาเข้าไว้ในตัว ทำให้ไม่จำเป็นต้องใช้ crystal หรือตัวกำเนิดสัญญาณภายนอก หรือ microcontroller บางตัวได้รวมตัวแปลงสัญญาณ USB ไว้ในตัวแล้ว ก็ไม่จำเป็นต้องต่อภายนอกอีก
หวังว่าท่านผู้อ่านจะได้ไอเดียว่ามีอะไรอยู่บน Development board บ้าง ลองสังเกต Development board อื่นๆ ดูนะครับว่ามีอะไรบ้าง เหมือนหรือแตกต่างจากตัวนี้อย่างไรบ้าง