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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2015, 19:05   #1
Kent5601
Пользователь
 
Регистрация: 28.02.2015
Возраст: 31
Регион: 16, 116
Сообщений: 53
Kent5601 is on a distinguished road
Smile ВАЗ 2114 + планшет на Win 8.1

всем привет!
после ряда неудач решил не опускать руки и продолжить создание всеядного CarPC!

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

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

3) присмотрел на aliexpress.com звуковую карту! про все функции писать не буду нужна она для избавления от магнитолы что бы звук пустить напрямую на усилители (в будущем)


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

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

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

схема подключения питание планшета и периферии

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


схема подключения ардуино
ОГРОМНОЕ СПАСИБО РЕБЯТАМ lti1 И ВладимирC
потому что сам не разобрался как сделать включение через ардуино
ACC будет от сигнализации

скетч от 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
   } 

скорее всего пробной установкой в машину буду заниматься в на выходных!
куда монтировать пока думаю
может быть так



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

Последний раз редактировалось Kent5601; 28.08.2015 в 18:20. Причина: Добавил энкодер для регулировки звука
Kent5601 вне форума   Ответить с цитированием
Старый 26.08.2015, 19:36   #2
ВладимирC
Старший Пользователь
 
Регистрация: 20.08.2007
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: Hyunday Grandeur 3.3
Сообщений: 852
ВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of light
По умолчанию

По идее все должно работать. Правда могут возникнуть трудности со звуком, из-за отсутствия гальванической развязки в КИС. И я бы предусмотрел полное отключение питания на кисы после длительного простоя.
ВладимирC вне форума   Ответить с цитированием
Старый 26.08.2015, 19:43   #3
ВладимирC
Старший Пользователь
 
Регистрация: 20.08.2007
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: Hyunday Grandeur 3.3
Сообщений: 852
ВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of light
По умолчанию

Ага, нашел ошибку в скетче, не помню. что у леонардо на 0 пине, но точно не аналоговый пин. Измени int analogPin=0; на int analogPin=A0; ну и соответственно на него и подавай управление кнопками.
ВладимирC вне форума   Ответить с цитированием
Старый 26.08.2015, 19:52   #4
ВладимирC
Старший Пользователь
 
Регистрация: 20.08.2007
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: Hyunday Grandeur 3.3
Сообщений: 852
ВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of light
По умолчанию

И еще одна ошибка в схеме ардуино. Там где через "1 минуту вкл/ выкл срузу" по скетчу ( и у меня) не 1 минута, а 2 секунды, нужно лишь для того, чтобы планшет проснулся чуть позже хаба. Ну и надо понимать, что это реле не включает планшет, а своими нормально замкнутыми контактами всего лишь размыкает датчик холла. Есть ли он в твоем планшете - не в курсе, возможно придется пробуждать его как то по другому. А питание на планшет поступает постоянно, когда есть питание на DC-DC 12/5
ВладимирC вне форума   Ответить с цитированием
Старый 26.08.2015, 20:41   #5
sirota
Бывалый писикарщик
 
Аватар для sirota
 
Регистрация: 27.09.2008
Город: Собянинск
Регион: 77, 97, 99, 177
Машина: шкода а5
Сообщений: 5,441
sirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant future
По умолчанию

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

Вот у чела проблема с такой же звуковухой...если есть к ней прога, то помоги ему.
__________________
То win 10х64, то win 8.1x64

Видео регистрация на web. камеру:http://www.youtube.com/watch?v=1hPPLRBBIqc
sirota вне форума   Ответить с цитированием
Старый 26.08.2015, 20:46   #6
Kent5601
Пользователь
 
Регистрация: 28.02.2015
Возраст: 31
Регион: 16, 116
Сообщений: 53
Kent5601 is on a distinguished road
По умолчанию

Спасибо)) по питанию
Полное отключение будет с кнопки! Будут отключаться кис которы для планшета и ардуино!
По скетчу это я видел просто забыл исправить да это не страшно))) но спасибо)
Хола нет!!! Но он как ноутбук при подключении внешнего питания экран загорается а без питания подсветка гаснет и через минуту уходит в сон!))) мне это очень нравится!
Винду пере настраивал под себя!
Kent5601 вне форума   Ответить с цитированием
Старый 26.08.2015, 20:55   #7
Kent5601
Пользователь
 
Регистрация: 28.02.2015
Возраст: 31
Регион: 16, 116
Сообщений: 53
Kent5601 is on a distinguished road
По умолчанию

Блин стремно((( свиду клевая!
Kent5601 вне форума   Ответить с цитированием
Старый 28.08.2015, 15:53   #8
mendisabal
Гуру
 
Аватар для mendisabal
 
Регистрация: 05.10.2012
Возраст: 42
Город: Краснодар
Регион: 23, 93
Машина: Subaru impreza 08
Сообщений: 1,786
mendisabal is a name known to allmendisabal is a name known to allmendisabal is a name known to allmendisabal is a name known to allmendisabal is a name known to allmendisabal is a name known to all
По умолчанию

надо было брать планшет с hdmi выходом ,прикупил бы цифровой усь и со звуком бы вопрос решил на всегда .
__________________
Win 10 , ZOTAC Z68-ITX WiFi Supreme + i7 3770S + crucial M4 256 , gt430 + VS-TY2662-V1 + n101bcg-l21 , Xonar DX + ВА 3121 + BM2032 + Pioneer TS-F650C .
избыток свободного времени + острое желание быть не таким как все открывают бесконечные горизонты творчества в скудном пространстве возможностей
mendisabal вне форума   Ответить с цитированием
Старый 28.08.2015, 18:21   #9
Kent5601
Пользователь
 
Регистрация: 28.02.2015
Возраст: 31
Регион: 16, 116
Сообщений: 53
Kent5601 is on a distinguished road
По умолчанию

добавил энкодер
Kent5601 вне форума   Ответить с цитированием
Старый 02.09.2015, 12:00   #10
Kent5601
Пользователь
 
Регистрация: 28.02.2015
Возраст: 31
Регион: 16, 116
Сообщений: 53
Kent5601 is on a distinguished road
По умолчанию ребята нужна помощь!

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


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

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

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



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


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