Страница 47 из 57 ПерваяПервая ... 3741424344454647484950515253 ... ПоследняяПоследняя
Показано с 461 по 470 из 561
  1. #461
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    392

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Les1at, +1
    Тоже энкодер прикручиваю.

    Chip,
    расскажи, пожалуйста, как в Hotkey реализована функция нажатия клавиш. здесь я что-то написал, но кривовато получилось. кнопки работают, но не отображаются при настройке клавиш в центрифуге например.

  2. #462
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Les1at Посмотреть сообщение
    Chip

    а есть исходники HotKey? если можно, хотел бы их получить, хочу прикрутить ещё rotary encoder.
    Для подключения энкодера не нужно править программу, достаточно прописать функцию работы с энкодером в коде Arduino

  3. #463
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от manu_245 Посмотреть сообщение
    Chip,
    расскажи, пожалуйста, как в Hotkey реализована функция нажатия клавиш. здесь я что-то написал, но кривовато получилось. кнопки работают, но не отображаются при настройке клавиш в центрифуге например.
    В key1 код клавиши
    key1 : LongWord;
    keybd_event((key1), 0,0,0); // нажать на клавишу
    keybd_event((key1), 0,KEYEVENTF_KEYUP,0); //отпустить клавишу
    Последний раз редактировалось Chip; 12.04.2013 в 12:32.

  4. #464
    Пользователь Аватар для Les1at
    Регистрация
    04.06.2010
    Возраст
    34
    Сообщений
    86
    Вес репутации
    188

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Chip Посмотреть сообщение
    Для подключения энкодера не нужно править программу, достаточно прописать функцию работы с энкодером в коде Arduino
    так и сделал, на примере

    http://www.compcar.ru/forum/showthre...?t=4640&page=8

    // Для рулевых кнопок
    // Задержки между нажатиями конкретных кнопок, миллисекунды
    #define KEY_CH_MINUS_DELAY (200)
    #define KEY_CH_PLUS_DELAY (200)
    #define KEY_VOL_MINUS_DELAY (150)
    #define KEY_VOL_PLUS_DELAY (150)
    #define KEY_MODE_DELAY (300)

    // Значения кнопок
    #define KEY_CH_MINUS (445)
    #define KEY_CH_PLUS (640)
    #define KEY_VOL_MINUS (90)
    #define KEY_VOL_PLUS (270)
    #define KEY_MODE (805)

    // Погрешность при чтении кнопок
    #define KEY_DELTA (30)

    // Коды кнопок, что отсылаем в порт внешней проге
    #define CH_MINUS (1)
    #define CH_PLUS (2)
    #define VOL_MINUS (3)
    #define VOL_PLUS (4)
    #define MODE (5)
    #define NONE (0)


    unsigned long LastTimeKeyPressed = millis();
    int LastKeyPressed = NONE;

    void setup()
    {
    Serial.begin(57600);
    }

    void loop()
    {
    ReadSteering();
    delay(50);
    }

    // Читает рулевые кнопки и пишет в порт код нажатой кнопки
    void ReadSteering()
    {
    unsigned long TimeKeyPressed;
    int KeyPressed = NONE;
    int dt1 = analogRead(0);
    delay(50);
    int dt2 = analogRead(0);
    if (abs(dt1-dt2)<=5 and dt1<900 ) //если нет дребезга и что-то есть
    {
    // Регистрируем время нажатия кнопки
    TimeKeyPressed = millis();

    //CH_MINUS
    if ( (dt1-KEY_DELTA <= KEY_CH_MINUS) and (dt1+KEY_DELTA >= KEY_CH_MINUS) )
    {
    if ( (LastKeyPressed != CH_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_MINUS_DELAY) )
    {
    LastKeyPressed = CH_MINUS;
    KeyPressed = CH_MINUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //CH_PLUS
    else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
    {
    if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
    {
    LastKeyPressed = CH_PLUS;
    KeyPressed = CH_PLUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //VOL_MINUS
    else if ( (dt1-KEY_DELTA <= KEY_VOL_MINUS) and (dt1+KEY_DELTA >=KEY_VOL_MINUS) )
    {
    if ( (LastKeyPressed != VOL_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_MINUS_DELAY) )
    {
    LastKeyPressed = VOL_MINUS;
    KeyPressed = VOL_MINUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //VOL_PLUS
    else if ( (dt1-KEY_DELTA <= KEY_VOL_PLUS) and (dt1+KEY_DELTA >=KEY_VOL_PLUS) )
    {
    if ( (LastKeyPressed != VOL_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_PLUS_DELAY) )
    {
    LastKeyPressed = VOL_PLUS;
    KeyPressed = VOL_PLUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //MODE
    else if ( (dt1-KEY_DELTA <= KEY_MODE) and (dt1+KEY_DELTA >=KEY_MODE) )
    {
    if ( (LastKeyPressed != MODE) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_MODE_DELAY) )
    {
    LastKeyPressed = MODE;
    KeyPressed = MODE;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }

    if (KeyPressed != NONE)
    {
    Serial.print(char(255));
    Serial.print(KeyPressed,DEC);
    }

    //Serial.print(dt1,DEC);
    //Serial.print(" ");
    //Serial.println(dt2,DEC);
    }
    }
    Хонда Клуб Пермский край Пермь
    Инструкции по ремонту и эксплуатации Honda
    - http://honda-59.ru/books

  5. #465
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    392

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Chip, спасибо. Все получилось

  6. #466
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Еще забыл написать, нужно паузу между нажатием и отпусканием выдержать 10-30 мс

  7. #467
    Новичок
    Регистрация
    23.05.2013
    Сообщений
    5
    Вес репутации
    136

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Добрый день. Подскажите возможно ли параллельная работа рулевых кнопок со штатной магнитолой и carduino?

  8. #468
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

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

  9. #469
    Новичок
    Регистрация
    23.05.2013
    Сообщений
    5
    Вес репутации
    136

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Chip Посмотреть сообщение
    Возможна поле небольшой модернизации, но команды запрограммированные на кнопки будут выполнятся на обоих устройствах
    Сейчас на одном выводе с кнопок висит 0В, на втором 4,5В. при нажатии одной кнопки 1,75В, другой 2,65. их и надо завести в ПК. когда на штатной магнитоле включен вход aux, то кнопки вперед-назад ни на на что не влияют, их и надо завести на ПК.
    То есть мне надо просто убрать подтягивающий резистор на +пит, а вот что делать с общим проводом? если его подключить то получиться земляная петля, а если не подключать то в принципе ведь должно работать?

    Задам вопрос еще здесь. если я преобрету JoyStick здесь, то мне тоже как бы надо будет его модернизировать получается?
    Последний раз редактировалось Lehas; 24.05.2013 в 11:22.

  10. #470
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    То есть мне надо просто убрать подтягивающий резистор на +пит
    Да

    а вот что делать с общим проводом? если его подключить то получиться земляная петля, а если не подключать то в принципе ведь должно работать?
    Должно работать если питание компа подключено аккумулятору и без гальванической развязки

    если я преобрету JoyStick здесь, то мне тоже как бы надо будет его модернизировать получается?
    Да

Страница 47 из 57 ПерваяПервая ... 3741424344454647484950515253 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)

Ваши права

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