Есть ли какой-либо возможный способ отображения данных от разных датчиков, полученных от последовательного порта индивидуально? - PullRequest
0 голосов
/ 29 мая 2019

Итак, я работаю над радиоуправляемой машиной, которая оснащена модулем GPS (NEOBLOX 6M) и счетчиком Гейгера (Diy Kit).Данные, считанные датчиками, должны отображаться в приложении ac # с использованием модулей xbee.В моем приложении на C # я использую метку, которая будет обновляться в соответствии с полученными данными, но проблема здесь в том, что данные из модуля gps и счетчика Гейгера отображаются на одной метке, я хочу отображать данные с разных датчиков на отдельныхярлыки или текстовые поля.

Модуль GPS: http://wiki.sunfounder.cc/index.php?title=Ublox_NEO-6M_GPS_Module

Счетчик Гейгера: https://www.ebay.com/p/US-Assembled-DIY-Geiger-Counter-Kit-Nuclear-Radiation-Detector-Arduino-Tube-2018/14014157093?iid=273049840938

1 Ответ

0 голосов
/ 02 июня 2019

Ну, вы слышали термин ROS?

Ваше описание не очень понятно. Так что я не очень разбираюсь в дизайне вашей системы.

Независимо от того, все ли датчики подключены к Arduino или частично подключены к Arduino и частично подключены к ПК.

Вы можете использовать узел ROS Arduino и узел ros для считывания датчика и публикации с ROS-временем. Вы можете следовать методу в ссылке ниже

http://wiki.ros.org/rosserial_arduino/Tutorials

#include <ros.h>
#include <std_msgs/String.h>

ros::NodeHandle nh;

std_msgs::String str_msg;
ros::Publisher chatter("chatter", &str_msg);

char hello[13] = "hello world!";

void setup()
{
  nh.initNode();
  nh.advertise(chatter);
}

void loop()
{
  str_msg.data = hello;
  chatter.publish( &str_msg );
  nh.spinOnce();
  delay(1000);
}

Вы можете изменить этот str_msgs на любой тип сообщений, которые вы предоставляете датчику, например, счетчик гигантов равен двойному. Или sensor_msgs / NavSatFix (сообщение GPS в рос), или ваша позиция nav_msgs / Odometry

Всякий раз, когда есть чтение, просто публикуйте их с правильной отметкой времени.

Публикация всей информации на узле C # ros для отображения. Обычно данных будет много, поэтому вам не следует использовать текстовые поля. Вместо этого вы должны быть в состоянии построить тепловую карту или энергетическую карту

https://github.com/siemens/ros-sharp выполните это для интерфейса ROS C #

enter image description here

...