2010-12-14 5 views
0

저는 Python 2.7.1을 사용하여 첨부 된 진공 청소기없이 roomba를 iCreate로 사용하려고 시도했으며 작업 코드를 만들었습니다. 각 행을 손으로 입력하면 완벽하게 작동하지만 모든 코드를 함께 넣으면 작동하지 않습니다.Python IDLE로 코드를 실행하는 데 문제가 있습니다.

import Create 
import VideoCapture 
from PIL import Image, Imagechops 
import os 
robot = Create.Create(3) 
camera = VideoCapture.Device(0, 1) 
(rgb_red, rgb_green, rgb_blue) = (0, 0, 0) 
red = Image.open("Red.jpeg") 
(redr, redg, redb) = red.getpixel((0, 0)) 
blue = Image.open("Blue.jpeg") 
(bluer, blueg, blueb) = blue.getpixel((0, 0)) 
green = Image.open("Green.jpeg") 
(greenr, greeng, greenb) = green.getpixel((0, 0)) 
yellow = Image.open("Yellow.jpeg") 
(yellowr, yellowg, yellowb) = yellow.getpixel((0, 0)) 
camera.getImage(0, 0, 'tl') 
camera.saveSnapshot('CurrentPicture.jpeg', 0, 0, 'tl') 
pic = Image.open("CurrentPicture.jpeg") 
(rgb_red, rgb_green, rgb_blue) = pic.getpixel((0, 0)) 
os.remove("C:\Python27\CurrentPicture.jpeg") 
while 0 == 0: 
    if((rgb_red - redr) < (rgb_green - greeng)) and ((rgb_red - redr) < (rgb_blue - blueb)): 
     robot.stop() 
    elif((rgb_blue - blueb) < (rgb_green - greeng)) and ((rgb_blue - blueb) < (rgb_red - redr)): 
     robot.turn(45, 40) 
    elif((rgb_green - greeng) < (rgb_red - redr)) and ((rgb_green - greeng) < (rgb_blue - blueb)): 
     robot.move(50, 50) 
    camera.saveSnapshot('CurrentPicture.jpeg', 0, 0, 'tl') 
    pic = Image.open("CurrentPicture.jpeg") 
    (rgb_red, rgb_green, rgb_blue) = pic.getpixel((0, 0)) 
    os.remove("C:\Python27\CurrentPicture.jpeg")  

는 여러 줄을 실행하고 단지 작동하지 않는 유휴 상태에 문제가, 내가 요구한다 무엇을 몹시 확인이 아닙니다된다. 전체 블록을 함께 실행하지만 줄 단위로 입력하면 아무 일도 일어나지 않습니다.

- 모든 도움을 주시면 감사하겠습니다.

+0

말의 매우 복잡한 방법이 있나요? 이 코드에는 출력이 없습니다. – nmichaels

+0

"모든 코드를 함께 넣으면 실속하고 작동하지 않습니다"? 이것은 무엇을 의미 하는가? ** 정확히 ** 당신이 한 일에 대해 구체적으로 설명하십시오. 무엇을 타이핑 했습니까? 어떤 명령을 실행 했습니까? 응답으로 무엇을 보았습니까? –

답변

0
  1. 는 대신에 파일로 저장하고, 다음과 같이 실행, IDLE에 코드를 붙여 경우 :

    파이썬은 대신 while True:을 할 수 있습니다

  2. while 0 == 0:

    을 yourfile.py.

  3. red = Image.open("Red.jpeg") (redr, redg, redb) = red.getpixel((0, 0)) 어디 물건을 수행하는 부분이다 RED = (255, 0, 0)

+0

파일과 True는 좋은 아이디어이며 나는 그것을 시도 할 것입니다. 내가 실제로 길지 않은 이유는 실제로 255, 0, 0이 아니기 때문입니다. 실제로 사용하고있는 판지의 빨간색 시트이므로 명령을 결정하기 위해 그 시트와 비교해야합니다. 그것이 내가하려는 일입니다. 응답 해 주셔서 감사합니다. –

+0

아, 알겠습니다. 그러나 프로그램을 실행할 때마다 그 값을 한 번 저장하는 것이 좋습니다. :-) –

관련 문제