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 ...
随机推荐
- vuejs 踩坑及经验总结
问题描述 在使用 v-for repeat 组件时控制台会出现警告: 解决方法 在组件标签上使用 v-for : 加 :key 使用 template 标签包裹该组件,再在 template 标签 上 ...
- QIs for Spread
玩了好几天,看了好多剧,所以这几天的进度稍微有点慢,另外,<一起同过窗>真香! 延展特性涉及解集覆盖的区域.一个具有良好分布的解集应该包含来自PF每个部分的解集,而不遗漏任何区域.然而,大 ...
- 【深入理解Java虚拟机】类的初始化过程
类的初始化过程 类的加载过程.png 加载 将 Class 文件以二进制的形式加载到内存中 验证 校验 Class 文件是否安全,是否被正确的修改等 准备 为类变量申请内存,设置默认值,(初始化变量的 ...
- flask 返回json数据
ret={ 'a':1 } return jsonify(ret) 不能直接返回ret,应该用jsonify().这样返回的Content-Type: application/json;charset ...
- NumPy——统计函数
引入模块import numpy as np 1.numpy.sum(a, axis=None)/a.sum(axis=None) 根据给定轴axis计算数组a相关元素之和,axis整数或元组,不指定 ...
- iMX287A基于嵌入式Qt的新冠肺炎疫情监控平台
目录 1.前言 2.数据接口的获取 3.Qt界面的实现 4.在开发板上运行Qt程序 5.最终效果 6.代码下载 @ 1.前言 之前我使用在桌面版本Qt实现了肺炎疫情监控平台:基于Qt的新冠肺炎疫情数据 ...
- tomcat启动出现问题,有待解决
三月 15, 2017 2:23:41 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule ...
- 【推荐算法工程师技术栈系列】分布式&数据库--tensorflow
目录 TensorFlow 高阶API Dataset(tf.data) Estimator(tf.estimator) FeatureColumns(tf.feature_column) tf.nn ...
- Deepin环境下启动Pycharm没有启动图标解决办法
小伙伴们在deepin下运行pycharm时,是不是需要通过sh文件启动? 下面告诉大家如何将pycharm图标放在桌面上: 1.在桌面打开终端,输入命令: sudo gedit /usr/share ...
- GitHub 热点速览 vol.10:疫情下的 GitHub
作者:HelloGitHub-小鱼干 摘要:如果说上周的 GitHub 是股市附体 star 低迷不振,那么本周的 GitHub 像极了受到疫情影响而未开学的高校们,新生 GitHub 项少,能上 G ...