我要做的是做一个图形用户界面来控制一个树莓派机器人。我有telnet无线连接。当我从计算机上的终端远程登录它时,我可以运行echo 1=230 > /dev/servoblaster
来移动其中一个伺服。在
然而,当在pythongui中使用同一段代码时,它不会使伺服移动,但我也不会收到错误消息。一度一切正常,但突然停了下来。在
下面是我用于GUI的python脚本的简化版本:
from tkinter import *
import telnetlib
bot = telnetlib.Telnet("192.168.1.128")
bot.read_until(b"login: ")
bot.write(("pi \n").encode('ascii'))
bot.read_until(b"Password: ")
bot.write(("pi \n").encode('ascii'))
bot.write(("cd /home/pi/pibits/ServoBlaster/user \n").encode('ascii'))
bot.write(("sudo ./servod \n").encode('ascii'))
bot.write(("cd \n").encode('ascii'))
bot.write(("echo 1=230 > /dev/servoblaster \n").encode('ascii'))
当我在运行一个错误的终端时,为什么我无法控制上面的代码。在
以防万一这有什么用,我知道上面的代码至少已经到达了我的raspberry pi的无线接收器,因为每当它收到信号时,上面的灯都会闪烁。在
谢谢
我建议使用Wireshark来计算出客户端实际发送了什么,以及您的Raspberry Pi响应了什么。在
我强烈怀疑您的问题的原因是您正在等待错误的模式-例如,它可能是},或者其他任何类型,并且随着更新您的
b'Login: '
,或者{getty
或类似的二进制文件,Wireshark将帮助您定位问题。在要只查看Pi盒的telnet流量,请使用以下捕获筛选器:
用户名和密码命令中的空格会阻止telnet会话实际登录到pibot。空格不会被忽略。在
您需要:
相关问题 更多 >
编程相关推荐