Python编程小车零基础开发教程(ESP32-NodeMCU-DevKit开发板)

PS2手柄遥控器编程-摇杆使用

1. 课程介绍
2. ESP32开发板引脚号说明
3. Python编程软件Thonny安装与使用
4. Python编程给引脚设置数字值-点亮ESP32开发板自带LED小灯
5. Python编程给引脚设置数字值-点亮ESP32开发板外接LED小灯
6. sleep()暂停函数-实现LED小灯闪烁效果
7. while循环语句-LED小灯无限次闪烁
8. while循环语句-LED小灯有限次闪烁
9. for循环语句-LED小灯有限次闪烁
10. 程序代码保存到芯片上运行
11. Python编程驱动电机-L298N两路电机驱动板
12. Python编程手机WIFI遥控电机-L298N两路电机驱动板
13. Python编程手机WIFI遥控四轮小车接线-L298N两路电机驱动板
14. Python编程手机WIFI遥控四轮小车完整代码-L298N两路电机驱动板
15. PS2手柄遥控器编程-遥控ESP32开发板自带LED小灯
16. PS2手柄遥控器编程-遥控四轮小车-接线安装-L298N两路电机驱动板
17. PS2手柄遥控器编程-遥控四轮小车-完整程序代码-L298N两路电机驱动板
18. PS2手柄遥控器编程-摇杆使用
19. PS2手柄遥控器编程-使用摇杆和PWM脉冲信号控制小车行驶速度完整程序
20. I2C串行总线-LCD1602显示屏
21. I2C串行总线-LCD1602显示屏-文字动画
22. I2C串行总线-LCD1602显示屏-文字滚动动画
23. Python编程ESP32播放MP3
24. Python编程ESP32播放MP3-指令格式
25. Python编程MP3播放器-手机WIFI遥控播放

1. 课程目标

编程获取PS2手柄遥控器的摇杆数据。

2. 硬件接线

参考前面的课程。

3. PS2手柄遥控器按键指令

图片.png 

 

(1)左摇杆,水平X方向的取值范围(从左到右):-128~127。中间值是0。但有的摇杆可能不一样。可通过程序测定。

(2)左摇杆,垂直Y方向的取值范围(从上到下):-128~127。中间值是0。但有的摇杆可能不一样。可通过程序测定。

(3)右摇杆,水平X方向的取值范围(从左到右):-128~127。中间值是0。但有的摇杆可能不一样。可通过程序测定。

(4)右摇杆,垂直Y方向的取值范围(从上到下):-128~127。中间值是0。但有的摇杆可能不一样。可通过程序测定。

4. 程序代码

 

from ps2 import PS2Controller

import time

ps2ctl = PS2Controller(di_pin_no=26, do_pin_no=27, cs_pin_no=14, clk_pin_no=12)

ps2ctl.init()

 

while True:

    key_str= ps2ctl.read_once()   # 接收指令,收到的指令字符格式为 keys:UP,RIGHT: pos(lx,ly):0,-1: pos(rx,ry): 0,-1:

    

    key_list= key_str.split(':')  # 用冒号来将字符串进行分割,写入数组key_list中,key_list[1]值为输入的按键,key_list[3]值为左摇杆坐标,key_list[5]值为右摇杆坐标

    

    if len(key_list)>=6 :

        #获取左摇杆的位置

        leftJoystickX = int( key_list[3].split(',')[0] )

        leftJoystickY = int( key_list[3].split(',')[1] )

        

        #获取右摇杆的位置

        rightJoystickX = int( key_list[5].split(',')[0] )

        rightJoystickY = int( key_list[5].split(',')[1] )

        

        

        #打印获取到的左摇杆位置

        print( "左摇杆X方向值:"+str(leftJoystickX) )

        print( "左摇杆Y方向值:"+str(leftJoystickY) )

        

        time.sleep_ms(500)

说明:

leftJoystickX变量表示左摇杆X方向位置值。

leftJoystickY变量表示左摇杆Y方向位置值。

rightJoystickX变量表示右摇杆X方向位置值。

rightJoystickY变量表示右摇杆Y方向位置值。

5. 实验结果

参看实验结果视频。


附件:
【象大帅】PS2手柄遥控器编程-摇杆使用.pdf
左摇杆测试.py
ps2.py