2010-12-14 97 views
0

我一直在嘗試使用Python 2.7.1來連接iCreate,roomba而沒有使用真空吸塵器,並創建了工作代碼。當我用手輸入每行代碼時,它完美地工作,但是當將所有代碼放在一起時,它會停頓並且不能運行。用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")  

是否有任何問題與IDLE運行多行,只是不工作,我不是非常確定我應該問。當我將整個街區一起運行,但逐行輸入作品時,沒有任何反應。

- 任何幫助,非常感謝。

+0

在哪裏,做東西部的一個非常複雜的方式?此代碼沒有輸出。 – nmichaels 2010-12-14 14:37:56

+0

「將所有代碼放在一起時它會失速並且不運行」?這是什麼意思?請詳細說明你做了什麼**。你輸入了什麼?你運行了什麼命令?你看到了什麼作爲迴應? – 2010-12-14 15:15:03

回答

0
  1. 相反,如果將代碼粘貼到IDLE,將其保存到一個文件中,像這樣運行:

    蟒蛇yourfile.py

  2. while 0 == 0:你可能想while True:代替。

  3. red = Image.open("Red.jpeg") (redr, redg, redb) = red.getpixel((0, 0))是說RED = (255, 0, 0)

+0

該文件和True是好主意,我會嘗試它們。我之所以這麼做是因爲它實際上並不是255,0,0,它實際上是一張我正在使用的紅色紙板,所以它必須與這些紙張進行比較以確定命令,或者至少這就是我想要做的。感謝您的迴應。 – 2010-12-14 15:12:22

+0

啊,我明白了。但是,將這些值保存一次可能會更好,而不是每次運行該程序。 :-) – 2010-12-14 16:53:38