Keyer - บันทึกการสร้างมินิคีย์บอร์ดที่ถือไว้ในมือ
(github.com/mafik)- KEYER คือคีย์บอร์ดแบบคอร์ดสำหรับใช้งานด้วยมือข้างเดียว ที่ทำให้ การขยับนิ้วน้อยที่สุด และใช้อีกมือได้อย่างอิสระ
- ใช้เพียง 10 ปุ่ม แต่รองรับ ชุดคอร์ดมากกว่า 215 แบบ และการป้อนแบบอาร์เพจจิโอที่หลากหลาย จึงขยายรูปแบบการป้อนได้สูง
- มี เลย์เอาต์ที่ปรับให้เหมาะสมและเฟิร์มแวร์หน่วงต่ำ และสามารถสร้างให้เข้ากับรูปมือที่ต้องการได้โดยตรง จึงทำให้เกิด การออกแบบตามหลักสรีรศาสตร์ขั้นสุด ได้
- เมื่อเทียบกับคีย์บอร์ดแมคคานิคทั่วไปแล้ว ราคาถูกกว่า และไม่ต้องใช้ชิ้นส่วนพิเศษ สามารถทำได้ด้วยเครื่องมือและวัสดุง่าย ๆ
- มาพร้อมเฟิร์มแวร์โอเพนซอร์ส เครื่องมืออัตโนมัติสำหรับเลย์เอาต์ และเอกสารอ้างอิงหลากหลาย จึงเป็นประโยชน์ต่อผู้พัฒนาที่สนใจคีย์บอร์ดคัสตอม
แนะนำโครงการโอเพนซอร์ส KEYER
KEYER คือ ชุดเฟิร์มแวร์และเครื่องมือโอเพนซอร์ส ที่ช่วยให้สร้างคีย์บอร์ดแบบคอร์ดที่ใช้งานด้วยมือข้างเดียว (Chorded Keyboard) ได้ จุดเด่นที่สุดของโครงการนี้คือ ไม่ต้องพึ่งผลิตภัณฑ์เชิงพาณิชย์ราคาแพง การพิมพ์ 3D ที่ซับซ้อน หรือ custom PCB แบบเดิม ๆ ก็สามารถสร้างคีย์บอร์ดตามหลักสรีรศาสตร์ได้ด้วยตัวเองโดยใช้ชิ้นส่วนหาง่ายและเครื่องมือพื้นฐาน
คุณสมบัติเด่น
- การขยับนิ้วน้อยที่สุด: ทุกปุ่มอยู่ใกล้ตำแหน่งโฮม จึงพิมพ์ได้เร็วโดยแทบไม่ต้องขยับนิ้ว
- ใช้อีกมือได้อย่างอิสระ: พิมพ์ด้วยมือเดียวไปพร้อมกับใช้อีกมือจับเมาส์หรือถือเครื่องดื่มได้
- อยู่ใกล้มือตลอดเวลา: หากติด Keyer ไว้กับถุงมือ แม้ปล่อยมือชั่วครู่ก็ยังใช้งานสองมือกับอย่างอื่นได้อย่างอิสระ
- รองรับจำนวนคอร์ดมหาศาล: จากปุ่ม 10 ปุ่ม (นิ้วโป้ง 3, นิ้วชี้ 2, นิ้วกลาง 2, นิ้วนาง 2, นิ้วก้อย 1) สามารถสร้างคอร์ดได้ 215 แบบ และขยายได้เป็นสองเท่าเมื่อใช้การกดค้างคอร์ด
- ใช้อาร์เพจจิโอ (rolling motion): รองรับอาร์เพจจิโอสองทิศทาง 2×78 แบบ ทำให้ขยายการป้อนได้ดีมาก
- หลายเลเยอร์: เฉพาะ base layer ก็รองรับชอร์ตคัตได้ 586 แบบ และแต่ละเลเยอร์ยังสร้างชุดผสมได้หลากหลาย
- Rolling code: เมื่อคอร์ดสองชุดมีตำแหน่งนิ้วร่วมกัน สามารถขยับเฉพาะนิ้วที่เปลี่ยนได้ จึงมีประสิทธิภาพ
- เครื่องมือปรับเลย์เอาต์ให้เหมาะสม: มี optimizer ที่รวมมาให้สำหรับค้นหาเลย์เอาต์อัตโนมัติตามข้อความที่ใช้พิมพ์ หรือฟังก์ชันต้นทุนการเคลื่อนไหวของมือที่ผู้ใช้กำหนดเอง
- เลย์เอาต์ตามหลักสรีรศาสตร์: หลีกเลี่ยงชุดกดที่กดได้ยากจากลักษณะทางประสาทและการเคลื่อนไหวของนิ้ว เพื่อเพิ่มความใช้งานได้สูงสุด
- การทำงานหน่วงต่ำ: เฟิร์มแวร์อิง hardware interrupt พร้อม software debouncing จึงตอบสนองไวและแม่นยำ
- แบตเตอรี่ใช้งานได้นาน: ใช้แบตเตอรี่ 18650 ความจุสูง, CPU ความถี่ต่ำ, การประหยัดพลังงานของ Bluetooth และสวิตช์ไฟฮาร์ดแวร์ จึงใช้งานได้นาน
ความง่ายในการประกอบ
ไม่จำเป็นต้องใช้การพิมพ์ 3D หรือ custom PCB พิเศษใด ๆ แค่ สั่งซื้อชิ้นส่วนจาก Amazon + ปืนกาวร้อน + หัวแร้งบัดกรี ก็สามารถประกอบได้
- ปั้นขึ้นรูปด้วยดินซิลิโคนให้พอดีกับมือตัวเองโดยตรง เพื่อให้ได้ การออกแบบตามหลักสรีรศาสตร์ขั้นสุด
- ค่าอุปกรณ์ราว $34 เท่านั้น และใช้สวิตช์แมคคานิคเพียง 10 ตัว
เอกสารอ้างอิงและลิงก์แนะนำเพิ่มเติม
- มีข้อมูลเกี่ยวกับซอฟต์แวร์แนวเดียวกัน (Penti Chorded Keyboard), ไลบรารี BLE keyboard สำหรับ ESP32, แบบพิมพ์ 3D ฟรี (เช่น Typeware) และผลิตภัณฑ์เชิงพาณิชย์เดิม (Twiddler, Decatext เป็นต้น)
- มีลิงก์บล็อกและวิดีโอสาธิตการพิมพ์
สรุปคู่มือการสร้าง
รายการวัสดุ
- บอร์ดพัฒนา LILYGO T-Energy S3 ($9.70)
- แบตเตอรี่ Samsung INR18650-35E 3500mAh (~$2.95)
- ดิน FIMO Professional หรือดินเอฟเฟกต์ ($2.75)
- สวิตช์แมคคานิค 10 ตัว (แนะนำ Gateron G Pro 3.0, $10)
- ลวดทองแดงหุ้มฉนวนขนาดค่อนข้างใหญ่เล็กน้อย รวมถึงวัสดุสิ้นเปลืองและเครื่องมืออื่น ๆ (คีม, มีด, ถุงมือ, ปืนกาวร้อน, หัวแร้ง ฯลฯ)
การทำ Skeleton (โครง)
- ทำลูป GND ด้วยลวดทองแดง แล้วบัดกรีเข้ากับพอร์ต GND ของบอร์ด
- ยึดสวิตช์แต่ละตัวให้สัมผัสกับลูป GND (เริ่มจากกาวร้อน แล้วค่อยบัดกรีภายหลัง)
- เดินสายจากสวิตช์แต่ละตัวไปยังพอร์ต IO ของบอร์ดแยกกัน (ต้องจด mapping ระหว่างพอร์ตกับสวิตช์ไว้)
- ปรับการจัดวางสวิตช์และตำแหน่งคีย์แคป → ตรวจสอบว่าโครงสร้างแข็งแรงแล้ว
การขึ้นรูปด้วยดิน
- เพิ่มดินหลายชั้นโดยหุ้มบริเวณด้านล่างของสวิตช์และส่วนอื่น ๆ
- ต้องนวดดินให้ดีพอเพื่อไม่ให้จับตัวเป็นก้อน และถูให้ชิ้นส่วนเรียบเสมอกัน
- เมื่อเสร็จแล้ว ให้อบในเตาอบที่ 110°C นานอย่างน้อย 30 นาที เพื่อให้แข็งตัวและทนทาน
การอัปโหลดเฟิร์มแวร์
- ติดตั้ง PlatformIO Core และเชื่อมต่อบอร์ด T-Energy S3 ผ่าน USB
- clone รีโพซิทอรีจาก GitHub, build และอัปโหลดเฟิร์มแวร์
- ตรวจสอบชื่ออุปกรณ์ Bluetooth (แก้เป็นชื่อตัวเองได้ในโปรเจกต์)
- รองรับการดีบัก เช่น serial output
เครื่องมือปรับเลย์เอาต์ให้เหมาะสม
- เพิ่มข้อความสำหรับป้อนใน
layout_generator/corpusแล้วใช้planner.pyเพื่อสร้างเลย์เอาต์ที่เหมาะสมที่สุดโดยอัตโนมัติ - ปรับแต่งต้นทุนการเคลื่อนไหวของแต่ละนิ้วได้ใน
keyer_simulator.cpp
ไอเดียอื่น ๆ
- หากติดตั้งเซ็นเซอร์วัดความเร่ง 6 แกน ก็สามารถรองรับ air mouse ได้
- มีการเสนอความเป็นไปได้ในการดัดแปลง เช่น ลดจำนวนปุ่ม
โครงสร้างรีโพซิทอรี
layout_generator/: สคริปต์ Python สำหรับปรับโค้ด/เลย์เอาต์ให้เหมาะสมsrc/: ซอร์สเฟิร์มแวร์สำหรับ ESP32- อื่น ๆ: การตั้งค่า SDK, ไฟล์ประเมินข้อความ, ซิมูเลเตอร์ ฯลฯ
บทสรุปและการนำไปใช้
KEYER คือ โซลูชันต้นทุนต่ำ แบบ DIY และขยายต่อได้สูง สำหรับนักพัฒนา แฮกเกอร์ และเมกเกอร์ ที่อยากสร้าง คีย์บอร์ดแบบคอร์ดขนาดจิ๋วที่พอดีกับมือ ด้วยตัวเอง ทั้งฮาร์ดแวร์และซอฟต์แวร์เปิดให้ใช้งานแบบโอเพนซอร์ส พร้อมจุดเด่นอย่างเลย์เอาต์ปรับแต่งได้ การออกแบบตามหลักสรีรศาสตร์ และเฟิร์มแวร์กินไฟต่ำ/หน่วงต่ำ หากสนใจการแฮ็กคีย์บอร์ดและการคัสตอมอุปกรณ์ป้อนข้อมูล นี่คือแหล่งอ้างอิงที่มีประโยชน์มาก
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เคยลองใช้คีย์บอร์ดตามหลักสรีรศาสตร์ที่มีแค่ 3x10 คีย์มาก่อน (จริง ๆ แล้วเป็นแบบแยกชิ้น เลยเป็นเลย์เอาต์ 2x3x5) แต่ไม่อยากเสียเวลาเรียนรู้วิธีพิมพ์ วิธีใส่อักขระพิเศษ และการพิมพ์ตัวเลขแบบใหม่ โดยเฉพาะเมื่อเวลาฝึกส่วนใหญ่ต้องกินเวลาในชั่วโมงทำงาน เลยไม่อยากยอมรับผลกระทบต่อประสิทธิภาพในช่วงแรก สุดท้ายจึงเลือก ZSA Moonlander ซึ่งอาจจะดูมีคีย์เยอะเกินไปสำหรับสายฮาร์ดคอร์ที่ชอบอะไรน้อยชิ้น แต่ส่วนตัวพอใจมาก คีย์บอร์ดแฮนด์เฮลด์สไตล์แฮ็กเกอร์แบบนี้ทำให้นึกถึงโลกไซเบอร์ล้ำ ๆ ที่เคยฝันไว้ตอนเด็ก ๆ เลยรู้สึกผูกพันอยู่เสมอ คิดว่าเป็นโปรเจ็กต์ที่เจ๋งมากจริง ๆ
ขอเสนอว่า น่าจะทำวิดีโอสั้น ๆ ที่ถ่ายให้เห็นทั้งมือที่กำลังพิมพ์อยู่ด้านหน้าและหน้าจออยู่ด้านหลัง เพื่อให้เห็นความยากและความเร็วในการป้อนข้อมูล
พอดูวิดีโอแล้วกลับยิ่งสงสัยว่าจุดประสงค์จริง ๆ คืออะไร นี่เป็นคีย์บอร์ดสำหรับพิมพ์ตัวอักษรกับตัวเลข หรือเป็นคีย์บอร์ดสำหรับทำเพลงกันแน่ ในเนื้อหาพูดถึงโค้ดและอาร์เพจจิโอ เลยเข้าใจว่าเป็นเครื่องมือสำหรับโปรแกรมดนตรี ทำให้สับสนว่าจุดประสงค์หลักคืออะไร
ขอวิดีโอสักอันจริง ๆ
ชื่นชมว่าเป็นผลงานที่ยอดเยี่ยม และเสริมว่าอุปกรณ์แบบนี้เป็นที่รู้จักกันในชื่อ keyer โดยให้ลิงก์อ้างอิงเป็น Wikipedia Keyer: Computer interface keyers ย้อนกลับไปช่วงต้นทศวรรษ 1980 ตอนยังเป็นเด็กหนุ่มไร้เดียงสา เพื่อนของพ่อมี WriteHander อยู่เครื่องหนึ่ง จึงทำให้เกิดความผูกพันกับอุปกรณ์แนวนี้ พร้อมทิ้งข้อมูลของ WriteHander ไว้ที่ ลิงก์อ้างอิง WriteHander
คิดว่านี่คืออุปกรณ์สไตล์แฮ็กเกอร์ขั้นสุด ยิ่งประทับใจเป็นพิเศษตรงที่ใช้ชิ้นส่วน COTS (ชิ้นส่วนสำเร็จรูปเชิงพาณิชย์) และใช้ดินปั้นขึ้นรูปให้พอดีกับมือ เป็นวิธีการผลิตที่มีประสิทธิภาพ
คิดว่าเป็นไอเดียที่เจ๋งมาก และมักจินตนาการอยู่บ่อย ๆ ว่าสักวันอยากสร้างอุปกรณ์แบบนี้เอง เป็นไอเดียที่นึกถึงเสมอเวลาต้องใช้ Termux ทำงานดูแลระบบเล็ก ๆ น้อย ๆ บนมือถือ และยังทำให้นึกถึง minichord ซึ่งเป็นซินธิไซเซอร์/เครื่องดนตรีโอเพนซอร์สด้วย ยุคนี้มีฮาร์ดแวร์และเครื่องมือจำเป็นมากมายพร้อมอยู่แล้ว จึงรู้สึกว่าเป็นเรื่องยอดเยี่ยมที่ได้เห็นอุปกรณ์สร้างสรรค์แบบนี้ถือกำเนิดขึ้น เป็นโปรเจ็กต์ที่เจ๋งมาก
เป็นคนที่เกลียดการแตะกระจกจอเบา ๆ แล้วพลาดตลอด เลยคิดหาวิธีป้อนข้อมูลทางเลือกอยู่เสมอ คิดว่าเป็นทั้งโปรเจ็กต์และบทความสรุปที่ยอดเยี่ยมมาก แต่ก็อยากเห็นวิดีโอการใช้งานจริง และถ้าเป็นไปได้ก็อยากเห็นขั้นตอนการสร้างด้วย จึงหวังว่าจะมีการเผยแพร่วิดีโอด้วย
ประเมินว่าเป็นผลงานที่เจ๋งสุด ๆ ถ้าเพิ่ม Oculus เข้าไปอีกหน่อยก็คงเหมือน Johnny Mnemonic จริง ๆ โดยมีวิดีโออ้างอิงเป็น วิดีโอ Johnny Mnemonic บน YouTube
คิดว่าเจ๋งมาก Azeron ก็มีผลิตภัณฑ์คล้ายกัน แต่ไม่ใช่แบบพกพา (และอาจใช้เป็นข้อมูลอ้างอิงให้ฝั่ง Azeron ได้เหมือนกัน) อีกทั้งยังมีจำนวนคีย์มากกว่ามาก ด้วยความที่มีคีย์เยอะ จึงพิมพ์แบบ chord ได้ง่ายและสามารถใช้แทนคีย์บอร์ดทั้งชุดได้ อาจช่วยคนที่ใช้แขน/มือได้เพียงข้างเดียวอย่างมาก (โดยเฉพาะทหารผ่านศึก เป็นต้น) นโยบายคืนเงินภายใน 60 วันก็น่าประทับใจ บริษัทตั้งอยู่ในลัตเวีย และบางชิ้นส่วนผลิตด้วยเครื่องพิมพ์ 3D เว็บไซต์คือ เว็บไซต์ Azeron ตัวฉันเองก็ซื้อและใช้งาน Cyro ซึ่งเป็นเมาส์แนว beta-vertical อยู่ มันเป็นเมาส์ที่ค่อนข้างแปลกแยกจากไลน์ผลิตภัณฑ์นี้และมีปุ่มจำนวนมาก คิดว่าเป็นเมาส์ที่ดีที่สุดในสายนี้เท่าที่เคยใช้มา เพียงแต่อยากให้เป็นแบบไร้สายมากกว่า เดิมเคยลองดัดแปลงให้ไร้สายด้วยโมดูล USB2BT แต่ก็มีปัญหาบางอย่าง ผลลัพธ์อาจแตกต่างกันไปตามสถานการณ์
ถ้าสนใจ UX ของผลิตภัณฑ์ที่ใช้วิธีป้อนข้อมูลแบบ chord ก็ควรลองดู Artsey และ Ardux(เว็บไซต์ทางการของ Ardux) Artsey เป็นเลย์เอาต์คอร์ดแบบ 2x4 สำหรับใช้งานมือเดียว ส่วน Ardux เป็นเวอร์ชันที่ปรับปรุงและขยายต่อจากนั้น โดยอ้างอิงจากเลย์เอาต์ Colemak หลายจุด ส่วนตัวชอบความเรียบง่ายของ 2x4 มาก อุปกรณ์ของ OP ก็เจ๋ง แต่รู้สึกว่าการออกแบบตามหลักสรีรศาสตร์ของการใช้นิ้วโป้งยังน่าเสียดายอยู่เล็กน้อย
คิดว่าน่ารักดี ฉันใช้ Bluehand(รีวิวการใช้งาน Bluehand) อยู่ และคิดมาตลอดว่าถ้าใช้งานได้โดยไม่ต้องวางลงก็น่าจะดีกว่านี้