Difference between revisions of "Matrix - Joystick/zh"
From FriendlyELEC WiKi
(→特性) |
|||
Line 10: | Line 10: | ||
* PCB尺寸(mm):24X32 | * PCB尺寸(mm):24X32 | ||
[[File:stkpcb.png|frameless|400px|双轴摇杆PCB]] | [[File:stkpcb.png|frameless|400px|双轴摇杆PCB]] | ||
+ | |||
+ | ==工作原理== | ||
+ | 模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。模块集成电源指示灯,可显示工作状态;坐标标识符清晰简明、准确定位。 | ||
+ | 为了让客户更加方便地配合扩展板等标准接口,在设计上把 X,Y,Z 轴的电路都单独引出,以控制输入这个操纵杆模块的 x、y、z 的 PS2摇杆 戏摇杆模块 Joystick 值以及在特定的值下实现某种功能。 | ||
==使用方法== | ==使用方法== | ||
===连接=== | ===连接=== | ||
− | * | + | *连接到NanoPi |
− | ::1) | + | ::1) 需要NanoPi先连接[[Matrix - Analog to Digital Converter]]配件 |
::2) 然后,Joystick与[[Matrix - Analog to Digital Converter]]配件相连接: | ::2) 然后,Joystick与[[Matrix - Analog to Digital Converter]]配件相连接: | ||
::::GND针脚接地 | ::::GND针脚接地 | ||
Line 21: | Line 25: | ||
::::VRY针脚连接Analog to Digital Converter的AIN1针脚 | ::::VRY针脚连接Analog to Digital Converter的AIN1针脚 | ||
::::SW针脚连接Analog to Digital Converter的AIN2针脚 | ::::SW针脚连接Analog to Digital Converter的AIN2针脚 | ||
− | + | [[File:joystick&NanoPi.png|frameless|600px|NanoPi+joystick]] | |
===Linux下的C示例=== | ===Linux下的C示例=== |
Revision as of 05:30, 25 August 2015
Contents
1 介绍
摇杆是由两个滑动变阻器和一个按键组成。当拨动摇杆时,滑动变阻器的阻值就发生变化,对应的X/Y电压值也随之变化,而用力按下摇杆就会触发按键按下,对应的SW信号变为低电平。
2 特性
- X和Y轴,一个按键
- 2.54mm排针接口,接线方便,通用性强
- PCB尺寸(mm):24X32
3 工作原理
模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。模块集成电源指示灯,可显示工作状态;坐标标识符清晰简明、准确定位。 为了让客户更加方便地配合扩展板等标准接口,在设计上把 X,Y,Z 轴的电路都单独引出,以控制输入这个操纵杆模块的 x、y、z 的 PS2摇杆 戏摇杆模块 Joystick 值以及在特定的值下实现某种功能。
4 使用方法
4.1 连接
- 连接到NanoPi
- 1) 需要NanoPi先连接Matrix - Analog to Digital Converter配件
- 2) 然后,Joystick与Matrix - Analog to Digital Converter配件相连接:
- GND针脚接地
- V针脚接5V
- VRX针脚连接Analog to Digital Converter的AIN0针脚
- VRY针脚连接Analog to Digital Converter的AIN1针脚
- SW针脚连接Analog to Digital Converter的AIN2针脚
4.2 Linux下的C示例
#include <stdio.h> #include <unistd.h> #include <signal.h> #include <stdlib.h> #include "libfahw.h" #define SW_TRIGGER (5) #define PS2_READ_TIMES (10) static int devFD; void PS2Handler(int signNum) { if (signNum == SIGINT) { printf("Quit reading PS2 rocker\n"); pcf8591DeInit(devFD); } exit(0); } int main(int argc, char ** argv) { int mode = 0x0; if ((devFD = pcf8591Init()) == -1) { printf("Fail to init pcf8591 AD\n"); return -1; } if (pcf8591SetCtrl(devFD, PCF8591_INIT_AD_CONTROL) == -1) { printf("Fail to Set pcf8591 control AD\n"); pcf8591DeInit(devFD); return -1; } int i = 0; int x, y, z; signal(SIGINT, PS2Handler); for (i=0; i<PS2_READ_TIMES; i++) { x = pcf8591Read(devFD, mode, PCF8591_AIN_CHANNEL0); y = pcf8591Read(devFD, mode, PCF8591_AIN_CHANNEL1); z = pcf8591Read(devFD, mode, PCF8591_AIN_CHANNEL2); if (z > SW_TRIGGER) { z = 0; } else { z = 0; } else { z = 1; } printf("X=%3d Y=%3d Z=%d\n", x, y, z); sleep(1); } pcf8591DeInit(devFD); return 0; }
4.3 编译并运行示例
git clone http://github.com/friendlyarm/fa-hardware.git cd fa-hardware cd demo cd matrix-joystick make
将编译生成的PS2rocker通过ftp上传到开发板上运行即可测试。