Trong phần này, chúng ta sẽ giao diện Cần điều khiển với Raspberry Pi. Cần điều khiển chủ yếu được sử dụng để chơi các trò chơi khác nhau. Mặc dù cần điều khiển loại USB rất dễ kết nối, nhưng hôm nay chúng ta sẽ kết nối Joystick thông qua các chân GPIO của Raspberry Pi, điều này sẽ hữu ích trong nhiều trường hợp.
Raspberry Pi và Mô-đun cần điều khiển:
Cần điều khiển có nhiều hình dạng và kích cỡ khác nhau. Một mô-đun Joystick điển hình được hiển thị trong hình bên dưới. Mô-đun Joystick này thường cung cấp các Đầu ra Analog và điện áp đầu ra được cung cấp bởi mô-đun này liên tục thay đổi theo hướng mà chúng ta di chuyển nó. Và chúng ta có thể nhận được hướng di chuyển bằng cách diễn giải những thay đổi điện áp này bằng cách sử dụng một số vi điều khiển. Trước đây chúng ta đã sử dụng Vi điều khiển AVR với Cần điều khiển.
Mô-đun cần điều khiển này có hai trục như bạn có thể thấy. Chúng là trục X và trục Y. Mỗi trục của JOY STICK được gắn vào một chiết áp hoặc nồi. Điểm giữa của các bình này được chuyển ra ngoài là Rx và Ry. Vì vậy Rx và Ry là điểm thay đổi của các bình này. Khi Cần điều khiển ở chế độ chờ, Rx và Ry hoạt động như bộ phân áp.
Khi cần điều khiển được di chuyển dọc theo trục hoành, điện áp tại chân Rx thay đổi. Tương tự, khi nó được dịch chuyển dọc theo trục tung, điện áp tại chân Ry thay đổi. Vì vậy, chúng ta có bốn hướng của Cần điều khiển trên hai đầu ra ADC. Khi thanh được di chuyển, điện áp trên mỗi chân sẽ cao hoặc thấp tùy thuộc vào hướng.
Như chúng ta đã biết Raspberry Pi không có cơ chế ADC (Analog to Digital Converter) bên trong. Vì vậy, mô-đun này không thể kết nối trực tiếp với Pi. Chúng tôi sẽ sử dụng bộ so sánh dựa trên Op-amp để kiểm tra đầu ra điện áp. Các OP-Amps này cung cấp tín hiệu cho Raspberry Pi và Pi bật tắt các đèn LED tùy theo tín hiệu. Ở đây chúng tôi đã sử dụng bốn đèn LED để chỉ ra chuyển động của Cần điều khiển theo bốn hướng. Kiểm tra Video trình diễn ở cuối.
Mỗi chân trong số 17 chân GPIO không được nhận điện áp cao hơn + 3,3V, vì vậy đầu ra Op-amp không được cao hơn 3,3V. Do đó, chúng tôi đã chọn op-amp LM324, vi mạch này có bộ khuếch đại hoạt động bốn có thể hoạt động ở 3V. Với IC này, chúng tôi có các đầu ra phù hợp cho đầu ra cho các Chân GPIO Raspberry pi của chúng tôi. Tìm hiểu thêm về các Ghim GPIO của Raspberry Pi tại đây. Ngoài ra, hãy xem Series Hướng dẫn Raspberry Pi của chúng tôi cùng với một số Dự án IoT tốt.
Các thành phần bắt buộc:
Ở đây chúng tôi đang sử dụng Raspberry Pi 2 Model B với Hệ điều hành Raspbian Jessie. Tất cả các yêu cầu cơ bản về Phần cứng và Phần mềm đã được thảo luận trước đây, bạn có thể tra cứu nó trong phần Giới thiệu Raspberry Pi và Nhấp nháy đèn LED Raspberry PI để bắt đầu, ngoài những điều chúng tôi cần:
- Tụ điện 1000µF
- Mô-đun cần điều khiển
- IC Op-amp LM324
- Điện trở 1KΩ (12 miếng)
- LED (4 miếng)
- Điện trở 2.2KΩ (4 miếng)
Sơ đồ mạch:
Có bốn bộ so sánh OP-AMP bên trong IC LM324 để phát hiện bốn hướng của Cần điều khiển. Dưới đây là sơ đồ của IC LM324 từ biểu dữ liệu của nó.
Các kết nối được thực hiện cho mô-đun Interfacing Joystick với Raspberry Pi được hiển thị trong sơ đồ mạch bên dưới. U1: A, U1: B, U1: C, U1: D chỉ ra bốn bộ so sánh bên trong LM324. Chúng tôi đã chỉ ra mỗi bộ so sánh trong sơ đồ mạch với số Pin tương ứng. của IC LM324.
Giải thích làm việc:
Để phát hiện chuyển động của Cần điều khiển dọc theo trục Y, chúng tôi có OP-AMP1 hoặc U1: A và OP-AMP2 hoặc U1: B và để phát hiện chuyển động của Cần điều khiển dọc theo trục X, chúng tôi có OP-AMP3 hoặc U1: C và OP-AMP4 hoặc U1: D.
OP-AMP1 phát hiện chuyển động xuống của cần điều khiển dọc theo trục Y:
Cực âm của bộ so sánh U1: A được cung cấp 2,3V (sử dụng mạch phân áp 1K và 2,2K) và cực dương được nối với Ry. Khi di chuyển cần điều khiển xuống dọc theo trục Y của nó, điện áp Ry tăng lên. Khi điện áp này cao hơn 2.3V, OP-AMP cung cấp đầu ra + 3.3V tại Chân đầu ra của nó. Đầu ra logic CAO này của OP-AMP sẽ được Raspberry Pi phát hiện và Pi phản hồi bằng cách bật tắt đèn LED.
OP-AMP2 phát hiện chuyển động ngược của cần điều khiển dọc theo trục Y:
Cực âm của bộ so sánh U1: B được cung cấp 1,0V (sử dụng mạch phân áp 2,2K và 1K) và cực dương được nối với Ry. Khi di chuyển cần điều khiển lên dọc theo trục Y của nó, điện áp Ry giảm. Khi điện áp này thấp hơn 1,0V, đầu ra OP-AMP sẽ ở mức Thấp. Đầu ra logic THẤP này của OP-AMP sẽ được Raspberry Pi phát hiện và Pi phản hồi bằng cách bật tắt đèn LED.
OP-AMP3 phát hiện chuyển động bên trái của cần điều khiển dọc theo trục X:
Đầu cực âm của bộ so sánh U1: C được cung cấp 2,3V (sử dụng mạch phân áp 1K và 2,2K) và đầu cực dương được nối với Rx. Khi di chuyển cần điều khiển sang trái dọc theo trục x của nó, điện áp Rx tăng lên. Khi điện áp này cao hơn 2.3V, OP-AMP cung cấp đầu ra + 3.3V tại Pin đầu ra của nó. Đầu ra logic CAO này của OP-AMP sẽ được Raspberry Pi phát hiện và Pi phản hồi bằng cách bật tắt đèn LED.
OP-AMP4 phát hiện chuyển động bên phải của cần điều khiển dọc theo trục X:
Đầu cực âm của bộ so sánh U1: 4 được cung cấp 1,0V (sử dụng mạch phân áp 2,2K và 1K) và đầu cực dương được kết nối với Rx. Khi di chuyển cần điều khiển sang phải dọc theo trục x của nó, điện áp Rx giảm. Khi điện áp này thấp hơn 1,0V, đầu ra OP-AMP sẽ ở mức Thấp. Đầu ra logic THẤP này của OP-AMP sẽ được Raspberry Pi phát hiện và Pi phản hồi bằng cách bật tắt đèn LED.
Bằng cách này, tất cả bốn lôgic, xác định bốn hướng của Joystick, được kết nối với Raspberry Pi. Raspberry Pi lấy đầu ra của các bộ so sánh này làm đầu vào và phản hồi tương ứng bằng cách bật tắt các đèn LED. Dưới đây là kết quả được hiển thị trên thiết bị đầu cuối của Raspberry Pi, vì chúng tôi cũng đã in hướng của Cần điều khiển trên thiết bị đầu cuối bằng cách sử dụng Mã Python của chúng tôi.
Mã Python và video được đưa ra bên dưới. Mã rất dễ dàng và có thể được hiểu bằng các nhận xét được đưa ra trong mã.