10.02.2014, 23:48 | #1 |
Пользователь
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
|
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. |
11.02.2014, 20:45 | #2 |
Пользователь
Регистрация: 03.12.2013
Возраст: 50
Город: Омск
Регион: 55
Машина: Дастер
Сообщений: 57
|
Ждем фото, коллега!
__________________
Мой проект: http://pccar.ru/showthread.php?t=20366 |
13.02.2014, 13:15 | #3 |
Пользователь
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
|
обновил шапку.
По планам: переползти на Регтайм, удобно на коротких остановках не терять интернет на минуту (ждать пока роутер прогрузится). установить антенну для GPS. сфотографировать как планшет закреплен за рамку, и сколько свободного места в "забородье" у DUSTERa. Последний раз редактировалось d3890666; 13.02.2014 в 22:56. |
14.02.2014, 12:01 | #4 |
Пользователь
Регистрация: 03.12.2013
Возраст: 50
Город: Омск
Регион: 55
Машина: Дастер
Сообщений: 57
|
Вот это бы место, да поподробнее. Я жду тепла, для залезания в "Забородье"(до этого только магнитолку 1дин ставил), вот не помешает знать, к чему быть готовым. А пока я закупаюсь железяками. Работа встала из-за необходимости идти за радиодетальками и борьбой с жабой на их покупку(радиодетальки выходят дороже, чем целые блоки моего САРРС)
__________________
Мой проект: http://pccar.ru/showthread.php?t=20366 |
15.02.2014, 20:48 | #5 | |
Пользователь
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
|
Цитата:
Сам попробую сфоткать не раньше чем через неделю.
__________________
Nexus 7+Duster |
|
17.02.2014, 10:51 | #6 |
Пользователь
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
|
На прошлой неделе перепал мне еще один Нексус 7 2012 с зазбитым экраном. Заказал вот тут матрицу с тачем в сборе. Пришла за 6 дней фри шипом(!). В выходные переклеил. Работает! Ура товарищи!
__________________
Nexus 7+Duster |
26.02.2014, 18:39 | #7 |
Пользователь
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
|
Авторотэйт в Москва.фм
Есть такой сервис у нас Москва.ФМ называется. Хороши они своим архивом радио на 5 лет назад. Я люблю послушать передачи которые уже прошли, перематывая рекламу новости и т.д. Но вот в Play приложение так и не выкладывают разрабы. Однако оно существует! Лежит приспокойненько у них на сайтике. Но вот авторотейт у апк выключен оно всегда в портрете. Я вот докрутил работу в ландскейпе. УРА! могу кстати помочь и с другими приложениями.
__________________
Nexus 7+Duster |
14.03.2014, 19:11 | #8 |
Пользователь
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
|
Закончил с переделкой кнопок с ардуино. Подключал уже не через резисторы, а все 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 Код:
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. |
27.11.2014, 08:03 | #9 |
Пользователь
Регистрация: 03.12.2013
Возраст: 50
Город: Омск
Регион: 55
Машина: Дастер
Сообщений: 57
|
А куды ж ты прикуриватель девал?
я у себя пока вынес наружу, а вообще уже подготовил разветвитель прикуривателя в подстаканник(круглый как стакан), все времени нет поставить, да и подключить хотелось бы с помощью разъема, а не на скрутку. Вот думаю, что придумать в качестве штатного разъема.
__________________
Мой проект: http://pccar.ru/showthread.php?t=20366 |
28.11.2014, 16:59 | #10 |
Пользователь
Регистрация: 22.01.2013
Город: Москва
Регион: 77, 97, 99, 177
Машина: Renault Duster
Сообщений: 38
|
Так вот и нет у меня прикуривателя. Лежит на даче сейчас, мерзнет. Прикуриваю зажигалкой, в качестве зарядки у магнитолы есть USB, а насос у меня механический ножной в багажнике лежит... За более чем год понадобилось всего раз гнездо прикуривателя колесо накачать, вот и положил обычный насос))) Думал в багажнике гнездо вывезти, руки не доходят...
__________________
Nexus 7+Duster |
Метки |
duster nexus7 renault |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|