สวัสดีครับ!!! ยินดีต้อนรับเข้าสู่ blog แนะนำโครงงานแขนกลคนพิการของผมนะครับ โครงงานนี้ก็ได้แรงบันดาลใจมาจากการที่ผมได้มีโอกาสพบกับผู้ป่วยอัมพาตระดับ quadriplegia คนหนึ่ง ซึ่งเขาไม่สามารถขยับอวัยวะหรือรับรู้ประสาทสัมผัสใดๆ ที่อยู่ต่ำกว่าหัวไหล่ลงมาได้เลย (สามารถขยับได้แค่หัวไหล่สองข้าง และศีรษะเท่านั้น)
สิ่งที่ทำให้ผมเกิดแรงกระตุ้นคิดโครงงานนี้ขึ้นมาเกิดระหว่างการพูดคุยสนทนากัน โดยเขาก็เล่าความฝันเค้าให้ผมฟังว่าตอนแรกสมัยที่เป็นนักศึกษาก็เรียนด้านบริหาร กำลังจะเรียนจบแล้ว แต่อยู่มาวันหนึ่งรถตู้ที่นั่งกลับบ้านต่างจังหวัดเกิดพลิกคว่ำ ทำให้หลังเขาโดนกระแทกจนกระดูกสันหลังหักและเส้นประสาทส่วนC5 ฉีกขาด.. หลังจากใช้เวลา 1 ปีเต็มในการฝึกหายใจ พูด ขยับศีรษะ เขามีความคิดที่จะเริ่มต้นชีวิตใหม่ ว่าอยากเป็น
"นักเขียน" เพื่อถ่ายทอดเรื่องราว แง่มุมความคิดของตนเองให้กับสังคมผ่านทางหนังสือ.. ซึ่งจริงๆ แล้วโดยส่วนตัวผมเองก็รู้สึกในใจว่า สภาพร่างกายของเค้ามันคงไม่เอื้ออำนวย ต่ออาชีพนักเขียนเสียเท่าไหร่หรอก เพราะลำพังแค่เปิดคอมพิวเตอร์เพื่อพิมพ์ต้นฉบับก็ยังทำไม่ได้ หรือทุกวันเขาก็ต้องพึ่งหาพ่อแม่มาทำกายภาพบำบัดแขนขา... แต่แวบนึงก็คิดว่า แล้วจะเป็นอย่างไร ถ้าผมสามารถสร้างอุปกรณ์อย่างหนึ่งที่มาตอบโจทย์ตรงจุดนี้ให้กับเขา
โดยอาศัยอวัยวะ หรือแหล่งป้อนสัญญาณคำสั่งอื่นๆ ที่เค้ายังหลงเหลืออยู่เพื่อมาควบคุมอุปกรณ์ตัวนี้ และคงจะต้องเป็นระบบควบคุมที่เอื้อต่อสภาพแวดล้อมที่มีผลจากปัจจัยภายนอก(disturbance) น้อยที่สุดเนื่องจากชีวิตปรกติเขาก็ไม่ได้อาศัยในห้องปรับอากาศ รวมถึงราคาต้นทุนเทคโนโลยีที่มีราคาถูก เพื่อให้เหมาะสมค่าครองชีพของประเทศเรา
ด้วยการวิเคราะห์ข้างต้นนี้ ผมเลยเกิดแนวคิดที่จะสร้าง"แขนกลต้นแบบ"และ"ระบบควบคุมแบบใหม่"ซึ่งสามารถตอบโจทย์ของเขาได้ และจะต้องสามารถพัฒนาต่อยอดเพื่อนำไปใช้จริงได้ในเร็วที่สุด ซึ่งผลจากการออกแบบทั้งด้านเครื่องกลและไฟฟ้า เข้าออกช็อปและนั่งบัดกรี และโค้ดโปรแกรมควบคุม ตลอด 5 เดือนของผมจะเป็นอย่างไร.. มาติดตามกันเลยครับ ^^
อย่างที่ได้เรียนไปข้างต้นว่า โปรเจคแขนกลคนพิการนี้ได้แรงบันดาลใจมาจากการที่ผมได้พบกับ"ผู้ป่วยอัมพาต ระดับ C5" .. หลายท่านอาจจะคุ้นๆ ว่าได้เคยเรียนสมัยม.ปลายกับเจ้าคำว่า "C5" ซึ่งแท้จริงแล้วมันก็หมายถึงข้อกระดูกสันหลังของมนุษย์เราครับ โดยในกรณีนี้เอามาใช้กับผู้ป่วยอัมพาต ก็จะเป็นการระบุข้อต่อส่วนที่ได้รับความเสียหายนั่นเอง
อย่างที่เห็นในรูปด้านบนครับ ผู้ป่วยที่กระดูกส่วน C5 เสียหาย จะไม่สามารถรู้สึกหรือสั่งงานอวัยวะส่วนที่อยู่ต่ำกว่าหัวไหล่ลงไปได้เลย ดังนั้นผู้ป่วยจึงขยับได้แค่หัวไหล่สองข้างและศีรษะครับ
หลายท่านอาจจะเริ่มสงสัยแล้วครับว่า ถ้าในเมื่ออวัยวะส่วนบนยังสั่งงานได้ ทำไมผมไม่เลือกใช้ระบบการสั่งงานจาก"เสียงพูด" "สัญญาณไฟฟ้า EMG,EKG" หรือแม้แต่การใช้กล้อง webcam จับการเคลื่อนไหวของศีรษะ เอาล่ะ
คำตอบก็ต้องย้อนกลับขึ้นไปด้านบนครับ ว่าโปรเจคนี้ผมต้องการผลิตระบบควบคุมแบบใหม่ที่มีราคาถูก ทนทานต่อสภาพแวดล้อม และมีผลจากปัจจัยภายนอกน้อย ซึ่งหากใช้การวัดสัญญาณกล้ามเนื้อหรือสมอง ก็จะมีผลในเรื่องของเหงื่อ/ความชื้น และราคาอุปกรณ์ที่สูง ส่วนการใช้กล้องจับภาพศีรษะหรือเสียงพูดก็จะมีปัญหาการปรับแต่ง(calibration) ค่าแสง/เสียง และจำเป็นต้องเชื่อมต่ออุปกรณ์กับคอมพิวเตอร์อยู่ตลอดครับ
ด้วยเหตุนี้เซนเซอร์วัดความเร่ง 2 แกนเบอร์ ADXL202 และเข็มทิศดิจิตอล CMPS03 จึงถูกนำมาติดที่หมวกหรือตัดยึดกับศีรษะผู้ป่วย ที่สามารถตรวจรู้การขยับของศีรษะได้รวมถึงสามารถระบุตำแหน่งของศีรษะที่แน่นอนอีกด้วย นอกจากนี้ปัจจัยในเรื่องของความชื้น แสง เสียง ก็ไม่อาจรบกวนได้ จึงเหมาะแก่การที่ผู้ป่วยจะสวมอุปกรณ์วัดนี้แล้วใช้ได้จริงที่บ้าน โดยไม่จำเป็นต้องนั่งอยู่แต่ในห้องแอร์หรือสภาพแวดล้อมปิดนั่นเองครับ
การที่เราสามารถรู้การขยับของศีรษะผู้ป่วยได้ ก็เท่ากับว่าเรามีวิธีการป้อนชุดคำสั่งที่กว้าง เนื่องจากการออกคำสั่งทั้งหมดจะมาจากรูปแบบการขยับของศีรษะผู้ป่วยหรือที่เรียกว่าระบบ motion recognition นั่นเอง
และผลจากการขยับศีรษะ ก็จะมีลักษณะสัญญาณที่ตรวจวัดได้ดังรูปด้านล่างนี้ครับ
สัญญาณที่เห็นในด้านซ้ายมือ คือสัญญาณที่วัดได้จากเจ้าเข็มทิศดิจิตอล CMPS03 เมื่อผู้ใช้หันศีรษะไปทางซ้ายครับ ค่าที่ได้นั้นผมไม่ได้แก้ไขเป็นองศา แต่ใช้ค่าดิบที่วัดได้จาก PWM สัญญาณที่เข้ามาครับ ส่วนกราฟด้านขวานั้นเป็นสัญญาณจาก ADXL202 เมื่อมีการผงกศีรษะ สังเกตเห็นว่าความเร่งจะเปลี่ยนไปเนื่องจากมุมระนาบของหมวกที่ทำกับความเร่งโลก (g) เปลี่ยนตามระนาบของศีรษะ ดังนั้นเราก็สามารถเอาสัญญาณจากกราฟทั้งสองนี้มาใช้เพื่อประมวลผลหารูปแบบการเคลื่อนไหวของศีรษะได้แล้วครับ
รูปด้านบนนี้แสดงถึงแผนภาพใหญ่ของการควบคุมแขนกล การขยับศีรษะแหละหัวไหล่ของผู้ป่วยจะถูกตรวจรู้และส่งค่าเข้าหน่วยประมวลผลกลาง ซึ่งใช้ MCS51 เบอร์ P89V51RD2 เป็นตัวหลัก จากนั้นก็จะควบคุมมอเตอร์ในแต่ละข้อต่อให้ขยับเคลื่อนไหวไปตามตำแหน่งของโปรแกรมนั้นๆ โดยมี Potentiometer หรือ Rโวลุ่ม ตรวจสอบแต่ละข้อต่อ เพื่อป้อนกลับค่าองศาของข้อต่อ
ถัดจากการออกแบบระบบควบคุมหลักแล้ว ก็เริ่มออกแบบแขนกลต้นแบบครับ โดยเริ่มต้นก็ต้องทำการศึกษาวิชา Kinesiology เสียก่อน ซึ่งเป็นวิชาที่ว่าด้วยลักษณะทางกายภาพของร่างกายมนุษย์เราครับ

หลังจากได้เรียนรู้แล้วว่า แขนมนุษย์เรามีกี่ Degree of Freedom (อิสระการเคลื่อนไหว) และความยาวแขน/อัตราส่วนมือควรเป็นอย่างไร ก็เริ่มดำเนินการออกแบบด้วยโปรแกรม CAD ครับ โดยการที่เริ่มต้นออกแบบด้วยคอมพิวเตอร์ก่อนนี้ ข้อดีคือเราจะได้มองเห็นปัญหาก่อนที่จะเริ่มผลิตจริงครับ อาทิเช่นการขัดกันชนกันของ bolt หรือชิ้นส่วนต่างๆ รวมไปถึงเรายังสามารถใช้ลูกเล่นในโปรแกรมคำนวนความแข็งแรงโครงสร้าง(Finite Element Analysis)ได้ครับ ว่าชิ้นส่วนแบบนี้จะสามารถทนทานต่อการใช้งานจริงได้หรือไม่

จากนั้นเมื่อตรวจสอบความเรียบร้อยเสร็จแล้ว เราก็ทำการสร้างต้นแบบขึ้นมาครับ
หลังจากมีแขนกลแล้ว ผมก็เริ่มออกแบบวงจรไฟฟ้าต่อครับ เนื่องจากมอเตอร์ที่ใช้นั้นกินกำลังสูง 12V. 80W. การออกแบบจึงต้องคำนึงถึงความปลอดภัย ความทนทาน และการลดปัญหาเรื่องสัญญาณรบกวนจากความถี่และสนามแม่เหล็กไฟฟ้าเมื่อมีกระแสสูงครับ .. ในรูปด้านล่างจะเห็นว่าผมแยกระบบไฟส่วนข้อต่อต่างๆ ออกจากกันและมีไฟแสดงสถานะ เพื่อง่ายต่อการเช็คระบบยามเกิดปัญหาครับ
เมื่อได้แขนกลต้นแบบ บอร์ดวงจรไฟฟ้าแล้ว ถัดมาก็มาถึงการเขียนโปรแกรมครับ ผมก็พัฒนาด้วยภาษา C และกำหนดรูปแบบการสั่งงานขึ้นมาเองทั้งหมด อาทิเช่นถ้าต้องการกำมือก็ให้ผงกหัว 2 ที ถ้าต้องการปล่อยมือก็ให้ผงกหัว 3 ที ซึ่งรูปแบบการสั่งงานที่มากกว่านี้สามารถดูได้ในวีดีโอด้วยล่างครับ

ดูรูปด้านบนแล้วอาจจะงงๆ ว่าคืออะไร กราฟด้านบนแสดงระบบควบคุม I (Integrated-controller) ที่ผมนำมาใช้ในการควบคุมแขนกลด้วยครับ ระบบควบคุมนี้ก็ถูกใส่เข้าไปใน code โดยรับค่ามุมองศาที่ป้อนกลับจาก Potentiometer มาบวก/ลบกับความเร็วมอเตอร์ เพราะการขยับข้อต่อแต่ละครั้งเราต้องการให้ข้อต่อมีความเร็วเชิงมุมที่คงที่และเข้าสู่ steady state ที่ถูกต้อง แต่ด้วยเหตุที่ข้อต่อแต่ละส่วนนั้นไม่มีความซับซ้อนเท่าไรนักและระบบไม่ได้ต้องการการตอบสนองที่เร็วมาก ผมเลยเลือกใช้แค่ I-controller ครับ ไม่จำเป็นต้องถึงระดับ PID
จากนั้นก็มาถึงขั้นตอนการยืดหดแขนครับ เนื่องจากเราต้องการให้แขนกลนี้สามารถหยิบของที่ตำแหน่งต่างๆ จึงต้องทำการวิเคราะห์หาระยะทำการเสียก่อน โดยพิจารณาในระนาบเดียวหนึ่ง และมีผลการคำนวนดังนี้
จากการใช้สมการข้างต้น plot บนโปรแกรมคณิตศาสตร์ก็จะสามารถบอกตำแหน่งที่"มือ"สามารถเอื้อมไปถึงได้ (ทั้งหมดหน่วยเป็นซม.) โดยแทนด้วยกากบาทสีแดง ส่วนวงกลมสีน้ำเงินคือตำแหน่งของข้อศอกในท่าทางต่างๆ หลังจากนั้นเราก็คำนวนหาค่าสมการย้อนกลับด้วยโปรแกรมทางคณิตศาสตร์ก็จะได้เป็นฟังก์ชั่นหาค่าองศาของข้อต่อแต่ละข้อเมื่อป้อนตำแหน่งมือที่ต้องการลงไปนั่นเอง

เมื่อทุกส่วนเสร็จสมบูรณ์ ผมก็เริ่มทำการทดสอบเจ้าแขนกลนี้ครับ ในรูปด้านบนเป็นภาพขณะที่ผมกำลังทดลองใช้แขนกลนี้เป็นครั้งแรก หลังจากเอาทุกอย่างมารวมกัน (กลางๆ เดือนกุมภาปี 52) โดยเบื้องหลังรูปภาพนี้ ผมก็โดนเจ้าแขนกลฟาดไปหลายทีครับ ฮ่าๆ ซึ่งก็เป็นปรกติครับสำหรับสิ่งประดิษฐ์ที่เมื่อรวมทุกอย่างเข้าด้วยกันก็มักจะแสดงปัญหาออกมา โดยผมก็ใช้เวลาประมาณ 1เดือนเศษแก้ไขปรับปรุงส่วนต่างๆ จนสุดท้ายแขนกลนี้ปัจจุบันก็สามารถเอื้อมหยิบขวดน้ำได้แล้วครับ
นอกจากนี้ผมก็เกิดไอเดียเพิ่มเติมว่า ทำไมเราต้องจบโปรเจคนี้แค่สั่งงานแขนกลด้วยล่ะ เนื่องจากผู้ป่วยกรณีศึกษาที่ผมทำโปรเจคให้นี้เค้าอยากเป็นนักเขียน ดังนั้นการใช้คอมพิวเตอร์เพื่อเขียนหนังสือจึงน่าจะมีความจำเป็นต่อเขามาก รวมไปถึงการหาข้อมูลแรงบันดาลใจอื่นๆ เขาก็จะสามารถหาดูได้ทางอินเตอร์เน็ต ผมก็เลยพัฒนาโปรแกรมต่อให้สามารถควบคุมบังคับ Cursor บนจอคอมพิวเตอร์ได้ด้วยครับ .. ซึ่งผลโปรแกรมพิเศษนี้จะเป็นอย่างไร ก็มีแสดงในวีดีโอด้านล่างเช่นกันฮะ