» I/O Blocks – ระบบเครือข่าย I/O แบบกริด


งานชิ้นนี้ได้รับการสนับสนุนภายใต้โครงการ Stanford TLTL Fellow Program (2013)

I/O Blocks เป็นโครงงานที่เกิดขึ้นเพื่อตอบสนองกรณีที่นักออกแบบระบบต้องการเพิ่มขยายจำนวน Input หรือ output เพื่อให้สร้างต้นแบบของโครงงานที่ต้องการได้ในเวลาอันรวดเร็ว I/O Block ประกอบไปด้วยโหนดที่มี Input และ Output จำนวนหนึ่ง นักออกแบบสามารถเชื่อมต่อโหนดเหล่านี้เข้าด้วยกันได้สูงสุด 126 โหนด I/O Blocks ใช้การเชื่อมต่อเครือข่ายแบบกริด โดยมีโหนด Master หนึ่งตัวเป็นตัวจัดการโหนดย่อยที่เหลือ และติดต่อกับคอมพิวเตอร์

IO Blocks

คุณสมบัติ

  1. สามารถเพิ่มโหนดได้สูงสุด 126 ตัว
  2. การเชื่อมต่อเป็นระบบกริด แต่ละโหนดจะได้รับหมายเลขประจำตัวตามพิกัดแกน X และ Y ของตน
  3. สามารถใช้ระบบ Hot Plug ได้ คือสามารถเพิ่มหรือถอดโหนดออกจากเครือข่ายได้โดยไม่ต้องรีเซ็ทระบบ
  4. แต่ละโหนดผู้ใช้สามารถตั้งชื่อได้ เพื่อใช้ระบุโหนดในระดับ Application ในภายหลัง (ดูตัวอย่าง Word Game ด้านล่าง)
  5. แต่ละโหนดมี Output และ input ซึ่งรับค่าเซ็นเซอร์แบบอนาลอกได้ รวมทั้งสามารถต่อ Rotary Encoder ได้
  6. Master สามารถค้นหาโหนดที่เชื่อมต่ออยู่ได้ และสามารถสั่งงาน I/O ของแต่ละโหนดได้
  7. Master สามารถรับคำสั่งจากคอมพิวเตอร์เพื่อควบคุมโหนดต่างๆ ได้

ตัวอย่างการใช้งาน

As I Want You to Understand – ระบบแสดงผลไฟแขวนขนาดใหญ่

โครงงานเชิงศิลปะประยุกต์นี้ประกอบไปด้วยไฟแขวนที่บรรจุหลอดไฟปิงปองสีแดงไว้ 560 ดวง แบ่งเป็น 7×5 ชุดสามารถใช้แสดงผลและรูปลายต่างๆ ได้ตามที่ศิลปินจะกำหนด จุดเด่นของโครงงานอยู่ที่ความร้อนจากหลอดไฟเมื่อติดทั้งหมดซึ่งจะมีกำลังถึง 5,600 วัตต์

I/O Blocks ถูกนำมาใช้ควบคุมการติดดับของไฟ โดยใช้ทั้งหมด 7 โหนด คุมไฟโหนดละ 5 ชุด เมื่อต่อเชื่อมแล้วสามารถเริ่มควบคุมระบบไฟได้ทันที

Word Game – เกมเรียงอักษร

ในเกมสำหรับเด็กนี้ผู้เล่นจะต้องสะกดคำตามที่กำหนด เช่นเมื่อเห็นภาพแมวก็ให้สะกดออกมาว่า CAT โดย I/O Blocks แต่ละโหนดจะมีอักษรติดไว้โหนดละหนึ่งตัว และชื่อของโหนดจะถูกตั้งตามอักษรนั้นๆ เมื่อผู้เล่นต่อโหลดสามโหนดโดยเรียงลำดับเป็น C, A, และ T ถูกต้อง ระบบก็จะแจ้งว่าสำเร็จ

Robo Blocks – ระบบเขียนโปรแกรมควบคุมหุ่นยนต์แบบจับต้องได้

ในตัวอย่างนี้ผู้ใช้จะนำ I/O Blocks มาเรียงต่อกันเพื่อควบคุมการเคลื่อนที่ของรถหุ่นยนต์ โดยแต่ละโหนดจะมีคำสั่ง เช่น เดินหน้า, ถอยหลัง, เลี้ยวซ้าย, เลี้ยวขวา เมื่อต่อโหนดเข้าด้วยกันจนพอใจแล้วระบบก็จะส่งคำสั่งไปยังรถหุ่นยนต์ตามลำดับที่ต่อไว้ ผู้เล่นอาจได้รับโจทย์ให้นำรถฝ่าเขาวงกตและจะต้องควบคุมรถให้เคลื่อนที่ไปตามเส้นทางที่กำหนดจนกว่าจะถึงจุดหมาย

โครงสร้างทางเทคนิคของเครือข่าย

เพื่อให้สามารถพัฒนาระบบ I/O Blocks ได้อย่างรวดเร็ว เราใช้ระบบบัส I2C เป็นพื้นฐาน ซึ่งไมโครคอนโทรเลอร์ตระกูล PIC ที่ใช้ในโครงงานนี้มีความสามารถในระบบฮาร์ดแวร์สำหรับจัดการระบบบัสนี้อยู่แล้ว ซึ่งช่วยให้ทีมงานไม่ต้องสร้างระบบพื้นฐานของเครือข่ายขึ้นเอง เช่น การกำหนดที่อยู่ของโหนด การส่งข้อมูลไปยังโหนดที่ต้องการ การตอบรับสัญญาณ (Acknowledgement) การตรวจสอบข้อผิดพลาดในระบบเครือข่าย ความสามารถเหล่านี้ใช้ของระบบบัส I2C ทั้งหมด

อย่างไรก็ดีระบบบัส I2C ขาดความสามารถที่สำคัญไปคือ การตรวสอบลำดับการเชื่อมต่อของโหนดในเครือข่าย เนื่องจากระบบ I/O Blocks ต้องการตรวจสอบว่าโหนดใดต่ออยู่ก่อนหรือหลังโหนดอื่น ทีมจึงต้องออกแบบเพิ่มสวิทมอสเฟตเข้าไปในแต่ละโหนดเพื่อให้สามารถเปิดหรือปิดบัสส่วนที่อยู่ถัดไปจากโหนดตนเองได้ ในช่วงเวลาของการค้นหาโครงสร้างของเครือข่าย Master จะส่งบรอดคาสออกมา เมื่อโหนดที่อยู่ใกล้ที่สุดตอบสนองบรอดคาสนี้แล้ว มันก็จะเปิดสวิทเพื่อเชื่อมต่อโหนดที่อยู่ถัดไปเข้ากับเครือข่าย ดังนั้นเมื่อ Master ทำการบรอดคาสครั้งต่อไปโหนดที่อยู่ถัดไปนี้ก็จะสามารถตอบสนองได้ และตัวมันเองก็จะเปิดสวิทเพื่อให้โหนดที่อยู่ในลำดับถัดไปเชื่อมเข้ามา ทำอย่างนี้วนซ้ำไปเรื่อยๆ จนไม่พบโหนดใหม่เพิ่มเติม

ทีมพัฒนา

No results.

อาจารย์ที่ปรึกษา

No results.