Hi. o/
I have an idea and would like to know if the reasoning is sound
What I want
I have a “arduino controlled 4wd car” and a signal being emitted by another arduino (tower from now on) somewhere in the house.
I want to make the car able to go toward the tower in a straight line (the car can detect obstacles, so it would eventually get to the signal).
To do that, the car must detect the signal and know what direction to go.
My idea (that I took from owls) to that.
Tower emitting signal. 3 receivers (Rx from now on) on the car (red triangles). The receivers are synced. Car is around 250mm*180mm
If I know that Rx 1 received the signal at 1.5 mili seconds, Rx 2 in 1.6 mili, and Rx 3 in 1.0 mili.
I also know that I need to turn the slightest bit to the left AND that I need to turn 180 degrees, since Rx3 should be the last to receive the signal.
One easy way to do that, would be measuring response time. But that is a no go. As self-imposed condition (at least for now), i don’t want communication between tower and Rxs. Tower is pure Tx and Rxs are pure Rx.
With no communication, my idea is the following.
Tower will emit a changing signal.
1, 2, 3, 4, 5, 6, etc…
At a fixed point in the timeline each Rx will receive a different signal
Ex: at instant 3 in the timeline,
Rx1 received 2
Rx2 received 3
Rx3 received 7
In this case, since i know the order and the time between different messages, with some math I can find out what maneuver the car has to make to align itself with the signal in a straight line.
The problem
From one room to another in my apartment, the signal takes around 1 milisecond from tower to Rx (information from the response time divided by two).
The bigger the code, the longer arduino takes to loop around.
Distance between Rxs is too small. Im pretty sure they will all receive the same message at each loop.
Before I start buying stuff (only have one pair Rx Tx with communication and one Rx Tx with no communication) to try this, is this idea possible?
What other problems can you guys think of?
Any idea to go around the problem?
thanks