Показать сообщение отдельно
Старый 14.03.2013, 12:47   #1
filinmd
Старший Пользователь
 
Аватар для filinmd
 
Регистрация: 20.03.2012
Возраст: 34
Город: Москва
Регион: 77, 97, 99, 177
Машина: Ford Focus 2, Audi Q7
Сообщений: 163
filinmd will become famous soon enoughfilinmd will become famous soon enough
По умолчанию iCarDuino + MMI пульт AUDI

Ну что ж, начну свой рассказ ...

Хочу подключить пульт MMI от Audi к своему PCCar/

Подключать буду через Arduino https://duino.ru/arduino.html
Основной задачей пульта будет управление в iCar.
С отправкой и получением команд от пульта я разобрался ( Еще раз ОГРОМНОЕ СПАСИБО crashmilan )

Подключаюсь к пульту через терминал Extem. Настройки 9600,8,2.
PHP код:
#include <SoftwareSerial.h>
SoftwareSerial MMI_Serial(42);
byte mmi2pc;

byte pc2mmi;



void setup()  
{
  
Serial.begin(9600);
  
MMI_Serial.begin(9600);
}

void loop() // run over and over
{
  if (
MMI_Serial.available())
  {
    
mmi2pc MMI_Serial.read();
    
Serial.write(mmi2pc);
    
MMI_Serial.write(06);   // это ответ пульту, что данные получены
     

      
   
  if (
Serial.available())
  {
    
pc2mmi Serial.read();
    
MMI_Serial.write(pc2mmi);
  }
  } 
И все шикарно работает, и отправка и получение.
Вроде бы все хорошо, но как всегда без "НО" не обошлось...


Попробовал по управлять iCar.
Без бубна не обошлось. Для этого мне пришлось программно включать пульт через терминал( Для этого надо отправить на пульт команду 10 02 70 12 10 03 A7 и после этого можно получить инфу о нажатии кнопок) а потом запускать iCarDS и в настройках плагина назначать кнопки. Одна кнопка в iCar имеет несколько значений, но это как я понял из за того что плагин получает не привычное для него количество байт.



А вот теперь расскажу про "НО"...

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

Пробовал обрабатывать через switch case... вроде что то получалось, но отправить заветный код (10 02 70 12 10 03 A7) включения так и не смог, хотя код подтверждения (06) отправляется и пульт его прекрасно понимает.

Прошу помощи у Вас, великие Гуру, разобрать с отправкой кодов на пульт.

Вот пример общения в терминале:

PHP код:
1
67 1A 04 FA 27 C5 00  // Когда появляется питание на пульте он начинает посылать этот код, на который требуется подтверждение получения "06"
2
67 1A 04 FA 27 C5 00  // Когда появляется питание на пульте он начинает посылать этот код, на который требуется подтверждение получения "06"
3
06   // Отправляю на пульт код подтверждения 
4
10 02 70 12 10 03 A7    // Отправляю на пульт код [B]включения [/B]
5
7E 00    //  Ответ пульта что он принял код 

67 2A DF F2 4B 00  //  Ответ пульта что он включился 
6
06  // Отправляю на пульт код подтверждения 
7
10 02 64 99 01 10 03 23  // Отправляю на пульт код [B]разрешения на включение  подсветки возле кнопок[/B]
8
7E 00  //  Ответ пульта что он принял код 
9
06 // Отправляю на пульт код подтверждения 
10
10 02 68 01 02 10 03 90 // Отправляю на пульт код [B]включения подсветки возле кнопки MEDIA[/B]
11
7E 00  //  Ответ пульта что он принял код 
12
06 // Отправляю на пульт код подтверждения 

Последний раз редактировалось admin; 21.03.2017 в 02:31.
filinmd вне форума   Ответить с цитированием