Подрулевой переключатель магнитолы.

Модератор: Техмодераторы

Аватара пользователя

*Casper*
Руководитель
Сообщения: 42049
Зарегистрирован: 10 янв 2010, 23:33
Полное имя: Санчело Мастраяни
Автомобиль: Другой
Двигатель: Другой
Трансмиссия: Другая
Год выпуска: 2023
Климатика: Климат-контроль
Люк на крыше: Есть
Откуда: Торжок [69]
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#81 Сообщение *Casper* » 27 окт 2015, 14:28

Kudryash писал(а):Arduino будет определять наши кнопки как HID клавиатуру
:eek: :eek: :eek: Ничего не перепутал?

Аватара пользователя

Kudryash
Сообщения: 243
Зарегистрирован: 26 мар 2011, 23:49
Полное имя: Саня
Автомобиль: FFn Elegance
Двигатель: 1.4 Бензин
Трансмиссия: Механическая
Год выпуска: 2008
Климатика: Нет
Откуда: Североморск
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#82 Сообщение Kudryash » 27 окт 2015, 20:26

*Casper*,точно , попутал . Планшет будет понимать arduino как hid клавиатуру и наши кнопки будут кнопками этой самой клавиатуры. Ну как то так :)

Аватара пользователя

*Casper*
Руководитель
Сообщения: 42049
Зарегистрирован: 10 янв 2010, 23:33
Полное имя: Санчело Мастраяни
Автомобиль: Другой
Двигатель: Другой
Трансмиссия: Другая
Год выпуска: 2023
Климатика: Климат-контроль
Люк на крыше: Есть
Откуда: Торжок [69]
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#83 Сообщение *Casper* » 27 окт 2015, 20:57

Kudryash писал(а):arduino как hid
Видимо эту лекцию я проспал. Когда ардуин стал хидом? Дуе...что-то там вроде мог быть хидом, а ардуина.... чет не помню. Хотя они там на армы перешли. Возможно что-то поменялось в политике партии.

Аватара пользователя

Kudryash
Сообщения: 243
Зарегистрирован: 26 мар 2011, 23:49
Полное имя: Саня
Автомобиль: FFn Elegance
Двигатель: 1.4 Бензин
Трансмиссия: Механическая
Год выпуска: 2008
Климатика: Нет
Откуда: Североморск
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#84 Сообщение Kudryash » 27 окт 2015, 21:25

Arduino Pro Micro и Arduino Leonardo на чипе ATmega32u4 работают.

Аватара пользователя

*Casper*
Руководитель
Сообщения: 42049
Зарегистрирован: 10 янв 2010, 23:33
Полное имя: Санчело Мастраяни
Автомобиль: Другой
Двигатель: Другой
Трансмиссия: Другая
Год выпуска: 2023
Климатика: Климат-контроль
Люк на крыше: Есть
Откуда: Торжок [69]
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#85 Сообщение *Casper* » 27 окт 2015, 21:41

Ну армы. Ага.

Аватара пользователя

Aksen
Сообщения: 64
Зарегистрирован: 03 дек 2015, 22:00
Полное имя: Дима
Двигатель: 1.6 Дизель
Трансмиссия: Роботизированная
Год выпуска: 2006
Климатика: Нет
Люк на крыше: Нет
Откуда: Москва, СВАО
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#86 Сообщение Aksen » 14 янв 2016, 22:26

Если в кожухе отверстия нету, вырезать можно? Джостик защёлкница? Есть размеры где делать дырку?

Аватара пользователя

Kudryash
Сообщения: 243
Зарегистрирован: 26 мар 2011, 23:49
Полное имя: Саня
Автомобиль: FFn Elegance
Двигатель: 1.4 Бензин
Трансмиссия: Механическая
Год выпуска: 2008
Климатика: Нет
Откуда: Североморск
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#87 Сообщение Kudryash » 21 фев 2016, 18:38

[youtube]x_WnOavBu1A[/youtube]

Аватара пользователя

Kudryash
Сообщения: 243
Зарегистрирован: 26 мар 2011, 23:49
Полное имя: Саня
Автомобиль: FFn Elegance
Двигатель: 1.4 Бензин
Трансмиссия: Механическая
Год выпуска: 2008
Климатика: Нет
Откуда: Североморск
Контактная информация:

Re: Подрулевой переключатель магнитолы.

#88 Сообщение Kudryash » 22 фев 2016, 10:48

Для управления андроидом нам потребуется

Arduino pro micro

брал на али вот тут

Для начала скачать arduino 1.0.5 zip. Далее в папке \arduino-1.0.5\hardware\arduino\cores\arduino меняете два файла USBAPI.h, HID.cpp на эти
Multimedia_Keys_for_IDE_1.0.5.zip
, при этом версия ПО Arduino Software IDE должна быть 1.0.5,
Подключаемся по схеме с привязкой к +5v через резистор 1 кОм.

После заливаете
int analogPin=0; //пин для подключения кнопок
int data;

void setup()
{
analogReference(DEFAULT); // подключение внутреннего напряжение AVCC к выводу AREF (опорное напряжение)
Serial.begin(9600);
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки
Serial.println(data);
delay(1000);
}

и считываете коды всех кнопок через "монитор порта" Arduino Software (IDE).

И так , мои показатели кнопок
855 присоединил пульт , кнопки не нажаты
vol + 130
vol - 50
seek + 235
seek- 365
mode 519

После определения кнопок заливаете
//****************** Здесь необходимо указать свои значения ***************

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

int release_button = 854; // значение при отпущенных кнопках
int button_release_range = 20; // диапазон значения + - при отпущенных кнопках
int button_range = 5; // диапазон значения нажатых кнопок + -
int time_holding = 500; // время для удержания кнопок в миллисекундах
int time_tinkling = 30; // время исключающее дребезг контактов в миллисекундах
int vol_up = 129; // значение кнопки увеличить громкость
int vol_down = 50; // значение кнопки уменьшить громкость
int alt_tab = 777; // значение кнопки которая будет работать как Alt + Tab
int next = 235; // значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
int previous = 366; // значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании
int play_pause = 519; // значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании

//**************************************************************************

int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
analogReference(DEFAULT); // подключение внутреннего напряжение AVCC к выводу AREF (опорное напряжение)
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin);
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 0)
{
eventTime=millis();
}

//********************** Громкость ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && 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 == 5 || data >= vol_up - button_range && data <= vol_up + button_range && flag && flag == 3)
{
Remote.increase();
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && 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 == 6 || data >= vol_down - button_range && data <= vol_down + button_range && flag == 3)
{
Remote.decrease();
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && 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 == 1 && 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 == 1 && 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()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && 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 == 2 || data >= next - button_range && data <= next + button_range && flag == 3)
{
Remote.forward();
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && 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 == 4 || data >= previous - button_range && data <= previous + button_range && flag == 3)
{
Remote.rewind();
flag = 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Mute ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && 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 == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6)
{
flag = 0;
}
}
Радуемся проделанной работе :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

irisha
Сообщения: 23
Зарегистрирован: 21 фев 2016, 18:13
Полное имя: Ирина
Автомобиль: FFn Trend
Двигатель: 1.4 Бензин
Трансмиссия: Механическая
Год выпуска: 2007
Люк на крыше: Нет
Откуда: Пензенская область

Re: Подрулевой переключатель магнитолы.

#89 Сообщение irisha » 22 фев 2016, 13:45

Подходит ли рычаг открывания капота (из салона) с Фиесты на Фьюж? Вроде совместимы, пишут в разборке, родной не нашла, только с фиесты.
***
пардон, случайно не в ту тему написала :insane:

Аватара пользователя

fidel1970
Администратор
Сообщения: 28722
Зарегистрирован: 11 янв 2010, 07:46
Полное имя: Дмитрий
Автомобиль: FFn Elegance
Двигатель: 1.6 Бензин
Трансмиссия: Автоматическая
Год выпуска: 2007-11
Климатика: Климат-контроль
Люк на крыше: Нет
Откуда: Нижний Новгород

Re: Подрулевой переключатель магнитолы.

#90 Сообщение fidel1970 » 22 фев 2016, 22:17

irisha писал(а):Подходит ли рычаг открывания капота (из салона) с Фиесты на Фьюж?
Да. Подходит.
Those who are willing to sacrifice their essential freedom for a little bit of temporary security are not worthy of either freedom or security.(с)

Ответить

Вернуться в «Салон и кузов, лампы и светотехника»