【发布时间】:2020-12-14 17:35:40
【问题描述】:
我目前正在使用 raspberry pi 3 和 Python 进行家庭自动化项目。我的目标是通过 Thrustmaster T16000M USB 操纵杆控制电机伺服系统,但我坚持将操纵杆值“转换”为以度为单位的角度。
例如,X 轴从 0 到 16383。但我想将其转换为从 0° 到 180°。我的问题是以度为单位的角度值与操纵杆值之间的映射。我的印象是我必须使用带有“光标”的列表,例如:0° = 0 用于操纵杆,90° = 8192 用于操纵杆,180° = 16383。
我能理解其中的逻辑,但实现起来比较复杂,因为我不知道这是否是正确的方法,尤其是是否可行。
我还研究了向量、矩阵等,但经过一天的研究,我能够理解其中的逻辑,但实现起来更复杂,因为我不知道它是否是正确的方法,尤其是如果这是可能的。我对如何做有点困惑。
【问题讨论】:
-
y 值的范围是多少?对于 x 轴和 y 轴,当操纵杆竖直向上(垂直)时,读数是否介于最小值和最大值之间?
-
是的。 Y和X轴的值从最小值0变化到最大值16383。当操纵杆处于正常位置时,X和Y是8191。左边X = 0,Y = 8191。右边,X = 16383和 Y = 8191。反之亦然,具体取决于所使用的轴。
-
仅将值范围映射到 0..180 与将 x 和 y 位置 togetehre 转换为角度并不完全相同——我认为这是一个角度如果试图测量它们所代表的角度,考虑到控制器的顶部(x = 8191,y = 16383)为北 0°。这样做需要做一些相对简单的三角函数——我相信
math.atan2()。
标签: python raspberry-pi joystick