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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Рабочий журнал (http://pccar.ru/forumdisplay.php?f=25)
-   -   ВАЗ 2114 + планшет на Win 8.1 (http://pccar.ru/showthread.php?t=23393)

Kent5601 26.08.2015 19:05

ВАЗ 2114 + планшет на Win 8.1
 
всем привет!
после ряда неудач решил не опускать руки и продолжить создание всеядного CarPC!

1) Был куплен 8-ми дюймовый планшет Prestigio MultiPad PMP880TD на Win 8.1
цена 4500 руб.
нашел в планшете 2 минуса!
первое это то что у него нет GPS
второе 16gb встроенной памяти это катастрофически МАЛО

2) переносной жесткий диск аж на целый таробайт)))):smile2:

3) присмотрел на aliexpress.com звуковую карту! про все функции писать не буду нужна она для избавления от магнитолы что бы звук пустить напрямую на усилители (в будущем)
https://pp.vk.me/c623424/v623424177/...Sqn8EX2nDw.jpg

4) давно были куплены DC-DC преобразователь KIS-3R33S 2 штуки
  • 1 для питания планшета
  • 2 для питания хаба

5) хаб китайский дома нашел про него рассказывать не буду

6) купил еще ардуино леонардо

схема подключения питание планшета и периферии
https://pp.vk.me/c623424/v623424177/...S8aOa9jLpQ.jpg
модуль питания для планшета был переделан! выпаял резистор который управляет напряжением и припаян подстроечный резистор!
по поводу OTG
интересная ситуация у данного планшета! читал на 4пда что этот планшет может работать и без шнурка "отг"! если не подключать GND к ID то планшет будет видеть хаб с периферией и заряжаться! ЭТО ОЧЕНЬ СИЛЬНО ПОРАДОВАЛО!


схема подключения ардуино
ОГРОМНОЕ СПАСИБО РЕБЯТАМ lti1 И ВладимирC
потому что сам не разобрался как сделать включение через ардуино :dntknw:
ACC будет от сигнализации
https://pp.vk.me/c623424/v623424177/...84dBkgtNlU.jpg
скетч от lti1 задумка ВладимирC
PHP код:

unsigned long currentTime
unsigned long loopTime
const 
int pin_enc_A 2;        
const 
int pin_enc_B 3;     
const 
int pin_pause 4;     
unsigned char encoder_A
unsigned char encoder_B
unsigned char encoder_A_prev=0
unsigned char pause
//// реле
int ACC 4// D4 вход ACC 
int Hub 5// D5 выход управления хабом 
int Hall 6// D6 выход управления датчиком холла 
int flagACC 0
unsigned long pauseTime 0
//кнопки
//****************** Здесь необходимо указать свои значения *************** 

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

int release_button 0// значение при отпущенных кнопках 
int button_release_range 50// диапазон значения + - при отпущенных кнопках 
int button_range 10// диапазон значения нажатых кнопок + - 
int time_holding 500// время для удержания кнопок в миллисекундах 
int time_tinkling 10// время исключающее дребезг контактов в миллисекундах 
int vol_up 288// значение кнопки увеличить громкость 
int vol_down 333// значение кнопки уменьшить громкость 
int alt_tab 469// значение кнопки которая будет работать как Alt + Tab 
int next 595// значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании 
int previous 792// значение кнопки которая будет работать как 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() { 
  
pinMode(pin_enc_AINPUT_PULLUP); // encoder 1 
  
pinMode(pin_enc_BINPUT_PULLUP); // encoder 2 
  
  
currentTime millis(); 
  
loopTime currentTime;  
  
Keyboard.begin(); 
  
//// кнопки
  
Serial.begin(9600);
  
////реле
  
pinMode(ACCINPUT); 
  
pinMode(HubOUTPUT); 
  
pinMode(HallOUTPUT);

  
void loop() { 
  
currentTime millis(); 
  if(
currentTime >= (loopTime 5)){ // проверяем каждые 5мс (200 Гц) 
    
encoder_A digitalRead(pin_enc_A);     // считываем состояние выхода А энкодера  
    
encoder_B digitalRead(pin_enc_B);     // считываем состояние выхода А энкодера     
    
if((!encoder_A) && (encoder_A_prev)){    // если состояние изменилось с положительного к нулю 
      
if(encoder_B)  
       { 
        
// выход В в полож. сост., значит вращение по часовой стрелке 
         
Keyboard.press(KEY_LEFT_CTRL); 
         
Keyboard.press(KEY_LEFT_SHIFT); 
         
Remote.increase();
         
delay(50);    
         
Keyboard.releaseAll();      
       }    
      else { 
         
Keyboard.press(KEY_LEFT_CTRL); 
         
Keyboard.press(KEY_LEFT_SHIFT); 
         
Remote.decrease(); 
         
delay(50);    
         
Keyboard.releaseAll();           
      }    
    }    
    
encoder_A_prev encoder_A;     // сохраняем значение А для следующего цикла  
     
loopTime currentTime
  }                          
//// кнопки
Serial.println(data); 
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<time_holding-&& data >= 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 == || 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<time_holding-&& data >= 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 == || 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<time_holding-&& data >= 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 == && 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 == && 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<time_holding-&& data >= 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 == || 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<time_holding-&& data >= 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 == || 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<time_holding-&& data >= 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 == || data>=release_button button_release_range && data<=release_button button_release_range && flag == || data>=release_button button_release_range && data<=release_button button_release_range && flag == 6)  
{  
flag 0;  
}   
// ********** упровление питание ********** 
  
if (digitalRead(ACC)== HIGH && flagACC == 0
   { 
   
digitalWrite(HubHIGH); 
   
pauseTime millis(); 
   
flagACC 1
   } 
  if (
millis()-pauseTime>=4000 && flagACC == 1// пауза 2 секунды 
   

   
digitalWrite(HallHIGH); 
   
pauseTime 0
   } 
    
  if (
digitalRead(ACC)== LOW && flagACC == 1
   { 
   
digitalWrite(HallLOW); 
   
pauseTime millis(); 
   
flagACC 0
   } 
  if (
millis()-pauseTime>=6000 && flagACC == 0// пауза 10 минут 
   

   
digitalWrite(HubLOW); 
   
pauseTime 0
   } 


скорее всего пробной установкой в машину буду заниматься в на выходных!
куда монтировать пока думаю
может быть так
https://pp.vk.me/c622524/v622524177/...BYBCUVgxXc.jpg


НЕ СУДИТЕ СТРОГО Я НОВИЧОК В ЭТОМ ДЕЛЕ!!!

ВладимирC 26.08.2015 19:36

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

ВладимирC 26.08.2015 19:43

Ага, нашел ошибку в скетче, не помню. что у леонардо на 0 пине, но точно не аналоговый пин. Измени int analogPin=0; на int analogPin=A0; ну и соответственно на него и подавай управление кнопками.

ВладимирC 26.08.2015 19:52

И еще одна ошибка в схеме ардуино. Там где через "1 минуту вкл/ выкл срузу" по скетчу ( и у меня) не 1 минута, а 2 секунды, нужно лишь для того, чтобы планшет проснулся чуть позже хаба. Ну и надо понимать, что это реле не включает планшет, а своими нормально замкнутыми контактами всего лишь размыкает датчик холла. Есть ли он в твоем планшете - не в курсе, возможно придется пробуждать его как то по другому. А питание на планшет поступает постоянно, когда есть питание на DC-DC 12/5

sirota 26.08.2015 20:41

Цитата:

первое это то что у него нет GPS
Это даже считаю плюсом, так как встроенный gps может плохо работать.

Вот у чела проблема с такой же звуковухой...если есть к ней прога, то помоги ему.

Kent5601 26.08.2015 20:46

Спасибо)) по питанию
Полное отключение будет с кнопки! Будут отключаться кис которы для планшета и ардуино!
По скетчу это я видел просто забыл исправить да это не страшно))) но спасибо)
Хола нет!!! Но он как ноутбук при подключении внешнего питания экран загорается а без питания подсветка гаснет и через минуту уходит в сон!))) мне это очень нравится!
Винду пере настраивал под себя!

Kent5601 26.08.2015 20:55

Блин стремно((( свиду клевая!

mendisabal 28.08.2015 15:53

надо было брать планшет с hdmi выходом ,прикупил бы цифровой усь и со звуком бы вопрос решил на всегда .

Kent5601 28.08.2015 18:21

добавил энкодер

Kent5601 02.09.2015 12:00

ребята нужна помощь!
 
ребята нужна помощь! снял батарейку подключил модуль питания а планшет садится и выключается! ставил 3.8 вольт 55%. постепенно увеличивал не помогло поставил другой модуль на 5.2 вольт было 100% сел!!!!!! что делать?????????????

OKLiK 02.09.2015 12:13

Я лично сделал 4,2в = 100% в моем случае. По выключению планшета, контроллер управления снимает питание с контроллера аккумулятора тем самым происходит полный сброс на заводские установки контроллера и при включение планшета, контроллер управления снова подает питание на контроллер аккумулятора и система загружается всегда 100% зарядом.
Заряда до 20% мне хватает на часов 9, потом просто выключаю и включаю, снова 100%. Другого способа не нашел, поскольку вся это фигня контролируется на уровне биоса. Ну если только сделать эмулятор контроллера аккумулятора, но времени у меня этим заниматься, нету :)

Kent5601 02.09.2015 14:57

а как тогда режим сна сделать????? как сделать чтоб он включался??? я пробовал подавать на юсб питание он сам не включается!

OKLiK 02.09.2015 16:04

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

Kent5601 02.09.2015 16:08

я на деюсь это не секрет как он нажимает и при каких условиях??? по можешь с разработкой???

OKLiK 02.09.2015 19:00

Секретов нет.
Условий пока нет, после первого проекта, понял что не стоит включать комп в машине по АСС и запуску двигателя, есть моменты когда это не нужно. Поэтому использую пока только кнопку без фиксации и включаю планшет когда нужно, уже на автомате все :)

Контроллер управления управляет кнопкой включения планшета, подает питание на контроллер аккумулятора, подает питание на усб хаб, ну и на усилитель. Контролирует питание +5в у усб разъема в режиме отг.
Включаю кнопкой контроллера:
- подаем питание на контроллер аккумулятора.
- нажимаем кнопку планшета 3.7сек.
- ждем когда на усб появится +5в. (если не появилось, то делаем сброс планшета - ресет и на начало)
- отпускаем кнопку планшета.
- включаем реле усб-хаб.
- через 10 секунд включаем реле усилителя.

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

Ждем нового включения кнопкой, вот и все пока..

Kent5601 02.09.2015 19:03

а что за контроллер? ардуино???

OKLiK 02.09.2015 19:08

Вложений: 1
Не хочу обидеть тебя и других, но я не поклонник этого г...а для ло..в, только все свое с нуля.
Вот схема:

Kent5601 02.09.2015 19:13

я новичок в этом деле! и мне не легко это дается а то г...но которое для л...ов в программировании проще!!! вот и все))) спасибо за объяснение! а есть фотки ка ты рамку делал??7 если есть кинь в личку!

OKLiK 02.09.2015 19:15

Ссылка на то, что есть в подписе "Проект 2"

Kent5601 02.10.2015 15:05

К продолжению этой темы вот что получилось на данный момент!
 
всем привет! долго всё это собиралось и додумывалось :dntknw:!
даже не знаю с чего и начать!:be:
начну с планшета!!!!
Prestigio MultiPad PMP880TD
  1. выпаян разъем micro USB
    подумав понял что он мне будет мешать при установке планшета в торпеду автомобиля. подпаял провода без функции OTG. выяснил что разъем на этом планшете полноценный USB как на ПК.
  2. выпаяна батарейка в место нее контролер на кисе!
  3. вырезаны отверстия на задней крышке планшета для охлаждения (греется чутка. мне это не понравилось)!
  4. установлен кулер 12 вольт и подключен к питанию планшета! работают в тандеме!
  5. выведены провода для включения планшета
    http://cs622926.vk.me/v622926177/44073/vmSh--14mEw.jpghttp://cs622926.vk.me/v622926177/4407c/Tc0xLUmRZ_U.jpghttp://cs622926.vk.me/v622926177/44085/kzT5zKCnwT0.jpghttp://cs622926.vk.me/v622926177/4408e/cQP_UAqF5ZY.jpghttp://cs622926.vk.me/v622926177/44097/2P0sWQEQk54.jpghttp://cs622926.vk.me/v622926177/44060/7r36ntgSAJQ.jpghttp://cs622926.vk.me/v622926177/4406a/ZrodXz583D0.jpg



теперь о блоке управления системой "БУС"
  1. корпус от БП для ПК
  2. Arduino Leonardo - заведует вкл/выкл и управлением планшета

    2 реле на включение планшета по этой схеме http://cs622926.vk.me/v622926177/44171/T8gNi94ehwo.jpg
    выключается он по другому! в скетче прописано при пропадании АСС зажать кнопку F3! в самом же планшете создан файл "завершения работы" + быстрый вызов F3 текстовый документ можете почитать!!
    еще 2 реле отвечают за сигнал АСС такая же схема как выше только одно 12 вольт а второе 5 вольт, в скетче написано что 2-ое реле всегда отключено и включается на пол секунды только при включении ардуины!

    управлять планшетом бет джостик вместо мышки, энкодер для регулировки звука и 4 кнопки:
    вперед
    назад
    пауза
    альт+таб

    скетч от lti1

    http://cs622926.vk.me/v622926177/440a0/Z6HbbLNeaDE.jpghttp://cs622926.vk.me/v622926177/440a9/U31fGhQOrzI.jpghttp://cs622926.vk.me/v622926177/440b2/qO_z9-t4YLw.jpghttp://cs622926.vk.me/v622926177/440bb/7N6_6PpDkKw.jpghttp://cs622926.vk.me/v622926177/440c4/Fo5DY5j-fTc.jpghttp://cs622926.vk.me/v622926177/440cd/1BBWwlRFBHg.jpghttp://cs622926.vk.me/v622926177/440d6/Ii9ncgufIYQ.jpghttp://cs622926.vk.me/v622926177/440df/DlW2HkQf6ZI.jpghttp://cs622926.vk.me/v622926177/440e8/dhHx9yM92O4.jpghttp://cs622926.vk.me/v622926177/440f1/28fMKqhs5gk.jpghttp://cs622926.vk.me/v622926177/440fb/Ihbc2WI4hYk.jpghttp://cs622926.vk.me/v622926177/44105/70Rg4O3C14o.jpghttp://cs622926.vk.me/v622926177/44105/70Rg4O3C14o.jpghttp://cs622926.vk.me/v622926177/44117/LVgtjuCIl-M.jpghttp://cs622926.vk.me/v622926177/44120/DUQtIcnG7CY.jpghttp://cs622926.vk.me/v622926177/44129/ByaulHfX710.jpg
вроде все! установлю это все в машину посмотрим как поработает потом еще что нибудь напишу!
не пинайте за кучу запутанных проводов! если нормально будет работать на нарисую плату!
ну и нудно же фотки сюда вставлять(((

artem-slk 08.10.2015 17:03

Подскажи по настройкам VAC и AudioMulch а то что то не получается.

Kent5601 08.10.2015 18:51

Цитата:

Сообщение от artem-slk (Сообщение 339954)
Подскажи по настройкам VAC и AudioMulch а то что то не получается.

ты про что??

artem-slk 08.10.2015 18:55

Как у тебя построена поканалка


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

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