สารบัญ:

วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ iPhone: 11 ขั้นตอน
วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ iPhone: 11 ขั้นตอน

วีดีโอ: วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ iPhone: 11 ขั้นตอน

วีดีโอ: วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ iPhone: 11 ขั้นตอน
วีดีโอ: สอนวิธี Activate ใช้งาน Panda Mouse Pro 2023 (✅ใช้มือถือเครื่องเดียวทำ) 2024, ธันวาคม
Anonim
วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ IPhone
วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ IPhone
วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ IPhone
วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ IPhone
วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ IPhone
วิธีเชื่อมต่อคีย์บอร์ด PS/2 กับ IPhone

แม้ว่าฉันจะเคยเห็นรูปภาพของแป้นพิมพ์ PS/2 จำนวนมากที่เสียบเข้ากับ iPhone บนอินเทอร์เน็ตแล้ว แต่ยังไม่มีใครเผยแพร่วิธีการโดยละเอียดเกี่ยวกับวิธีการทำให้สิ่งนี้ใช้งานได้ด้วยตนเอง จนถึงตอนนี้นั่นก็คือ

ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างคีย์บอร์ด PS/2 เป็นตัวแปลง iPhone รวมถึงคำแนะนำด้านฮาร์ดแวร์และซอฟต์แวร์ทั้งหมด

ข้อกำหนดเบื้องต้น

  • Jailbroken iPhone – SDK อย่างเป็นทางการไม่อนุญาตให้เข้าถึงพอร์ตอนุกรมเนื่องจากการสมรู้ร่วมคิดของ Elf ดังนั้นจึงจำเป็นต้องมีการเจลเบรก ทั้งหมดที่คุณต้องรู้เกี่ยวกับการเจลเบรกอยู่ที่บล็อก iPhone Dev Team
  • Arduino Diecimila หรือ Dumilanove (หรือโคลน) หาได้จากหลายๆ ที่ วิธีการนี้จะถือว่า Arduino ของคุณประกอบอยู่
  • บอร์ดฝ่าวงล้อม iPod แบบนี้จาก Sparkfun ผลิตภัณฑ์ที่คล้ายกันจะทำงาน
  • ขั้วต่อคีย์บอร์ด PS/2 (Din 6) ตัวเมีย ดึงเครื่องหนึ่งออกจากคอมพิวเตอร์เครื่องเก่าหรือซื้อจาก Digikey หรือผู้ขายที่คล้ายคลึงกัน
  • ลวดควรมีหลายสีและประมาณ 24 เกจ ฉันใช้สปูลจาก RadioShack ในรูปด้านล่าง
  • ตัวต้านทาน 500k หนึ่งตัว ฉันใช้ตัวต้านทานรูทะลุแนวแกนจาก RadioShack แต่คุณสามารถเพิ่มสิ่งนี้ลงในคำสั่งซื้อ Digikey ของคุณได้เช่นกัน
  • หัวแร้งและบัดกรี หากคุณไม่ทราบวิธีการบัดกรี คุณสามารถเรียนรู้ได้ที่นี่และที่นี่
  • (ไม่บังคับ) Pin Headers แบบนี้ ฉันแยกสิ่งเหล่านี้ออกและประสานเข้ากับปลายสายไฟเพื่อให้เสียบเข้ากับ Arduino ได้อย่างดี
  • (ไม่บังคับ) ชุดสายรัดแบตเตอรี่ Sweet 9v เพื่อให้ Arduino ของคุณกลายเป็นอุปกรณ์พกพาได้จาก Maker Store
  • (ไม่บังคับ) แจ็คหูฟังสเตอริโอจาก RadioShack หรือ Digikey

ขั้นตอนที่ 1: ประสาน IPhone Breakout - ตอนที่ 1

ประสานการฝ่าวงล้อม IPhone - ตอนที่ 1
ประสานการฝ่าวงล้อม IPhone - ตอนที่ 1

เมื่อส่วนผสมทั้งหมดของคุณมาถึงแล้ว ให้จุดไฟหัวแร้งและดูที่ขาเสียบ iPod Connector

เราจะใช้หมุดสี่ตัวสำหรับแป้นพิมพ์เหล่านี้: 11, 13, 16 และ 21 คำจำกัดความของพิน 21 กล่าวว่าเราจำเป็นต้องวางตัวต้านทาน 500k ระหว่างพิน 21 และกราวด์เพื่อเปิดใช้งานการสื่อสารแบบอนุกรมกับ iPhone ดังนั้น เราจะติดตัวต้านทานระหว่างพิน 21 และพิน 16 ซึ่งเป็นกราวด์อนุกรม เรากำลังจะเพิ่มส่วนหัวของพินให้กับพิน 11 และ 13 ซึ่งจะทำหน้าที่เป็นพิน TX และ RX สำหรับการสื่อสารแบบอนุกรม เนื่องจากเราจะส่งไปยัง iPhone เท่านั้น เราจึงใช้พิน RX ของ iPhone เท่านั้น ดังนั้นเราจะเพิ่มลวดหนึ่งเส้นเพื่อเชื่อมต่อพิน 11 ซึ่งเป็นพิน TX ที่ไม่ได้ใช้ โดยตรงกับกราวด์ที่พิน 16

คุณยังสามารถเพิ่มแจ็คหูฟังสเตอริโอไปที่พิน 2, 3 และ 4 ได้ในขณะนี้ และมันจะทำงานทุกครั้งที่มีการเสียบปลั๊ก สิ่งนี้ไม่เกี่ยวข้องกับแป้นพิมพ์ แต่ถ้าคุณมี iPhone 1G ที่มีขาหนีบ ช่องเสียบหูฟังมาตรฐาน สิ่งนี้จะแก้ไขได้

ขั้นตอนที่ 2: ประสาน IPhone Breakout - ตอนที่ 2

ประสานการฝ่าวงล้อม IPhone - ตอนที่ 2
ประสานการฝ่าวงล้อม IPhone - ตอนที่ 2

ฉันใส่จัมเปอร์ระหว่างพิน 11 และพิน 16 ที่ด้านหลังของบอร์ดฝ่าวงล้อม อาจเป็นเรื่องยากเล็กน้อยที่จะใส่ทุกอย่างเข้ากับพิน 16 ดังนั้นผมขอแนะนำให้ติดตัวต้านทานผ่านรูก่อน จากนั้นจึงพันปลายสายจัมเปอร์รอบๆ แล้วบัดกรีเข้าด้วยกันก่อนที่จะตัดตะกั่วของตัวต้านทานออก

อีกวิธีหนึ่งที่อาจมีประโยชน์ในที่นี้คือ ทำการดีบุกที่ปลายลวดก่อน จากนั้นจึงบัดกรีบัดกรีเล็กน้อยบนรูที่คุณต้องการติดลวด ใช้ด้านข้างของหัวแร้งเพื่ออุ่นหยดบัดกรีของคุณ และเลื่อนปลายลวดที่เป็นกระป๋องเข้าไปในหยด นำเตารีดออก ปล่อยให้หยดเย็น แล้วปล่อยลวดออก

ขั้นตอนที่ 3: ประสานตัวเชื่อมต่อ PS/2 - ตอนที่ 1

บัดกรีขั้วต่อ PS/2 - ตอนที่ 1
บัดกรีขั้วต่อ PS/2 - ตอนที่ 1

ไม่มีเส้นทางใดที่คุณสามารถใช้ผ่านการกำหนดหมายเลขพินของตัวเชื่อมต่อ PS/2 ที่สมเหตุสมผลนอกบริบทของการพูดเพ้อเจ้อของการประชุมคณะกรรมการ อย่าคิดมากเรื่องเลขพิน แค่ดูภาพ

เราจะใช้พินสี่ตัวที่นี่ และเชื่อมต่อทั้งหมดเข้ากับ Arduino กราวด์จะถูกต่อเข้ากับกราวด์บน Arduino, VCC จะต่อเข้ากับ 5V และหมุดข้อมูลและนาฬิกาจะถูกนำไปยังพินดิจิทัลของ Arduino สองตัว (3 และ 4)

ขั้นตอนที่ 4: ประสานตัวเชื่อมต่อ PS/2 - ตอนที่ 2

บัดกรีขั้วต่อ PS/2 - ตอนที่ 2
บัดกรีขั้วต่อ PS/2 - ตอนที่ 2

ด้านล่างของตัวเชื่อมต่อ PS/2 นั้นใช้งานง่ายกว่าแบบแผนลำดับเลข ฉันแนะนำให้ตรวจสอบรูปภาพนี้ แต่ยังตรวจสอบว่าหมุดที่ด้านล่างของตัวเชื่อมต่อตรงกับหมุดที่มีหมายเลขที่คุณคิดว่าทำก่อนที่จะบัดกรีอะไรเลย คุณสามารถตรวจสอบการเชื่อมต่อกับมัลติมิเตอร์แบบปกติได้โดยการตั้งค่าให้วัดความต้านทานและเชื่อมต่อโพรบตัวหนึ่งเข้ากับพินที่ด้านล่างและติดอีกด้านหนึ่งในรู หากมีความต้านทานเลย แสดงว่าพินนั้นเชื่อมต่อกับรูนั้น

ฉันใช้สายสีเขียวสำหรับหมุดนาฬิกา, สายสีแดงสำหรับ VCC, สายสีขาวสำหรับข้อมูล และสายสีดำสำหรับกราวด์

ขั้นตอนที่ 5: บัดกรีส่วนหัวเพื่อนำไปสู่

ส่วนหัวของ Solder Pin to Leads
ส่วนหัวของ Solder Pin to Leads

เมื่อคุณต่อสายคอนเนคเตอร์แล้ว ให้ถอดปลายอีกด้านของสายไฟออกแล้วบัดกรีที่นำไปสู่ส่วนหัวของพิน สิ่งนี้จะช่วยให้คุณเสียบเข้ากับ Arduino ได้อย่างง่ายดาย หากคุณไม่ได้รับส่วนหัวของพิน คุณสามารถลองพันสายไฟอย่างระมัดระวังเพื่อให้อยู่ในรูพิน Arduino ได้ดีขึ้น

ฉันต่อสายบางเส้นเข้ากับส่วนหัวของพินบนหมุด 11 และ 13 ของบอร์ดฝ่าวงล้อม iPhone สายสีดำเชื่อมต่อกับกราวด์ (พิน 11) และสายสีแดงคือ VCC (พิน 13) จากนั้นฉันได้บัดกรีส่วนหัวของพินไปยังสายนำสำหรับสายไฟสองเส้นจากบอร์ดฝ่าวงล้อมและสี่สายที่มาจากขั้วต่อ PS/2

ขั้นตอนที่ 6: (อุปกรณ์เสริม) ชุดสายไฟแบตเตอรี่ 9V

(อุปกรณ์เสริม) ชุดสายไฟแบตเตอรี่ 9V
(อุปกรณ์เสริม) ชุดสายไฟแบตเตอรี่ 9V

ฉันใช้ Arduino Diecimila เนื่องจากโปรแกรมนี้ไม่ต้องการชิปที่ดีกว่านี้ สิ่งนี้แสดงด้วยสายรัดแบตเตอรี่ 9V จาก SparkFun เพื่อการพกพา

ขั้นตอนที่ 7: แนบ PS/2 นำไปสู่ Arduino

แนบ PS/2 Leads เข้ากับ Arduino
แนบ PS/2 Leads เข้ากับ Arduino

ต่อไป เราเชื่อมต่อตัวเชื่อมต่อ PS/2 กับ Arduino เชื่อมต่อสายนาฬิกากับ Digital Pin 3, สายข้อมูลกับ Digital Pin 4 และเชื่อมต่อสายกราวด์กับกราวด์บน Arduino และสาย VCC กับพิน 5V

ขั้นตอนที่ 8: แนบ IPhone นำไปสู่ Arduino

แนบ IPhone นำไปสู่ Arduino
แนบ IPhone นำไปสู่ Arduino

หากต้องการเชื่อมต่อ iPhone breakout ให้เชื่อมต่อตะกั่วจาก Pin 13 กับ TX Pin บน Arduino (Digital Pin 1) จากนั้นเชื่อมต่อตะกั่วจาก Pin 11 กับ Ground ใดๆ ที่มีอยู่บน Arduino

สำคัญ: เพื่อหลีกเลี่ยงปัญหาในการแฟลช Arduino โปรดถอด TX Pin บน Arduino ก่อนที่จะกระพริบ เพิ่มเติมเกี่ยวกับเรื่องนี้ในภายหลัง หลังจากนั้นก็ทำการบัดกรีทั้งหมด ตอนนี้ได้เวลาไปเขียนโปรแกรม Arduino แล้ว!

ขั้นตอนที่ 9: รหัส Arduino

รหัส Arduino
รหัส Arduino

ซอฟต์แวร์ Arduino นาฬิกาข้อมูลออกจากแป้นพิมพ์ แปลรหัสสแกนแป้นพิมพ์เป็นรหัสคีย์ และจัดการการกดแป้น shift และ caps lock

ก่อนอื่น ดาวน์โหลดและติดตั้งสภาพแวดล้อมการพัฒนา Arduino จากที่นี่ ทำตามคำแนะนำบนไซต์ แต่ต้องแน่ใจว่าได้ติดตั้งไดรเวอร์ FTDI ที่เหมาะสมจากไดเร็กทอรีไดรเวอร์ในการติดตั้ง Arduino

ถัดไป คุณจะต้องมีไลบรารี Arduino เพิ่มเติมสำหรับ PS/2 ดาวน์โหลดไฟล์ “ps2.zip” จากหน้านี้ ในการติดตั้ง ให้เปิดเครื่องรูดดาวน์โหลดไปยังโฟลเดอร์และย้ายโฟลเดอร์นั้นไปเป็นไดเร็กทอรีย่อยของไดเร็กทอรี "ฮาร์ดแวร์/ไลบรารี" ภายใต้การติดตั้ง Arduino ของคุณ บน OSX คุณสามารถไปที่ Arduino.app และ "Show Package Contents" ก่อน

เมื่อติดตั้ง Arduino และไลบรารี ps2 แล้ว ให้ดาวน์โหลดซอร์สโค้ดจากที่นี่ เปิดแอปพลิเคชั่น Arduino สร้างโปรเจ็กต์ใหม่และวางซอร์สโค้ดลงในนั้น บันทึก จากนั้นไปที่ Sketch->Verify/Compile เพื่อให้แน่ใจว่าสร้าง หากไม่เป็นเช่นนั้น ตรวจสอบให้แน่ใจว่าได้ติดตั้งไลบรารีอย่างถูกต้อง

ในหมายเหตุด้านข้าง จริง ๆ แล้วฉันไม่ได้เขียนโค้ดสำหรับโปรเจ็กต์นี้เลย ฉันเริ่มพยายามใช้ไลบรารี PS2KeyboardExt2 แต่ไลบรารีนั้นอิงจากการขัดจังหวะและในขณะที่สามารถทำงานบน Arduino ที่พูดแบบอนุกรมที่ 9600 bps เมื่อฉันหมุนซีเรียลสูงถึง 19200 bps การขัดจังหวะหยุดทำงานใน วิธีที่มั่นคง ดังนั้นฉันจึงดึงโค้ดที่ดีทั้งหมดออกจาก PS2KeyboardExt2 รวมถึงคำจำกัดความของคีย์และการจัดการ shift และ caps lock ที่ดี และทำใหม่ในโปรแกรมที่ไม่ใช้การขัดจังหวะและใช้ประโยชน์จากไลบรารี PS/2 ที่แตกต่างและง่ายกว่ามาก. ทำให้สามารถจัดการซีเรียล 19200 bps ได้อย่างน่าเชื่อถือ

ทีนี้มาตั้งโปรแกรม Arduino!

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

เมื่ออัปโหลดโปรแกรมแล้ว ให้เสียบแป้นพิมพ์เข้ากับขั้วต่อ PS/2 คุณควรเห็นไฟกะพริบ คุณสามารถเปิด Serial Monitor ในแอปพลิเคชั่น Arduino และลองพิมพ์ตัวอักษรบางตัวบนแป้นพิมพ์ คุณควรเห็นตัวอักษรเหล่านั้นปรากฏขึ้นใน Serial Monitor ลองเปิดและปิด Caps Lock ไฟบนแป้นพิมพ์ควรติดและดับ และตัวอักษรควรออกมาเป็นตัวพิมพ์ใหญ่อย่างถูกต้อง

ขั้นตอนที่ 10: โปรแกรมไคลเอนต์ IPhone

ตอนนี้เพื่อตั้งค่าโปรแกรมไคลเอนต์ iPhone

สำหรับรหัสลูกค้า ฉันกำลังใช้โปรแกรมที่พบในหน้า Google Code ของ Anthony Pray โปรแกรมนี้อ่านอินพุตจากพอร์ตอนุกรมที่ 19200 bps จากนั้นแทรกเหตุการณ์แป้นพิมพ์ที่เหมาะสมโดยใช้ไลบรารีไคลเอ็นต์ VNC ฉันได้สร้างมิเรอร์เฉพาะข้อความในเครื่องของแหล่งที่มาที่นี่ ซึ่งสามารถดึงข้อมูลได้อย่างง่ายดายด้วย wget

เนื่องจากเราจะทำการกดแป้นโดย VNC คุณจะต้องใช้งานเซิร์ฟเวอร์ VNC บน iPhone ด้วย เราจะใช้ Veency (ซึ่งยอดเยี่ยมและคุณควรติดตั้งอยู่ดี)

ไปที่ Cydia หรือ Icy และติดตั้งแพ็คเกจต่อไปนี้:

  • Venency - จัดเตรียมเซิร์ฟเวอร์ VNC กำหนดค่าให้ทำงานเมื่อเริ่มต้น
  • LibVNCServer - จัดเตรียม libvncclient
  • iPhone 2.0 Toolchain - จัดเตรียมสภาพแวดล้อมการสร้าง (จำเป็นต้องมี gcc, libgcc, ldid, libz หากคุณไปเส้นทางอื่น)
  • MobileTerminal - ดังนั้นคุณจึงสามารถเข้าถึงเทอร์มินัลของ iPhone ได้
  • wget - เพื่อให้คุณสามารถดึงไฟล์ต้นฉบับลงได้

ตอนนี้ให้ดาวน์โหลดและสร้างแหล่งที่มา เปิด MobileTerminal หรือ SSH ในโทรศัพท์ของคุณ แล้วดำเนินการดังต่อไปนี้:

  • wget
  • gcc -static-libgcc -o TouchClient TouchClient.c -lvncclient
  • ldid -S TouchClient

ขั้นตอนสุดท้าย ใช้ ldid ปลอมเซ็นไบนารี หากไม่มี iPhone OS จะฆ่ากระบวนการของคุณทันที

ในการเริ่มโปรแกรม ให้เรียกใช้จาก Mobile Terminal ด้วย:

./TouchClient

สิ่งนี้จะทำให้ Veency ปรากฏขึ้นกล่องโต้ตอบถามว่าคุณต้องการยอมรับการเชื่อมต่อ VNC หรือไม่ กดยอมรับ

ฉันสังเกตเห็นว่าการเรียกใช้สิ่งนี้จาก MobileTerminal ทำให้โปรแกรมมีชีวิตอยู่แม้ว่าคุณจะออกจาก MobileTerminal แต่ควรใช้ launchd จะดีกว่า ฉันยังไม่ได้คิดออก

ขั้นตอนที่ 11: เสร็จสิ้นการสัมผัสและงานในอนาคต

ในการดำเนินการให้เสร็จสิ้น ให้ต่อสายจากพิน 13 บน iPhone breakout เข้ากับ TX pin (pin 1) บน Arduino ถอดสาย USB และเปลี่ยน Arduino เป็นแหล่งจ่ายไฟภายนอก เสียบปลั๊ก iPhone เข้ากับ iPhone ของคุณ

ถ้า:

  • TouchClient ทำงานบน iPhone ของคุณ
  • ซอฟต์แวร์ PS2 ทำงานบน Arduino. ของคุณ
  • เสียบคีย์บอร์ดเข้ากับคอนเน็กเตอร์ และคอนเน็กเตอร์ต่อเข้ากับ Arduino อย่างถูกต้อง
  • Venency กำลังทำงานและคุณได้ยอมรับการเชื่อมต่อจาก TouchClient
  • ไม่มีอะไรพังอีกแล้ว

คุณควรพิมพ์บนแป้นพิมพ์ PS/2 และแปลการกดแป้นเหล่านั้นเป็นการกดแป้นของ iPhone ที่เหมาะสม สิ่งนี้จะทำงานได้ทุกที่ใน iPhone ในแอปหรือคุณสมบัติดั้งเดิม

โซลูชันนี้ไม่สมบูรณ์แบบ แต่เป็นแนวทางทั่วไปในการใช้ Arduino เพื่อเพิ่มการรองรับแป้นพิมพ์ PS/2 ให้กับเกือบทุกอย่างที่สามารถอ่านข้อความซีเรียลแบบง่ายๆ

งานในอนาคต:

  • การทำแผนที่รหัสการสแกนสามารถย้ายไปยัง iPhone ได้ทั้งหมด และส่วนฮาร์ดแวร์ของโครงการนี้สามารถนำไปใช้ใหม่บนชิปที่ถูกกว่าและใช้พลังงานต่ำกว่ามาก เช่น PIC สิ่งนี้จะช่วยลดต้นทุนของหน่วยได้ประมาณ 30 เหรียญแม้ว่าจะต้องใช้โปรแกรมเมอร์ PIC
  • ไม่ใช่คีย์พิเศษทั้งหมดที่ถูกแมปอย่างถูกต้อง แต่ถ้าคุณดูในโค้ด Arduino แล้วดูโค้ดของ iPhone คุณจะเห็นว่านี่เป็นกระบวนการที่ง่ายอย่างไม่น่าเชื่อ กรุณาโพสต์การเปลี่ยนแปลงใด ๆ ที่คุณทำกลับมาที่นี่เป็นความคิดเห็น!
  • แทนที่จะเป็นการแฮ็กลวดบ้าๆ บอ ๆ ฉันต้องการเห็นสิ่งนี้พอดีกับกล่องหุ้มเล็กๆ ที่กระชับเพื่อการพกพาอย่างแท้จริง ความคิดใด ๆ ในแผนกนี้จะได้รับการชื่นชม
  • ฉันต้องการให้รหัสผ่าน TouchClient สำหรับ Veency เพื่อไม่ให้ป๊อปอัปยอมรับ/ปฏิเสธที่น่ารำคาญ
  • สามารถใช้วิธีการนี้เพื่อเพิ่มคีย์บอร์ด Bluetooth ได้ เพียงเพิ่มโมดูล Bluetooth-Serial ลงใน iPhone breakout และใช้ TouchClient & Veency ต่อไป

แค่นั้นแหละ. ฉันหวังว่าคุณจะสนุกกับการสอน! รอคอยที่จะแสดงความคิดเห็นของคุณ ขอแสดงความนับถือ - awgh

แนะนำ: