PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > Всё Остальное > Проекты > Рабочий журнал

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2014, 23:48   #1
d3890666
Пользователь
 
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
d3890666 is on a distinguished road
По умолчанию Duster и Nexus 7 2012 с опозданием на пол года

Итак начну с того что установил планшет в июле. Правда всегда считал что в проекте ничего особо интересного нет. Но тут внезапно осознал что проектов на дастере практически нет... Испраляюсь!

Нексус 7 2012 года установил вместо штатной магнитолы закрепил за рамку. Питание организовал на PSD15 и реле 12 вольт с конденсатором. Первые 2 месяца откатал с батареей в планшете просто питая хаб, а от него и Y-кабель и планшет. Прокатился так в Крым (батарея все время была на 100 процентах заряда), уже на обратном пути через Одессу на ночь перед обратной дорогой не убил навител. Итог - батарея в ноль. Хорошо что ночью вышел покурить из мотеля и попробовал включить планшет. Снял рамку с нексусом (благо не сложно и не долго) понес в номер на зарядку. Больше проблем не было... пока не пришла зима! После первой морозной ночь утром батарея была заряжена процентов на 45. Следующим утром я вспомнил Одессу. Все! батарея умерла. Примерно в тот же вечер после работы купил реле и диод. Теперь все хорошо) Питаю после контролера примерно 4,5В от аккума авто, бужу Тимуром от зарядки через реле на 12В и тоненький сигнальный ACC дастера.

Вместо усилителя купил вот такую вот манитолу. Так как у меня недопривод установил её вниз бороды на место прикуривателя и ниши для переключателя и электро муфты. За планшетом расположил хаб dlink на 7 портов, прокинул 2 удлинителя юсб в бардачок. Туда же завёл отдельно запитанный до хаба конец мини юсб для такого роутера, так как питания от хаба отдавалось недостаточно для постоянной работы (иногда отваливался интернет). В него, в свою очередь, воткнут такой модем с симкой от йоты. Прекрасный интернет я вам скажу.

Рулевые кнопки же через ардуино и вот этот пост подключил к хабу. Скетч для ардуины у меня убогий. Иногда получаются произвольные срабатывания нажатия кнопок. Поэтому для меня актуальная вот эта программа, т.к. могу отключить использование джоя если начинается бред от кнопок. Как буду на работе найду файлик и выложу... может кто поможет подлечить.

Звук на магнилтолу вывожу джеком.

Все мои попытки получить работоспособный изикап увенчались покупкой такого чуда. Устраивает намного больше чем каркам. НО ВСЕ РАВНО ОГРОМНОЕ СПАСИБО ЗА ВАШИ ТРУДЫ Rage2 и DmitrySmol.

А ещё гарнитуру купил и установил таблет ток. Удобно. Очень. Разговаривать через аудиосистему не очень удобно. Стоишь так летом с открытыми окнами и народ мимо проходит и узнает о тебе немного больше чем хотелось, да и на смс не ответить с экрана. А с гарнитурой и tabletTalk'ом все иначе. Не ожидал честно говоря...

Камеру покупал Sony ssd для аутлэндера. Запилил в хромированную рамку с надписью DUSTER. Только вот провода так и не протащил в гофру между 5 дверью и салоном, а просто приклел их на скотч в расчете "на потом". Провод от камеры тащил по правой стороне за резинками между пластиком и валенком потолка. Минут за 15 протащил. И вообще полюбил дастер особенно за простоту всего что есть в нем. Инструкция для этой машины вообще не требуется.

В сухом остатке я имею:
-интернет, а вместе с ним пробки, музыку, радио (живое и архив) ну и иногда летом в пробках смотрю сериалы и фильмы.
-В августе очень помог планшет скостить 9 часов на границе с Украиной. Была возможность смотреть лост с флешки.
- не онлайн радио из магнитолы-усилителя когда я вне доступа йоты, так как в Москве и на даче ловит практически без перебоев (практически это максимум на минуту может в промзоне какой либо потерять сеть).
- камера заднего хода через зеркало.
- не потерял кнопки под рулём и даже расширил их функционал .
- хендс фри так же остался в авто. Только вот номера искать и на смс отвечать стало намного проще.

Многие скажут что стоит он низко и будут правы. Но честно говоря, есть как минимум 2 плюса такого расположения. Во-первых очень удобно положить кисть на рычаг АКПП и манипулировать планшетом. Во-вторых я не распилил не одной детали интерьера, что считаю успехом, и да я обошелся без липучек))).

Картинки готового решения. Изнутри будут когда разбирать буду. А буду надеюсь скоро...
Общий план:


Отдельно магнитола-усилитель-аналоговое радио на месте ниши прикуривателя:


Автокартинки от гугл+:

Последний раз редактировалось d3890666; 13.02.2014 в 22:52.
d3890666 вне форума   Ответить с цитированием
Старый 11.02.2014, 20:45   #2
rv9me
Пользователь
 
Регистрация: 03.12.2013
Возраст: 50
Город: Омск
Регион: 55
Машина: Дастер
Сообщений: 57
rv9me is on a distinguished road
По умолчанию

Ждем фото, коллега!
__________________
Мой проект: http://pccar.ru/showthread.php?t=20366
rv9me вне форума   Ответить с цитированием
Старый 13.02.2014, 13:15   #3
d3890666
Пользователь
 
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
d3890666 is on a distinguished road
По умолчанию

обновил шапку.

По планам:

переползти на Регтайм, удобно на коротких остановках не терять интернет на минуту (ждать пока роутер прогрузится).
установить антенну для GPS.
сфотографировать как планшет закреплен за рамку, и сколько свободного места в "забородье" у DUSTERa.

Последний раз редактировалось d3890666; 13.02.2014 в 22:56.
d3890666 вне форума   Ответить с цитированием
Старый 14.02.2014, 12:01   #4
rv9me
Пользователь
 
Регистрация: 03.12.2013
Возраст: 50
Город: Омск
Регион: 55
Машина: Дастер
Сообщений: 57
rv9me is on a distinguished road
По умолчанию

Цитата:
Сообщение от d3890666 Посмотреть сообщение
сфотографировать как планшет закреплен за рамку, и сколько свободного места в "забородье" у DUSTERa.
Вот это бы место, да поподробнее. Я жду тепла, для залезания в "Забородье"(до этого только магнитолку 1дин ставил), вот не помешает знать, к чему быть готовым. А пока я закупаюсь железяками. Работа встала из-за необходимости идти за радиодетальками и борьбой с жабой на их покупку(радиодетальки выходят дороже, чем целые блоки моего САРРС)
__________________
Мой проект: http://pccar.ru/showthread.php?t=20366
rv9me вне форума   Ответить с цитированием
Старый 15.02.2014, 20:48   #5
d3890666
Пользователь
 
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
d3890666 is on a distinguished road
По умолчанию

Цитата:
Сообщение от rv9me Посмотреть сообщение
Вот это бы место, да поподробнее. Я жду тепла, для залезания в "Забородье"(до этого только магнитолку 1дин ставил), вот не помешает знать, к чему быть готовым. А пока я закупаюсь железяками. Работа встала из-за необходимости идти за радиодетальками и борьбой с жабой на их покупку(радиодетальки выходят дороже, чем целые блоки моего САРРС)
Места там хватит что бы китайцев по стране катать. Я сначала хотел запихнуть туда старую магнитолу на 2 din. Она туда свободно входит и выходит. Только не в глубь, а в высоту. А вообще как я понял тебе придеться много ковырять и сверлить если хочешь ставить писи вверху...
Сам попробую сфоткать не раньше чем через неделю.
__________________
Nexus 7+Duster
d3890666 вне форума   Ответить с цитированием
Старый 17.02.2014, 10:51   #6
d3890666
Пользователь
 
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
d3890666 is on a distinguished road
По умолчанию

На прошлой неделе перепал мне еще один Нексус 7 2012 с зазбитым экраном. Заказал вот тут матрицу с тачем в сборе. Пришла за 6 дней фри шипом(!). В выходные переклеил. Работает! Ура товарищи!
__________________
Nexus 7+Duster
d3890666 вне форума   Ответить с цитированием
Старый 26.02.2014, 18:39   #7
d3890666
Пользователь
 
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
d3890666 is on a distinguished road
Smile Авторотэйт в Москва.фм

Есть такой сервис у нас Москва.ФМ называется. Хороши они своим архивом радио на 5 лет назад. Я люблю послушать передачи которые уже прошли, перематывая рекламу новости и т.д. Но вот в Play приложение так и не выкладывают разрабы. Однако оно существует! Лежит приспокойненько у них на сайтике. Но вот авторотейт у апк выключен оно всегда в портрете. Я вот докрутил работу в ландскейпе. УРА! могу кстати помочь и с другими приложениями.
Вложения
Тип файла: rar moskvafm_1.3.3_rotate.part1.rar (1.76 Мб, 571 просмотров)
Тип файла: rar moskvafm_1.3.3_rotate.part2.rar (982.9 Кб, 564 просмотров)
__________________
Nexus 7+Duster
d3890666 вне форума   Ответить с цитированием
Старый 14.03.2014, 19:11   #8
d3890666
Пользователь
 
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
d3890666 is on a distinguished road
По умолчанию

Закончил с переделкой кнопок с ардуино. Подключал уже не через резисторы, а все 6 проводов к цифровым входам. Таким образом смог задействовать скролл и подчистить сам скетч.

Провода по пинам:

13-черный;
11-красный;
10-коричневый;
7-синий;
6-зеленый;
5-желтый;

От земли к пинам 13,11,10 - резисторы по 4-10кОм. Большинство кнопок возвращают коды нажатия клавиатуры. Остальные для RemoteWhellControll с xda. Почти у каждой кнопки по 3 положения. Длина зажатия определяется "LongPressTime" и "LooongPressTime". Возвращаемые значения в большом массиве. Если вдруг кто захочет использовать и не сможет разобраться, пишите.

Код:
                  нажатие           зажим менее 2 секунд             зажим более 2 секунд
media             HOME                     тек. Музыка                  меню приложен. музыки
radio              BACK                      тек. Нави                    меню приложен. нави
+                   D_PAD_LEFT            след. трек
play               D_PAD_CENTER        PLAY_PAUSE                          MUTE
-                   D_PAD_RIGHT           пред. трек
ok                 SEARCH                  контакты                        сочетание ALT+TAB 
scrollUp           D_PAD_UP
scrollDown       D_PAD_DOWN
По опыту использования кнопок с августа понял что не самое главное это открытие предопределенных приложений, а возможность управлять планшетом без использования тача. Так и реализовал. D_PAD аналог стрелок на клавиатуре и ENTER. Получилось использовать практически все кнопки без переопределения Generic.kl. Только кнопку SEARCH пришлось переопределить. Все функции что написаны на русском реализованы таскером и РемоутКонтроллом.

Код:
int rows[]={5,6,7}; //указываем пины строк.
int scroll=3;
int cols[]={10,11,13}; //и столбцов
int scrollWire=0;
int Button=0;
int ArrayOfAltTab=0;
int AtlTab=-3;
int LooongPressTime=1900;
int LongPressTime=550;
int PauseButton=6;
int test=0;
int AltEsc=-4;
int KEY_END_TAB=-2;
int KEY_SEARCH=-5;
//int LEFT_ALT=(125);
//int TAB=13;
//int KEY_SHIFT=14;

//int DPad=KEY_RETURN;
//int DUp=KEY_UP_ARROW;
//int DDown=KEY_DOWN_ARROW;
//int Dleft=KEY_LEFT_ARROW;
//int DRight=KEY_RIGHT_ARROW;

int Buttons[3][3]={
{0,3,6},//{"ScrollUP","DOWN","Media"},

{1,4,7},//{"ScrollDown","Search","Radio"},

{2,5,8}//{"3","UP","PLAY"}
};

int idButtons[9][5]={
//0            1             2         keyboard           ALTTab 
{-1,           0,            0,        KEY_UP_ARROW,      KEY_TAB},//ScrollUP
{-1,           0,            0,        KEY_DOWN_ARROW,    KEY_LEFT_SHIFT},//ScrollDown
{0,            0,            0,        0,                 0},//не такой кнопки
{0,            1555,         0,        KEY_LEFT_ARROW,    KEY_LEFT_SHIFT},//DOWN
{666,          1666,         AtlTab,   AtlTab,            0},//Search
{0,            1333,         0,        KEY_RIGHT_ARROW,   KEY_TAB},//UP
{0,            111,            2111,     AltEsc,          0},//Media
{0,            222,            2222,     KEY_ESC,         KEY_ESC},//Radio
{0,            1444,         2444,     KEY_RETURN,        KEY_END_TAB} //PLAY
};
  
void setup() {

	  Serial.begin(9600);
          
          Keyboard.begin();
          
	  //Serial.println("Starting...");
          
          ArrayOfAltTab=0;
          
	  pinMode(10, INPUT);
            
	  pinMode(11, INPUT);

	  pinMode(13, INPUT);

	  pinMode(6, OUTPUT);

	  pinMode(5, OUTPUT);

	  pinMode(7, OUTPUT);

        
        for(int i=0;i<3;i++) //цикл для перехода по всем строкам
          {digitalWrite(rows[i],HIGH);
          if(digitalRead(cols[scrollWire])==HIGH) {scroll=i;}} //подаем на текущую строку высокий уровень }
        }
        
	void loop() {
          
	  for(int i=0;i<3;i++){ //цикл для перехода по всем строкам

	    digitalWrite(rows[i], HIGH); //подаем на текущую строку высокий уровень

	    for(int j=0;j<3;j++){ //цикл для переходов по всем столбцам

	      if(digitalRead(cols[j])==HIGH && (j!=scrollWire || i!=scroll)){ //если уровень высокий, то кнопка нажата
                int a=FindKey(i,j);
                if(j==scrollWire){scroll=i;}
	      }
              
	    }
	    digitalWrite(rows[i], LOW);  //выключаем высокий уровень для пройденной строки            
	  }
	}

	//функция возвращающая код нажатой кнопки

	int FindKey(unsigned int CodeI,unsigned int CodeJ)
        {unsigned long TimeKeyPressed;
        unsigned long TimeKeyReliased;
        if(test==1){Serial.println("!");}
         if(CodeJ==scrollWire)
            { 
            if(scroll==2 && CodeI==0 || scroll==0 && CodeI==1 || scroll==1 && CodeI==2)
              {
              SendKey(Buttons[1][0],CodeJ,100); return Buttons[1][0];
              } 
            else if(scroll==0 && CodeI==2 || scroll==1 && CodeI==0 || scroll==2 && CodeI==1) 
            {
            SendKey(Buttons[0][0],CodeJ,100); return Buttons[0][0];
            }
            }
           else
           { boolean i;TimeKeyPressed=millis();
             int button=Buttons[CodeI][CodeJ];
             i=digitalRead(cols[CodeJ]);
             for(i;i>0;i=digitalRead(cols[CodeJ])){delay(45);
               if(test==1){Serial.println(millis()-TimeKeyPressed);}
               //if(button==PauseButton && (millis()-TimeKeyPressed)>10000){break;}
               if(button!=PauseButton && (millis()-TimeKeyPressed)>LooongPressTime+100){break;}}
             TimeKeyReliased = millis();
             SendKey(button,CodeJ,TimeKeyReliased-TimeKeyPressed);
             return button; 
           }           
	}

      void SendKey(int Key, unsigned int CodeJ,unsigned long Time)
      {int value=0;
       int LongPressArray=0;   //Serial.print(Key);
         if(Time<LongPressTime){LongPressArray=0;}
         else if(Time>LongPressTime && Time<LooongPressTime){LongPressArray=1;}
         else if(Time>LooongPressTime && Time<100000){LongPressArray=2;}      
         //else if(Time>10000){Serial.println("pause_loop forever."); delay(100000);}
         
       value=idButtons[Key][LongPressArray];
       //Serial.print(value);
       //Serial.print(LongPressArray);
       //Serial.print(ArrayOfAltTab);
       if (value>0 && ArrayOfAltTab==0){       
         if(value==666){Keyboard.write(198);}
         else{ Serial.print("<click:");         
         Serial.print(value); 
         Serial.print(">");}}
         //Serial.println();}
       else if (value<=0 || ArrayOfAltTab==1) {
       value=idButtons[Key][3+ArrayOfAltTab];
       //Serial.println(value);
       if(value==AtlTab) 
         {
         ArrayOfAltTab=1;
         if(test==0){Keyboard.press(KEY_LEFT_ALT);Keyboard.press(KEY_TAB);Keyboard.release(KEY_TAB);}
         //Serial.println("ATBeg");
         }
         else if(value==KEY_TAB) 
         {
           if(test==0){Keyboard.press(value);Keyboard.release(value);}
           //Serial.println(value);
           //Serial.println("ATNext");
         }
         else if(value==KEY_LEFT_SHIFT) 
         {
           if(test==0){Keyboard.press(KEY_LEFT_SHIFT);Keyboard.press(KEY_TAB);Keyboard.release(KEY_LEFT_SHIFT);Keyboard.release(KEY_TAB);}
           //Serial.print("ATPrev");
         }
         else if(value==KEY_END_TAB) 
         {
           if(test==0){
           //Keyboard.press(KEY_RETURN);Keyboard.release(KEY_RETURN);
           Keyboard.release(KEY_LEFT_ALT);}
           ArrayOfAltTab=0;
           //Serial.println("ATend");
         }
         else if(value==KEY_ESC && ArrayOfAltTab==1) 
         {
           if(test==0){
           Keyboard.press(KEY_ESC);Keyboard.release(KEY_ESC);
           Keyboard.release(KEY_LEFT_ALT);}
           ArrayOfAltTab=0;
           //Serial.println("ATend");
         }
         else if(value==AltEsc)
         {
           if(test==0){Keyboard.press(KEY_LEFT_ALT);Keyboard.press(KEY_ESC);Keyboard.release(KEY_LEFT_ALT);Keyboard.release(KEY_ESC);}
           //Serial.println(value);
           //Serial.println("ATNext");
         }
         else 
         {
          if(test==0){Keyboard.press(value);Keyboard.release(value);}
          //Serial.println("s");
          //Serial.println(value);
         }
         }        
        if(CodeJ!=scrollWire){
        delay(150);
        boolean i;
        i=digitalRead(cols[CodeJ]);
         for(i;i>0;i=digitalRead(cols[CodeJ])){
          if(test==1){Serial.println(digitalRead(cols[CodeJ]));}
         }
        }
       }
__________________
Nexus 7+Duster

Последний раз редактировалось d3890666; 15.03.2014 в 02:49.
d3890666 вне форума   Ответить с цитированием
Старый 27.11.2014, 08:03   #9
rv9me
Пользователь
 
Регистрация: 03.12.2013
Возраст: 50
Город: Омск
Регион: 55
Машина: Дастер
Сообщений: 57
rv9me is on a distinguished road
По умолчанию

А куды ж ты прикуриватель девал?

я у себя пока вынес наружу, а вообще уже подготовил разветвитель прикуривателя в подстаканник(круглый как стакан), все времени нет поставить, да и подключить хотелось бы с помощью разъема, а не на скрутку. Вот думаю, что придумать в качестве штатного разъема.
__________________
Мой проект: http://pccar.ru/showthread.php?t=20366
rv9me вне форума   Ответить с цитированием
Старый 28.11.2014, 16:59   #10
d3890666
Пользователь
 
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
d3890666 is on a distinguished road
По умолчанию

Цитата:
Сообщение от rv9me Посмотреть сообщение
А куды ж ты прикуриватель девал?
Так вот и нет у меня прикуривателя. Лежит на даче сейчас, мерзнет. Прикуриваю зажигалкой, в качестве зарядки у магнитолы есть USB, а насос у меня механический ножной в багажнике лежит... За более чем год понадобилось всего раз гнездо прикуривателя колесо накачать, вот и положил обычный насос))) Думал в багажнике гнездо вывезти, руки не доходят...
__________________
Nexus 7+Duster
d3890666 вне форума   Ответить с цитированием
Ответ

Метки
duster nexus7 renault


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 06:32.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot