2012-11-22 3 views
1

일부 XBee 모듈을 구성하는 데 사용하려는 python 스크립트가 있습니다. xbee development board을 통해 컴퓨터에 연결할 때 완벽하게 작동하지만, 파이 보드 조각을 통해 나무 딸기 파이에 연결하면 실패합니다.XBee 모듈을 구성하는 Python 스크립트가 라스베리 파이에서 실패합니다

나는 xbee를 보내고 나서 xbee가 OK 메시지를 보내지 않은 후에 커맨드 모드에 들어 가지 못하는 문제를 좁혔다. 필요한 경우

... 
CC = '+' 
GT = '1.1' # Tried different values here 
... 

def startCommandMode(self): 
    self.emptyBuffer() # Tried with and without this line 
    sleep(self.GT) # Tried with and without this line 
    self.ser.write(self.CC + self.CC + self.CC) 
    sleep(self.GT) 
    return self.getReply() == 'OK' 

... 

def getReply(self): 
    count = 0 
    reply = '' 
    while True: 
     char = self.ser.read() 
     if char == '\r': 
      break 
     if len(char) == 0: 
      return None 
     reply += char 

    return reply 

전체 소스 github로 볼 수 있습니다 : 여기에 관련 코드입니다.

"picocom -lc/dev/ttyAMA0"을 사용하여 수동으로 시도하면 xbee 모듈, raspberry pi 또는 pi 보드 슬라이스에 문제가 없다는 것을 알고 있습니다.

+0

'sleep()'이 (가) 실제로 1.1 초 동안 자고 있는지 확인할 수 있습니까? – tomlogic

+0

xbee 모듈의 기본 보호 시간은 1 초이며이 전에는 읽지 않도록해야합니다. 나는 성공하지 못해 약 5 초 동안 다양한 값을 시도 했으므로 타이밍에 약간의 오차가있을 수있다. 그리고 내 데스크톱에서 이러한 모든 값은 예상대로 작동합니다. – James147

답변

0

어떤 것들은 확인 :

  • 당신은 응답 무엇을 얻고 있는가?

  • XBee에서 흐름 제어를 활성화 했습니까? Raspberry Pi 직렬 포트에는 흐름 제어가 없으므로 D6D7이 0으로 설정되어 있는지 확인하십시오.

  • 흐름 제어를 위해 Python 코드가 구성 되었습니까? 결코 주장되지 않는 CTS 신호를 기다리는 중일 수 있습니다.

  • 는 라즈베리 파이의 USB 포트에 XBee 개발 보드를 사용하여 사용해 볼 수 있습니까?

0

다음을 사용 :이 지연 을 사용하고 왜

.... 
if args.common: 
    args.at = ['ID', 'CH', 'MY', 'DL', 'DH', 'AP'] + args.at 
xbee = XBee(args.port, args.baud); 
sleep(2) 
xbee.CC = args.CC 
xbee.GT = args.GT 
.... 
.... 

는 이럴 I 두께 RPI는 시리얼 포트를 초기화하는 데 시간이 더 필요 이잖아. 투명 모드에도 적용 가능하므로 포트 초기화 후 지연을 추가하십시오.

이 정보가 도움이 되었기를 바랍니다. 나를 위해 그것은 해결된다.

BR. Manel.

관련 문제