4x4 Computer

I installed my AVR Powered 4×4 Computer (Not entirely sure what to call it) on the weekend:

It’s two Sparkfun 128×64 Graphic LCD’s hooked up to an Arduino Uno. At this stage it’s using 3 x 10k Thermistors to report the temperatures internal to the car, the outside temperature and the temperature of the Engel fridge in the back. It’s also connected to a GlobalSat EM-406A SirfIII GPS Module to display positional data.

Next thing on the list: To put together and integrate my IMU (Inertial Measurement Unit) which I will be using to display the vehicle pitch and roll graphically. For this I will be using a 3 axis accelerometer and a 2 axis gyroscope.

How it operates:

Microcontroller:

An Arduino R3… Not much be said, works well. If you haven’t heard of one before it’s basically a breakout for an Atmel ATMega168. Uses a variation of C for programming.

Power Supply:

The displays, rather awkwardly, require between 6 – 9VDC to work. The Arduino can take anything between 5 and 12VDC as an input. The car has a 12V system which can increase to 14VDC during engine operation while the alternator is charging the battery.

I have used a Polulu adjustable step-down voltage regulator to regulate the 12VDC car input down to 6VDC for the Arduino/Displays.

Temperature Sensors:

I use 3x 10,000Ohm Thermistors to measure the temperature. Rather than a lookup table I use the Steinhart-hart equation to dynamically read degrees Kelvin, then converted to degrees Celcius.

Positional Data:

A GlobalSat  EM-406A SirfIII GPS Unit, connected serially and using the TinyGPS Arduino library to pull the info from (I started writing my own library – but why re-invent the wheel?). I would like to display the Latitude and Longitude as a floating point number, but the ATMega168 does not truly support double precision floating point integers.

Display:

2x Sparkfun 128×64 Serial Graphic LCD’s. Refresh rate is a bit slow but they work nicely for what I need.

Problems I’ve encountered since installation:

Hardware:

  • Regulator getting quite warm- May require a heatsink (but has a built-in thermal shutdown.)
  • Position of internal sensor – Reading inside the box, not the car. Will move to a better location
  • Wires everywhere – Need to clean up

Software:

  • Will average out the temperature readings over a second or so to smooth out the fluctuations.
  • At present the refresh clears all the values on the screen and re-writes the new values. This is rather clunky, so will update to only refresh what is required.
  • Add user-configurable options