You seem to have 2 separate (but related) problems you are trying to solve at once. Let's break down your conundrum into smaller pieces:
How do I communicate commands from a slow system (30Hz) to a fast controller (200Hz), and how do I communicate data being received at 200Hz back to my 30Hz thinktank?
How do I control what is happening at 200Hz, when I can ...
What you are looking for is called serialization. Serialization is the process of creating a string (a serial stream of data) (not necessarily NUL-terminated) from arbitrary data.
The issue serialization addresses is the fact that the same data are represented in different computers differently. For example, take this struct:
unsigned int x;
I would create a small sketch that allows you to communicate over serial port that will let you create a GUID on the desktop computer and write it to the EEPROM of your uno to a known location.
Then later on in your networked arduino code you can use that saved value. I've done this before and it's pretty simple to implement. You can even copy / paste ...
The answer to this question depends entirely on the type of connection you are using to build your network.
Assuming that when you say you have arduinos "on a network" you are using ethernet shields or similar to put them on an ethernet network, one way to accomplish your goal would be to take advantage of the MAC address on the ethernet shield as this is a ...
I found what I believe is a relevant answer here, and I think it's relevant because of the following lines in your serial_server.py file:
#When it has been initialized, it'll start executing the following callback.
def executeCallback(self, goalHandle):
# <other code>
#Send a small Hello to Arduino.
arduino = serial.Serial(port=&...
I was having the same problem. I finally solved the problem. This document says that you have to put CR LF (\r\n) characters after you send something in AT mode. But in the arduino code that you use, uses the Serial.write command to send command. But Serial.write command doesn't put CR LF characters. So I used Tera Term to send command. First connect PIN34 ...
From netHAT, you can find an EtherCAT shield for the Raspberry Pi:
The netHAT module developed by Hilscher adds the RaspberryPi® RealTime-communication. This enables the RaspberryPi® to be used as a slave in a PROFINET network. But not only PROFINET is possible, all other common real-time Ethernet networks such as Ethernet / IP or EtherCAT could be ...
As I suspect you found out (based on your other question 7169), doing both over the same RF link will be more truble than it is worth, You could use ip as you sujested but this might turn out to be more truble than it is worth unless your main controller is a raspberry pi or BBB that already has native networking. I am assuming you are talking about a ...
For maritime robotics, you should definitely take a look at MOOS. It is a similar middle-ware to ROS, but was originally developed at the Dept. of Ocean Engineering at MIT with Prof John Leonard. So it has a heavy maritime bent to it, but can of course be used for terrestrial (or aerial) robotics as well.
Did you initialize libusb?
From the Sourceforge documentation:
int libusb_init ( libusb_context ** context )
This function must be called before calling any other libusb function.
Seems like a trivial thing to ask but I didn't see it in your code, but I also don't see anything blatantly wrong with your code.
Once you have the image stored as a file, you can transfer that using any one of dozens of file transfer protocols, as long as it is supported by both ends of the link.
We would really like to help, but it's impossible for anyone to read your mind and see what you put on both ends of the link.
And I certainly would like to help someone building a robot that ...
I had connected some pins the wrong way.
I had connected the "EN" pin with 5V even after pairing. I was out of my brain. As soon as it came to my sight I disconnected the "EN" pin from 5V. After a few seconds it started to work....
You should update the robot references (and current position) independently if there is an update from the mouse or not. If there is an update (i.e. after 100 ms) you should update the value sent each 20ms to the robot. This way the robot shoudl never move backwards. I assume the backwards motion comeing from sending a new target position, and then sending ...
Seems like the code should work. I can suggest 3 things that might be of assistance.
Make sure you have a prominent Common Ground Sometimes your PC isn't enough
Increase the BraudRate on both devices.
Most important make sure both devices are running at the same voltage. The Intel Edison is 1.8V without the Arduino Expander and the Arduino expander has a ...
"ontology" is the search term you are looking for. There are a few. You will have to review them to see if any meet your needs.
A little background learning about ontologies will help you navigate the options.
You may be tempted to only look at ontologies made by roboticists or with the word robot in the title, but each ontology is created with a set of ...
Communicating with ROS master
It sounds like you need to point to ROS with the use of user-defined environment variables. I have a set of variables defined in my ~/.bashrc file that define where ROS is located. This is what I have defined on my device that runs roscore:
# SOurce the local workspace
Based on the ports you have mentioned you are probably using URScript.
Are you aware of this documentation from the UR website, describing the ethernet packets?
The example given is
Lets say the client has recieved this data:
Received 465 bytes.
Sorry but its not really clear from your code whats going on, but the area drawing my attention is:
read(connfd, sendBuff, strlen(sendBuff));
recBuff = atoi(sendBuff);
I'm assuming sendBuff is a char* or char of a certain size. You are reading into that buffer up to strlen(sendBuff) characters. So lets hope this is running in DEBUG mode you are ...
I am trying to do the same project.
I asked this question in the LibrePilot forum (the new community which gives support to the OpenPilot project) and they told me about the UAVTalk protocol, an object oriented protocol that is used to exchange telemetry data.
I give you some links about the protocol and also some modules programmed in Python to use it as ...
I2C is a bus, not a particular direct connection. What's the problem with connecting the two over I2C? Actually, the Wikipedia page for I2C shows the image below, with two microcontrollers connected via the I2C bus.
You might be able to transition your other devices from I2C to SPI and leave the I2C bus open for uC-uC comms.
I'm not entirely sure what you're asking for because your question
title mentions control but your question body seems to all be about display. You said,
My Question is, How can we implement in MATLAB/C++? So I can store 250 data of sensors as well as 60 points for real time display on the TV.
If you want to store samples for display at some particular ...
It get solved automatically and that give me clear hint that when i was using 9v 1 Amp adaptor, because of heat Arduino was getting a type of HANGED..but when i powered it with USB cable..it works fine now.
I had problems with this as well using a Pro Micro. Testing with a Mega instead and it worked no problem, using (57600) for Serial and (38400) for Serial1. I did try Serial1 as well as BTSerial with the Pro Micro, to no avail but didn't test with BTSerial on the Mega.
There's no pin 11 on the Pro Micro, so I used
SoftwareSerial BTSerial(10, 14);
There are plenty of solutions for underwater communication. Here is an example - http://www.dspcomm.com/products_aquacomm.html
You can also make one using underwater radios that divers use to communicate. Perhaps coupling a pair of them with a voice modem to keep them in the right frequency range might do the trick. Here is an example of a diver comm http://...
In this answer, I will outline some techniques for diagnosing RS232-style serial communication problems.
For a two-way serial communication link between two devices to work, at the most basic level we need a connection from TxD on device 1 to RxD on device 2 and a connection from TxD on device 2 to RxD on device 1.
Voltage or current level conversions ...
The simplest solution is throwing all values into a comma seperated string:
use the the standard strcat():
what is the best way to command these motors simultaneously?
Like all engineering questions, the answer is it depends.
First, for some general things to keep in mind read this answer even though it's about ROS, but some of the same principles apply.
In short, one particular factor deciding between one-micro-handles-all and dividing motors among slave ...
I can't comment yet (reputation limitation) so I've had to make a few assumptions...
Write an app for the smartphone that communicates with a server (over mobile data) that the ground station is also in contact with - when the ground station indicates an image has been taken, the server through the app instructs the phone to transmit it's GPS ...