This is my first attempt to create a more lively ( ;)) interaction with my car.
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).