在之前的文章中,我们将操纵杆模块与Arduino UNO开发板进行连接,以了解它是如何工作的,并通过左、右、上、下运动控制四个LED指示灯。在本篇文章中,我们将使用操纵杆模块作为游戏手柄或游戏控制器来玩任何需要向左、右、上和下移动的电脑游戏。要玩需要更多控制选项的游戏,可以使用两个或更多个操纵杆。本文中,我们将使用Arduino Leonardo将操纵杆连接为游戏控制器。 Arduino Leonardo开发板比Uno更加强大,我们可以在计算机安装USB驱动程序,连接后可以被计算机检测为鼠标、键盘或操纵杆。

需要的组件

●   Arduino Leonardo开发板

●   双轴XY操纵杆模块

●   Arduino IDE

●   连接导线

Arduino Leonardo

在本篇文章中,我们使用的是Arduino Leonardo开发板,它是一个基于ATmega32u4的微控制器板。它有20个数字输入/输出引脚(其中7个可用作PWM输出,12个用作模拟输入)、16 MHz晶振、Micro USB连接、电源插孔、ICSP插头和复位按钮。它包含支持微控制器所需的一切;只需使用USB电缆将其连接到计算机,或使用AC-DC适配器或电池为其供电。

Arduino-Leonardo.jpg (28.48 KB, 下载次数: 51)

2019-6-5 16:42 上传

Leonardo与之前的所有开发板不同,ATmega32u4具有内置USB通信功能,无需二级处理器。除了作为虚拟(CDC)串行端口之外,Leonardo还可以作为鼠标和键盘连接的计算机上。

以下是该开发板的接口:

Arduino-Leonardo-Pinout.png (26.18 KB, 下载次数: 50)

2019-6-5 16:42 上传

操纵杆模块

操纵杆有不同的形状和尺寸。典型的操纵杆模块如下图所示。此操纵杆模块通常提供模拟输出,此模块提供的输出电压会根据我们移动它的方向而不断变化。我们可以通过使用某些微控制器解释这些电压变化来获得运动方向。

Joystick-Module.jpg (21.68 KB, 下载次数: 53)

2019-6-5 16:42 上传

如您所见,此操纵杆模块有两个轴。它们是X轴和Y轴。 操纵杆的每个轴都安装在电位器上。这些电位器的中点被认为是Rx和Ry。所以Rx和Ry是这些电位器的可变点。当操纵杆处于待机状态时,Rx和Ry充当分压器。

当操纵杆沿水平轴移动时,Rx引脚上的电压会发生变化。类似地,当它沿垂直轴移动时,Ry引脚的电压发生变化。因此,我们在两个ADC输出上有四个操纵杆方向。当移动杆时,每个引脚上的电压根据方向变高或变低。

电路原理图

这款Arduino操纵杆游戏控制器需要按照下图进行Arduino和操纵杆之间的连接:

Arduino-Joystick-Game-Controller.png (11.22 KB, 下载次数: 49)

2019-6-5 16:42 上传

Circuit-Diagram-for-Joystick-Game-Controller-using-Arduino-Leonardo.png (67.34 KB, 下载次数: 51)

2019-6-5 16:42 上传

Circuit-Hardware-for-Joystick-Game-Controller-using-Arduino-Leonardo.jpg (56.26 KB, 下载次数: 49)

2019-6-5 16:42 上传

代码和工作原理图

在本文的末尾处给出了完整代码;在本节中,我们只介绍代码中的一些重要部分。

首先,我们需要初始化键盘库

#include复制代码

接下来在下面的代码中,我们分别为模拟引脚A0和A1初始化了操纵杆模块的X和Y轴。

const int X_pin and const int Y_pin respectively复制代码

读取VRX引脚的模拟值,如果值为1023,则给出“up”命令,如果值为0,则给出“down”命令。

类似地,读取VRY引脚的模拟值,如果值为1023,则给出“right”的命令,如果值为0,则给出“left”的命令。

操纵杆顶部还有一个按钮,因此该按钮(SW)也被读取,如果按下该按钮,则该值为0,然后给出“enter”命令。

最后将代码烧录到Arduino中并将Arduino与计算机连接起来。

接下来,检查控制面板中的“设备和打印机”,您将能够在设备部分下方看到“Arduino Leonardo”,如下图所示。现在您已准备好使用操纵杆。

Joystick-with-Arduino-Leonardo.png (23.27 KB, 下载次数: 49)

2019-6-5 16:42 上传

我们可以使用此操纵杆控制任何游戏控制。操纵杆内部有两个电位器,一个用于X轴移动,另一个用于Y轴移动。每个电位器从Arduino获得5v。因此,当我们移动操纵杆时,电压值将发生变化,模拟引脚A0和A1的模拟值也会发生变化。因此操纵杆将充当游戏手柄。

Joystick-Game-Controller-using-Arduino-Leonardo.jpg (79.76 KB, 下载次数: 47)

2019-6-5 16:42 上传

以上就是使用Arduino Leonardo将普通操纵杆转换为游戏控制器的方法,可用于进行具有左、右、上和下移动的所有控件的游戏控制。

代码

以下是本篇文章使用的完整代码:

main.rar

(630 Bytes, 下载次数: 48)

2019-6-5 16:42 上传

点击文件名下载附件

arduino 操纵杆_使用Arduino Leonardo开发板制作操纵杆游戏控制器相关推荐

  1. 使用Arduino Leonardo开发板制作操纵杆游戏控制器

    在之前的文章中,我们将操纵杆模块与Arduino UNO开发板进行连接,以了解它是如何工作的,并通过左.右.上.下运动控制四个LED指示灯.在本篇文章中,我们将使用操纵杆模块作为游戏手柄或游戏控制器来 ...

  2. arduino串口监视器显示nan_使用Arduino开发板制作摩尔斯电码生成器

    摩尔斯电码是一种通信系统,用于在两个不同持续时间的信号中编码任何字符,称为点和虚线.摩尔斯电码由Samuel F.B开发.并进一步用于电报传输秘密信息.它在第二次世界大战时最常用.摩尔斯电码可以通过点 ...

  3. Arduino开发板制作

    Arduino UNO 介绍 ,Arduino开发板制作 教程: Arduino制作 Arduino UNO 图 Arduino是什么 Arduino是一款便捷灵活.方便上手的开源电子原型平台.包含硬 ...

  4. Arduino IDE环境下WeMos D1开发板引脚定义和映射

    Arduino IDE环境下WeMos D1开发板引脚定义和映射

  5. 基于arduino uno 开发板制作的 智能书包项目

    基于arduino uno 开发板制作的智能书包,当时收短视频启发,集合自动售货机的代码和RC522 读卡模块代码结合制作,现基本功能可以实现 ,目前代码部分尚不稳定需要继续改进 //一个智能书包小发 ...

  6. Arduino IDE安装UNO和NANO开发板驱动教程(CH341SER.EXE)

    Arduino IDE安装UNO和NANO开发板驱动教程(CH341SER.EXE) win10系统最方便的地方之一就是可以自动安装驱动,这个功能对于使用Arduino进行硬件编程的人而言可谓无比欢乐 ...

  7. 使用Arduino开发板制作交流电压表

    在本文中,我们将使用Arduino开发板制作一个交流电压测量装置,测量我们家中交流电源的电压.我们将在Arduino IDE的串行监视器上打印输出该电压,并在万用表上显示出来. 制作数字电压表比模拟电 ...

  8. 基于Arduino Uno开发板制作音乐播放器

    基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...

  9. RT-ThreadBearPi 开发笔记 -- 为小熊派开发板制作 RT-Thread BSP 包

    为小熊派开发板制作 RT-Thread BSP 包 前段时间,微联智控工作室向南京厚德物联网有限公司申请了一款物联网开发平台---小熊派物联网开发套件(BearPi-IoT).关于小熊派IoT开发平台 ...

  10. 用digispark开发板制作Bad USB

    用digispark开发板制作Bad USB 材料: digispark开发板一个(某宝8块8包邮) 软件: arduino IDE Automator https://github.com/CYRO ...

最新文章

  1. win10子系统ubuntu root用户
  2. addeventlistener事件第三个参数_简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序...
  3. [TCP/IP] TCP在listen时的参数backlog的意义
  4. python get()函数_C++使用ffpython嵌入和扩展python(python2和python3)
  5. 关于Actionscript 3中给Flash传参数方法(一)
  6. python场景应用方向_python的应用场景及学习方向
  7. 十字链表 java_十字链表法,十字链表压缩存储稀疏矩阵详解
  8. loss函数之MarginRankingLoss
  9. python动态爱心代码_python 动态绘制爱心的示例
  10. idea swagger生成接口文档_.NetCore3.1中使用Swagger生成接口文档
  11. 免费下载 | 秒变钉钉应用开发达人!《钉钉应用开发者速成手册》独家上线
  12. 淘宝二面:说下二维码登录的原理?我懵了。。。
  13. 关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决。
  14. c语言中优先级劣后级,基金优先级与劣后级的区别,看完就能明白
  15. 红花玉兰种植要求与养护要点
  16. JAVA.SE JUnit单元测试 NIO
  17. 220216HTML学习日记
  18. 百度地图的简单开发之方向传感器实现定位功能
  19. 一个逐渐完善的万能table(一)
  20. 新华书店也网售 要与当当、卓越“三足鼎立”?

热门文章

  1. 苹果手机在哪搜索测试版软件,如何在 beta 版软件上测试你的 App
  2. 量子计算机物理学,使用量子计算机来测试物理学的基本原理
  3. ftp上传工具下载,八款中文绿色版ftp上传工具下载(ftp客户端)
  4. IntelliJ IDEA自制主题theme--Type Color
  5. 真爱,就要失去自己?
  6. Counting Stars HDU - 6184
  7. MySQL 简单查询语句练习题(4+18)
  8. Python练习册,每天一个小程序(二)
  9. keil c语言字符型变量的值,Keil C语言
  10. 腾亚幕墙 HTML 教程