ลองเล่น Arduino 101: บอร์ด Arduino ที่เริ่มต้นได้มากกว่าไฟกระพริบ

by lew
17 April 2016 - 19:07

บอร์ด Arduino 101 หรือชื่อทางการค้านอกสหรัฐฯ คือ Genuino 101 เปิดตัวมาตั้งแต่ช่วงปลายปีที่แล้วและเพิ่งทำตลาดจริงจังไม่กี่เดือนที่ผ่านมา เมื่อสองสัปดาห์ก่อนทางอินเทลก็ส่งบอร์ดตัวนี้มาให้ผมทดลองใช้งาน ผมได้ลองใช้งานมาระยะหนึ่งแล้วก็ถึงเวลามารายงานผลกัน

รูปร่างภายนอก

รูปร่างภายนอกของ Arduino 101 ไม่มีความต่างใดๆ กับ Arduino รุ่นก่อนๆ แม้ชิปจะวางผิดตำแหน่งไปบ้าง ถ้าใครทำฮาร์ดแวร์หรือกล่องสำหรับอุปกรณ์รุ่นก่อนๆ เอาไว้ก็มีโอกาสสูงว่าจะสามารถใช้ 101 เข้าไปแทนที่ได้เลย อันนี้ต้องยอมรับว่าอินเทลและ Arduino ดูตั้งใจทำดี

Arduino IDE

Arduino 101 เป็นบอร์ด x86 ตัวที่สองที่ Arduino รองรับหลังจาก Intel Galileo (ซึ่งต่างกันมาก เพราะ Galileo เป็นลินุกซ์เพียงแต่แปลงโค้ด Arduino ขึ้นไปรัน) แม้จะบอกว่ารองรับแล้วก็ตามแต่ที่ตัว Arduino เองก็ยังมาพร้อมพับคอมไพล์เลอร์สำหรับชิปตระกูล AVR เป็นหลัก ชิป x86 จะต้องดาวน์โหลดซอฟต์แวร์เพิ่มเติมมาเอง โดยเข้าเมนู Tools > Board > Boards Manager แล้วเลือกติดตั้งโมดูล Intel Curie Boards ซึ่งตอนนี้ยังมีเฉพาะ Arduino 101 เท่านั้น

หลังจากติดตั้งเสร็จแล้วก็สามารถคอมไพล์และรันซอฟต์แวร์ Arduino ได้ทันที เช่น ตัวอย่างยอดฮิตอย่างไฟกระพริบก็สามารถรันได้ (LED บนบอร์ด 101 ขนาดเล็กมาก บางคนอาจจะนึกว่าตัด LED ทิ้ง)

ความแตกต่างอย่างหนึ่งคือกระบวนการอัพโหลดซอฟต์แวร์ที่ผมพบว่าต้องกดปุ่ม Master Reset หลังจากสั่งอัพโหลดทุกครั้ง ต่างจากบอร์ด Arduino อื่นที่เคยใช้ ที่มักกดอัพโหลดได้เลย

เซ็นเซอร์ในตัว

จุดเด่นสำคัญของ Arduino 101 คือตัว Curie นั้นมี accelerometer และ gyroscope มาให้ในตัว ทำให้เราสามารถเล่นอะไรกับบอร์ดนี้โดยไม่ต้องติดอุปกรณ์เสริมได้ทันที ไลบรารี CurieIMU เปิดให้เราเข้าถึงเซ็นเซอร์เหล่านี้ได้อย่างน่าสนใจ มันมีตั้งแต่ฟังก์ชั่นง่ายๆ เช่นการดึงค่าจาก accelerometer มาตรงๆ ด้วยฟังก์ชั่น readAccelerometer จากตัวอย่าง Accelerometer ที่ทำให้เราพล็อตกราฟทิศทางของบอร์ดออกมาได้ง่ายๆ (ผมใช้บน Ubuntu 15.10 มีปัญหา serial หลุดๆ ทำให้พล็อตกราฟไม่ได้แม้จะอ่านค่าได้บ้าง อาจจะต้องลองบนวินโดวส์อีกที)

นอกจากนี้ CurieIMU ยังให้ฟังก์ชั่นระดับสูง สามารถตรวจสอบการเคลื่อนไหวที่ง่ายๆ โดยไม่ต้องเขียนโปรแกรมเอง ได้แก่ นับก้าว, ถูกเคาะ (tap), เคาะสองครั้ง (double tab), กระแทก, ตกอิสระ รวมถึงในตัวเซ็นเซอร์ยังมีเซ็นเซอร์อุณหภูมิมาให้ในตัว ผมเองไม่เคยเห็นอินเทลโฆษณาส่วนนี้ แต่เพิ่งมาเห็นลองเล่นและเห็นในไลบรารี

เซ็นเซอร์ในตัวเช่นนี้และไลบรารีระดับสูงที่ให้มา ทำให้เราสามารถเล่นอะไรกับ Arduino 101 ได้โดยไม่ต้องติดเซ็นเซอร์เพิ่มแม้แต่น้อย เช่นการทำเครื่องนับก้าว, เซ็นเซอร์เอาไว้ดูว่าของที่เราส่งไปไกลๆ กระแทกหรือถูกโยนกี่ครั้ง ฯลฯ ในแง่การศึกษาเราน่าจะใช้ Arduino 101 สอนเด็กๆ ได้หลายบทให้เข้าถึงเซ็นเซอร์พื้นฐานโดยยังไม่ต้องต่อวงจรเลย

Bluetooth LE

อีกจุดเด่นของ Arduino 101 คือมันมี Bluetooth LE มาในตัวทำให้ สามารถเชื่อมต่อกับโทรศัพท์มือถือได้โดยง่าย เอกสารของ Arduino เองแนะนำให้ติดตั้งแอปพลิเคชั่น เช่น nRF Toolbox for BLE และ nRF Master Control Panel เพื่อเล่นกับ Bluetooth LE บนตัว Arduino 101 ได้โดยไม่ต้องพัฒนาแอปพลิเคชั่นเอง ฟังก์ชั่นการทำงานพื้นๆ เช่นการเปิดปิดไฟบนบอร์ด Arduino 101 ผ่าน Master Control ยังดูยุ่งยากเล็กน้อย (ต้องเลือกชนิดข้อมูลที่จะส่งกลับเอง) แต่ก็เป็นจุดเริ่มต้นที่ไม่ยากเกินไปนัก การพัฒนาแอปพลิเคชั่นระดับสูงขึ้นเช่นเซ็นเซอร์หัวใจก็มีตัวอย่างให้จากทาง Arduino แม้จะเป็นตัวอย่างหลอกๆ

บทสรุป

จากที่เคยลองเล่นบอร์ด Arduino มาบ้างก่อนหน้านี้ ผมมองว่า Arduino 101 เหมาะกับการเริ่มต้นมากกว่าบอร์ดอื่นๆ เพราะมันเล่นได้ "สนุก" กว่า โดยที่ยังไม่ต้องลงมือต่อวงจรที่มักมีปัญหาเยอะและทำให้หลายคนท้อกันไปก่อน เซ็นเซอร์ในตัวช่วยให้คนเห็นภาพได้ง่ายว่าหากมีบอร์ด Arduino แล้วเราจะสามารถทำอะไรได้บ้าง

สำหรับตัว x86 และตัวซีพียู Quark SE ของอินเทลเองก็น่าจะมีศักภาพสูงหากเราต้องทำงานทำงานที่ซับซ้อนขึ้น บอร์ด Arduino 101 เป็นบอร์ดที่โครงการ Zephyr ซัพพอร์ตโดยตรง การพัฒนางานที่มีความซับซ้อน มีหลายแอปพลิเคชั่นทำงานร่วมกันบนบอร์เดียวก็เป็นไปได้ไม่ยากนัก

ตอนนี้ Arduino 101 ยังไม่มีบอร์ดจากผู้ผลิตรายอื่นออกมาทำขายในราคาถูก (ซึ่งเป็นเรื่องที่ทำได้เพราะ Arduino เปิดซอร์สฮาร์ดแวร์) การหาบอร์ด 101 มาใช้จึงยังราคาแพงสักหน่อย แต่สำหรับนักพัฒนาฮาร์ดแวร์แล้วผมมองว่าทุกคนควรมีบอร์ด 101 นี้ติด "โหลดอง" กันเอาไว้ครับ

Blognone Jobs Premium