Show Posts
Pages: [1] 2 3 4
1  Topics / Education and Teaching / Re: What are some unconventional ways to start teaching? on: June 19, 2011, 07:26:18 pm
1. The union thing. That varies state to state. It used to be, for example, that you needed to be a union member to teach in Michigan. This may no longer be true. But Florida is a right to work state. State law forbids any employer requiring union membership to obtain any job there. So there is no requirement to join the union, and little pressure to do so. (That level of pressure may vary by county. Many people view the teachers' unions in Florida as rather ineffective and unless you feel obligated to do it out of historical reasons (eg. Dad was a union pipefitter, and so I should join the union too...)).

2. As Terry wrote, private schools don't have a *requirement* for a teaching certificate. Certificates are for K-12 public schools. (Private schools would prefer certificated teachers, but if you have an available expert in a field and s/he isn't interested in running through the hoops and putting up with the BS of obtaining the certificate...)

3. If you have a Masters (or higher) in a subject (eg. Math, Physics, Chemistry, not in teaching) you can get a job as adjunct faculty / assistant prof in a community college.

4. Gifted or after school or during summer "enrichment" programs. There are companies which do this. There is one I had some interaction with a few years ago. The name escapes me. If I recall I will edit this.

5. Many schools are desperately short of volunteers. But be aware that in many states you may have to pay $30-75 for an FBI fingerprint / background check before they will let you on school property without an escort. (Some districts may reimburse you, many won't.) You don't need to be completely free of any criminal offenses (eg. traffic tickets are not a worry), they must be (1) non violent (2) not involve children (3) non sexual. If you got drunk at the AC/DC concert freshman year and peed in the bushes and were ticketed for it by the cop who saw you, you may be a sex offender ("indecent exposure", even if you are not required to register as one) in some states.

As for Unconventional Ways: One friend recently retired from engineering, moved to a new community, struck up a conversation with a neighbor. A few weeks later the neighbor, a school principal, asked him to come teach (he was unable to get an education major math teacher to even come interview at his small town school). An even closer friend, underemployed bagging groceries at the time due to layoffs from an IT company, was dating a newly minted teacher who had sent resumes out shotgunning and had just accepted a job offer that morning. They went out to lunch to celebrate her new career. Over appetizers a principal called the woman to ask her to come in for an interview, she said she'd just accepted a position elsewhere, "but here, talk to this guy, he's interested in teaching" and she handed her phone to the guy (my friend) in the middle of a restaurant. Two days later he had an interview and was hired on the spot.
2  Using Arduino / LEDs and Multiplexing / Re: Price of laser diodes are burning my toast on: May 13, 2011, 07:39:20 pm
@wortelsoft
Yes, if you go back to the second sentence of my second paragraph of the original post, I'm trying to put together a produceable design.

I have built proof of concept prototypes based on $4 laser pointers (ugly project box, cat toys, battery holder home-made circuit board for a parts cost of less than $40 -- $20 of that being the cat toy lasers) and now I want to find a way to put 5 narrow beam light sources, a couple batteries, circuit board, and a power switch in a neat (professional) looking box about the size of a cigarette pack for $15-$25 (less is even better) parts cost for a run of 500 to 750 units. There is a strong possibility of doing a second run of 1000 to 2000 units summer 2012.
3  Using Arduino / LEDs and Multiplexing / Re: Price of laser diodes are burning my toast on: May 13, 2011, 07:29:06 pm
@Grumpy_Mike
I think you might struggle at that.

Do you think that no one makes small lenses? I have drawers full. I was hoping to avoid multiple parts, possibly requiring manual calibration to keep manufacturing costs low.

*or*

You do not think that LEDs can be purchased for $0.15?

I see right now standard LEDs @ Digikey less than $0.06 each in qty 3000. Sorry that the Queens coin isn't as valuable.

Series resistor: There is no active regulator. A resistor limits current to a safe value with a fresh set of batteries

Thanks for the info.

The laser is no sweat then ... no more complicated than any standard LED. Set the value to limit the current based on the supply bus. I was worried that perhaps there was some big non-linearity such as with some gas tubes that I had not accounted for using the cat toy devices in the prototype. But given the cost differential using an LED vs a laser diode I think the laser version is going to the circular file and v2.0 will use LEDs and lenses.
4  Using Arduino / LEDs and Multiplexing / Re: Price of laser diodes are burning my toast on: May 08, 2011, 07:32:24 pm
$1.54 would certainly be in the acceptable range. Is dealextreme a closeout house? If this goes anywhere I'll need a source that isn't end of life. Might be making them for a few years.

Where can I find more about the driver needs? Why is a laser diode so much fussier than a standard diode?

I do recall the lensmaker's equation from college physics so maybe I need to find a source for small plastic lenses and use $0.15 red LEDs.

5  Using Arduino / LEDs and Multiplexing / Price of laser diodes are burning my toast on: May 06, 2011, 05:37:06 pm
Got a cool project running. But each unit needs 5 laser diodes, or perhaps good-ol-LEDs.

I can buy laser pointer cat toys at the local megamart for under $4.00 each. So I was shocked and awed when I went to try to go from scrap-parts-prototype to something produceable and I found that laser diodes at Digikey, etc. are >$4.00 per each, and laser "modules" go for >$25.00 per each.

Maybe I'm asking for too much of a good thing. Don't know that I need a laser. What I need is
  * the capability to project a narrow beam so that I get about a 1cm wide spot at 3 meters ... this is good.
  * A 4mm spot at 3m distance would be all that and gravy.
  * Any visible color (no IR).
  * Intensity under 5mW ... If a human at the device can see that 1cm spot on a white wall 3m away it's bright enough.
  * It doesn't even have to be a round dot. If the beam is slightly fan shaped it is OK. 10cm by 0.5cm at 3m?

Ideas out there? Low cost laser diodes? Narrow beam LED with a lens? (I'd hoped to avoid optics but price may override pleasure.)

kBit

6  Forum 2005-2010 (read only) / Troubleshooting / Re: arduino to processing problem --SOLVED-- on: May 25, 2008, 07:05:02 pm
Quote
there is no code in the arduino.

Um, if there is no code in the Arduino, how does it know to read analog(0) and send the data out its serial port to Processing running on the laptop?

To avoid creating Arduino SW, don't you at least have to have Firmata loaded into the Arduino?
7  Forum 2005-2010 (read only) / Syntax & Programs / Re: Float value through Serial Port.. on: April 05, 2008, 07:44:46 pm
If the "OR in a byte then shift, repeat" thing didn't work, it may be an "endian" issue. In short, the order of the bytes was backwards.

Debugging: Can you set the IMU on its side (or whatever) so it will send you a 1G accelleration signal on Y axis and a 0G accelleration signal on the X axis? On the Arduino, you need to print out / send back to the PC (in ASCII) the bytes in the order they are received. You will need to hand code the proper floating point value for 0 and 1 and be able to recognise small (noise) variations.

This will give you a clue as to what order the bytes are coming in. They may be completely backwards, or just the pairs backwards. OTOH, if that is OK, then post your "oring in and shifting" code for us to look for errors.

A generic union is accessed like this:

Code:
union u_tag {
    int ival;
    float fval;
} u;

u.ival = 14;
u.fval = 31.3;

yours might look like:

Code:
float velocity;

union u_tag {
    byte b[4];
    float fval;
} u;

u.b[0] = ...
u.b[1] = ...
u.b[3] = ...
u.b[3] = ...

velocity = u.fval;
 


It might compile.  smiley-razz

Here is some code reading out the float value a byte at a time. It compiles and runs.  8-)

Code:
void setup()
{
  Serial.begin(9600);
  
  // prints title with ending line break
  Serial.println("Floats coming out as bytes!!");
 
  // wait for the long string to be sent
  delay(100);
}
  
    float myVelocity = 0.0;

  union u_tag {
    byte b[4];
    float fval;
  } u;


void loop()
{
   u.fval = myVelocity;
  
   Serial.print("Byte 1: ");
   Serial.println(u.b[0], DEC );
 
   Serial.print("Byte 2: ");
   Serial.println(u.b[1], DEC );
  
   Serial.print("Byte 3: ");
   Serial.println(u.b[2], DEC );
  
   Serial.print("Byte 4: ");
   Serial.println(u.b[3], DEC );
  
   Serial.println();
  
   myVelocity  += 1.0;
  
  delay(100); // allow some time for the Serial data to be sent
}

8  Forum 2005-2010 (read only) / Syntax & Programs / Re: Reading a pulse signal on: June 04, 2008, 08:59:28 pm
I hope you have not wired it up as your schematic shows. Your Arduino will see 7.2V on its input pins at a 12V nominal input. Since an automobile electrical system can be 13.6V (or more) when engine is running, you will be putting ~ 8.25 into the inputs.

Reverse the resistors. You need to put 30K (or more) on the 12V side, and 20K (or less) to ground.


9  Forum 2005-2010 (read only) / Syntax & Programs / Re: multi dimensional arrays and creating classes on: June 09, 2008, 09:10:25 pm
Repeat with me, C arrays go from 0 to n-1.

{Not counting fixing any other errors.}

Code:
for (indexCounter=0; indexCounter <= length of array;  indexCounter++) // length of array?
        Serial.print(incident[indexCounter].time); (//??)

should be

Code:
for (indexCounter=0; indexCounter < length of array;  indexCounter++) // length of array?
        Serial.print(incident[indexCounter].time); (//??)

10  Forum 2005-2010 (read only) / Syntax & Programs / Re: How to Reset milli() function? on: May 25, 2008, 07:17:50 pm
Doesn't answer your question, but I think that you don't realize that you are overrunning your array and results will be unexpected.

Valid index of C arrays run from 0 to size - 1

i.e.

Code:
 a[1] = analogRead(0);
  b[1] = analogRead(1);
  c[1] = analogRead(2);

should be

Code:
 a[0] = analogRead(0);
  b[0] = analogRead(1);
  c[0] = analogRead(2);

and all later references changed to match.

HTH


11  Forum 2005-2010 (read only) / Syntax & Programs / Re: Binary serial communication on: April 05, 2008, 07:04:45 pm
I know what you are saying / asking for. If you do

Code:
Serial.print( 5 );

What arrives at the terminal is the ASCII code for "5", which is a byte value of, like 53, if I recall. The print function converts binary numbers to ASCII strings. I assume that is because it is called "print" not "SendThisByte"
But...You want the byte value of 5.


Do this:
Code:
Serial.print( 5, BYTE );

That'll do ya.
12  Forum 2005-2010 (read only) / Syntax & Programs / Re: Debugging errors.. Returning an array from a F on: April 06, 2008, 08:20:40 pm
DANGER!  :o

The way you are coding will lead to overrunning your arrays. You will read/write the next variable after this one and/or hose your return stack. And in your summing, you might be adding an extra (possibly undefined) value.

You only get away with it in this code (and I'm not sure that you are getting away with it - in one place you call a function with sampSize + 1)  because you made your array 1 more than your sampleSize. But they are not connected. What if you later modify one and forget the other?

This will help:

note: no "=" and no semicolon on the define line:
Code:
#define SonarSamps  10
int distances[SonarSamps];

Remember, an array in C goes from 0..size - 1;

Code:
 for (i=0;i<=arrayVals;i++){
    sum = array[i]+sum;
  }

should be:

Code:
 for (i=0;i<arrayVals;i++){
    sum = array[i]+sum;
  }

And

Code:
//Takes a sample from the Sonar  and appends it to the distances array
  i=0;
  for(i=0;i<=SonarSamps;i++){
    if (i==0){
      distances[0]=distances[1];
    }
    else if(i==SonarSamps){
      distances[i] = GetDistance();
    }
    else{
      distances[i]=distances[i+1];
    }
  }

Should be:

Code:
//Takes a sample from the Sonar  and appends it to the distances array
  i=0;
  for(i=0;i<SonarSamps;i++){
    if (i==0){
      distances[0]=distances[1];
    }
    else if(i==SonarSamps){
      distances[i] = GetDistance();
    }
    else{
      distances[i]=distances[i+1];
    }
  }

Also, way too much wasted CPU time moving values (this part):
Code:
     distances[i]=distances[i+1];

No need to move the data. Just move the insertion point:
Code:
distances[i++] = GetDistance();
if(i == SonarSamps)
   i = 0;
13  Forum 2005-2010 (read only) / Interfacing / Re: Serial.println to flash randomly splits into 2 on: April 04, 2008, 03:06:05 pm
I don't know Actionscript, but this thing bites programmers often in other languages / environments. You are (falsely) making the assumption that the complete message sent by Arduino has been sent to USB, wired over to the computer, passed through various USB & serial & system buffers, and arrives completely (including the CR/LF)  before the call to readUTFBytes returns. Unfortunately, it is likely that call is returning as soon as the system detects that there are bytes in the buffer and so it copies a handful of them over to you. In short, you are getting back a partial message. The last character or two and the CR are still rising thru the stacks.

Solution is to read IO into a buffer, scanning for line termination. If not terminated, read again and concatenate the first & new strings, again scanning for termination. Rinse, lather, repeat.

When you have the proper termination in your buffer, you can then process your string. (Note: You *may* have characters in your buffer after the termination that you need to retain for the next processing cycle. If readUTFBytes is supposed to return when it finds the termination CR/LF, then you may be free to assume that there are no characters in the buffer after the termination. If it does not guarantee that, (meaning it sends all the characters currently in the buffer, and this is common) then you are relying on the 100mS delay of your sender (the Arduino) to time out the read buffering on the computer. Check your input. NEVER, EVER, assume the other end will behave!)
14  Forum 2005-2010 (read only) / Interfacing / Re: Arduino and 1-wire on: July 20, 2008, 07:41:46 pm
I just thought I'd try Jim's OneWire library and got the following errors when the Arduino environment (11) starts up:

OneWire.cpp: In constructor 'OneWire::OneWire(uint8_t)':
OneWire.cpp:74: error: 'digital_pin_to_port' was not declared in this scope
OneWire.cpp:76: error: 'port_to_output' was not declared in this scope
OneWire.cpp:77: error: 'port_to_input' was not declared in this scope
OneWire.cpp:78: error: 'port_to_mode' was not declared in this scope


OneWire.cpp and OneWire.h are in hardware/libraries/OneWire

Any ideas what went wrong?

15  Forum 2005-2010 (read only) / Interfacing / Re: HM55B compass with pan servo on: August 03, 2008, 01:19:46 pm
Looks to me you are being blinded by the novelty of using a compass to do this. Panning a camera to match head position doesn't require 1/10 of this work & expense. I'd rethink the problem and simplify.






Pages: [1] 2 3 4