我的工作是机器人,它必须控制使用无线串行通信。机器人在微控制器上运行(通过燃烧一个.hex文件)。我想用我的Linux () PC来控制它。我是新来的串口编程。我能够发送数据,但我不能读取数据。
在微控制器上运行的几段代码:
函数发送数据:
void TxData(unsigned char tx_data)
{
SBUF = tx_data; // Transmit data that is passed to this function
while(TI == 0) // Wait while data is being transmitted
;
}
假设我有代码,比如:
from multiprocessing import Process
def pro_a():
#execute some code that runs a radio program
def pro_b():
#execute some code that keeps a GUI running
.
.
. #some code
if __name__ == '__main__':
Process(target=pro_a).start()
Process(target=pro_b).start()
我有一个Xubuntu桌面在房子的另一部分从路由器。我使用USB无线适配器连接。它最初以72 Mb/s的速度工作,然后间歇性地下降到7 Mb/s,持续不同的秒数,然后回到72 Mb/成都。这种情况一直发生在计算机空闲,没有浏览器运行的情况下。似乎没有任何符合时代的模式。我可以恢复到72,通过断开和重新连接网络,但它只持续了一段时间。
lsusb的产出:
Bus 002 Device 003: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 002 Device 002: ID 0bda:8176 Realtek Semiconducto
我的无线网卡在Ubuntu12.04上有一个bug。我的联想ThinkPad T 440的无线网卡有一个已知的错误,运行12.04。我有什么选择?
为了使无线在机器上运行,我需要购买一个usb无线网卡。我如何找到一个USB无线网卡,我可以100%肯定会与Ubuntu12.04工作?是否有已知支持的硬件列表?
对无gps定位技术进行了研究,发现可以利用信号强度无线网络进行定位。它可以检测到:
FSPL依赖于两个参数:一是无线电信号的频率,二是无线传输距离。下面的公式可以反映它们之间的关系。
FSPL (dB) = 20log10(d) + 20log10(f) + K
d = distance
f = frequency
K= constant that depends on the units used for d and f
如果d以公里为单位,f在MHz中,则公式是:
FSPL (dB) = 20log10(d)+ 20log10(f) + 32.44
从衰减裕度方程出发,可用以下方程计算自由