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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Рабочий журнал (http://pccar.ru/forumdisplay.php?f=25)
-   -   Nexus7 2013 wifi в AUDI A6 (http://pccar.ru/showthread.php?t=20919)

TransF 13.10.2014 22:24

Перешил планшет последней прошивкой от пакман, убрано куча ошибок рекомендую, все приложения стали работать гораздо стабильнее)))

Подправил рамку под кнопки выведенные на переднюю панель и вырезанные из какого-то ПДУ )))

http://img-fotki.yandex.ru/get/6741/...f36c3_-1-M.jpg

http://img-fotki.yandex.ru/get/4802/...3523afca_M.jpg

http://img-fotki.yandex.ru/get/2710/...c8e9b757_M.jpg

http://img-fotki.yandex.ru/get/3005/...73ca3d7f_M.jpg

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

И ещё незадача флешуи 2 штуки работать ни как не хотят ((( постоянно переключаются то одна то друга :(

TransF 14.10.2014 02:59

Ну вот и настало "счастье" :sad2::sad2::sad2:
пропала зарядка и ОТГ, хотя к компу подключается всё норм, что это может быть??? на что грешить???
ПОДСКАЖИТЕ ПЛИИИззз

Ursus 14.10.2014 06:32

На кабель грешить. Особенно если самодельный. 99%, что где-то контакт отвалился.

TransF 14.10.2014 08:28

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

TransF 14.10.2014 11:25

Знакомый сказал что, спалить питание мог тем что подрубил юсб зарядку без АКБ.
ХЕЛП!!!

TransF 11.12.2014 08:52

Решено. Сгорела мамка(
Всё закончилось покупкой другого планшета с разбитой матрицей.
Поменял внутренности обновился до 5.0.1
Рут пока не получал, отг без Рут работать ни как не хочет ((( а ломать его опять рука не поднимается (((

TransF 02.03.2015 18:12

Ну вот Нексус уже успешно работает в течении 2 месяцев, пока от аккумулятора хотя блок питания уже переделан и настроен, пока для настройки вытаскиваю его очень часто из машины.
Заказан ЮСБхаб идут поиски нужного по ардуине.
Т.к. приобретена копия Ардуины Микро, встал вопрос в написании скетча:
Мне необходимо подрубить к ней
6 кнопок как обычно по 2 проводам, в виде резистивного джойстика:
- громкость +
- громкость -
- трек >>
- трек <<
- плей-пауза
- сочетание альт+таб (для переключения между окнами)

хотелось бы реализовать это всё в виде горячих клавиш на клавиатуре (подключал ЮСБ клавиатуру всё работает)
Так же есть необходимость подрубить энкодер, для дублирования клавиш громкости.
Нужно ещё научить Ардуину при включении замыкать контакты и при выключении размыкать, т.е. при включении планшета что-бы она через 15-20 секунд замыкала контакты реле, которое в свою очередь замкнёт станби усилителя.

Уроков, туториалов посмотрел много всяких, но вот с реализацией ни как не получается, сказывается непонимание даже системы программирования не то что бы что-то запрограммировать.
Подскажите плиз куда копать? как это всё реализовать?

TransF 02.03.2015 22:06

Ткните пальцем что почитать по включению планшета:blush:

TransF 06.06.2015 17:41

Вложений: 1
Ну вот на конецтаки дошли руки убрать провода из под планшета.
Т.к. автоматика с зажиганием мне не нужна решено было заставить включаться усилитель через юсб порт, а именно там есть + и - они пошли на реле.
Теперь включил планшет включился усил)))

Не могу ни как заставить работать юсб хаб(((

TransF 14.09.2015 00:09

Нашлось немного времени, переделал рамку для планшета, пока только подготовлена под аквапринт, но уже есть вид.
Удалены подстаканники, за ненадобностью, перенесена кнопка аварийки.
аквапринтом под дерево будет так же покрыт блок климата

https://3.downloader.disk.yandex.ru/...2&size=285x500

https://3.downloader.disk.yandex.ru/...2&size=285x500

Не могу понять только почему визуализация, обои, не работают от поверампа, от всех остальных плееров работают((((

TransF 20.09.2015 23:38

Сделал аквапринт всех деталей салона ну и естественно центральной рамки планшета)

https://yadi.sk/i/S0SFbfJGjCyFM

Уже всё установлено, думаю завтра сфоткаю и выложу с миниатюрами)))

TransF 22.09.2015 00:21

Скетч для использования рулевых кнопок и энкодера под планшетом

//****************** Здесь необходимо указать свои значения ***************

int analogPin=0; // пин для подключения кнопок, по умолчанию A0

int release_button = 1023; // значение при отпущенных кнопках
int button_release_range = 50; // диапазон значения + - при отпущенных кнопках
int button_range = 10; // диапазон значения нажатых кнопок + -
int time_holding = 500; // время для удержания кнопок в миллисекундах
int time_tinkling = 10; // время исключающее дребезг контактов в миллисекундах
int vol_up = 111; // значение кнопки увеличить громкость
int vol_down = 222; // значение кнопки уменьшить громкость
int alt_tab = 333; // значение кнопки которая будет работать как Alt + Tab
int next = 444; // значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
int previous = 555; // значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании
int play_pause = 777; // значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании

//************************************************** ************************

int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
PCICR=1< PCMSK0=(1< pinMode (7,INPUT_PULLUP);
pinMode (8,INPUT);
pinMode (9,INPUT);
attachInterrupt(4, key_mute, FALLING);

Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin);
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 0)
{
eventTime=millis();
}

//********************** Громкость ************************************

if(millis()-time_tinkling && millis()-eventTime= vol_up - button_range && data <= vol_up + button_range && flag == 0)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= vol_up - button_range && data <= vol_up + button_range && flag == 5 || data >= vol_up - button_range && data <= vol_up + button_range && flag && flag == 3)
{
Remote.increase();
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-time_tinkling && millis()-eventTime= vol_down - button_range && data <= vol_down + button_range && flag == 0)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= vol_down - button_range && data <= vol_down + button_range && flag == 6 || data >= vol_down - button_range && data <= vol_down + button_range && flag == 3)
{
Remote.decrease();
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************

if(millis()-time_tinkling && millis()-eventTime= alt_tab - button_range && data <= alt_tab + button_range)
{
flag = 1;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis == 0)
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis != 0)
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=release_button - button_release_range && data<=release_button + button_release_range)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>time_holding && data >= alt_tab - button_range && data <= alt_tab + button_range && flag == 1)
{
flag = 0;
}
//********************** Next и Fast Forward ************************************

if(millis()-time_tinkling && millis()-eventTime= next - button_range && data <= next + button_range)
{
flag = 2;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 2)
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= next - button_range && data <= next + button_range && flag == 2 || data >= next - button_range && data <= next + button_range && flag == 3)
{
Remote.forward();
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-time_tinkling && millis()-eventTime= previous - button_range && data <= previous + button_range)
{
flag = 4;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 4)
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= previous - button_range && data <= previous + button_range && flag == 4 || data >= previous - button_range && data <= previous + button_range && flag == 3)
{
Remote.rewind();
flag = 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Mute ************************************

if(millis()-time_tinkling && millis()-eventTime= play_pause - button_range && data <= play_pause + button_range)
{
flag = 7;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 7)
{
Remote.play_pause();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= play_pause - button_range && data <= play_pause + button_range && flag == 7)
{
Remote.mute();
flag = 0;
delay(10);
Remote.clear();
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6)
{
flag = 0;
}
}

ISR (PCINT0_vect){
static byte old_n=PINB&B00110000;
byte new_n=PINB&B00110000;
if (old_n==32&&new_n==48||old_n==16&&new_n==0) {
Remote.increase();
delay(10);
Remote.clear();}
if (old_n==16&&new_n==48||old_n==32&&new_n==0) {
Remote.decrease();
delay(10);
Remote.clear();}
old_n= new_n;
}

void key_mute() {
Remote.mute();
delay(10);
Remote.clear();}

TransF 09.10.2015 21:27

Пока жду новый руль из Питера, всё доведено до полного работоспособного состояния.

Планшет писается от батареи (пока)
в него без доп питания воткнут Хаб на gl850
В него в сою очередь флешка и ардуина, в которой залит скетч для энкодера

PHP код:

//Скетч регулятора громкости на энкодере для Arduino PRO MICRO 
// энкодер на 8 и 9 пинах  выводы подтянуты к питанию, 
// конденсаторы на землю желательно. 
//кнопка энкодера на 7 ноге, притянута к + программно. конденсатор желательно. 
void setup() {             
PCICR=1<<PCIE0
PCMSK0=(1<<PCINT5)|(1<<PCINT4); 
pinMode (7,INPUT_PULLUP); 
pinMode (8,INPUT); 
pinMode (9,INPUT); 
attachInterrupt(4key_muteFALLING); 
Keyboard.begin(); 

void loop() { } 
  
ISR (PCINT0_vect){ 
static 
byte old_n=PINB&B00110000
byte new_n=PINB&B00110000
if (
old_n==32&&new_n==48||old_n==16&&new_n==0) { 
        
Remote.increase();  
        
delay(10);   
        
Remote.clear();} 
if (
old_n==16&&new_n==48||old_n==32&&new_n==0) { 
        
Remote.decrease(); 
        
delay(10);   
        
Remote.clear();} 
old_nnew_n

  
void key_mute() {         
        
Remote.mute();  
        
delay(10);  
        
Remote.clear();} 

включение планшета с кнопки энкодера.
Что-то недоверяю NDS15 заказал Kis-ы и CAN-шилд для чтения рулевых кнопок.

TransF 14.10.2015 21:18

Вложений: 1
Как всегда всё не бывает просто)))
Был приобретён мультируль от Ауди Q7 2008г.
Как выяснилось внутри него стоит ещё 2 энкодера(((
Решил ставить 2 отдельную ардуину и в скетч прописать 2 энкодера и всего 4 кнопки.
На руле - в планшете
Mode - alt+tab
Mute - play+pause
На энкодере слева - ещё не решил.
На энкодере справа - Mute
Энкодер слева - трек вперёд назад
Энкодер справа - дублирует тот что на планшете vol- и vol+.

TransF 05.11.2015 22:59

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

TransF 21.11.2015 22:28

Вложений: 2
Ну вот дождался, пришла вторая ардуина для рулевого управления. так же пришел КАН-шилд который мне теперь без надобности(((
Что сделано:
1) прокинута 5ти жильная шина от подрулевого кольца к планшету, там как раз 5 жил, 4 для USB и 5-я для подсветки всего что стоит на руле.
2) приклеены все детали (хаб, провода, 1 ардуина и т.д.) на заднюю крышку планшета, что-бы вытаскивая планшет всё висело на нем одним скопом.

Занялся 2й ардуиной, пока сделано вот что из рулевого Ауди джойстика справа, он же громкостная часть.

с лева будет примерно тоже самое, только там нужно придумать как переключать треки энкодером)

TransF 15.03.2016 18:46

Руль подключен, воткнут в ЮСБ.
Система собрана и работает, вылез баг:

- при нажиме на сигнал отваливается ардуина, точнее она зависает и без перезагрузки работать не хочет.
на что может мыкать масса пока не нашел.


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

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