Thursday, February 23, 2006

Sparkfun!

Sparkfun Electronics is a great site I've been poking around at for a long time. Just wish I could afford some of it.

Current wishlist that others might be interested in:
-Single transducer sonar unit with decent signal filtering onboard. Looks really nice.
-Various GPS units up the wazoo with lots of antenna options.
-Fully functional cell phone modules. Talk about tempting to build your own!
-Speaking of phones, they have a contest going on currently to figure out the hardware for their surplus, undocumented cameras from the Samsung E700.
-(I already have these) Affordable hot air rework and soldering stations. Quite useful
-accelerometers and gyros, ranging from single units to full IMU's. They are actually required to NOT sell the chips loose, but this is a decent way to get into the projects.
-Magnetic sensors for compass navigation.

I'm most interested in a small GPS module, a 3 axis mag sensor, and the sonar unit. That's about $170 worth of parts, so I'm afraid I have to hold off for a LONG while.

Saturday, February 18, 2006

Impact Mechanics

One of my odder interests are impact and protection. Slashdot recently ran an article with someone advocating using basically a memory foam for hardening armor. Now, I don't have a sample of memory foam right now, but I've seen Silly Putty and high density water-corn starch concoctions flow and move at one time and act like steel at a different time. I think that professional systems for impact absorption (special sparring suits) use a Neoprene outer shell, EVA underlay and a high density memory foam core, and probably similar layering going out the other side.

Now, WHY am I suddenly interested in this?

I've always got my mind on using stuff I build or want to build. I often wander back to Airsoft or Paintball as test grounds and play fields. Paint ball especially can HURT, so people wear armor. Now, most is fairly hard, but what if a lighter weight, fully pliable material was possible? Because it's local hardening, it should give more warning that you've been hit while still keeping the impact down. I've had a line of balls fired down my midsection before, it knocked the breath out of me. I'd have loved to have an inch or two of soft armor between me and them. Airsoft, due to the lower delivered energy, doesn't need to worry about this unless 25mm canister rounds start flying.

Thursday, February 16, 2006

CAN: Universal bus?

Well, I'm still learning gEDA. Finally got it loaded on a PC that I actually use. I got in my head a slightly modified version of my RC CAN interface. Instead of using a CAN enabled RC controller, how about a CAN enabled smart digital motor? I could then control the PID and rate control, increase accuracy, and have more information and control. So, this board should be designed to interface with the mechanics of the standard RC servo and replace it. So, I'm considering the following capabilities (no particular order):
  • H bridge based motor control
  • Temperature measurement
  • Input voltage measurement
  • Module amperage measurement
  • Programmable potentiometer for maximum position measurement
The above would allow for shutdown of the unit before motor burnout, power efficiency calculations and power usage control. Each board would be designed and built and made to support as large a range of servos as possible, hopefully allowing wide ranging retrofit. Target manufacturer is currently Hitec, although if a low cost, good quality servo is found it will be considered.

Offboard support circuitry:
  • High current buck/boost controller: provides servos and modules with approximately 5V of regulated voltage, several amps of power (I hope). Keeps the electronics and servos electrically isolated from the main motor voltage spikes.

Now, onboard circuitry, preliminary part selections:
  • PIC18F2580 (Microchip, QFN): integrated CAN, smallest board space for a CAN chip
  • MCP1252-33x50 (Microchip, MSOP): Power regulator, will provide 5V 120mA for 2 to 5.5V input, may be replaced if a good alternative for 2.5V to 10V is found and also will phase out the buck/boost converter from some designs. Isolates electronics from servo voltage spikes.
  • MCP2551 (Microchip, SOIC): CAN voltage converter (Requires 5V)
  • MCP6S21 (Microchip, MSOP): PGA w/ SPI controls for measurement of the amperage via high side shunt, may need an external SPI delta sigma ADC
  • MCP42100 (Microchip, TSSOP): Dual Digital Potentiometer w/ SPI controls. Used to scale line voltage to monitor raw 5V/high voltage line level, tune the high and low voltages of the position capture circuit to maximize accuracy.
  • MCP9800 (Microchip, SOT): I2C temperature sensor, due to lower rate, may be software driven
Note: space constraints will limit what can be implemented. The minimum design will include the PIC, voltage regulator, and CAN chip.

Now, another objective is using the Kodak 9630 camera chip and building a camera around it. It needs a 10MHz clock and 3.3V of power (sounds perfect for the MCP1252 above!). I'd configure it with the outputs buffered to work with whatever the logic is of the host processor. What's so special?

  • 8 bit B&W
  • 126x98 pixels (approximately 12K of RAM required)
  • Single shot and video modes
  • 10MHz SPI (~90FPS) or 10MHz 8 bit parallel (~580FPS), plus H sync and V sync pins
  • 16 pin interface expected (8 data, 2 I2C, ground, voltage, Vsync, Hsync, clock out, reset). Reset is also tied to the Power Good input of the camera.
  • Possible variant: Replace the clock module with a crystal and PIC18, allow for slight variance in clock, some onboard processing, power control of an auto-focus/zoom lens onboard.

Saturday, November 05, 2005

HUD thoughts part 2

So, I've revisited the original thoughts on the HUD. I've been learning rotating machinery vibration analysis lately and it put the idea of a piezo driver in my head. This is probably similar to what drove the original Virtualboy 50hz vibrating mirror.

Vertical update is no problem, but the high kilohertz horizontal update requires some alternate ideas. There is a MEMs 2D galvometer mirror that's used in both military prototypes and in a civilian mechanic HUD design from Microvision. Interesting idea, but I fear the drive complexity and cost! Optics always need high accuracy positioning, which makes this project a bit more difficult. I've been considering attaching a first surface mirror to a standard piezo buzzer to attempt a more cost effective solution, but I need to get that hardware first. If it works, I'll be limited by the buzzer rate and how much annoyance I can stand (although placing it in an evacuated chamber might help with this issue, or getting an ultrasonic transducer). Another option is a multi-faceted edged mirror that can provide a rotary multi-Khz rate. This would probably be easier to sync with, but again it'd take accurate machining (16+ facets) and a high speed motor (12K+ rpm) depending onconfiguration, placing a small gyroscope near someone's face if head mounted. If a faceted tube can be designed, this might work well with a very small high speed motor, however.

Other ideas from the scratchpad: Direct AC coupled magnetic field driven vibrating mirror, using a 2nd hand DLP array from a projector,

I'm thinking of experimenting with either a high output laser or a small bank of collminating LEDs (say 8?) to provide a picture. I think the LED's will be a parrallel array, as setting up a line would only give each LED an extended off time, switching and light output per pixel will remain the same, requiring high end hardware. This arrangement will hopefully be a good tradeoff between a single galvo laser and the bulky LED bar.

For the semi-technical curious, a little bit of the basic design idea behind this:

I'm attacking this project as two separate optical components, one provides the "screen refresh", low frequency signal, the other provides the "line refresh" high frequency driver.

The screen refresh will hopefully provide a 30 fps update. Progressive scanning is the current objective. However, via flexible software design, we can cheat. Since a vibrating mirror has to go through the same arc twice in one cycle, a mirror vibrating at 15 hz can provide a 30fps update rate. My current goal is a 60fps update rate for active updates.

The line refresh is a LOT more annoying. I'm hoping to use an SPI or similar buffered serial interface to provide the pixel information to the imaging device (if it's a single laser). These top out at 10 Mbps.

The characteristics above relate together like this:

bps = h-pixel x v-pixel x bpp x fps
screen refresh = fps
horizontal line rate = v-pixel x fps

Example calculations:
800 pixels x 600 pixels x 1bpp (monochrome) x 20fps = 9.6Mbit/s
600 pixels x 20fps = 12Khz horizontal line rate

Note, 12Khz = 720K cycles per minute, FAR faster than even small gas turbines and anything spinning this fast is highly dangerous!

This is possible safely with a small piezo driver or with a high accuracy multifaceted mirror on a small electric motor. The greater the number of faces the lower the RPM, but also the mirror complexity skyrockets. The piezo driver would prove simpler, but garaunteeing its dynamics is a far more complex problem than timing a rotating element.

For standard screen types, the horizontal width of the screen is usually the larger value. This is an advantage as it keeps the line refresh rate lower. Another useful function is that, for a fixed bit rate feed, you can trade off vertical resolution for higher framerates. It'll usually be easier to vary the slow frame update mirror than the high speed (and probably resonant) line mirror. If you turn this on it's side, though, a variable width system is possible, which might be more desireable than a variable height design.

Of course, the above information does not include areas where the mirrors may be out of position or highly distorted. These will in effect reduce the maximum possible video bitrate of the system and necessitate both a synchronization method for the data flow and possible padding of the bitstream with dummy values during periods of distortion.

I'm currently planning to attempt a 1 bit 248x160 display at 10hz update rate as a proof of concept. This is approximately one thirtieth the maximum data rate of the dsPIC SPI architecture and will allow much fine tuning. This requires only a 5hz window update mirror and a 1600hz line update mirror, which can be built from a motor running at 8000rpm with a 12 sided mirror. This will not be head mounted initially. Due to the need for 4.9kbytes of RAM for a video buffer, I plan to use a larger dsPIC (8Kbytes, 20 MIPS) as the video driver. I also hope to use it's DSP functions to both ease code development and update control calculations, and possibly drive a simple vector video engine to greatly reduce the bitrate and calculations required by a master processor. But that's for later.

Friday, October 21, 2005

Four Month Update

Due to being unsettled (moving, bought a house), I've had to put my projects on hold for a bit. Well, I'm back now.

New tools: Mini metal lathe. I can now form my mechanical components and get back to being an ME! Plans include components for my other projects below, and probably experiment with tool design. I'd actually love to build a CNC mill eventually, but I'll need a manual mill and lathe first. Halfway there.

Project Updates:
I'm refining ideas for the RC core to the hardware I have. I've got a few 2.4GHz point to point 250K/s or 1Mb/s transcievers that are simpler to control and will provide me with a good starting point in RF design. I'm still planning on having everything connect together via CAN bus. However, some designs have become easier as Microchip is now selling/sampling full speed 3.3V parts and is coming out with a wider array of 16 bit chips shortly.

New Projects:
IMU2: while I do have some gyros sitting around, I've recently ran across a paper about using accelerometers as an IMU, Active Tremor Compensation in Handheld Instrument for Microsurgery. While I've known about the theory for a while, what impresses me is that they've seen increased accuracy over common triple axis accelerometer-triple gyro configurations. I have a pair of Freescale MMA7260Q triple axis dynamically scaleable accelerometers I'm planning on building an "IMU Stick" with as an experiment. This should end up being smaller and lighter than any other IMU design, possibly allowing RC aircraft autopilots to shrink in size.

Air Cannon Launched Sensor Packages: I've always wanted to do this one. A 25mm bore aluminum barrel about 18" (460mm) long is used to launch (via CO2 or air pressure) a sensor package. The initial package will be sensor equipped to track various pieces of flight data. Useful sensors that may be deployed are for both search and rescue and laser tag games. Parachute deployed motion trackers, vibration and sound sensors, etc. The critical components of the design will be a concentric ring that will use a transformer effect to provide data to the microcontroller in the sensor package in barrel, non-contact. This will allow (with additional hardware) to sight a target zone, and have the electronics tell the operator where to aim to hit that target. Through controlled pressure and temperature in the expansion tank (Especially for CO2), muzzle velocity of the sensor package can be controlled. Various ways of triggering the descent parachute at the right time will be tested (timer, airspeed through air pressure sensors, etc).

Laser Rangefinder: Always wanted to build one. I've found information and effective hardware for the transmitter and reciever sensors. I've found a 25 year old schematic from an old TI optoelectronics book for a phase-difference rangefinder. With modern electronics, I can probably make a nice Time of Flight rangefinder work. This might be ideal, especially since a near IR diode was found on Digikey that has a CW output of 120mW, well above the safe range.

Sunday, June 05, 2005

Parts to Buy for: Juicebox

Just for general imagery, you can't beat an LCD. Now, I've been planning on using a 9 bit (512 color) Sony TFT LCD for my large HUD in the future, and general purpose LCD now. In the last few days the hackability of the Juicebox has come out to mass media. Most people are focusing on hacking it to provide mobile video players. I'd love to myself, but I've always been a DIY guy and I wanted a different approach. Hence, I look at what's available. 8 MB RAM in the version I have. the 22 pin PCB molex board may be nice for some of my own I/O work. The processor is useless as it's a bare chip encased in epoxy. Now, the screeen... 240x160 12 bit (4096 color) LCD. Might be the same molex connector as my Sony LCD. I got my Juicebox for $12.48, which is less than the Sony LCD. Other than refresh rate, this is looking to be perfect for my projects. It might even interface with the Epson LCD driver that I've spec'ed out for the Sony!

Also included in this is a 22 pin LCD Molex connector (the other 22 pin board goes to the expansion slot) that might also work with the Sony. My source for the LCD's sells those for $3 each.