More Possibilities
So last night i did a little more research on the car PC idea, I can write the whole thing in the unity 3D gaming engine. (Software is free for 30 days, then i could just install it on another PC :-))
Pros
- Gaming engine is easy to use (and can be scripted in 3 programing languages that i know)
- It supports sound (play stop ff rew) so adding MP3 player functionality would be easy
- Supports Video textures, so i could have a DVD player/ movie player app. Can also work with 3D so you could do cool animations like flying into the car and zooming into the 3D representation of the touch screen while loading the movie.
- has an easy API
- Has EQ functionality built right in, so i could have a multiband EQ
- Supports Webcams
- Someone wrote a NAV system already and offers the code for $65. its capable of using maps downloaded from Bing/Google/Garmin etc and support downloading of traffic data from the internet https://www.assetstore.unity3d.com/en/#!/content/13261
- Could easily connect to the internet via a tethered cell phone or cellular USB stick.
Using the Unity API I could
- Integrate to my ODB2 adapter
- Integrate to my TPMS sensors
- Start the car (using microprocessor)
- Lock or unlock the doors (using microprocessor
- See the status of door locks, doors opening, hood opening, etc
- Using a microprocessor there is nothing that i couldn't monitor (gforce, hood open, door open, battery draw, suspension compression, etc)
Unity is also multi platform which means this code would work on a PC, IOS, Blackberry or and Android tablet/phone (although ODB2/TPMs/remote start/Door Unlock would have to be done via HTTP or TCP if i don't use a PC). So if i want a low voltage, instant on for say the gauge cluster in the dash i could use a hacked up android tablet or IPad.
If I do integrate the ODB2 adapter (i have a few Bluetooth ones lying around) I could have MPG, Average speed, RPM, Engine Temp, etc all available. If I use a PC instead of an IPAD i could run two displays, one touch screen in the center console and the other as the main gauge cluster. Using a 3D engine would allow me to have the gauges fly in when starting the car or drip in like a thick fluid from the top, etc. It would be easy to add virtual tire temp lights that could indicate when the tires were warm enough to take a quick corner, or add a G sensor that could indicate on a dial how close you are to spinning out.
The PC could also easily do data logging taking the information from the ABS sensors, ODB2, and TPMS and streaming them to a database on a USB key for later playback.
I could create a virtual drag racing tree that could measure reaction time (using ODB2 of the brake/gas pedals) and 0-60 as well as quarter mile times based of the odometer or ABS sensor data.
Hell you could even cheat a drag racing by using the webcam on the front of the car. Write some code to have it recognize the tree at the drag strip, when the light yellow it starts to increase the RPM past what the brakes can hold, when the light goes green it could use a solenoid to release the brake for you. Coupled with launch control you could dial in its ability to cross the start line at the precise ms that the light goes green. (I'm sure there are rules against this)
I will think about it some more but I'm sure I will be putting in all these systems while i build the car. I may leave the programing portions until after the car is finished. It will give me a fun project moving forward with the car. Something i can continue to improve upon and add features to.
Leave a comment