Ultraviolet LED's

So I got a pack of Sparkfun LED's and some UV LED's on the side. A little investigation led to the conclusion that the separate LED's are rather superflous. It turns out the 'violet' LED's in the Sparkfun pack have the exact same wavelength as the LED's sold separately.

They are both of the class called 'UVA' which goes from 400 – 315 nm. The separate LED's do however seem to be a bit brigther. Also the construction itself of the two differ a tiny bit - we are talking sub-millimetre and fractions of degrees.

Here's a table of UV wavelengths, ripped right out of Wikipedia.
UltravioletUV400 – 100 nm3.10 – 12.4 eV
Ultraviolet AUVA400 – 315 nm3.10 – 3.94 eVlong wave, black light
Ultraviolet BUVB315 – 280 nm3.94 – 4.43 eVmedium wave
Ultraviolet CUVC280 – 100 nm4.43 – 12.4 eVshort wave, germicidal
Near UltravioletNUV400 – 300 nm3.10 – 4.13 eVvisible to birds, insects and fish
Middle UltravioletMUV300 – 200 nm4.13 – 6.20 eV
Far UltravioletFUV200 – 122 nm6.20 – 10.16 eV
Hydrogen Lyman-alphaH Lyman-α122 – 121 nm10.16– 10.25 eV
Extreme UltravioletEUV121 – 10 nm10.25 – 124 eV
Vacuum UltravioletVUV200 – 10 nm6.20 – 124 eV

Using a TV remote to control an Arduino

I had bought a couple of pairs of these IR emitters/receivers and wondered if the wavelength of the light would be the same as for standard IR remote controllers for TV sets.

So instead of trying to hook up the emitters, I went straight for the TV remote. I had two available; one universal remote and one Panasonic DVD/TV remote.

The red one is the LTR301 (reciever) and the yellow one is the emitter. (LTR302).

Using IRremote.h, I was able to collect the raw IR codes from the remote control. This required me to remove the file Tone.cpp from the Arduino IDE's /cores folder. The reason for this was that IRremote.h library was implementing the same interrupt handlers. I am not using the tone generation functions in this library, so I just moved it outside the root folder and then IRremote.h would compile eventually :)

Having no use for the actual functions of the remote, I don't bother to translate them. I just made a lookup-table of what to do for each code, and drew out a sketch on paper what button produces what code. An obvious use of some buttons, like the 'center joystick-like pad', usually consisting of four identical left-right and up-down buttons for channel and volume, respectively, was ideal for forward-backward and turning control.

I hooked the IR sensor up with a 10k resistor, this gave me a detection range of about 50cm, straight angeled on the side of the sensor. Not very practical for a remote controlled device, but some modificationm of this could extend the range.

On the other hand, I do have the both the IO shield and the Mega ADK and a spare Android phone, so this could be controlled over BlueTooth or Wifi too. This could be a low level fail-safe input channel, in case the robot has to be shut down at a moments notice, regardless of the potential fickles of BT and WiFi reliability on an Arduino system.


Rover 5 Robot soon ready

So there's been a while since last post.

Huge improvements has been done. The robot is essentially operational. This is what what I have done so far: This robot seems fairly similar to Mr. Explorer, actually.

  1. Rover 5 (4 motor/encoders, the ROV5.3 model) 
  2. DFrobot Robot Base Plate mounted on 50mm standoffs. 9V
  3. Dagu 4 channel motor controller mounted upside-down on 250mm standoffs, right under the pan servo.
  4. Metal framework mostly made of Hoist/Metal Element metal pieces.
  5. Arduino Mega ADK mounted with baseplate and mini breadboard, vertically 9v.
  6. Arduino Ubo R3 mounted with HME parts, including mini breadboard, vertically. 9v.
  7. DFrobot Pan/Tilt Kit  but with extra long U bracket
  8. Maxbotix LV+EZ1 Ultra Sonar (Running on high power 4.5v battery, measured to 4.9 volts)
  9. Dagu/AREXX IR Compound eye. 5v
  10. 8 and 9 mounted on tilt servo with HME parts.
  11. IR detector, using an old PanasonicTV remote to communicate with the detector
  12. Piezo buzzer, photoresitor, 2x LM35 temp sensor, humidity sensor, dewpoint sensor, 2x IR sensors
  13. 4-keys on breadboard for core functions
  14. Sparkfun LCD 09531 128x64 LCD (Running on separate 9V)
  15. Custom 2-tier OS, codenamed 'Defiance', with multitasking and will communicate with you trough LCD and a buzzer. User input is the 4 keys and a TV remote.
  16. Diffused tricolor LED for system status indication.
  17. Mega and Uno communicates vie RX-TX and RX1-TX1. (Still working on that.)
  18. TODO: Hook up my S2 running CM9 and utilize BlueTooth, WiFi and of course its excellent array of sensors, the 1080p camera and the sheer power of a quad core ARM to do the heavy CPU stuff!
Now all code is tested, all components are running separately and the work ahead now is just to tie it together with some neat AI, as well as tidy up the code, gather some more credits (yes i blatantly stole some code here and there).

My primary concern now is to figure out a mechanism that will kill the 4 motor power source in case the 5V controller supply should die. (this situation is not good)

My other problem is that the one of the robot chassis tracks will derail once in a while. I am working on a remedy including weight distribution and tape. I will at the end of this produce a how-to on this whole endeavour.

Here's some pictures of the process and a link to a video that shows the motors working.

The first version of cabling between the motor controller and  a breadboard.
Although it would probably work, I decided to use regular F7F cables instead.

Mounting the LCD. This was not actually a good location, so  it was removed.

First incarnation of the robot.

A later version; with LCD on the back

The other side.

I ended up butting the base plate sideways to recuce overall height

The Uno drives, the motors, the sonar and the IR. It signals the Mega if anything interesting is happening.

The whole thing can be loosened with 4 screws so I can access the motor controller and the battery pack.



DFRobot capacitor packs

Just to have this at a place I know, here's the shipping list for a 250-pack of capacitors from DFRobot. (it's not 220, it's 250!). The markings on the bags and the caps themselves was a bit washed out, but this list pretty much clears up any doubts:

  • 1pf  (10 units)
  • 5pf (10 units)
  • 6pf (10 units) 
  • 10pf (10 units) 
  • 15pf (10 units) 
  • 20pf (10 units) 
  • 22pf (10 units) 
  • 30pf (10 units) 
  • 33pf (10 units) 
  • 47pf (10 units) 
  • 68pf (10 units) 
  • 100pf -101 (10 units)
  • 220pf -221(10 units)  
  • 330pf -331(10 units)  
  • 470pf -471(10 units)
  • 680pf -681(10 units)
  • 1000pf-102 (10 units)
  • 2200pf-222 (10 units)
  • 3300pf-332 (10 units)
  • 4700pf-472(10 units)
  • 10000pf=10nf-103 (10 units)
  • 22000pf=22nf-223 (10 units)
  • 33000pf=33nf-333 (10 units)
  • 47000pf=47nf-473 (10 units)
  • 100000pf=100nf-104 (10 units)