Looking for ideas

This is the place for any magazine-related discussions that don't fit in any of the column discussion boards below.
User avatar
jwax
Posts: 2234
Joined: Mon Feb 09, 2004 1:01 am
Location: NY
Contact:

Looking for ideas

Post by jwax »

I've built a 10 channel transmitter/receiver array that simply turns a motor forward and reverse at each receiver channel.

I'm using these:
http://www.ebay.com/itm/Magic-2CH-Momen ... 45f2dc1fb3
And the transmitter is their TCW200-2:
http://www.ebay.com/itm/Magic-2CH-Momen ... 45f2dc1fb3

They operate at 433 MHz, and use the PTC PT2264 encoder. Each transmitter sends a unique code to its receiver, which has been programmed to activate only when its mating transmitter is activated.

They operate fine, since each channel has it's own assigned code so only TX1 can operate RX1, TX7 can only operate RX7, etc.

Here's the problem: When any transmitter is ON, none of the other transmitters work. When only one transmitter is ON at any one time, no receivers operate their motor. That's bad!
In other words, if more than two transmitters are ON, no receivers will respond.
I would like all 10 channels to be able to operate independently of each other, so TX3 can operate RX3 even though TX9 is activating RX9, etc.

Looking for other ways to accomplish the same end, i.e., 10 Independent channels that can operate simultaneously.

Similar to having ten R/C airplanes in the air at the same time, each being individually controlled, but without interfering with each other.

Looking for ideas, short of going to 10 different frequencies.

Range requirement is 100 feet-all the receivers are in the same room, and hard wiring is not doable.
WA2RBA
Robert Reed
Posts: 2277
Joined: Wed Nov 24, 2004 1:01 am
Location: ASHTABULA,OHIO
Contact:

Re: Looking for ideas

Post by Robert Reed »

John
Looking for ideas, short of going to 10 different frequencies.
When you say 10 transmitter channels, are you referring to 10 transmit carriers or 10 different modulation codes independently sent on the same carrier frequency? Also did not understand about receiver operation. If a particular receiver latches on a momentary signal from TX,why would it not stay latched regardless of other operations until such a time that it receives an unlatched command to do so? This is a simple toggle function (on/off) right?
User avatar
jwax
Posts: 2234
Joined: Mon Feb 09, 2004 1:01 am
Location: NY
Contact:

Re: Looking for ideas

Post by jwax »

Greetings Robert,
That's what I would think should happen! Unfortunately, the second transmitter stops operation of the first receiver.

I'm operating these in "momentary" mode, as each transmitter need only be ON for a few seconds.

All TX's are at the same carrier frequency, and individually coded by setting jumpers on 8 data lines as either a) not used, b) high, or c) low.

John
WA2RBA
User avatar
jwax
Posts: 2234
Joined: Mon Feb 09, 2004 1:01 am
Location: NY
Contact:

Re: Looking for ideas

Post by jwax »

This is getting interesting. Seems there are very few communications systems/methods that will do what I'm trying to do, be it ultrasonic, infrared, or RF. Imagine having a conversation with one of ten people in a room, with 9 other conversations going on, all at the same loudness level!
I'm considering using laser pointers in this application! Did I mention that the position of the TX's and the RX's are fixed?
Lasers and photocells could activate the motors just fine, but setup and takedown would require alignment each time.
Still open to other suggestions!
WA2RBA
sghioto
Posts: 326
Joined: Wed Dec 26, 2007 5:16 pm
Location: Colorado
Contact:

Re: Looking for ideas

Post by sghioto »

The problem is they're all on the exact same frequency! I've used RF modules similiar in operation and they are not designed to operate at the same time. The only way this will work is if all the Tx/Rx pairs are on different carrier frequencies. Otherwise you could use a single Tx unit and poll the receivers individually as needed.

Steve G
User avatar
Lenp
Posts: 1529
Joined: Thu Oct 26, 2006 8:11 pm
Location: Maryland
Contact:

Re: Looking for ideas

Post by Lenp »

How about a microprocessor polling system that only allowed one transmitter to be on at a time?
If the radio link was fast enough it would appear to be nearly instant.

Basic example:
do
if input=1 then high transmitter 1: pause xx : low transmitter 1
if input=2 then high transmitter 2: pause xx : low transmitter 2
if input=3 then high transmitter 3: pause xx : low transmitter 3
.
.
Loop

Any software dialect could do this!
The pause is to to allow the transmitter to send data

Maybe??
Len
Len

“To invent, you need a good imagination and a big pile of junk.” (T. Edison)
"I must be on the way to success since I already have the junk". (Me)
User avatar
jwax
Posts: 2234
Joined: Mon Feb 09, 2004 1:01 am
Location: NY
Contact:

Re: Looking for ideas

Post by jwax »

Hi Len,
Sorry but I understand very little of programming code, but if I'm hearing you right, you're suggesting a receiver to poll each transmitters status, reporting back to a central "computer", and having that computer determine which TX was the first to be transmitting.
The computer would then tell that receiver to operate while silencing all the other transmitters?
Maybe I'm missing the concept, because that sounds rather elaborate. I could see it working however!
Thanks Len!
John
WA2RBA
User avatar
Lenp
Posts: 1529
Joined: Thu Oct 26, 2006 8:11 pm
Location: Maryland
Contact:

Re: Looking for ideas

Post by Lenp »

jwax,

Not exactly, so get a big strong coffee and consider this...

A processor is a complex device that reacts to a stimulus based on a preset set of logical instructions. It has input and output pins that can be arranged as needed by the program software that is loaded into the processor. This software can instruct the processor to do simple or very complex operations.

In the simplest sense, a program is an instruction sort of like this:
"if there are no inputs do nothing"
"If there is an input on pin 1, send an output on pin 8"
"If there is an input on pin 2, send an output on pin 9"
"if there is an input on pins 1&2, send an output on pin 10
and so on
See the logic> Input1=8: input 2=9: input 1&2=10 (this is not math but input/output pins!)
The processing goes one step or instruction at a time so a program is written in a logical and sequential order
The program can also loop, or repeat so the same set of instructions is repeated.
So, usually the program for a specific application is written on a PC, in one of the many programming dialects.
It is then loaded into the processor and forever it follows the same instructions.


So, more directly to you,
First your problem is since all the receivers and transmitters are on the same RF channel, the only way to separate them is by some encoding of the transmitted signal. That works fine if it is one transmitter, but if two transmit at the same time, the codes get clobbered, and no receiver can decipher it's own code. Consider this example.
Transmitter #1 code 11001101 receiver #1 responds since it's code is set the same
Transmitter #2 code 10110101 receiver #2 responds since it's code is set the same
Transmitter 1&2 code 11111101 No receivers respond since there is no code match
(This example may not be exactly correct since it also depends on the timing of the transmitters, and any beating of the RF signals but it should help.)

If there was a group of people all talking at the same time the room would be full of noise. To solve that you could point to each person in turn. If they have something to say, they say it only when pointed to, otherwise they are quiet!

My idea is to use a microprocessor and whatever you use to trigger a transmitter would go to a separate input pin on the processor.
The processor would 'point' at each input one after another, 1,2,3,4,5,6,7,8,9,10,1,2,....constantly looking for a signal, like a closed switch
If it sensed a signal it would send an output on a different pin that would trigger the transmitter. With multiple inputs it would not react to any but the one it is currently sensing, then it would go to the next one in line.

So if you had inputs on 1,3 an 7 when it saw the signal on pin 1 it would send the output to transmitter 1, since there is no input on 2 it skips it and sends an output to transmitter 3 since it sees a signal on pin3, it skips 4,5,6, than sends output transmitter 7 because there is an input and so on.
At the speed the processor runs, the operation would appear to be almost instant, except when there are more than one transmitter to be triggered then each transmitter output would need to be be delayed for the time it takes the preceding transmitter one to operate, maybe a second or so, depending on how fast the transmitter can send it's codes. One consideration is how long is the channel input present? If it is short, processor may require programming to latch the input then reset it after transmitting so it doesn't miss one. It is all in the code! The devil is in the code! Yes, it probably could be done with a ton of integrated circuits, and maybe even with relays, but we tend to shy away from solder logic. With a processor, if you need to make a change, you do it in software and reload it to the chip. No muss or fuss...

So, here is Project Phase II!
If all the transmitters are in the same general area, would one transmitter work if the codes could be changed? Most transmitters and receivers use DIP switches to program the code sets. Since this is a simple switch, probably a 4 bit binary, that changes the code, 15 codes are possible.
Instead of the microprocessor sending a signal to 10 transmitters, how about using a single transmitter and change the code to the desired receiver code before transmitting. Again, this could be all done in software and the processor can handle the task, in fact it would be simpler. In the original scheme, 10 channels would require 10 inputs and 10 outputs, but in this scheme there would be 10 inputs and only 5 outputs (4 to set the code and 1 to turn on the transmitter)

In the first plan logic might look something like this:
((1-10 are inputs, 11-20 are outputs, A pretty big chip is needed))
start ((Start of program)
if there is an input on pin1 then send an output to transmitter 1 on pin 10 ((Turns on transmitter 1))
if there is an input on pin2 then send an output to transmitter 2 on pin 11 ((Turns on transmitter 2))
if there is an input on pin3 then send an output to transmitter 3 on pin 12 ((Turns on transmitter 3))
go to start ((Goes back and does it all again))

(This assumes that the transmitter and receiver code switches have 4 levers. If there are more it will still work but we won't go into that now!)
If you understand binary notation( 8,4,2,1), you will realize that since the transmitter and receiver code switches uses 4 circuits, and are usually referred to DCBA. So, Switch D= binary 1000 decimal (8) Switch C= binary 0100 decimal (4) Switch B= binary 0010 decimal (2) Switch A=binary 0001 decimal (1)
(1-0001. 2=0010, 3=0011, 4-0100, 5-0101, 6=0110, 7-0111, 8-1000,9=1001, 10=1010......)
These 4 switches can be combined to provide any number from 0, no switch closed to 15, all switches closed (8+4+2+1)


((1-10 are inputs, 11,12,13,14 sets the transmitter code (DCBA) and pin 15 turns on the transmitter. A much smaller chip is needed))
((In this example pin#14=100(8), pin#15=0100 (4), pin#16=0010 (2), pin#17= 0001 (1) and pin#18 turns on the transmitter. ))


So what happens is if the processor sees an input, it sets the correct code input into the transmitter then transmits the signal to the receivers.
start ((Start of program)
Now the new logic might go like this:
if there is an input on pin1 send an output to pin 17. (0001) and send an output to pin 18 to turn on the transmitter (Channel 1)
if there is an input on pin2 send an output to pin 16. (0010) and send an output to pin 18 to turn on the transmitter (Channel 2)
if there is an input on pin3 send an output to pin 17. (0001) and pin 16 (0010) and send an output to pins 18 to turn on the transmitter (Channel 3)
if there is an input on pin4 then send an output to pin 16. (0100) then send an output to pin to turn on the transmitter (Channel 4)
go to start ((Goes back and does it all again))
In reality the code must have other elements, like a delay for the transmitter to function, and possibly a data latch, like the first example, so a momentary input signal is not missed.

Questions... I'm sure there are!

Hacker Note:
I know about interrupts and how they might also work, and I realize the inputs could be BCD encoded to use even less pins but hey, I'm dealing with this one byte at a time!
Len
Len

“To invent, you need a good imagination and a big pile of junk.” (T. Edison)
"I must be on the way to success since I already have the junk". (Me)
sghioto
Posts: 326
Joined: Wed Dec 26, 2007 5:16 pm
Location: Colorado
Contact:

Re: Looking for ideas

Post by sghioto »

Wow nice job Len! Couldn't have explained it any better. :grin:
Jwax I hope you are reading all this because this is some good stuff.

Steve G
User avatar
Lenp
Posts: 1529
Joined: Thu Oct 26, 2006 8:11 pm
Location: Maryland
Contact:

Re: Looking for ideas

Post by Lenp »

Thanks sghioto
Ahhhhhh....Was it right????

Len
Len

“To invent, you need a good imagination and a big pile of junk.” (T. Edison)
"I must be on the way to success since I already have the junk". (Me)
User avatar
jwax
Posts: 2234
Joined: Mon Feb 09, 2004 1:01 am
Location: NY
Contact:

Re: Looking for ideas

Post by jwax »

Wow Len! As I understand it, it is a brilliant approach!
If I were building more than one of these systems, I'd consider hiring you to build it!
Give me a little time to digest that volume of logic and come up with any questions.
John
WA2RBA
User avatar
Lenp
Posts: 1529
Joined: Thu Oct 26, 2006 8:11 pm
Location: Maryland
Contact:

Re: Looking for ideas

Post by Lenp »

You're welcome.

If you have any questions feel free to fire them away!
Although it sems a bit complex, the code is probably quite straight forward.
If I get some free time soon maybe I'll hack together a running sample for you.

Much to the disdain of many people here, I still program in a basic dialect, and use the PicAxe chips. These are hard to beat for the price and variety plus you get free programing software and a pretty active forum.

Maybe this is the time to wet 'your feet"!

Len
Len

“To invent, you need a good imagination and a big pile of junk.” (T. Edison)
"I must be on the way to success since I already have the junk". (Me)
User avatar
jwax
Posts: 2234
Joined: Mon Feb 09, 2004 1:01 am
Location: NY
Contact:

Re: Looking for ideas

Post by jwax »

I hear you loud and clear Len!
I recently finished my first Arduino project, and fortunately had some help with the code.
It was a stepper motor driver with timed drive scenarios, and was great fun when it finally worked as desired after debugging.

Yes, one transmitter would certainly be sufficient to cover all the receivers in the room.
Maybe I'll look into perhaps a 5-station system to start, and then expand it later. Baby steps!
Thanks again Len!
John
WA2RBA
sghioto
Posts: 326
Joined: Wed Dec 26, 2007 5:16 pm
Location: Colorado
Contact:

Re: Looking for ideas

Post by sghioto »

Much to the disdain of many people here, I still program in a basic dialect, and use the PicAxe chips. These are hard to beat for the price and variety plus you get free programing software and a pretty active forum.
Agree 100% Len. I use the Picaxe as well.

John (jwax) I have recently built a 433mhz system that uses one TX and five RX units and each unit is controlled by a Picaxe 20M2. My system is basically turning relays ON and OFF. Your are welcome to use any of my design or code if that will help.

Steve G
User avatar
Lenp
Posts: 1529
Joined: Thu Oct 26, 2006 8:11 pm
Location: Maryland
Contact:

Re: Looking for ideas

Post by Lenp »

It doesn't get much better than that!
Len
Len

“To invent, you need a good imagination and a big pile of junk.” (T. Edison)
"I must be on the way to success since I already have the junk". (Me)
Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests