Yet another car monitoring system

This is my first attempt to create a more lively ( ;)) interaction with my car.

http://www.flickr.com/photos/quicksander/sets/72157618730869506/

It's my first soldering / electronics experience so when some parts/decisions seem odd, that's the reason. This is also the reason why I used a lot of pre-build components.

[u]It features:[/u] - A touch sensor: long touch get spoken info about all sensors. short touch, put on LCD back light when not on, otherwise switch display mode to another sensor's info. - An LCD which automatically dims after some timeout (controlled by the User Interface Arduino). Shows a splash screen and only updates the part of the display which needs update (no full screen redraw when a new sensor value needs to be displayed). - An User interface Arduino receiving new sensor values over serial from the Conroller Arduino. The UI Arduino controls everything which has to do with user interaction: touch sensor, LCD and its backlight, text to speech module. - A Controller Arduino. Sends sensor value updates to the UI Arduino over serial (only when the UI Arduino says its message queue is not full). This Arduino's main role is to convert analog sensor values into human readable numbers. - Two voltage regulators to power the Arduino's and the power hungry infrared sensor (for rear bumper distance measuring). - A text to speech module to announce when the engine reached normal operating temperature, when some objects is detected near the rear bumper, etc. - A standard DIN / radio size casing made of MDF(compressed wood) (The next time I probably should use the casing of an old car radio although this came out nicely).

[u]Software:[/u] - Everything remains responsive, so even when the display is busy dimming down, the touch sensor will immediately notice it when you touch it. Or: when text is being spoken display values keep getting updated. - Completely written in C++. - Completely Object Oriented (although this does increase the code size, it also improves readability/maintenance).

Very nice, I like the simple facia design with just the touch sensor!

Very nice! I love how stealth the touch sensor is. Is the text-to-speech implemented yet? Where did you get the 12v to 5v boards?

Thanks fro your reactions.

The text to speech is indeed implemented and works nicely. To save programming memory I stored all sentences I would speak in EEPROM. When a sensor raises some alert the sentence from EEPROM then gets combined with the actual sensor value.

Before this "Grand idea studio" text to speech module I tried another one from Robotshop.ca but I could not get that one to work and unfortunately blew it up trying.

The voltage regulators are actually "building packs" so you only have to solder the parts on the print. I bought them here in Europe from Conrad.nl a large german electronics supplier.

Did you make the speech board yourself? I tried to find a supplier via google, but got no results for anyone selling boards.

Ran

I did not make the speech module myself.

It is made by Grand idea studio and I managed to buy one from: Hobbyengineering.com (at that time very slow delivery, but It came by mail eventually). Parallax also ships these. I did not find any other supplier tough.

Try to search for: "Emic text to speech module"

wow man, goodjob! thats really amazing haha how long did that take you? how did you end up interfacing the speech module w/ the arduino?

Thanks!

The "User Interface"-Arduino connects with the speech module with one digital pin (which either says busy speaking text or not) and one serial line (TX arduino to RX speech module).

And ofcourse the required +5V and GND.

The speech module has its own audio ampliefier so in theory you can use that, but I used an extra audio amplifier to increase the volume/ power output. It can be quite noisy on the highway (even in holland with all the traffic jams) ;)

$100 apiece for text-to-speech?!? That's about the same price we paid for kits back in the 1970s and 1980s.

Apparently, Gordon Moore computes, but doesn't speak ;D

Is the voice quality high? I could get "okay" voice output by buying an old used iPaq and putting flite on it. And get a graphic LCD to use as an output as a bonus.

Ran

Hmm I don't know where you saw $100, but at Parallax it costs US$72 nowadays that's EUR 51. that's about the same price as a two person diner in an average restaurant here (you need to forget the desert then).

Anyway, I also looked into using some old (mini) computer to do this stuff, but then I still needed to figure out a way to communicate with it comfortably (so I would need to buy some kind of conversion break-out board or something?). It also takes up more space plus needs another power supply.

I agree with you it's very much feasible, but for me this module was easier to integrate.

Voice quality is OK by theway (not high).

The $100 came from hobbyengineering.com: there’s another model of the synthesizer that appears to have a different MCU on it so you can load up phrases and have them triggered by switches (or something like that).

http://www.hobbyengineering.com/H1140.html

But even $75 is rather spendy, given the way other IC-based products have dropped in price over the years: it should be possible to get something like that for $25 or so in onesies. But Maplin are selling just the bare chip for about US$40.

Parallax has some MP3 samples on their website, and the quality is noticeably (though not hugely) better than what a friend once described as the “drunk robot” sound of the earliest chips. The samples show a really bad job of handling word-to-word transitions, though: there’s an annoying “pop” in the inter-word space that any decent algorithm should smooth out. It may just be that the samples were hastily thrown together, and didn’t do any coding to eliminate it.

Older PDAs like the iPaq 3600 and 3700 series should be very easy to interface to an Arduino: they were still doing serial PC interfaces in those days, so all you’d need would be a simple pair of inverters for Tx and Rx data (or and Arduino like the MaxSerial that already has level-shifting on the board).

I’ve got a couple of iPaqs that have been reflashed to Linux, and flite can do decent (though more “drunken-robot-ish”) TTS on them. Maybe I’ll pull one out and try turning it into an “Arduino larynx” :slight_smile:

Ran

Update: I am still having problems removing a high picthed noise amplified by the audio amplifier.

Did some tests with a scope and the noise came from the voltage regulator not being able to provide the power peeks the pulsating LCD backlight required (when dimmed).

I attempted to remove the noise by adding some capacitors and a coil, but this did not solve the problem. Still searching for a proper combination of elco/resistors.

I should be able to solve it by running an additional power regulator from the car's battery all the way to the backlight. But, ofcourse this is a ridiculous solution. 8-)

New URL:

http://www.flickr.com/photos/quicksander/sets/72157619294983375/