我想用我的笔记本电脑控制多个机器人。机器人没有智能,它们将传感器值发送到 PC,PC 计算传感器值并将结果发送回机器人。(使用 PC 集中控制机器人)。
机器人使用 Zigbee mudule 通过串行通信与 PC 进行通信。
问题:如何制作和发送结构(来自机器人),例如 {sen1, sen2,sen3..,robot id},其中 sen1, sen2.. 是传感器值,机器人 id 用于识别特定机器人。编辑后.....我用于发送传感器的代码就像。
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
}
然后一一发送传感器值
TxData(left_whiteline_sensor);
TI=0; // resetting transmit interrupt after each character
TxData(middle_whiteline_sensor);
TI=0;
TxData(right_whiteline_sensor);
TI=0;
TxData(front_sharp_sensor);
TI=0;
在 PC 端读取缓冲区中的这些值
read(fd, buf1, sizeof(buf1));
.....
options.c_cc[VMIN]=4; // wait till not getting 4 values
当只有一个机器人时这工作正常,现在我们有多个机器人并且每个机器人都使用上述功能发送数据,我在 PC 端获得所有机器人的混合传感器值。一种解决方案是制作我上面提到的结构并将其发送到 PC。这就是我想问的“如何制作和发送这样的结构”抱歉之前没有正确地提出问题。
谢谢...