材料:

1.树莓派4B一个(系统我安装的是Ubuntu 20.04.2 LST arm64位)
2.Xbox360游戏手柄一个
3.LED灯一个

Xbox手柄简介:

只介绍本次要用到的按键部分:
X键和Y键的编号分别2号键和3号键,编程中用函数获取这两个键是否按下的状态,来控制LED灯的亮灭。用Y控制树莓派针脚输出高电平使LED灯亮,用X控制针脚输出低电平使LED灯灭,代码及注释下文给出。

开始:

1)在系统上安装软件joystick和xboxdrv

sudo apt-get install joystick
sudo apt-get install xboxdrv

2)安装python以及pygame库

sudo apt-get install python
sudo apt-get install python-pygame

3)将LED灯的正极接到树莓派的以BCM编码的21号针脚(GPIO.29),负极接到相邻的GND(接地)


手柄连接到树莓派上,输入指令lsusb

lsusb

有如下红框显示则连接成功

4)创建xbox.py文件,添加如下代码并保存

#coding:utf-8
import pygame
import RPi.GPIO as GPIO
import time
#BCM编号方式
GPIO.setmode(GPIO.BCM)
#BCM编码21号针脚设置成输出模式
GPIO.setup(21,GPIO.OUT)
GPIO.setwarnings(False)# 模块初始化
pygame.init()
pygame.joystick.init()# 若只连接了一个手柄,此处带入的参数一般都是0
joystick = pygame.joystick.Joystick(0)
# 手柄对象初始化
joystick.init()done = Falsewhile not done:#pygame.event.get()可以获得当前用户所做动作的事件列表for event_ in pygame.event.get():#pygame.JOYBUTTONDOWN和event_.type == pygame.JOYBUTTONUP分别为操作杆动作"按键按下"和"按键抬起"if event_.type == pygame.JOYBUTTONDOWN or event_.type == pygame.JOYBUTTONUP:#joystick.get_button(3)为获取按键3(Y键)动作,返回1为按下,0为抬起if joystick.get_button(3)==1:#21号针脚输出高电平GPIO.output(21,GPIO.HIGH)#joystick.get_button(2)为获取按键2(X键)动作,返回1为按下,0为抬起if joystick.get_button(2)==1: #21号针脚输出低电平GPIO.output(21,GPIO.LOW)pygame.quit()

5)在命令行中输入以下指令运行xbox.py

python xbox.py

随后操作手柄,按下Y键LED灯亮,按下X键LED灯灭
按Y键:

按X键:

参考资料:
https://blog.csdn.net/xingqilui126com/article/details/52075823
https://blog.csdn.net/qq_41556318/article/details/86305263

用Xbox360游戏手柄通过python代码控制树莓派4B点亮LED灯相关推荐

  1. android客户端控制树莓派GPIO点亮LED灯

    首先需要android客户端与树莓派进行连接,树莓派与android客户端利用wifi连接并进行socket通信请参考我的另一片文章:https://mp.csdn.net/postedit/7991 ...

  2. 第一节:C#工业控制编程基础--点亮LED灯实验

    第一节:C#工业控制编程基础–点亮LED灯实验 文章目录 第一节:C#工业控制编程基础--点亮LED灯实验 一.实验目的: C#入门基础学习. 二.实验内容: 用C#控制LED的亮灭. 三.实验步骤: ...

  3. 闪亮登场!在树莓派上点亮LED灯的简单详细方法

    文章目录 树莓派开发与STM32开发的比较 原理图以及树莓派引脚展示 点灯步骤 读取树莓派布局 树莓派开发与STM32开发的比较   树莓派和STM32都是常用的嵌入式设备,都可以使用GPIO来控制L ...

  4. 51单片机+ESP8266实现手机控制单片机(点亮LED灯)

    固件的烧写 既然要使用WiFi模块,那首先要进行固件的烧写 已经烧写好固件的可以直接跳过看模块的初始化 WiFi模块使用的是自带CH340驱动的NodeMCU开发板 固件烧录工具采用固件烧写\flas ...

  5. 树莓派点亮LED灯需要几行代码?3行。小孩子都能学会

    [TOC] 点亮LED灯 硬件连接 找一个LED灯,连接如上图,注意长短引脚,经过这些年的狂轰乱炸,大家对于这个应该不漠视,毕竟Arduino都进教材了. 代码 我们先来看图形化的版本: from g ...

  6. 第5章 用树莓派点亮LED灯

    用树莓派点亮一个LED灯是非常简单的事情,但却非常重要,是利用GPIO控制外部硬件设备的基础,机器人的大部分功能都可以通过操纵GPIO来实现的.换句话说,能控制一个LED灯,就能让机器人动起来.本章将 ...

  7. 树莓派:双色LED灯实验

    树莓派:双色LED灯实验 简介 一.实验效果 二.组件 三.实验原理 四.实验步骤 五.代码实现 简介 双色LED灯(双基色 LED灯),是指模块只能显示2种颜色,一般是红色和绿色,可以有三种状态:灭 ...

  8. 30个物联网传感器小实验:三行代码点亮LED灯

    30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...

  9. 和12岁小同志搞创客开发:手撕代码,点亮LED灯

    目录 1.Arduino编程架构 2.点亮LED灯 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_381069 ...

  10. 61-20210407华为海思Hi3516DV300的linux系统下控制GPIO口(标准linux模式点亮LED灯)

    61-20210407华为海思Hi3516DV300的linux系统下控制GPIO口(标准linux模式点亮LED灯) 2021/4/7 15:13 https://xueqiu.com/797071 ...

最新文章

  1. Windbg+sos调试.net笔记
  2. AndroidStudio跑起来第一个App时新手遇到的那些坑
  3. Javascript关闭当前窗口
  4. Struts标签和OGNL表达式
  5. arraylist线程安全吗_Java的线程安全、单例模式、JVM内存结构等知识梳理
  6. [USACO08MAR]土地征用Land Acquisition
  7. redhat6.5 升级内核
  8. python函数的四个特点_Python面向对象三大特征之封
  9. 5g pdu session_设备 | NEC被选为NTT DOCOMO独立5G移动核心的供应商
  10. Struts2 标签
  11. hdoj1465错排公式的应用(递推)
  12. MySQL 入门(六)—— 索引
  13. Oracle 11G R2(11.0.2.4.0) RAC打PSU(11.2.0.4.11.2.0.4.171017)
  14. 原创:艰难的PCS7安装过程
  15. 计算机SCV原理指什么,csv是什么文件格式?.csv文件怎么打开?
  16. PFC 3D 中存在的一个问题?
  17. python实验总结与分析_Python实验报告二
  18. 计算机电脑键盘英语,知识整理:计算机键盘指法练习(英语+数字)
  19. 计算月份天数包括闰年二月天数计算
  20. 各大公司年报中真实的中国

热门文章

  1. 车辆碰撞起火事故的规律特点及常见起火原因 | 事故分析
  2. python 相关性检验怎么计算p值_数据分析---用Python进行相关性分析(兼谈假设检验)...
  3. 两台(或多台)电脑怎么实现文件共享
  4. 201771010102 常惠琢 《面向对象程序设计(java)》第十三周学习总结
  5. excel 组合框控件使用方法
  6. 外卖私域流量:微信社群的运营和羊毛经济
  7. mapper [pos] of different type, current_type [geo_point], merged_type [ObjectMapper]
  8. Axure RP 8的用途和使用
  9. 化学到底是不是一个好专业?该不该转行?————试图以此文终结所有相关讨论
  10. hdoj 2586 How far away ?