PS2手柄在arduino上进行测试,可用,供喜欢diy的朋友借鉴
#include <PS2X_lib.h> //PS2手柄
PS2X ps2x; // create PS2 Controller Class
//////////PS2引脚//////////////////一共4个信号引脚
#define PS2_DAT 26 // DI
#define PS2_CMD 27 // DO
#define PS2_SEL 32 //CS
#define PS2_CLK 34 ////////////
unsigned char servo,PS2_LY,PS2_LX,PS2_RY,PS2_RX,PS2_KEY; //定义相关的变量
void (* resetFunc) (void) = 0;// Reset func
/***********函数功能:初始化 相当于STM32里面的Main函数 作者:平衡小车之家************/
void setup() {
char error;
Serial.begin(57600); //开启串口
error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, false, false);//PS2控制
}
/******函数功能:主循环程序体*******/
void loop(){
ps2x.read_gamepad(false, 0); //read controller and set large motor to spin at 'vibrate' speed
PS2_LX=ps2x.Analog(PSS_LX);
PS2_LY=ps2x.Analog(PSS_LY);
PS2_RX=ps2x.Analog(PSS_RX);
PS2_RY=ps2x.Analog(PSS_RY);
Serial.print("PS2_LX:");
Serial.print(PS2_LX);
Serial.print(" PS2_LY:");
Serial.print(PS2_LY);
Serial.print(" PS2_RX:");
Serial.print(PS2_RX);
Serial.print(" PS2_RY:");
Serial.print(PS2_RY);
if(ps2x.Button(PSB_TRIANGLE)) Serial.println(" PSB_TRIANGLE");
else if(ps2x.Button(PSB_CROSS)) Serial.println(" PSB_CROSS");
else if(ps2x.Button(PSB_CIRCLE)) Serial.println(" PSB_CIRC");
else if(ps2x.Button(PSB_SQUARE)) Serial.println(" PSB_SQUARE");
else if(ps2x.Button(PSB_PAD_UP)) Serial.println(" PSB_PAD_UP");
else if(ps2x.Button(PSB_PAD_DOWN)) Serial.println(" PSB_PAD_DOWN");
else if(ps2x.Button(PSB_PAD_RIGHT)) Serial.println(" PSB_PAD_RIGHT");
else if(ps2x.Button(PSB_PAD_LEFT)) Serial.println(" PSB_PAD_LEFT");
else if(ps2x.Button(PSB_R1)) Serial.println(" PSB_R1");
else if(ps2x.Button(PSB_R2)) Serial.println(" PSB_R2");
else if(ps2x.Button(PSB_SELECT)) Serial.println(" PSB_SELECT");
else if(ps2x.Button(PSB_START)) Serial.println(" PSB_START");
else if(ps2x.Button(PSB_L1)) Serial.println(" PSB_L1");
else if(ps2x.Button(PSB_L2)) Serial.println(" PSB_L2");
else Serial.println(" KEY_RELEASE");
}
PS2手柄在arduino上进行测试,可用,供喜欢diy的朋友借鉴的更多相关文章
- Plupload 多实例上传 测试可用
<style type="text/css"> .btn{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-bo ...
- linux下libnet编程 亲自测试可用
linux下libnet编程 亲自测试可用 亲自测试 如果build包的时候 只要把类型改了 就能改成相应的协议. 0x0800 ip 0x0806 arp 0x86DD IPv6 0x86e ...
- [转帖]上云测试,这些关键点你get 到没有
上云测试,这些关键点你get 到没有 https://www.cnblogs.com/mypm/p/10852656.html?tdsourcetag=s_pcqq_aiomsg sticky 还有s ...
- 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...
- 微软官方网站线上兼容测试平台-Browser screenshots
前端开发时最不想做的就是在不同浏览器.平台和分辨率测试网页显示效果,通常这会浮现许多问题,尤其浏览器版本就可能让显示成效完全不同,也只好尽力维持让每一种设备都能正常浏览网页.修改到完全没有问题必须投入 ...
- arduino上使用sprintf()函数输出float值出错
如果尝试使用sprintf()函数在arduino上进行对float指转换为一个字符串的话,你会发现,it doesn't work.弄了很久,还以为是没学c++的原因.其实在arduino上,这个函 ...
- 通过ALM OTA API获取test case的信息,并上传测试结果到test set中
ALM提供了OTA接口,可以用来获取和上传测试数据到ALM.比如获取Test case的step信息.上传测试结果到test instance. 在ALM的Help中可以下载相关文档,这里以ALM11 ...
- 无需编译app切换线上、测试环境
在咱们测试过程中,经常需要切换测试环境和线上环境.大致有如下几个方案. 一.服务器地址编译到app中 此种方式需要在代码里保存两套配置,一套指向线上,一套指向测试.通过编译参数分别生成测试包.线上包. ...
- Arduino上“Collect2.exe: error: ld returned 5 exit status”错误的解决方法
1.运行环境 Windows xp; Arduino1.6.11 IDE. 2.问题 在Arduino编译时,经常出现如下的错误: collect2.exe: error: ld returned 5 ...
随机推荐
- 机器学习的盛宴:NIPS 2015
作者:微软亚洲研究院实习生:林添 冰雪王国的浪漫 机器学习的盛宴 NIPS(Advances in Neural Information Processing Systems,神经信息处理系统进展大会 ...
- CSS——NO.2(CSS样式的基本知识)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- CSS(0)CSS的引入方式
CSS (cascading style sheet) 层叠样式表 css引入的三种方式: 1.行间样式 <!--在body内写入--> <div></div> ...
- MVC03
1.添加model model 的作用是什么? 处理项目的数据模型,与数据库交互 .net推荐的处理数据的方式:使用 idd framework 1)新建model 右键models文件夹,选择添加, ...
- 【WPF学习】第五十六章 基于帧的动画
除基于属性的动画系统外,WPF提供了一种创建基于帧的动画的方法,这种方法只使用代码.需要做的全部工作是响应静态的CompositionTarge.Rendering事件,触发该事件是为了给每帧获取内容 ...
- Java 八种基本类型和基本类型封装类
1.首先,八种基本数据类型分别是:int.short.float.double.long.boolean.byte.char: 它们的封装类分别是:Integer.Short.Float.Doub ...
- LaTex公式符号
下面这个网站是我认为比较齐全的网站 http://www.mohu.org/info/symbols/symbols.htm
- [转帖]RSYNC 的核心算法
RSYNC 的核心算法 https://coolshell.cn/articles/7425.html rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并 ...
- python框架Django实战商城项目之用户模块创建
创建用户APP 整个项目会存在多个应用,需要存放在一个单独的文件包了,所以新建一个apps目录,管理所有子应用. 在apps包目录下穿件users应用 python ../../manage.py s ...
- 编码的来源于格式简介ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE
编码一直是让新手头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚.但是编码又是那么重要,特别在网页这一块.如果你打出来 ...