Announcement

Collapse
No announcement yet.

POS 98 Nissan Altima Car PC Project started

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • POS 98 Nissan Altima Car PC Project started

    Hello everyone, this is my first post but my 4th Car PC install. I have just started the project as of two days ago. I have been developing a new car PC over the last few months and ordering parts. I have finally started stage 2 of the project which involves mounting the equipment inside the car. The Nissan Has a nice double DIN stereo which would seat a 7" screen nicely so I have removed the face plate and done some slight modding in order for this too fit. Since I will be buying a new car in the next few months, I did not want to make any big changes to the cars interior, with that said. I simply used hot glue to fit the screen into the openeing of the existing bezel. I am uploading photos and will attach once I have them on my PC.
    POS 98 Nissan Altima Car PC Project

  • #2
    Photos of Nissan Bezel

    ok, dont laugh! Here they are:
    Attached Files
    POS 98 Nissan Altima Car PC Project

    Comment


    • #3
      Sounds good! Bring on the pics and PC specs.
      My 2007 Ford F350 Work Log located HERE

      Comment


      • #4
        A Few Specs

        Here is what I have so far, this list is far from complete and will probably change slightly..

        7" Lilliput touch screen
        VIA micro ATX mobo 8.5x8.5"
        1gb kingston ddr2
        Socket 775 Pentium 4 3.2ghz
        160gb Seagate sata 2.5" HD (might be replacing with compact flash)
        Windows 7 Embedded Standard w/media center
        Also loading XBMC on the WMC embedded
        currently running a dual boot of windows 7 pro
        Navit GPS Software - open source
        DC-DC 150W 8V-28V ATX Power Supply with IPTS (AT003)
        EZCAP USB 2.0 DVB-T Stick with FM & DAB (HDTV Tuner) - WRONG PART
        GPS Receiver is undecided. I have a few in mind
        Still looking for an amplifier
        No Chassis, will be mounting open in the trunk, or mounting in the wall with a NEMA power box, this depends on how the cooling works.
        Linksys WRT54G with DDWRT installed for hot spot, and access to the car remotely
        Verizon 3G for internet
        apache web server, active state perl with win32 perl modules for access to tect-to-speech and voice recognition API in windows.
        USB BT for phone, headset, VR and TTS
        Custom perl apps for reading email, weather, etc..

        I would be glad to share the perl scripts once I get them tuned a little more!

        o, and removable USB drive for easier transfer of data, and to prevent OS drive from getting crowded.
        POS 98 Nissan Altima Car PC Project

        Comment


        • #5
          Here are a few PC pics. I have mounted everything in the NEMA utility box, I will paint the box and add LED fans to spiff it up before completion. The box is very heavy duty and my plans are not to make this blend in, in fact I think I will make it stand out from from the car since it this is clearly not a factory install on a 98.

          The PSU in the photo was used in this box from a previous configuration. This PC used to run Endian Linux Firewall and was mounted to the wall. I have since replaced the unit with a 1U server with gigabit NIC's rendering this box more "junk" as my wife calls it. While hanging onto the "junk" I was working on a home automation program to turn lights and appliances on/off with voice commands, I came accross the Lilliput screen and bought it up, thus sparking the old interest of a car computer. At this point I had an epiphany and thought it would be interesting to integrate the voice recognition and text to speech in a car computer.

          Enjoy.
          Attached Files
          POS 98 Nissan Altima Car PC Project

          Comment


          • #6
            I will post power on pics maybe tomorrow. I did a test fit of the bezel with the screen mounted, it fit just perfect! I will post photos of this later.

            -NOTE: I am in Grand Forks ND, it is typically about -1 to -40 degrees outside, so I am not as excited to be sitting out in the car to test these things. The install will not actually take place until March or 2011 when the temp starts to come up.
            POS 98 Nissan Altima Car PC Project

            Comment


            • #7
              I was going over my ebay watchlist of parts and making my purchases, i noticed my tv tuner was dvb-t not ATSC north america. This tuner was also my FM radio tuner the device was windows media center compatible (which is my front end). So I am now out of luck. Any suggestions would be helpful. I will browse the forum for FM tuners and see if any are MCE7 compatible in the mean time.
              POS 98 Nissan Altima Car PC Project

              Comment


              • #8
                i have managed to order all of my extension usb, vga, audio cables and my backup camera.
                POS 98 Nissan Altima Car PC Project

                Comment


                • #9
                  Test Fit

                  I snapped a couple of photos of the screen in place. I have not hard wired the Monitor yet so you can see the power cable feed through the ash tray slot and plugging into the lighter plug.

                  No PC connected so I get the 'NO INPUT' when powered on.

                  I will post photos of the PC running windows 7 embedded probably tomorrow, we'll see how things go. I have been having issues with volume control, I believe the driver is for XP so I might need to do some digging.

                  I have still not found an amp or a replacement FM tuner. I have picked up some ground loop isolators for the audio connections to kill the buzz in the background (common problem with after market amplifiers.) and some of my parts have shipped, I should see them in a few days!
                  Attached Files
                  POS 98 Nissan Altima Car PC Project

                  Comment


                  • #10
                    what do you mean ground loops are a common problem with aftermarket amps? just in that car, or in general?
                    My OLD 2001 Mitsubishi Eclipse GT:
                    "The Project That Never Ended, until it did"


                    next project? subaru brz
                    carpc undecided

                    Comment


                    • #11
                      Originally posted by soundman98 View Post
                      what do you mean ground loops are a common problem with aftermarket amps? just in that car, or in general?
                      Most group loops are exactly that, a loop of ground. Multiple powered devices connected together for a single purpose creating a loop of energy that can radiate into the speaker signal. This creates the buzz sound. The other cause is a bad ground, but this usually follows by a random thump of the speakers, more noticeable in sub-woofer installations.

                      Oops, guess I didnt really answer YOUR question. And the answer is.. In general. Ground loops dont often present themselves, but when they do, it is usually because an aftermarket amplifier has been installed. My strict example does not mean I am shallow enough to believe this is the only cause but in most cases this is the truth.
                      POS 98 Nissan Altima Car PC Project

                      Comment


                      • #12
                        i disagree.

                        any electronic equipment added to a vehicle can cause a ground loop. audio amps are usually the easiest to determine that there is a GL because of the audible tone..

                        many times, installation technique is the cause of GL..

                        i have personally installed systems in my 2 cars, 3 family vehicles, and have helped numerous others install aftermarket audio equipment-- only one system had a ground loop-- that which was brought on by a soldering-kit-based-preamp that was not properly shielded/grounded for automotive use..
                        My OLD 2001 Mitsubishi Eclipse GT:
                        "The Project That Never Ended, until it did"


                        next project? subaru brz
                        carpc undecided

                        Comment


                        • #13
                          which was brought on by a soldering-kit-based-preamp that was not properly shielded/grounded
                          exactly not properly grounded, as i stated...

                          The other cause is a bad ground, but this usually follows by a random thump of the speakers, more noticeable in sub-woofer installations.
                          and usually more noticeable in sub-woofer insallations, because you have a massive amplifier doing its job.. AMPLIFYING SOUND

                          you just agreed to everything i have already said..
                          POS 98 Nissan Altima Car PC Project

                          Comment


                          • #14
                            i guess.. i got the impression that you were saying that all aftermarket amp installs have ground loops. i was proving that most do not....
                            My OLD 2001 Mitsubishi Eclipse GT:
                            "The Project That Never Ended, until it did"


                            next project? subaru brz
                            carpc undecided

                            Comment


                            • #15
                              Basic text-to-speech and voice recognition for windows

                              Here is one of the VR and TTS scripts I have been working on. The script works in windows vista, 7, windows 7 embedded. The script requires Active state PERL to be installed on the PC to function. I will include the libraries shortly.

                              Code:
                              #!/usr/bin/perl
                              use strict;
                              ###############Load Required Modules###########################
                              use IO::Socket;				 #Monitor web request
                              use LWP::Simple;			 #Required to get weather
                              use Win32::OLE qw( EVENTS ); #Required for Voice Recongnition
                              use Win32::SAPI5;			 #Required for Voice Recongnition
                              use Mail::POP3Client;		 #Required to talk to gmail
                              use Net::POP3; 				 #Required to talk to gmail
                              use Net::Twitter;			 #Required to talk to twitter
                              
                              ###############################################################
                              my $computer = 'computer';
                              
                              use constant SGDSActive   => 1;
                              use constant SREAllEvents => 393215;
                              use constant SpSharedRecoContext => "{47206204-5ECA-11D2-960F-00C04F8EE628}";
                              
                              my $speaker = Win32::SAPI5::SpVoice->new()  or die "      \$^E => $^E\nLastError => ".Win32::OLE->LastError();
                              $speaker->speak("How can I help you?");
                              my $context  = Win32::OLE->new(SpSharedRecoContext) || die "Can't start OLE: ".Win32::OLE->LastError;
                              $context->SetProperty('EventInterests', SREAllEvents);
                              Win32::OLE->WithEvents( $context, \&ProcessEvents,  "{7B8FCB42-0E9D-4F00-A048-7B04D6179D3D}" );
                              my $grammar = $context->CreateGrammar(2);
                              $grammar->DictationLoad();
                              $grammar->DictationSetState(SGDSActive);
                              
                              while( 1 ) {
                              Win32::OLE->SpinMessageLoop();
                              Win32::Sleep( 10 );
                              }
                              ##
                              sub ProcessEvents {
                              my($Obj, $Event, @Args ) = @_;
                              if ($Event == 7)
                              	{
                                  \&OnRecognition(@_);
                                  }
                              }
                              
                              ##Listen for voice commands
                              sub OnRecognition {
                              my($self, $Event, $StreamNumber, $StreamPosition, $RecognitionType, $Result) = @_;
                              my $newResult = $self->Invoke('Dispatch', $Result);
                              my $text = $Result->PhraseInfo->GetText();
                              $text =~ tr/A-Z/a-z/;
                              $text =~ s/whether/'weather'/ge;
                              $text =~ s/pewter/'computer'/ge;
                              
                              if($text =~ m/twitter/){&twit;}
                              if($text =~ m/mail/ || $text =~ m/email/ || $text =~ m/e-mail/){&gmail;}
                              if($text =~ m/sleep/){&sleep;}
                              if($text =~ m/thank/){&welcome;}
                              if($text eq "$computer" ){&greet;}
                              if($text =~ m/are you/){&name;}
                              if($text =~ m/weather/){&weather;}
                              if($text =~ m/forecast/){&weather;}
                              }
                              
                              ##Speak command, update twitter, post to log file
                              sub speak {
                              $_ = shift;
                              print "$_\n";
                              #&tweet($_);
                              $speaker->speak($_);
                              }
                              
                              ##Stop the program with sleep command
                              sub sleep {
                              &speak("I am now going to sleep. Goodbye.");
                              exit 0;
                              }
                              
                              ##respond to thank you
                              sub thank {
                              &speak("your welcome. Is there anything else I can do to help?");
                              }
                              
                              ##say yes, when asking for computer
                              sub greet { &speak("yes?"); }
                              
                              ##tell user command is unrecognized
                              sub fail { &speak("I'm sorry, I didn't understand. Can you repeat the command?"); }
                              
                              ##respond with name
                              sub name { &speak("My name is $computer."); }
                              
                              ##request weather
                              sub weather {
                              my $URL = "http://rss.wunderground.com/auto/rss_full/ND/Grand_Forks.xml?units=english"; #replace this with your weather XML feed
                              my $feed = get($URL);
                              my $speak = &current_temp($feed);
                              &speak($speak); }
                              
                              ##construct weather data
                              sub current_temp {
                              $_ = shift;
                              my ($front, $tail) = split(/\<\!\[CDATA\[/, $_);
                              my ($HTML, $last) = split(/\]\]\>/, $tail);
                              my (@current) = split(/ \| /,$HTML);
                              
                              foreach(@current)
                              	{
                              	if(m/<img/)
                              		{
                              		my($data,$tag) = split(/<img/,$_);
                              		$_ = $data;
                              		}
                              	$_ =~ s/Temperature: //ge;
                              	$_ =~ s/Humidity: //ge;
                              	$_ =~ s/Pressure: //ge;
                              	$_ =~ s/Conditions: //ge;
                              	$_ =~ s/Wind Direction: //ge;
                              	$_ =~ s/Wind Speed: //ge;
                              	}
                              
                              my $df = " degrees farenheit";
                              my $mph = " miles per hour";
                              my $nne = "north, north east";
                              my $nnw = "north, north west";
                              my $sse = "south, south east";
                              my $ssw = "south, south west";
                              my $sse = "south, south east";
                              my $ne = "north east";
                              my $nw = "north west";
                              my $sw = "south west";
                              my $se = "south east";
                              my $n = "north ";
                              my $e = "east ";
                              my $w = "west ";
                              my $s = "south ";
                              $current[0] =~ s/&#176;F/$df/ge;
                              $current[4] =~ s/NNW/$nnw/ge;
                              $current[4] =~ s/NNE/$nne/ge;
                              $current[4] =~ s/SSE/$sse/ge;
                              $current[4] =~ s/SSW/$ssw/ge;
                              $current[4] =~ s/NE/$ne/ge;
                              $current[4] =~ s/NW/$nw/ge;
                              $current[4] =~ s/SE/$se/ge;
                              $current[4] =~ s/SW/$sw/ge;
                              #$current[4] =~ s/N/$n/ge;
                              #$current[4] =~ s/S/$s/ge;
                              #$current[4] =~ s/E/$e/ge;
                              #$current[4] =~ s/W/$w/ge;
                              $current[5] =~ s/mph/$mph/ge;
                              my $forecast = "The current Temperature is $current[0] with $current[1] humidity, It is $current[3] and winnds from the $current[4] at $current[5].";
                              return $forecast; }
                              
                              ##check gmail
                              sub gmail {
                              &speak("Connecting to G-mail, please wait.");
                              my $username="USERNAME";	#YOUR USERNAME
                              my $password="PASSWORD";	#YOUR PASSWORD
                              my $pop = new Mail::POP3Client(USER=> $username,PASSWORD => $password,HOST => "pop.gmail.com",PORT=> 995,USESSL=> 'true',);
                              my $count = $pop->Count;
                              &speak("You have $count new messages.");
                              for(my $i=$pop->Count();$i>=1 ;$i--)
                              	{
                              	&speak("Message $i is from ");
                              	foreach($pop->Head($i))
                              		{
                              		if(m/^From/i)
                              			{
                              			$_ =~ s/<[^>]+>//g;
                              			$_ =~ s/[^[:ascii:]]+//g;
                              			$_ =~ s/From:\s//ge;
                              			&speak($_);
                              			}
                              		if(/^Subject/i)
                              			{
                              			$_ =~ s/<[^>]+>//g;
                              			$_ =~ s/[^[:ascii:]]+//g;
                              			$_ =~ s/Subject:\s//ge;
                              			&speak($_);
                              			}
                              		#/^(Date):\s /i && print $_, "\n";
                              		#/^(Delivery\-date):\s /i && print $_, "\n";
                              		}
                              	}
                              my $pop->Close();
                              }
                              
                              ##read twitter
                              sub twit {
                              my $nt = Net::Twitter->new(
                               traits => [qw/OAuth API::REST/],
                               consumer_key        => $twitter::CONSUMER_KEY,
                               consumer_secret     => $twitter::CONSUMER_SECRET,
                               access_token        => $twitter::ACCESS_TOKEN,
                               access_token_secret => $twitter::ACCESS_SECRET,);
                              my $statuses = $nt->friends_timeline({ count => 1 });
                              for my $status (@$statuses) {
                              #print "$status->{created_at}";
                              #print "<$status->{user}{screen_name}>";
                              #print "$status->{text}\n"; 
                              &speak($status->{text}); }
                              }
                              
                              ##write to twitter
                              sub tweet {
                              $_ = shift;
                              my $nt = Net::Twitter->new(
                               traits => [qw/OAuth API::REST/],
                               consumer_key        => $twitter::CONSUMER_KEY,
                               consumer_secret     => $twitter::CONSUMER_SECRET,
                               access_token        => $twitter::ACCESS_TOKEN,
                               access_token_secret => $twitter::ACCESS_SECRET,);
                              $nt->update($_);
                              }
                              POS 98 Nissan Altima Car PC Project

                              Comment

                              Working...
                              X