Вход

Просмотр полной версии : Duster и Nexus 7 2012 с опозданием на пол года


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

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

Вместо усилителя купил вот такую вот (http://market.yandex.ru/model.xml?modelid=10491983&hid=90404&ncrnd=5920) манитолу. Так как у меня недопривод установил её вниз бороды на место прикуривателя и ниши для переключателя и электро муфты. За планшетом расположил хаб dlink на 7 портов (http://www.dlink.ru/ru/products/150/316.html), прокинул 2 удлинителя юсб в бардачок. Туда же завёл отдельно запитанный до хаба конец мини юсб для такого (http://www.tp-linkru.com/products/details/?model=TL-MR3020) роутера, так как питания от хаба отдавалось недостаточно для постоянной работы (иногда отваливался интернет). В него, в свою очередь, воткнут такой модем (http://www.smartron.ru/katalog/products/svyaz/gsm-modemy/modem-universalnyj-huawei-e3276-lte?gclid=CMG95pGvwrwCFQH4cgodRFUAxg) с симкой от йоты. Прекрасный интернет я вам скажу.

Рулевые кнопки же через ардуино и вот этот пост (http://renault-symbol.ru/forum/viewtopic.php?t=7215) подключил к хабу. Скетч для ардуины у меня убогий. Иногда получаются произвольные срабатывания нажатия кнопок. Поэтому для меня актуальная вот эта программа (https://play.google.com/store/apps/details?id=innerlife.keyboard.multilanguagekeymapr edefiner&hl=ru), т.к. могу отключить использование джоя если начинается бред от кнопок. Как буду на работе найду файлик и выложу... может кто поможет подлечить.

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

Все мои попытки получить работоспособный изикап увенчались покупкой такого (http://www.ebay.com/itm/4-3-Screen-TFT-Car-LCD-Rear-View-Rearview-Mirror-Monitor-For-DVD-Camera-VCR-/141000520482?pt=US_Rear_View_Monitors_Cams_Kits&hash=item20d4493322)чуда. Устраивает намного больше чем каркам. НО ВСЕ РАВНО ОГРОМНОЕ СПАСИБО ЗА ВАШИ ТРУДЫ Rage2 и DmitrySmol.

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

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

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

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

Картинки готового решения. Изнутри будут когда разбирать буду. А буду надеюсь скоро...
Общий план:
https://lh5.googleusercontent.com/-kithdLkUSio/Uvx0lzE1zrI/AAAAAAAAFsg/8CLcyyxhdeo/w607-h806-no/IMG_20140213_091238.jpg

Отдельно магнитола-усилитель-аналоговое радио на месте ниши прикуривателя:
https://lh5.googleusercontent.com/-Ynq8W1adqiU/Uvx0lyVR7ZI/AAAAAAAAFsg/dRiGRviZNM4/w957-h721-no/IMG_20140213_091258.jpg

Автокартинки от гугл+:
https://lh5.googleusercontent.com/-R9fdf7hC1J4/Uvx0ly4VQqI/AAAAAAAAFsg/JFlYfORFxeo/w607-h806-no/IMG_20140213_090931-MOTION.gif

rv9me
11.02.2014, 20:45
Ждем фото, коллега!

d3890666
13.02.2014, 13:15
обновил шапку.

По планам:

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

rv9me
14.02.2014, 12:01
сфотографировать как планшет закреплен за рамку, и сколько свободного места в "забородье" у DUSTERa.

Вот это бы место, да поподробнее. Я жду тепла, для залезания в "Забородье"(до этого только магнитолку 1дин ставил), вот не помешает знать, к чему быть готовым. А пока я закупаюсь железяками. Работа встала из-за необходимости идти за радиодетальками и борьбой с жабой на их покупку(радиодетальки выходят дороже, чем целые блоки моего САРРС):wacko2:

d3890666
15.02.2014, 20:48
Вот это бы место, да поподробнее. Я жду тепла, для залезания в "Забородье"(до этого только магнитолку 1дин ставил), вот не помешает знать, к чему быть готовым. А пока я закупаюсь железяками. Работа встала из-за необходимости идти за радиодетальками и борьбой с жабой на их покупку(радиодетальки выходят дороже, чем целые блоки моего САРРС):wacko2:

Места там хватит что бы китайцев по стране катать. Я сначала хотел запихнуть туда старую магнитолу на 2 din. Она туда свободно входит и выходит. Только не в глубь, а в высоту. А вообще как я понял тебе придеться много ковырять и сверлить если хочешь ставить писи вверху...
Сам попробую сфоткать не раньше чем через неделю.

d3890666
17.02.2014, 10:51
На прошлой неделе перепал мне еще один Нексус 7 2012 с зазбитым экраном. Заказал вот тут (http://www.aliexpress.com/item/Original-Full-LCD-display-Touch-Screen-Digitizer-for-ASUS-Google-Nexus-7/767556272.html) матрицу с тачем в сборе. Пришла за 6 дней фри шипом(!). В выходные переклеил. Работает! Ура товарищи!

d3890666
26.02.2014, 18:39
Есть такой сервис у нас Москва.ФМ называется. Хороши они своим архивом радио на 5 лет назад. Я люблю послушать передачи которые уже прошли, перематывая рекламу новости и т.д. Но вот в Play приложение так и не выкладывают разрабы. Однако оно существует! Лежит приспокойненько у них на сайтике. Но вот авторотейт у апк выключен оно всегда в портрете. Я вот докрутил работу в ландскейпе. УРА! могу кстати помочь и с другими приложениями.

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

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

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

От земли к пинам 13,11,10 - резисторы по 4-10кОм. Большинство кнопок возвращают коды нажатия клавиатуры. Остальные для RemoteWhellControll с xda (http://forum.xda-developers.com/showthread.php?t=2635159). Почти у каждой кнопки по 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);Keyboar d.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_RE TURN);
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);Keyb oard.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]));}
}
}
}

rv9me
27.11.2014, 08:03
А куды ж ты прикуриватель девал?

я у себя пока вынес наружу, а вообще уже подготовил разветвитель прикуривателя в подстаканник(круглый как стакан), все времени нет поставить, да и подключить хотелось бы с помощью разъема, а не на скрутку. Вот думаю, что придумать в качестве штатного разъема.

d3890666
28.11.2014, 16:59
А куды ж ты прикуриватель девал?


Так вот и нет у меня прикуривателя. Лежит на даче сейчас, мерзнет. Прикуриваю зажигалкой, в качестве зарядки у магнитолы есть USB, а насос у меня механический ножной в багажнике лежит... За более чем год понадобилось всего раз гнездо прикуривателя колесо накачать, вот и положил обычный насос))) Думал в багажнике гнездо вывезти, руки не доходят...

d3890666
28.11.2014, 17:09
ПС. в апреле у себя много чего переделал кстати! руки дойдут сфоткать обязательно обновлю тему.

ymka-66
28.11.2014, 20:10
ну вот и дастероводы подтянулись