|
楼主 |
发表于 2011-2-13 02:08:28
|
显示全部楼层
用Windows XP下用Python成功通过Bluetooth连接NXT
本帖最后由 grant7788 于 2011-2-13 02:09 编辑
话说读完了一本书之后,开始想试一下。方式应该和VC下一样,仍是通过Bluetooth虚拟出的那个串口进行调用。
Python下调用串口要安装一个pySerial,链接在此:http://pyserial.sourceforge.net/。
这个类封装得很方便。不过我实在是对Python不熟(汗,刚学了一天多一点儿的时间,能熟嘛...),走了不少弯路。
几次准备放弃,“今天就到这儿吧,明天再试”。可是终是不甘心...
事实证明,接近绝望的时刻,也同样就是接近成功的时刻。
嘿嘿... 最后俺还是成功了。庆贺一下。
只是读回了电压值。不过没关系,只要这一步调通了,后面的就都好办了。
嗯,先去睡了。白天还有事...
代码如下。
- # program to read the status from NXT controller
- # need serial pyserial, download from: http://pyserial.sourceforge.net/
- # by Grant, 2011-2-12
- import sys, time
- import serial
- try:
- serial = serial.Serial() #(port=’COM7′,baudrate=96000,timeout=3)
- serial.port = "COM8"
- serial.baudrate = 96000
- serial.timeout = 3
- serial.bytesize = 7
- serial.parity = 'O'
- serial.stopbits = 1
- print("Please wait the Bluttooth connection setting up...")
- serial.open()
- if serial.isOpen():
- print("Bluetooth connection ok!")
- serial.write(bytes([0x2, 0x0, 0x0, 0xb]))
- time.sleep(1)
-
- n = serial.inWaiting()
- if n:
- c = serial.read(n)
- # for i in range(n):
- # print("%x" % c[i])
- batteryvolt = c[n-2] + c[n-1]*256
- print("battery volt = %d mv" % batteryvolt)
- else:
- print("No data back from serial port!")
- serial.close()
- else:
- print("Bluetooth port connect fail!")
- except Exception as ex:
- print("Error! \n%s\n" % ex)
- serial.close()
复制代码
|
|