Нежелательный вывод в простом скрипте Python

Привет, я начинаю с python на RPI B+, я сделал простой цикл while, но получаю странный результат.

#!/usr/bin/python
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(3,GPIO.OUT)
while 1:
    print "LED OFF"
    GPIO.output(3,GPIO.LOW)
    time.sleep(1)
    print "LED ON"
    GPIO.output(3,GPIO.HIGH)
    time.sleep(1)

Когда GPIO3 имеет НИЗКИЙ уровень, он постоянно выводит ^[[B, пока снова не станет ВЫСОКИМ. Буква B меняется в зависимости от булавки, которую я использую.

Почему это происходит? Похоже, что он регистрирует нажатие кнопки, но я, конечно, не нажимаю никаких кнопок и не ввожу какие-либо данные в GPIO.

Я пробовал другую клавиатуру, но это не имело значения.

Это вывод, который я получаю от этого:

LED OFF
^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[BLED ON
^[[BLED OFF
^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[BLED ON
^[[BLED OFF
^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[B^[[BLED ON
^[[BLED OFF

Я должен отметить, что светодиоды мигают правильно.

РЕДАКТИРОВАТЬ :

Когда я переключаю фокус на текстовый редактор во время работы программы, вывод нормальный, но нажимается кнопка «вниз», что приводит к опусканию курсора внутри текстового редактора. Я начинаю думать, что это проблема ОС, я использую образ Porta Pi, я использую этот img для своего игрового автомата, поэтому я подумал, что могу использовать его и для этого.


person user3305776    schedule 16.09.2014    source источник
comment
Кажется очень странным. Вероятно, это ничего не меняет, но я всегда использовал True/False или 1/0 вместо High/Low. Кроме того, что произойдет, если вы закомментируете ВЕСЬ код gpio. Просто чтобы убедиться, что это не какая-то странная ОС, и сузить проблему.   -  person Maxwell Hayes    schedule 16.09.2014
comment
Когда я комментирую GPIO.output(3,GPIO.LOW) и GPIO.output(3,GPIO.HIGH), странный вывод исчезает. Я также понял, что ^[[D — это клавиша со стрелкой вниз. Я попробовал вариант true/flase 0/1, но он не работает, возможно, для этого требуется другой синтаксис.   -  person user3305776    schedule 16.09.2014


Ответы (2)


Я тоже начинаю с Python на RPI B++. Много веселья!! Но в любом случае: я думаю, это не решит вашу проблему, но я спрашивал себя, глядя на ваш скрипт: не следует ли вам ставить табуляции перед всеми строками через какое-то время?

person Erik van Elten    schedule 16.09.2014
comment
Да, у меня есть это в моем исходном сценарии, я забыл добавить их сюда. - person user3305776; 17.09.2014

Я снова, просматривая несколько моих скриптов для RPi, я думаю, что ваш синтаксис вывода отключен. Как в:

GPIO.output(3,GPIO.LOW)

Должно быть:

GPIO.output(3,LOW)

Я думаю, именно поэтому мое предложение 1,0, True, False не сработало. У них не должно быть «GPIO». Перед ними.

дай мне знать, если это работает

-Ваше здоровье

person Maxwell Hayes    schedule 16.09.2014
comment
GPIO.output(3,LOW) не работает (ошибка). GPIO.output(3,0) работает. GPIO.output(3,GPIO.LOW) работает. но те, которые работают, все еще печатают ^[[B. - person user3305776; 17.09.2014
comment
Я понимаю, что код выглядит немного иначе для примеров B+, которые я нашел в Интернете. (У меня нет B+). Извините за неверную информацию :( - person Maxwell Hayes; 17.09.2014