从手机获取加速度计值,最佳方法是什么?
我刚开始学习Python,想做一个应用程序,可以在Windows上使用我从手机上获取的加速度计数据。通过SL4A(Android上的Python),我创建了客户端和服务器脚本,用来读取加速度计的值,并通过一个套接字把这些值发送到运行在电脑上的服务器。
这是我的服务器代码(Windows电脑):
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', 5000))
serversocket.listen(5)
while True:
connection, address = serversocket.accept()
buf = connection.recv(64)
if len(buf) > 0:
print buf
这是我的客户端代码(安卓手机):
import android, socket, time
droid = android.Android()
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('192.168.2.6', 5000))
def readAcc():
dt = 100
endTime = 300
timeSensed = 0
droid.startSensingTimed(2,dt)
while timeSensed <= endTime:
senout = droid.sensorsReadAccelerometer().result
time.sleep(dt/1000.0)
timeSensed+=dt
print senout
clientsocket.send(str(senout).strip('[]'))
readAcc()
droid.stopSensing()
输出示例:
1.8659877, 8.8259849999999993, 3.5412905000000001
如果我只想读取一次这些值,这个方法很好用。但我在想,接下来该怎么做,我希望能用这些值来控制游戏和其他应用程序。
谢谢你的阅读 :)
1 个回答
1
我的想法是先试着让设备做不同的动作(比如快速向上移动),然后收集这些动作产生的数值。接着,根据加速度计的特定数值范围来触发事件(或者在游戏中需要触发的其他东西),因为类似的动作应该会产生相似的数值范围。