Today, we finally did a range test on the 433MHz Emergency Stop board I made.
The minimum range the project is looking for was 50ft, reliably. The good news? We managed that distance no problem. Better news? The range is so far we're not sure how to appropriately measure it.
Indoor's where you expect reception to be worse. We left the transmitter in our lab and walked away with the receiver to a point in the building we could not receive the signal anymore.
This ended up being about 150 feet, through the doors of our lab (which have been known to be pretty impervious to RF), not even close to line of sight, and while transmitting at the lowest voltage possible.
Next up was an outdoor range test, again plugged in to an outlet at one building the transmitter was left to transmit. The receiver was walked behind buildings and a range of about 200ft was managed, although it could probably go further.
Finally, we did a Line of Sight Test, One person on one side of the parking lot, myself on the other side. With line of sight, we've easily managed 450ft. Just 9 times the required distance for the E-stop. Thats with the 3.0V minimum transmit voltage (works up to 5.2V).
Later this week we will test using a different method. Namely find a dead end road and drive straight down it until we can't receive anymore, and try this with the higher transmit power, also.
I'd bet we can get over 1000ft out of these things if we try.
Ill put up pictures of the schematics and a parts list for those interested in this. ~60$ gets a reliable link up to about 1000ft (Data sheet says you can get 3000ft if you know your RF design...I don't). If your looking for simple switching, this beats the price of Xbees.
Sunday, March 13, 2011
Friday, March 4, 2011
Open Source Linear Algebra Computational Software
This is a post for anyone who has done linear algebra and gets 2-3 pages into a question, and realizes they screwed up a step on page one.
It's happened too often to me to be funny anymore. half an hour wasted because that "-2v1_z" really should have been "2v2_z" and then everything would have come together properly.
If its happened to you before, or you want some software to check your work against. I suggest looking into this "Maxima" Project.
What it is, is very comparable to the symbolics library in matlab. However comes with a lot cheaper license (Free) and does the work in literally a 10th of the time. Its a considerably higher performance implementation to what Matlab currently implements.
I know that this totally sounds just like a plug for them. But compared to what I usually use I was impressed with the amount of features that a program like this has. Apparently it has plotting functions too (not nearly as powerful as Matlab in this respect).
One nice feature is the copy as image and copy as LaTeX functionality. Means you can use Maxima to render an equation quickly without the stupid PDF recompiling that LaTex does. Then Quickly and accurately get the right function into Latex without any of the usual hassles. (Particularly useful for equations that have many elements, sums or integrals in them).
If you're taking a Linear Algebra Course, and want to check your work with this. If you're like me and multiplying a bunch of symbolic rotation matrices together, or your in industry or as a hobbyist looking for a free solution to evaluate some problems. I'd strongly suggest this download as being a big step in the right direction if you don't want to shell out 150$ for a Matlab License.
It's happened too often to me to be funny anymore. half an hour wasted because that "-2v1_z" really should have been "2v2_z" and then everything would have come together properly.
If its happened to you before, or you want some software to check your work against. I suggest looking into this "Maxima" Project.
What it is, is very comparable to the symbolics library in matlab. However comes with a lot cheaper license (Free) and does the work in literally a 10th of the time. Its a considerably higher performance implementation to what Matlab currently implements.
I know that this totally sounds just like a plug for them. But compared to what I usually use I was impressed with the amount of features that a program like this has. Apparently it has plotting functions too (not nearly as powerful as Matlab in this respect).
One nice feature is the copy as image and copy as LaTeX functionality. Means you can use Maxima to render an equation quickly without the stupid PDF recompiling that LaTex does. Then Quickly and accurately get the right function into Latex without any of the usual hassles. (Particularly useful for equations that have many elements, sums or integrals in them).
If you're taking a Linear Algebra Course, and want to check your work with this. If you're like me and multiplying a bunch of symbolic rotation matrices together, or your in industry or as a hobbyist looking for a free solution to evaluate some problems. I'd strongly suggest this download as being a big step in the right direction if you don't want to shell out 150$ for a Matlab License.
Labels:
Linear Algebra,
Maxima,
Open Source,
Robotics
Sunday, February 13, 2011
DIY Wireless Emergency Stop
Part of my responsibilities on a club of mine is to design an emergency stop for a car.
For hobbyists this seems to be a fairly common project that can be undertaken in various ways, depending what is needed from the end product. These solutions range from 20$ to 100$ and offer varying ranges and data-rates.
There are a few potential ways for someone to go about this task. The one that was tried last year was a wireless link setup with 2 Xbee Modules. I'll also take a look into a simple solution and a more robust version depending upon the application.
Option 1: Xbee Module Wireless Serial Connection
Range: Okay (100-150ft indoor)
Bandwidth: Great (10's of kb/s)
Cost: Medium-High (Here, thats 50-100$)
Frequency: 2.4GHz.
With some advanced knowledge of the Xbee module, its possible to make a link to trip a relay remotely for about 60$ (20 each for Xbee's , and another 20 for misc. components )
One major improvement that could be made to this board is figuring out how the Programmable IO on the Xbee's worked. You could potentially eliminate the Microcontroller altogether, which personally I think would be Ideal.
Option #2: The Walkie Talkie E-stop
Range: Short (50ft indoor)
Bandwidth: Low (none, really)
Cost: Very low (~20$)
Frequency: 27MHz, or 49MHz.
This is a pretty simple hack. Go to a store that sells kids toys. Buy a pair of toy walkie talkies (you can buy better ones and get a much better result, but this is a lot less expensive). Make sure they have the "morse code" button on them. What will be done is we'll take one walkie talkie and rip the speaker off, this will be the output of the receiver side. The transmitter side can stay stock.
Most/all of these cheap toys are AM based. Meaning that the receiver will see a change in amplitude in its band based on what the transmitter is sending. So what we do to fix all the potential noise we will get on the channel (27 and 49 MHz are popular for most child toys) is we will make a simple band pass filter at 1800 - 2200Hz. Then an envelope detector after the filter will give us an overall indication of the strength of the signal at the frequency. This could be then fed into a comparator which is triggered high when the envelope is large enough. Which can trigger whatever relay circuit you have to stop/start something remotely. With this system if you're clever you can add in multiple frequencies and get different things being triggered with moderate noise suppression.
Biggest drawback of course is the AM is directly correlated to your proximity to the car. You'll have to stay close, but for small simple projects it's price literally can't be beaten.
Which brings me to the last option that I'm trying this year for the club: Industrial AM modules. These are the ones you will find in a key-fob in a car or something similar. Low Data-rate, but massive range and very reliable.
Option #3: Linx Module(s)
Range: Huge! (Up to 1/2mile outdoor)
Bandwidth: Low(1-10kb/s)
Cost: Medium (~70$)
Frequency: 433, 415MHz.
Im trying these out right now and I'll get back to this when I know how well they work. The KH2 module I have right now is apparently slow (~250ms delay from transmit to decoded data) but for my application that's fine. Even speeding along, the car will only go ~1-2m before tripping a stop command.
I'll talk about this once it does or doesnt work. Right now, the only drawback is that you will have to etch/mill/fabricate a board for it to see any real range, and there is some -albeit minimal- RF circuitry to be done. Second drawback right now is that they can be bulky without proper tuning (They: http://www.linxtechnologies.com/ suggest a 4"x4" square for their performance tests)
With that said, hopefully in another week we'll see some progress on the 3rd option and I can tell people which I think the best method for quickly and inexpensively setting up a wireless E-stop/link is.
For hobbyists this seems to be a fairly common project that can be undertaken in various ways, depending what is needed from the end product. These solutions range from 20$ to 100$ and offer varying ranges and data-rates.
There are a few potential ways for someone to go about this task. The one that was tried last year was a wireless link setup with 2 Xbee Modules. I'll also take a look into a simple solution and a more robust version depending upon the application.
Option 1: Xbee Module Wireless Serial Connection
Range: Okay (100-150ft indoor)
Bandwidth: Great (10's of kb/s)
Cost: Medium-High (Here, thats 50-100$)
Frequency: 2.4GHz.
With some advanced knowledge of the Xbee module, its possible to make a link to trip a relay remotely for about 60$ (20 each for Xbee's , and another 20 for misc. components )
One major improvement that could be made to this board is figuring out how the Programmable IO on the Xbee's worked. You could potentially eliminate the Microcontroller altogether, which personally I think would be Ideal.
Option #2: The Walkie Talkie E-stop
Range: Short (50ft indoor)
Bandwidth: Low (none, really)
Cost: Very low (~20$)
Frequency: 27MHz, or 49MHz.
This is a pretty simple hack. Go to a store that sells kids toys. Buy a pair of toy walkie talkies (you can buy better ones and get a much better result, but this is a lot less expensive). Make sure they have the "morse code" button on them. What will be done is we'll take one walkie talkie and rip the speaker off, this will be the output of the receiver side. The transmitter side can stay stock.
Most/all of these cheap toys are AM based. Meaning that the receiver will see a change in amplitude in its band based on what the transmitter is sending. So what we do to fix all the potential noise we will get on the channel (27 and 49 MHz are popular for most child toys) is we will make a simple band pass filter at 1800 - 2200Hz. Then an envelope detector after the filter will give us an overall indication of the strength of the signal at the frequency. This could be then fed into a comparator which is triggered high when the envelope is large enough. Which can trigger whatever relay circuit you have to stop/start something remotely. With this system if you're clever you can add in multiple frequencies and get different things being triggered with moderate noise suppression.
Biggest drawback of course is the AM is directly correlated to your proximity to the car. You'll have to stay close, but for small simple projects it's price literally can't be beaten.
Which brings me to the last option that I'm trying this year for the club: Industrial AM modules. These are the ones you will find in a key-fob in a car or something similar. Low Data-rate, but massive range and very reliable.
Option #3: Linx Module(s)
Range: Huge! (Up to 1/2mile outdoor)
Bandwidth: Low(1-10kb/s)
Cost: Medium (~70$)
Frequency: 433, 415MHz.
Im trying these out right now and I'll get back to this when I know how well they work. The KH2 module I have right now is apparently slow (~250ms delay from transmit to decoded data) but for my application that's fine. Even speeding along, the car will only go ~1-2m before tripping a stop command.
I'll talk about this once it does or doesnt work. Right now, the only drawback is that you will have to etch/mill/fabricate a board for it to see any real range, and there is some -albeit minimal- RF circuitry to be done. Second drawback right now is that they can be bulky without proper tuning (They: http://www.linxtechnologies.com/ suggest a 4"x4" square for their performance tests)
With that said, hopefully in another week we'll see some progress on the 3rd option and I can tell people which I think the best method for quickly and inexpensively setting up a wireless E-stop/link is.
Tuesday, January 11, 2011
New year, New work
Hi!
It's been a little while again. Since last time (November 7 apparently) many things have happened,
I finished a Computer Vision course (more later) and a CUDA course. So know I have some basic ideas how to chop up an image usefully and can make some algorithms parallel.
I'd like to post some code later on some simple image processing functions that might be useful, they're all written in C and they helped during the course so I'd imagine that there are other people out there interested in seeing how they are done, (Basic image filtering, Distance Transform, Hough Transform, Otsu Thresholding, Edge Detection, Morphological Filtering...etc). I'll do separate posts on each one.
As far as CUDA is concerned, it's interesting but challenging to wrap your head around at first. There are only so many things that work on the platform well (some things are ill-suited to parallelization) and to do them well means that you need to become intimately familiar with how the parallelization happens at the hardware level. Knowing which memory to use, finding block and grid sizes that fill the GPU and still run effectively isn't trivial.
I completed Two other interesting projects since November as well. A Cell-Counting project where microscope slides are brought into MATLAB and then with an absurd amount of processing I find the red and white blood cells and label them. Giving a final cell count at the end. (Code coming soon'ish)
The other one is an Electromagnetic Finite-Difference Time Domain method (FDTD) was implemented in CUDA in 2D. Later I found a generic one in 3D and was happy to see it, too wasn't very fast. Looked impressive though.
Not much else really happened.
Looking into January:
-Work Project needs completion. Finally!! I want it to be done with, really.
-Robot Racing Rules are out, can get to work on those.
-SAE stuff needs to be done. Fast. We've fallen behind (again)
-HTI is something I rarely mention, its a group Im in developing a high speed human powered bike. Gotta get to work on that too.
You think I do too much stuff? I've got nothing on some people I know...I don't know how they can do it.
So during this month We'll see multiple posts about image processing functions and some more consistent entries about whats going on here.
It's been a little while again. Since last time (November 7 apparently) many things have happened,
I finished a Computer Vision course (more later) and a CUDA course. So know I have some basic ideas how to chop up an image usefully and can make some algorithms parallel.
I'd like to post some code later on some simple image processing functions that might be useful, they're all written in C and they helped during the course so I'd imagine that there are other people out there interested in seeing how they are done, (Basic image filtering, Distance Transform, Hough Transform, Otsu Thresholding, Edge Detection, Morphological Filtering...etc). I'll do separate posts on each one.
As far as CUDA is concerned, it's interesting but challenging to wrap your head around at first. There are only so many things that work on the platform well (some things are ill-suited to parallelization) and to do them well means that you need to become intimately familiar with how the parallelization happens at the hardware level. Knowing which memory to use, finding block and grid sizes that fill the GPU and still run effectively isn't trivial.
I completed Two other interesting projects since November as well. A Cell-Counting project where microscope slides are brought into MATLAB and then with an absurd amount of processing I find the red and white blood cells and label them. Giving a final cell count at the end. (Code coming soon'ish)
The other one is an Electromagnetic Finite-Difference Time Domain method (FDTD) was implemented in CUDA in 2D. Later I found a generic one in 3D and was happy to see it, too wasn't very fast. Looked impressive though.
Not much else really happened.
Looking into January:
-Work Project needs completion. Finally!! I want it to be done with, really.
-Robot Racing Rules are out, can get to work on those.
-SAE stuff needs to be done. Fast. We've fallen behind (again)
-HTI is something I rarely mention, its a group Im in developing a high speed human powered bike. Gotta get to work on that too.
You think I do too much stuff? I've got nothing on some people I know...I don't know how they can do it.
So during this month We'll see multiple posts about image processing functions and some more consistent entries about whats going on here.
Subscribe to:
Comments (Atom)
