Introduction: My Car Assistant (Embebbed Car Automation Computer)!
Before we start, take a look at the video clip of operation: https://youtu.be/GHdMFtl_TAs
My 1999 Honda Civic is an old vehicle. She lacks lots of features that modern vehicle come as stock. I wanted the following functions implemented into my car:
1. Control of the air conditioning including engine load management during wide open throttle and driving up inclines.
2. Control of the lights and by extension, automatic dimming/brightening of the host controller screen.
3. Speed control of the cabin blower motor.
4. Automatic annunciation (voice and visual) of alternator failure and power conservation following this.
5. Annunciation (voice and visual) of an engine overheat condition.
6. Display of the fuel level and annunciation (voice and visual) of low and critical volumes.
7. Monitoring the refrigerant pressure switch to annunciate (voice and visual) abnormal pressure conditions.
8. Play music!
9. Record video of traffic while driving and also serve as a rear view camera.
10. Display the Time and Date.
Read on for how I implemented the World's First ever,windows 8.1 based, embedded, car automation system within my veteran civic!
Step 1: Choosing the Host System.
I use Windows to create automation systems as a hobby. The host computer needs to have a touchscreen interface to allow easy use within a car. There are two ways to do this:
1. Mini itx system with a 10 inch touchscreen monitor.
2. Touchscreen netbook.
The netbook is far cheaper and I chose this option to host my automation software. I used the Dell inspiron 2 in 1 netbook model 3147. This netbook is cost effective and it is very easy to access the internal components (see the attached service manual). I outfitted it with an ssd and I removed the Lithium ion battery since it would fail rapidly in the hot climate I live in.
https://www.instructables.com/id/Replacing-the-HDD-in-Dell-Inspiron-3147/
https://www.instructables.com/id/Removing-the-Battery-of-a-Dell-Inspiron-3147/
It may be possible to use a Windows tablet however for this system you really need at least 2 dedicated full size USB ports. Routing through an external hub is not a sturdy solution and may cause reliability issues for the Labjack U3. Perhaps in the future I may build another small scale automation system using a cheap Windows tablet as the host system.
I use my own custom blend of Windows for guaranteed stability and optimal performance.
https://www.instructables.com/id/Optimizing-Windows-for-Embedded-Systems/
Attachments
Step 2: The Automation Software and Hardware.
To interface the netbook to the real world ie my car, I use the labjack u3 hv digital acquisition board. This is a very flexible usb device.
The automation software is created using flowstone. Flowstone is the very best for hobby automation and allows for the functions I need implemented.
All functions I created for controlling the hardware in the car have an AUTO and OFF selector switch. The car lights still has its OEM control however the air conditioning I had removed it's malfunctioning controller since mid 2015.
I love hearing voice annunciations from my automation systems. It gives the setup a more personal touch. In flowstone I call up the relevant mp3 file and let media player lite handle it. The 4th pic shows the schematic to make it happen. The website I get my text to mp3 files is:
Step 3: Making the Installation Modular.
I mounted the Labjack u3-hv, 8 relay card, DC DC converters, USB mouse, timer relay and other components in a PVC box. This Unified Control Box is detailed here:
https://www.instructables.com/id/Unified-Control-Box-for-Embedded-System/
I made sure to test the entire system in my living room prior to putting into the car. I stuck all the components onto the PVC surface with black silicone adhesive to provide shock absorption.
Step 4: Interfacing to My Honda Civic 1999.
In order to implant my newly created automation system into my car, I needed to know the relevant wiring for power, control and signals. I'm extremely intimate with the wiring in my vehicle and I know exactly where to tap into a wire to obtain an engine sensor signal or to inject a control voltage to effect a change.
I have attached the modified service manual for my car. This should be quite handy for you fellow civic owners out there!
If you wish to even attempt this system in your vehicle then you must have its service manual.
Attachments
Step 5: Control of the Air Conditioning.
I previously prepared my car for simple ON OFF operation of the air conditioning system.
https://www.instructables.com/id/Wiring-my-Car-AC-for-MAXIMUM-Cooling/
The Blu/Wht and Blu/Red wires needed to be tied together for my car to acknowledge the AC is on and that the engine rpm needed to increase. I used 2 separate relays to engage the condenser fan and the compressor clutch by sending the marked wires to 0Volt. One relay would not work since the AC system stayed ON after the controlling relay was de-energized.
I used a negative temperature coefficient thermistor to read the temperature of the air vent.
The section of software reading the thermistor will determine the when the compressor turns on or off. I created a Slider to set the setpoint for the Cabin air (0 to 20 Celsius).
https://www.instructables.com/id/Measuring-Temperature-With-Flowstone/
The throttle position sensor (TPS) gives 0 to 5 volts, from no input to wide open throttle. I read this voltage via a potentiometer to FIO4 configured as an analog input. To prevent the car's engine control module from getting feedback voltage from my labjack u3 hv, I used a silicone diode to allow current flow into the labjack terminal.
Once the voltage from the TPS is greater than 3.5 volt, the air conditioning is temporarily disabled for 10 seconds to allow me to perform an overtake manoeuvre, which I hardly do since I prefer to drive defensively.
Step 6: Control of the Lights.
The light intensity I measured using a standard cadmium sulphide photocell. This I fitted into the space between both center dash vents with the help of black silicone adhesive.
Via flowstone 2 separate thresholds are used. One for Park lights and the lower one for headlights. On the user interface, I have a small blue led for the park lights and the bigger led for the headlights.
https://www.instructables.com/id/Measuring-Light-Intensity-With-Flowstone/
The signal from the photocell I used to dynamically adjust the back light brightness of the netbook. This way my eyes won't strain when I have to glance at the display.
https://www.instructables.com/id/Adjusting-Laptop-Brightness/
Two separate relays I used for the park and head lights. The actual connection I made near the under dash fuse box by splicing into the lighting wires.
Step 7: Cabin Blower Motor Speed Control.
A pwm controller from Amazon.com is what I used to replace the Bogus controller that came with the car. The labjack u3 DAC0 terminal gives 0 to 5 volt output to control, inversely, the speed of the blower.
https://www.instructables.com/id/Retrofitting-my-car-AC-blower-with-pwm-speed-contr/
The flowstone software has a Slider that gives me 100percent fan speed when the labjack outputs 0 volt. Inversely when the pwm controller gets 5 volt the blower motor stops. I configured the labjack DAC0 output as a default of 5 volt since I don't want the blower running when I start the car.
Via a software interlock, when the blower is off, the air conditioning is disabled. When the blower is commanded to run again there is a 8 seconds safety delay to allow the air conditioning to be engaged.
Step 8: Monitoring Voltage.
I measure the alternator voltage directly from the car's accessories circuit. Once the car is on, voltage is applied to the AIN0 terminal of the labjack. The Labjack U3-HV can safely measure this voltage on terminals AIN0 to AIN3.
Via flowstone, if the voltage is greater than 12.7 volt then all comfort features are enabled. Between 7.0 to 12.0 volt the software will voice annunciate a possible alternator failure and disable all comfort features including the automatic lights. I can manually turn on my Lights if I need it at night.
Below 7.0 volt the software will voice annunciate that the engine is switched off and will put the netbook into sleep mode. In this mode the entire automation system draws 40mA of current.
My existing 6Ah Lithium iron phosphate car battery in the glove box and 2.4 watt solar panel on the windscreen will suffice to keep the netbook as an extra load. Possibly in the future I will add a second 12Ah Lithium iron phosphate battery to give the car longer Park time.
Step 9: Playing Music.
I do like listening to music but not at loud levels. I use musicbee as the program to give me my entertainment. The flowstone user interface has a dedicated led button to open and close the musicbee program.
Originally I had a lepai amplifier to power my Car speakers but it blew a few days before installing the car automation pc. I plan to install a new one in the coming month.
Step 10: Installing Into the Car.
I put the pvc box holding the nervous system of my car automation setup into the centre console. After I used two lengths of 12inch long pvc trunking covers secure the netbook onto the console via lots of velcro.
Since I have no battery in the netbook it is very lightweight and stays perfectly onto the console.
I had previously labelled the battery and Accessories wiring used for my car deck. The wiring for air conditioning, lights, fuel level, engine temperature etc I routed through the back of the centre console. Lots of cable ties were used to secure the wiring.
To complete the look, I used an old bag strap and wound it around the edge of the netbook to give it a neater finish. I used Velcro to secure it.
Step 11: Improving Reliability.
In case I accidentally close the automation software (car.exe), I use Restart on Crash freeware program to automatically restart the application file. The same program boots with Windows to startup the car.exe automation program.
Step 12: Sleeping and Waking the System.
My netbook remains ON all the time but when the car is OFF, it will go into sleep mode and draw only 40mA from the car battery. To verify the system has slept, all I need to do is press the dedicated Windows key below the netbook touchscreen.
Once the car is started, the accessories 12 volt is made to momentarily left click the usb mouse, via the time delay relay, to wake the system.
Step 13: Backup Controls for Cabin Blower and Air Conditioning.
In the event I need to remove the netbook, for example if I carry the car in for repainting, I have a backup control for the air conditioning and the blower fan. I will have my comfort but without the digital finesse of the automation system.
Step 14: Preventing Prying Eyes.
To avoid my brand new system from being stolen, I use an old jacket and drape it over the dashboard to cover the netbook. Luckily the outside of my car is scratched, banged up and looks old so it is unappealing to the casual observer.
FYI: This is not the actually camouflage I'm using but you get the idea. Can't have folks on my island looking for that old jacket on the dash!
Step 15: Recording While I Drive!
I need the use of a reverse camera to help me while reversing. It helps with the neck injury I have (not due to a car accident). The Assistant also services as a great reverse camera plus as a Drive Record Unit (DRU). Consider it a "black box recorder" for driving purposes. Here is the instructable for the DRU component.
https://www.instructables.com/id/How-I-Made-a-Drive-Record-Unit-DRU-for-My-Car/
Step 16: The Latest Version of My Custom Made Software.
I have attached the latest revision of my car automation software for your cannibalizing pleasure! It has the most current software configuration and fixes based on my road trials to date.
Attachments
Step 17: Real World Performance.
The system performes admirably to date (5-Oct-2016). I'm very happy with the results and I depend on the Assistant each time I drive. I hope my instructable has been interesting to you fellow hobbyists.