Форум сайта python.su
0
Работаю в линуксе. Подключаю ардуину, делаю так:
python >>> import serial >>> ser = serial.Serial('/dev/ttyUSB0', 9600) >>> ser.write('1')
import serial ser = serial.Serial('/dev/ttyUSB0', 9600) ser.write('1') ser.close()
Отредактировано vivl (Июль 7, 2013 19:06:45)
Офлайн
75
sudo ? или
import serial def main(): ser = serial.Serial('/dev/ttyUSB0', 9600) ser.write('1') ser.close() if __name__ == '__main__': main()
Отредактировано Singularity (Июль 7, 2013 17:20:17)
Офлайн
0
Там все судо. А вот код реально помог. Можно подробно обьяснить в чем же затык вышел? Что значит строка
if __name__ == '__main__':
Отредактировано vivl (Июль 7, 2013 19:31:38)
Офлайн
857
vivlдолжно всё без неё срабатывать
но так и не понял почему она столь критичной оказалась
vivlможет, повисла
запускаю его python script.py, то железка не откликается
Офлайн
25
vivl
>>> ser.write('1')
vivlВы уверенны что из скрипта данные _успели_ записаться до того как вы вызвали close?
ser.close()
Офлайн
857
s0rgчего ?
Вы уверенны что из скрипта данные _успели_ записаться до того как вы вызвали close?
Отредактировано py.user.next (Июль 8, 2013 18:17:21)
Офлайн
18
Мжт порт уже открыт?
Офлайн
75
Может топик-стартер не все сказал или не так понял ?
Офлайн
25
py.user.nextНе вижу других причин, чтобы один и тот же код работал в консоли и не работал в скрипте.
чего ?
Офлайн
0
Вообще
if __name__ == '__main__':
stty -F /dev/ttyUSB0 raw speed 9600 -crtscts -hupcl
cmd = 'stty -F /dev/ttyUSB0 raw speed 9600 -crtscts -hupcl' import subprocess PIPE = subprocess.PIPE p = subprocess.Popen(cmd, shell = True) p.wait()
import serial def main(): ser = serial.Serial('/dev/ttyUSB0', 9600) ser.write('1') ser.close() if __name__ == '__main__': main()
stty -F /dev/ttyUSB0 raw speed 9600 -crtscts -hupcl
if __name__ == '__main__':
python >>>ser = serial.Serial('/dev/ttyUSB0', 9600)
Отредактировано vivl (Июль 9, 2013 22:20:00)
Офлайн