2010-12-14 17 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

+0

「すべてのコードをまとめて入れても動作しない」とは?これは何を意味するのでしょうか? **正確に**あなたがしたことに非常に特化してください。あなたは何をタイプしましたか?あなたはどんな命令を出しましたか?あなたは何と答えましたか? –

答えて

0
  1. IDLEにコードを貼り付ける場合は、ファイルに保存して、このようにそれを実行します。

    のpythonは、あなたが代わりに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

ああ、そうだ。しかし、プログラムを実行するたびにではなく、これらの値を一度保存​​する方が良いでしょう。 :-) –

関連する問題