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 ...
随机推荐
- JavaScript是如何工作的(一)
简评:JavaScript 是越来越受欢迎了,很多团队都在采用这些语言工作.前端.后端.嵌入式设备等等,都可以看见它的身影.虽然我们知其然,但又知其所以然吗? 大家应该都知道 JavaScript 是 ...
- SQL语句中in not in exits not exits用法比较
exists (sql 如果返回结果集为真) not exists (sql 如果没有返回结果集为真) 如下: 表A ID NAME 1 A1 2 A2 3 A3 表B ID AID NAME 1 1 ...
- Python——5函数
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- HttpClientFactory的套路,你知多少?
背景 ASP.NET Core 在 2.1 之后推出了具有弹性 HTTP 请求能力的 HttpClient 工厂类 HttpClientFactory. 替换的初衷还是简单摆一下: ① using(v ...
- ASP.NET CORE 管道模型及中间件使用解读
说到ASP.NET CORE 管道模型不得不先来看看之前的ASP.NET 的管道模型,两者差异很大,.NET CORE 3.1 后完全重新设计了框架的底层,.net core 3.1 的管道模型更加灵 ...
- CSS Sprite雪碧图的应用
CSS雪碧图,即CSS Sprite,也有人叫它CSS精灵图,是一种图像拼合技术.该方法是将多个小图标和背景图像合并到一张图片上,然后利用CSS的背景定位来显示需要显示的图片部分. 雪碧图的使用场景 ...
- es6的解构函数
话说,解构无处不在啊,鄙人自从用了vue写项目以来,总是遇到各路大神莫名其妙的写法,然并未出任何错,查之,然解构也,呜呼哀哉,进而习之. 解构(Destructuring):是将一个数据结构分解为更小 ...
- mysql数据库远程访问设置方法
1. 修改方式1代码改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库 ...
- 使用GUI工具Portainer.io管控Docker容器
背景 5年前容器技术扑面而来,如今已经成为面向云原生开发的基础架构,基于微服务的设计需要部署大量容器,同时强调了友好快速的管理容器. 是时候推荐一个轮子Portainer.io:提供GUI界面的容器管 ...
- css hover 动画 transition:background-color 0.2s,color 0.2s; 外层套内层,正常是 里外层 鼠标上来 外层有hover,如果就想到里层hover触发外层hover,要用外层position 定义绝对定位,内层的hover跳出外层的div,这样视觉上就是两个单独的div,进行内外层联动。
css hover 动画 transition:background-color 0.2s,color 0.2s; 外层套内层,正常是 里外层 鼠标上来 外层有hover,如果就想到里层hover触发 ...