Показать сообщение отдельно
Старый 26.08.2015, 19:05   #1
Kent5601
Пользователь
 
Регистрация: 28.02.2015
Возраст: 32
Регион: 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 вне форума   Ответить с цитированием