ในช่วงนี้เราจะไปอินเตอร์เฟซจอยสติ๊กกับราสเบอร์รี่ Pi จอยสติ๊กใช้เป็นหลักในการเล่นเกมต่างๆ แม้ว่าจอยสติ๊กประเภท USB จะเชื่อมต่อได้ง่าย แต่วันนี้เราจะเชื่อมต่อจอยสติ๊กผ่านขา Raspberry Pi GPIOซึ่งจะมีประโยชน์ในหลาย ๆ กรณี
Raspberry Pi และโมดูลจอยสติ๊ก:
จอยสติ๊กมีให้เลือกหลายรูปทรงและขนาด โมดูลจอยสติ๊กทั่วไปจะแสดงในรูปด้านล่าง โดยทั่วไปโมดูลจอยสติ๊กนี้จะให้เอาต์พุตแบบอนาล็อกและแรงดันเอาต์พุตที่ให้มาจากโมดูลนี้จะเปลี่ยนไปเรื่อย ๆ ตามทิศทางที่เราเคลื่อนย้าย และเราสามารถหาทิศทางการเคลื่อนที่ได้โดยการตีความการเปลี่ยนแปลงแรงดันไฟฟ้าเหล่านี้โดยใช้ไมโครคอนโทรลเลอร์บางตัว ก่อนหน้านี้เราได้ใช้ AVR Microcontroller กับ Joystick
โมดูลจอยสติ๊กนี้มีสองแกนอย่างที่คุณเห็น พวกมันคือแกน X และแกน Y แต่ละแกนของ JOY STICK ติดตั้งกับโพเทนชิออมิเตอร์หรือหม้อ จุดกึ่งกลางของหม้อเหล่านี้ถูกขับออกเป็น Rx และ Ry ดังนั้น Rx และ Ry จึงเป็นจุดแปรผันของกระถางเหล่านี้ เมื่อจอยสติ๊กอยู่ในโหมดสแตนด์บาย Rx และ Ry จะทำหน้าที่เป็นตัวแบ่งแรงดันไฟฟ้า
เมื่อจอยสติ๊กถูกย้ายไปตามแกนแนวนอนแรงดันไฟฟ้าที่ขา Rx จะเปลี่ยนไป ในทำนองเดียวกันเมื่อเคลื่อนไปตามแกนแนวตั้งแรงดันไฟฟ้าที่ขา Ry จะเปลี่ยนไป ดังนั้นเราจึงมีจอยสติ๊กสี่ทิศทางบนเอาต์พุต ADC สองตัว เมื่อแท่งไม้ถูกเคลื่อนย้ายแรงดันไฟฟ้าของแต่ละพินจะสูงหรือต่ำขึ้นอยู่กับทิศทาง
อย่างที่เราทราบกันดีว่าRaspberry Pi ไม่มีกลไก ADC (Analog to Digital Converter) ภายใน ดังนั้นโมดูลนี้จึงไม่สามารถเชื่อมต่อโดยตรงกับ Pi ได้ เราจะใช้ตัวเปรียบเทียบที่ใช้ Op-amp เพื่อตรวจสอบแรงดันไฟฟ้าขาออก OP-Amps เหล่านี้ให้สัญญาณไปยัง Raspberry Pi และ Pi สลับไฟ LED ขึ้นอยู่กับสัญญาณ ที่นี่เราได้ใช้ LED สี่ดวงเพื่อระบุการเคลื่อนไหวของจอยสติ๊กในสี่ทิศทาง ตรวจสอบวิดีโอสาธิตในตอนท้าย
หมุด GPIO 17 ตัวแต่ละตัวไม่สามารถรับแรงดันไฟฟ้าได้สูงกว่า + 3.3V ดังนั้นเอาต์พุตของ Op-amp ต้องไม่สูงกว่า 3.3V ดังนั้นเราจึงเลือกop-amp LM324 IC นี้จึงมีแอมพลิฟายเออร์ที่ใช้งานได้สี่ตัวซึ่งสามารถทำงานที่ 3V ด้วย IC นี้เรามีเอาต์พุตที่เหมาะสมสำหรับเอาต์พุตสำหรับ Raspberry pi GPIO Pins ของเรา เรียนรู้เพิ่มเติมเกี่ยวกับ GPIO Pins ของ Raspberry Pi ที่นี่ ตรวจสอบซีรี่ส์การสอน Raspberry Pi ของเราพร้อมกับโครงการ IoT ที่ดี
ส่วนประกอบที่ต้องการ:
ที่นี่เราจะใช้ ราสเบอร์รี่ Pi 2 รุ่น B กับ Raspbian Jessie OS ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์พื้นฐานทั้งหมดได้กล่าวไว้ก่อนหน้านี้คุณสามารถค้นหาได้ในบทนำ Raspberry Pi และ Raspberry PI LED กะพริบเพื่อเริ่มต้นใช้งานนอกเหนือจากที่เราต้องการ:
- ตัวเก็บประจุ 1,000µF
- โมดูลจอยสติ๊ก
- LM324 โอปแอมป์ IC
- ตัวต้านทาน1KΩ (12 ชิ้น)
- LED (4 ชิ้น)
- ตัวต้านทาน2.2KΩ (4 ชิ้น)
แผนภูมิวงจรรวม:
มีตัวเปรียบเทียบ OP-AMP สี่ตัวภายใน LM324 IC สำหรับตรวจจับจอยสติ๊กสี่ทิศทาง ด้านล่างนี้คือแผนภาพของLM324 ICจากแผ่นข้อมูล
การเชื่อมต่อที่ทำกับโมดูล Interfacing Joystick กับ Raspberry Piแสดงอยู่ในแผนภาพวงจรด้านล่าง U1: A, U1: B, U1: C, U1: D หมายถึงตัวเปรียบเทียบสี่ตัวภายใน LM324 เราได้แสดงตัวเปรียบเทียบแต่ละตัวในแผนภาพวงจรพร้อมหมายเลขพินที่สอดคล้องกัน ของ LM324 IC
คำอธิบายการทำงาน:
สำหรับการตรวจจับการเคลื่อนไหวของจอยสติ๊กตามแกน Y เรามี OP-AMP1 หรือ U1: A และ OP-AMP2 หรือ U1: B และสำหรับการตรวจจับการเคลื่อนไหวของจอยสติ๊กตามแกน X เรามี OP-AMP3 หรือ U1: C และ OP-AMP4 หรือ U1: D
OP-AMP1 ตรวจจับการเคลื่อนไหวด้านล่างของจอยสติ๊กตามแกน Y:
ขั้วลบของเครื่องเปรียบเทียบ U1: A มาพร้อมกับ 2.3V (ใช้วงจรแบ่งแรงดันไฟฟ้าโดย 1K และ 2.2K) และขั้วบวกเชื่อมต่อกับ Ry เมื่อเลื่อนจอยสติ๊กลงไปตามแกน Y แรงดันไฟฟ้า Ry จะเพิ่มขึ้น เมื่อแรงดันไฟฟ้าสูงกว่า 2.3V OP-AMP จะให้เอาต์พุต + 3.3V ที่ขาเอาต์พุต เอาต์พุตลอจิกสูงของ OP-AMP นี้จะตรวจพบโดย Raspberry Pi และ Pi ตอบสนองโดยการสลับ LED
OP-AMP2 ตรวจจับการเคลื่อนที่กลับหัวของจอยสติ๊กตามแกน Y:
ขั้วลบของเครื่องเปรียบเทียบ U1: B มีให้ 1.0V (ใช้วงจรแบ่งแรงดันไฟฟ้า 2.2K และ 1K) และขั้วบวกเชื่อมต่อกับ Ry เมื่อเลื่อนจอยสติ๊กขึ้นไปตามแกน Y แรงดันไฟฟ้า Ry จะลดลง เมื่อแรงดันไฟฟ้าต่ำกว่า 1.0V เอาต์พุต OP-AMP จะต่ำ เอาต์พุตลอจิกต่ำของ OP-AMP นี้จะตรวจพบโดย Raspberry Pi และ Pi ตอบสนองโดยการสลับ LED
OP-AMP3 ตรวจจับการเคลื่อนไหวด้านซ้ายของจอยสติ๊กตามแกน X:
ขั้วลบของเครื่องเปรียบเทียบ U1: C มาพร้อมกับ 2.3V (ใช้วงจรแบ่งแรงดันไฟฟ้าโดย 1K และ 2.2K) และขั้วบวกเชื่อมต่อกับ Rx เมื่อเลื่อนจอยสติ๊กไปทางซ้ายตามแกน x แรงดันไฟฟ้า Rx จะเพิ่มขึ้น เมื่อแรงดันไฟฟ้าสูงกว่า 2.3V OP-AMP จะให้เอาต์พุต + 3.3V ที่ขาเอาต์พุต เอาต์พุตลอจิกสูงของ OP-AMP นี้จะตรวจพบโดย Raspberry Pi และ Pi ตอบสนองโดยการสลับ LED
OP-AMP4 ตรวจจับการเคลื่อนไหวด้านขวาของจอยสติ๊กตามแกน X:
ขั้วลบของเครื่องเปรียบเทียบ U1: 4 มาพร้อมกับ 1.0V (ใช้วงจรแบ่งแรงดันไฟฟ้า 2.2K และ 1K) และขั้วบวกเชื่อมต่อกับ Rx เมื่อเลื่อนจอยสติ๊กไปทางขวาตามแกน x แรงดันไฟฟ้า Rx จะลดลง เมื่อแรงดันไฟฟ้าต่ำกว่า 1.0V เอาต์พุต OP-AMP จะต่ำ เอาต์พุตลอจิกต่ำของ OP-AMP นี้จะตรวจพบโดย Raspberry Pi และ Pi ตอบสนองโดยการสลับ LED
ด้วยวิธีนี้ทั้งสี่ลอจิกซึ่งกำหนดทิศทางทั้งสี่ของจอยสติ๊กเชื่อมต่อกับ Raspberry Pi Raspberry Pi ใช้เอาท์พุตของเครื่องเปรียบเทียบเหล่านี้เป็นอินพุตและตอบสนองตามนั้นโดยการสลับไฟ LED ด้านล่างนี้เป็นผลลัพธ์ที่แสดงบนเทอร์มินัล Raspberry Pi เนื่องจากเราได้พิมพ์ทิศทางของจอยสติ๊กบนเทอร์มินัลโดยใช้รหัส Python ของเรา
รหัส Python และวิดีโอได้รับด้านล่าง รหัสเป็นเรื่องง่ายและสามารถเข้าใจได้จากความคิดเห็นที่ระบุไว้ในโค้ด