Qwiic手柄连接指南

γ
贡献者: 圣诞老人模仿者
喜爱的 最喜欢的 0

介绍

现在,您可以轻松地将HID/控制器添加到项目中!必威娱乐登录平台这个必威娱乐登录平台Sparkfun Qwiic操纵杆结合了QWIIC连接系统的便利性和模拟操纵杆,让人联想到拇指棍从ps2控制器。

必威娱乐登录平台Sparkfun Qwiic操纵杆

必威娱乐登录平台Sparkfun Qwiic操纵杆

COM—15168
9.95美元

多亏了一个阁楼QWIC游戏杆,所有必要的位被照顾和你的微控制器只需要寻找你的输入在寄存器的I2C装置。

所需材料

Qwiic游戏杆需要一些额外的项目才能开始。这个红木QWIC是为Arduino的例子和Qwiic帽子是树莓派的例子(见下面的注释)。你可能已经有一些这样的东西了,因此,请根据您的需要随意修改您的购物车。

必威娱乐登录平台Sparkfun红板QWIIC

必威娱乐登录平台Sparkfun红板QWIIC

dev - 15123
19.95美元
必威娱乐登录平台Sparkfun Qwiic电缆套件

必威娱乐登录平台Sparkfun Qwiic电缆套件

KIT-150
7.95美元
必威娱乐登录平台树莓派的Sparkfun Qwiic帽子

必威娱乐登录平台树莓派的Sparkfun Qwiic帽子

dev - 14459
5.95美元
覆盆子Pi示例:如果你还没有的话,你需要一个 覆盆子π标准外围设备.下面列出了一个示例设置。

树莓Pi 3

DEV-13825
九十二
Pi Topceed(绿色)

Pi Topceed(绿色)

KIT-14035
114.95美元
4
多媒体无线键盘

多媒体无线键盘

WIG-1427
29.95美元 19.95美元
2

Raspberry Pi™-16GB microSD noobs卡

COM-13945型

建议阅读

如果你不熟悉跳线垫,我2C或者python一定要签出一些基础教程。

逻辑电平

必威手机登陆学习3.3V和5V设备和逻辑电平的区别。

I2C

I2c简介,目前使用的主要嵌入式通信协议之一。

如何使用跳线垫和PCB跟踪

处理PCB跳线板和跟踪是一项基本技能。必威手机登陆了解如何切割印刷电路板痕迹,在焊盘之间添加焊料跳线以重新连接,如果痕迹损坏,用绿线法修复痕迹。

Redboard QWIIC连接指南

本教程介绍Redboard Qwiic的基本功能。本教程还介绍了如何开始闪烁LED和使用QWIIC系统。

树莓派SPI和I2C教程

必威手机登陆了解如何使用串行I2C和SPI总线在树莓派使用wiringPi I/O库为C/ c++和spidev/smbus为Python。

Qwiic帽子为树莓派勾搭指南

开始使用你的Qwiic板和覆盆子圆周率接口。此QWIIC连接I2C总线(GND,3.3V,SDA,和SCL)上的树莓派,以数组的Qwiic连接器。

Python编程教程:Raspberry PI入门

本指南将向您展示如何使用Python来控制硬件,在Raspberry PI上编写程序。

如果你不熟悉QWIIC系统,我们推荐阅读这里概述一下.

QWIIC连接系统
QWIIC连接系统

硬件概述

QWIIC操纵杆将报告拇指棍在我上面的位置2C和被设计为与Qwiic系统兼容,以便您可以将其添加到您的项目中。必威娱乐登录平台无焊料!

功率发光二极管

有一个电源状态指示灯帮助确保您的QWIIC操纵杆获得电源。您可以通过极化 QWIC连接器系统或突破销压水堆GND提供。Qwiic系统是用来运行的3.3 v,确定你是不是使用QWIIC系统时使用另一个电压。

车载电源LED

操纵杆

操纵杆类似于模拟PS2 (PS2)控制器上的操纵杆。定向运动仅用两种方法来测量10 KΩ电位计,每个轴一个。该操纵杆还具有一个选择按钮,当按下操纵杆时启动该按钮。

拇指操纵杆

拇指操纵杆

COM—09032
3.95美元

两个电位器连接到ATtiny85的模数转换器(ADC)上。选择按钮作为阁楼85上的数字输入操作。这允许固件读取旋钮位置和任何按钮按下。

故障排除提示:由于电阻制造公差,静止时,操纵杆可能无法准确读取VCC的一半。你可能想记下“零”的读数,如有必要,将该值存储到程序中。

操纵杆方向

操纵杆包含两个电位计,与一个框架机构连接,该框架机构将水平垂直的移动(方向如下所示)。

带有操纵杆轴方向的标记图像

电位计是操纵杆两侧的两个蓝色或黑色框。如果在观察每个电位计的中心轴的同时移动操纵杆,你会看到每一个电位器只在一个轴上拾取运动。聪明的,不是吗?

电位器高亮显示

选择按钮

这个操纵杆还包含一个瞬间按钮,当你按下盖子时就会激活。按钮是操纵杆侧面的小黑匣子。如果你把帽子往下推,你可以看到一个杠杆压在按钮头上。无论操纵杆在什么位置,杠杆都能工作。太酷了!

突出显示按钮

阿替尼85

使用预装的固件,ATTINY85充当操纵杆的模拟和数字输入的中间(微控制器)。这允许QWIIC操纵杆通过i报告其位置。2C.

在船上的阁楼85

注:闪光您自己的固件,至少,你需要一个 程序员的ATtiny和A Pogo针适配器.编写和上传固件并不容易,除非你知道你在做什么;这是 不可取适合初学者。

QWIC&I2C

2C地址

固件,QWIIC操纵杆的I2C地址是可配置的,因此您可以将它们添加到同一总线中,而不会发生冲突问题。

出厂默认值I2C从机地址:0 x20

2C寄存器

地址 说明
0x00 违约I2来自EEPROM的从地址
0x01-0x02 固件版本(MSB优先)
0x03-0x04 当前水平位置(最高位优先)
0x05-0x06 当前垂直位置(最高位优先)
0x07 当前按钮位置
0x08 按钮状态:指示上次读取按钮状态后是否按下按钮。清理后阅读。
0x09 配置或“锁定“寄存器-防止随机I2C地址在I期间更改2C扫描并注册转储。地址更改保存到EEPROM之前必须设置为0x13。
0 x0a 电流/集I2C从机地址(写)。存储在EEPROM中。


注:在操纵杆位置的寄存器中,MSB包含10位ADC值的前8位,LSB包含后两位。举个例子,这就是库如何将两个寄存器转换回10位值。

uint_16t full10bitvalue=(msb<<8)lsb)>>6;

您可能只能查看MSB并获得8位读数(对于256个位置)。固件是故意这样写的,希望它对那些不需要操纵杆位置的完整分辨率的客户有用。
故障排除提示:
请注意,第一次读取操纵杆位置寄存器时,它将有一个最大值(所有1都是二进制的)。我不确定是固件的问题还是与阁楼85有关,但最初的读数是1023。一旦读到了,后面的读数应该是准确的(不包括上面提到的制造公差)。如果你能解决这个问题,请随意 对本教程的评论或在 Github存储库.

连接

该板提供四个带标签的断接销。你可以把这些线接到2微控制器的C总线和电源插脚(3.3 vGND)如果没有QWIIC连接器。

船上的断接销

然而,使用QWIIC操纵杆的最简单方法是通过QWIIC连接系统。连接器被极化为I2C连接和电源。(*它们被系在断开销上。)

船上的Qwiic连接器

2C上拉跳线

切割2C跨接器将从I上拆下2.2千欧姆电阻2C总线。如果你的i上有很多设备2C总线,您可能想拆除这些跳线。不知道怎么剪毛衣?读到这里!

船上的套头衫

五金件装配

Arduino示例

使用QWIIC连接器系统,组装硬件很简单。你需要做的就是连接你的QWIC游戏杆红木QWIC用一个QWIC电缆.否则,你可以用i2单片机的C插脚;只要知道逻辑层次,阁楼85的工作电压在1.8到5.5伏之间,EEPROM至少需要2V,否则会损坏。

带红板QWIIC的硬件组件

注:本教程假设您熟悉Arduino产品,并且正在桌面上使用最新稳定版本的Arduino IDE。如果这是你第一次使用Arduino IDE,请回顾我们的教程安装Arduino IDE。

故障排除提示:
最好以QWIIC系统推荐的3.3V为主板供电。然而,如果您有固件版本为2.3的主板,并且意外损坏了EEPROM并注入了新的,随机I 2C地址。有一种方法可以代替I 2C地址并再次存储在EEPROM中。严格遵循以下步骤,您需要从下面使用Arduino库:

  1. 使用QWIIC电缆将QWIIC操纵杆连接到Redboard QWIIC。
  2. 运行示例3查找当前i2C地址。
  3. 修改示例2以使用i2你刚刚找到的C地址。
  4. 运行示例2并更改i2C地址返回到默认地址。
  5. 拔下和QWIIC操纵杆并重新插入。EEPROM应重置为默认I2C地址,并准备再次使用。

覆盆子Pi示例

使用QWIIC连接器系统,组装硬件很简单。你需要一个QWIC电缆,一必威娱乐登录平台树莓派的Sparkfun Qwiic帽子,和A覆盆子π设置与Raspbian操作系统,监视器,和标准外围设备.(*如果你不熟悉Qwiic帽子,你可以找到联播指南在这里

带Raspberry PI和Qwiic帽子的硬件组件

注:本教程假设您熟悉使用覆盆子圆周率和您有最新的(完整的…使用推荐的软件)版本Raspbian操作系统你的覆盆子皮。您可以从树莓Pi基金会网站.截至2月。第十三2019,我们推荐带桌面和推荐软件的Raspbian Stretch选择。

如果这是你第一次使用覆盆子圆周率,请到那边去树莓Pi基金会网站使用他们的快速入门指南。我们在这里列出了其中一些:

  1. 设置你的覆盆子圆周率
  2. 用你的覆盆子皮
  3. 文档
  4. 安装文档
    安装文档
    Raspbian文档
    SD卡文档

Arduino图书馆

安装Arduino库的最简单方法是搜索必威娱乐登录平台Sparkfun Qwiic操纵杆在Arduino图书馆管理器中。手动安装,正面朝上GITHUB页面或者在这里随意下载图书馆!

库函数

对Arduino库进行了注释,函数应该是自解释的。然而,下面是可用库函数的详细列表。

开始().begin(线,设备地址
创建到i的连接2I上的C设备2C总线使用默认或指定的I2C地址。

输入:UIT88T deviceAddress
设备地址的未分配8位整数。如果没有定义,这个库将使用默认的I 2存储在I中的C地址 2C库(0x20)。
输出:布尔

真的-连接到我2C装置。
错误-未找到或连接任何设备。

连接()
尝试连接到I上的设备2存储在库中的C地址。

输出:布尔

真的-连接到我2C装置。
错误-未找到或连接任何设备。

seti2caddress(新地址)
改变我2C地址到新地址.一旦改变,新的我2C地址保存在QWIIC操纵杆的EEPROM中。使用新的i重新连接到设备2C地址。(新地址打印在串行监视器中。)

输入:UIT88T 新地址

设备地址的未分配8位整数。

getHorizontal()
返回操纵杆水平位置的ADC值。

输出:uint16_t

水平轴上操纵杆位置的ADC值的未分配10位整数[0-1023]。

GETVICTIAL()
返回操纵杆垂直位置的ADC值。

输出:uint16_t

10位整数[0 - 1023]表示手柄在垂直轴上位置的ADC值。

getButton ()
返回当前按钮状态(清除复选按钮指示灯-见下文)。

输出:字节

0-按钮当前正在被按下。
1 -按钮当前未按下。

checkButton()
指示在读取按钮状态或调用此函数之间是否按下按钮。然后清除该指示器的寄存器。

输出:字节

0-按钮为不是按下。
1-按钮被按下。

获取版本()
返回固件版本号的字符串。

输出:字符串 美国广播公司

AAA-固件版本(主要)
BBB-固件版本(次要)

示例

有四个例子QWIIC操纵杆Arduino库开始使用Qwiic游戏杆。这些示例文件的名称是自解释的,但如果你想要更多的信息,请参见下面的说明。

  • 示例1_基本_读数

    本例使用默认I连接到Qwiic操纵杆2C地址保存在库中。草图查看当前操纵杆位置和按钮状态的寄存器。然后,该示例在串行监视器上打印出这些值。

  • 示例2_I2c_地址_和_固件

    本例使用默认I连接到Qwiic操纵杆2在草图中设置C地址,然后打印出I2串行监视器上的C地址和固件版本。草图,从串行监视器获取输入以更改I2使用十进制值(dec)的C地址。一旦我2C地址更改,它存储在QWIIC操纵杆的EEPROM中。之后,草图使用新的i连接到操纵杆2C地址并再次读取固件版本的寄存器。然后,该示例再次在串行监视器上打印出这些值。

  • Example3_I2C_Scanner

    此示例来自2C扫描仪示例在Arduino Playground的网页上。草图扫描I上的设备2C总线并在串行监视器上报告它们。这对于忘记更改的I的用户很有用2C董事会地址。

  • 示例4_joystic_串行_输出

    此示例显示了如何开始将QWIIC操纵杆用作HID的基本示例。示例草图获取操纵杆的值,并将其转换为串行监视器上的定向打印输出。

Arduino示例

注:本节是使用QWIIC操纵杆和带Arduino IDE的Redboard QWIIC的示例。它不是用来指导使用i 2带Arduino IDE的C设备。

请使用以下链接和Internet以更好地了解我 2C以及它在Arduino IDE中的工作方式:

例1:基本读数

此草图查看当前操纵杆位置和按钮状态的寄存器;值被发送到串行监视器.确保使用的波特率为9600磅.

通过操纵杆位置和按钮按下进行串行监视器打印输出

例2:我2C地址更改和固件版本读取

此草图从串行监视器,以十进制值表示,改变了我2C设备地址。然后读取固件版本以确认地址已更改。确保使用的波特率为9600磅.

串行监视器打印出I<sup>2</sup>C地址的变化

例3:I2C扫描器

这张素描来自2C扫描仪示例Arduino操场网页.草图扫描I上的设备2C总线,并报告他们串行监视器.确保使用的波特率为9600磅.

示例4:操纵杆串行输出

此草图获取操纵杆的值并将其转换为串行监视器.如果按下按钮,它也会读出。确保使用的波特率为9600磅.

用于串行监视器打印输出的QWIIC操纵杆的标签

Python示例

注:本节是在Python中使用树莓派的Qwiic操纵杆的一个例子。它不是用来指导使用i 2带有覆盆子PI或Python教程的C设备。

请使用以下链接和Internet以更好地了解我 2C以及它在Arduino IDE中的工作方式:

使能I2C接口

如果尚未启用,使能I2首选项>Raspberry PI配置面板中的C接口。

从桌面访问配置面板 在配置面板上启用I2c

启用I2C通过配置面板。

使用命令行检查设备

在(完整的)Raspbian操作系统上,I2CoToots应预先安装(如没有安装,跟随此处为说明)用Qwiic操纵杆和Qwiick帽子连接到树莓派上,在终端/命令行中运行以下命令。

I2cDebug -Y 1

下载并运行python示例

下载Python示例Github存储库.您所需要做的就是打开一个示例python文件并执行该模块。你可以用python3或者其他兼容的软件来做,像geany这样的编程文本编辑器。

基本读数

下面是来自基本读数示例文件。

python shell打印输出截图

蛇游戏

当你运行蛇游戏示例代码,您只需单击按钮即可开始游戏。(*向艾尔·斯威格特大声呼喊虫蛀例子,它被调整为与QWIIC操纵杆一起工作。)

蛇游戏示例的屏幕截图

故障排除提示:我的确遇到了一个关于Python示例代码的错误。不幸的是,我不是 专家在巨蟒和覆盆子皮。然而,我通过打印错误而不是终止脚本来解决这个问题。根据互联网上的信息,我可以推断,错误 [errno 121]远程I/O错误是我的问题 2C总线以及SMBUS如何与从设备交互。

你也会得到 [errno 121]远程I/O错误如果你我 2C地址定义错误。

资源和进一步发展

有关更多信息,查看以下资源:

产品信息

示例代码和Arduino库

需要帮助,开始与阿杜诺和我2C?在这里查看这些资源:

需要帮助开始你的覆盆子圆周率?在这里查看这些资源:

需要帮助开始使用python和我2C?在这里查看这些资源:

下一个项目需要一些灵感吗?必威娱乐登录平台查看其他一些Qwiic产品教程:

CCS811/BME280(QWIIC)环境组合分接头指南

感受各种环境条件,如温度,湿度,大气压,带CCS811和BME280组合接线板的ECO2和TVOC。

QWIIC栅格眼红外阵列(AMG88XX)连接指南

松下格栅眼(AMG88xx) 8x8热电堆阵列作为一个功能低分辨率红外相机。这意味着您有一个64像素的方形阵列,每个像素阵列都能够独立地检测温度。就像有了热成像相机(或者捕食者的视觉)分辨率很低。

QWIIC MUX连接指南

有一堆具有相同I2c地址的传感器吗?把他们放在QWIIC MUX(TCA9548A)上,让他们在同一辆巴士上交谈!

Qwiic四轴继电器连接指南

必威娱乐登录平台Sparkfun的Qwiic Quad Relay是一款专为使用I2c从Arduino或其他低功耗微控制器切换四个高功率设备而设计的产品。