• Micropython——Pico获取双轴摇杆模块数据(一)


    简介:

    模拟二轴拇指操纵杆是一种模拟操纵杆,相比于“方向”操纵杆更加准确和灵敏,它带有一个“按下选择”按钮。因为它是模拟的,所以需要在微控制器上安装两个模拟读取针来确定X和Y。有一个额外的数字输入可以让你读取开关。


    1、实物图

    图一: 模拟二轴拇指操纵杆实物图


    2、连接及使用


    3、调试程序

    这里我们为什么要先进行调试,因为我们不知道当摇杆进行左右或者上下摇动时,其值为多少,所以在这里我们就要获取其上下左右所出现的最大值和最小值,以便我们进行下一步处理。 

    1. from machine import Pin,ADC
    2. import utime
    3. x_axis = ADC(Pin(26,Pin.OUT))
    4. y_axis = ADC(Pin(27,Pin.OUT))
    5. while True:
    6. x_axis_value = x_axis.read_u16()
    7. y_axis_value = y_axis.read_u16()
    8. print("X = {0:.2f} \t\t Y = {1:.2f}\r\n".format(x_axis_value,y_axis_value))
    9. utime.sleep(1)

    在这里我们首先可以得到当摇杆进行转动时,我们在这里可以得到当摇杆处于中心位置时,即静止不动时,其值范围为如下所示:

     当左右推动摇杆,可得到如下所示的X范围数值:

    可以清晰地看到,当X轴进行转动时,其最大值均在60000以上,其最下值在600以下,而且当轻微推动时,其数值也在该范围内,所以在此可以判断X轴是否进行左右推动。

    同理,我们可以得到 Y 轴上下的推动范围数值:

     其数值的范围与 X 轴数值范围的波动变化情况相同。

    可得到下面的一张图:

    根据上面的图,可以得到如下的程序: 

    1. from machine import ADC,Pin
    2. import utime
    3. X_axis = ADC(Pin(26,Pin.OUT))
    4. Y_axis = ADC(Pin(27,Pin.OUT))
    5. while True:
    6. X_axis_value = X_axis.read_u16()
    7. Y_axis_value = Y_axis.read_u16()
    8. if X_axis_value <= 600:
    9. print("X: "+" Left ")
    10. elif X_axis_value >=60000:
    11. print("X: "+" Right ")
    12. elif 60060000:
    13. print("X: "+" Middle ")
    14. if Y_axis_value <= 600:
    15. print("Y: "+" Down ")
    16. elif Y_axis_value >= 60000:
    17. print("Y: "+" Up ")
    18. elif 60060000:
    19. print("Y: "+" Middle ")
    20. utime.sleep(2)

     今天就先写到这里,博主这边软连线有点问题,没法实验按钮按下的操作,所以将在下一篇介绍。

    技术交流
    欢迎转载、收藏、有所收获点赞支持一下!

    watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWGFfTA==,size_20,color_FFFFFF,t_70,g_se,x_16

  • 相关阅读:
    改进的人工鱼群算法求解TSP问题的研究(Matlab代码实现)
    二、考研C语言笔记——数制,数制之间转换以及应用
    数据结构基础8:二叉树oj+层序遍历。
    tp6教程
    C++高性能优化编程之如何测量性能(一)
    js遍历数组
    达人评测 锐龙r7 6800u和r5 6600h差距 r76800u和r56600h对比
    干货:如何在前端统计用户访问来源?
    前端Vue怎么获取登录的用户名或用户id
    C语言——文件
  • 原文地址:https://blog.csdn.net/qq_39530692/article/details/125991464