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

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > AndroidCar > Дополнительные устройства

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2015, 17:14   #581
Maniac82
Старший Пользователь
 
Регистрация: 17.05.2011
Возраст: 41
Город: Новокузнецк
Регион: 42
Машина: Murano
Сообщений: 131
Maniac82 is on a distinguished road
По умолчанию

Цитата:
Сообщение от Maniac82 Посмотреть сообщение
А кто знает почему когда запущен Navitel кнопки смены треков в poweramp со скетча не срабатывают? При это пауза и альт+таб продолжают работать!
И перемотка этими же кнопками работает!
Maniac82 вне форума   Ответить с цитированием
Старый 26.11.2015, 19:18   #582
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от fedor5800 Посмотреть сообщение
Я так понимаю этот скетч для назначения функций кнопок через эту прогу RemoteInputsMgr-1.3.2.apk прямо в андроиде?
Так и есть.
lti1 вне форума   Ответить с цитированием
Старый 01.12.2015, 22:53   #583
Влип
Пользователь
 
Регистрация: 08.11.2015
Возраст: 39
Город: Оренбург
Регион: 56
Машина: Emgrand ec7
Сообщений: 59
Влип is on a distinguished road
По умолчанию

Цитата:
Сообщение от lti1 Посмотреть сообщение
Соберу всю информацию по одному из решений в одном месте, у кого есть возможность закрепите ссылку в первом сообщении.
Работает только с Arduino Pro Micro и Arduino Leonardo на чипе ATmega32u4.
Для начала меняем в папке \arduino-1.0.5\hardware\arduino\cores\arduino для IDE 1.0.5 или \arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino для IDE 1.6.5 меняете два файла USBAPI.h, HID.cpp на те, что во вложении этого сообщения, при этом версия ПО Arduino Software IDE должна быть 1.0.5, скачать setup exe, скачать zip ИЛИ 1.6.5, на других не проверял.
После заливаете этот скетч и считайте коды всех кнопок через "монитор порта" Arduino Software (IDE).
PHP код:
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 по следующим схемам, с подтяжкой к - или к +. Номинал сопротивления ~20 кОм.
Вложение 38555
Потом заливаете этот скетч, только в начале скетча указываете свои значения, то есть вместо 111, 222, 333, 444, 555, 777 указываете значения своих кнопок, а также значение при отпущенных кнопках, в зависимости от схемы подключения будут либо ближе 0 либо ближе к 1023:
PHP код:
//****************** Здесь необходимо указать свои значения ***************

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

int release_button 1023// значение при отпущенных кнопках
int button_release_range 50// диапазон значения + - при отпущенных кнопках
int button_range 5// диапазон значения нажатых кнопок + -
int time_holding 500// время для удержания кнопок в миллисекундах
int time_tinkling 30// время исключающее дребезг контактов в миллисекундах
int vol_up 111// значение кнопки увеличить громкость
int vol_down 222// значение кнопки уменьшить громкость
int alt_tab 333// значение кнопки которая будет работать как Alt + Tab
int next 444// значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
int previous 555// значение кнопки которая будет работать как 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() 
{
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()-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
}  

Алгоритм работы такой: короткое нажатие, более 10 (int time_tinkling = 10; можно менять в скетче) и менее 500 миллисекунд (int time_holding = 500; можно менять в скетче) - Play/pause; длинное, более 500 миллисекунд (int time_holding = 500; можно менять в скетче) - Mute.
Тоже самое с Next и Fast Forward, Previous и Rewind. При удержании увеличения и уменьшения громкости, увеличивает или уменьшает громкость на 10 делений в секунду, а при коротком нажатии, менее 500 миллисекунд - увеличивает или уменьшает громкость на 1 деление.
Alt + Tab, при первом нажатии эмулирует Alt и два раза Tab, то есть переходит предыдущему открытому приложении и в течении 0,8 секунды удерживает Alt, а повторные нажатия на кнопку в течении этого времени эмулируют только Tab. На удержание ни чего не назначен, можно добавить при необходимости.
Возможно ли переделать скетч так, чтоб на длительное нажатие следующего трека срабатывала плей/пауза, а на длительное нажатие предыдущего трека срабатывало муте? Походу тестирования еще выяснилась проблема, alt+tab работает хорошо, а вот увеличение/уменьшение звука и переключения треков, если нажимать с интервалом больше 1.5 сек то работают нормально, если нажимать чаще то путаются. подключено пока все к компьютеру, питание по usb. Номиналы: не нажатые 0, vol+ 1004, vol- 940, track+ 814, track- 725, alt+tab 624. Подтягивающий резистор от А0 к земле 12 кОм.

UPD: Вопрос про паузу и муте снимаю, нашел ответ. Заменил резистор на 4,7кОм разбег между значениями по монитору порта стал больше, теперь: не нажатые 0, vol+ 971, vol- 834, track+ 617, track- 500, alt+tab 389.Кнопки работают стабильнее, но все равно если часто нажимать кнопку иногда проскакивает нажатие другой.

Последний раз редактировалось Влип; 03.12.2015 в 17:44. Причина: добавил сообщение
Влип вне форума   Ответить с цитированием
Старый 11.12.2015, 13:21   #584
anru
Пользователь
 
Регистрация: 01.01.2015
Возраст: 48
Город: Майкоп
Регион: 01
Машина: Toyota Picnic
Сообщений: 56
anru has a spectacular aura aboutanru has a spectacular aura aboutanru has a spectacular aura about
По умолчанию

Вопрос к гуру по ардуино с скетчем. Есть блок питания на микро про она и кнопки отрабатывает но появилось желание сделать кнопку муте. Можно допустим для начала реализовать муте на заднюю передачу. Входов у ардуинки еще много то есть приходит +12в на вход ардуинки через резистор конечно и срабатывает муте. Заранее спасибо.
anru вне форума   Ответить с цитированием
Старый 11.12.2015, 18:01   #585
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 39
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от anru Посмотреть сообщение
Вопрос к гуру по ардуино с скетчем. Есть блок питания на микро про она и кнопки отрабатывает но появилось желание сделать кнопку муте. Можно допустим для начала реализовать муте на заднюю передачу. Входов у ардуинки еще много то есть приходит +12в на вход ардуинки через резистор конечно и срабатывает муте. Заранее спасибо.
на вход не через резистор, а через делитель.
oleg707 вне форума   Ответить с цитированием
Старый 19.12.2015, 00:06   #586
jurik097
Новый Пользователь
 
Регистрация: 11.01.2015
Возраст: 42
Город: Ростов на дону
Регион: 61
Машина: эмгранд ес7
Сообщений: 7
jurik097 is on a distinguished road
По умолчанию

Если навител 9.6 то в нем есть косяк , сам недавно столкнулся , попробуйте навител 9.5
jurik097 вне форума   Ответить с цитированием
Старый 31.12.2015, 02:35   #587
Alladim
Новый Пользователь
 
Регистрация: 03.12.2010
Возраст: 40
Город: Одесса
Регион: Украина
Машина: Mitsubishi Galant 8
Сообщений: 24
Alladim is on a distinguished road
По умолчанию

Цитата:
Сообщение от fedor5800 Посмотреть сообщение
Уважаемые знатоки, взял базовый скетч по управлению яркостью светодиода при помощи энкодера, но нашел только для 3х проводного, и попробовал его доработать для 4х проводного, а проверить не начем. Товарищ Maniac82
посоветовал онлайн конструктор https://123d.circuits.io/ но в нем нет энкодеров.
У кого есть возможность проверить скетч на работоспособность?
код для светодиода потом выкину))
Не проходит компиляцию, выдает ошибку(A0.ino: In function 'void loop()':
A0:51: error: 'encoder_B_prev' was not declared in this scope
A0:73: error: expected `}' at end of input
) на строке
if((!encoder_B) && (encoder_B_prev)){ // если состояние изменилось с положительного к нулю

Последний раз редактировалось Alladim; 31.12.2015 в 12:32.
Alladim вне форума   Ответить с цитированием
Старый 31.12.2015, 13:01   #588
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 39
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
По умолчанию

if((!encoder_B) && (encoder_B_prev)) // { если состояние изменилось с положительного к нулю
{}; // это по скетчу своему заполняй
oleg707 вне форума   Ответить с цитированием
Старый 03.01.2016, 18:50   #589
Рус1
Старший Пользователь
 
Регистрация: 07.04.2015
Возраст: 43
Регион: 56
Сообщений: 114
Рус1 is a jewel in the roughРус1 is a jewel in the roughРус1 is a jewel in the rough
По умолчанию

Мужики , прокоментируйте плиз по ардуине.
pccar.ru/showthread.php?p=347535#post347535
Рус1 вне форума   Ответить с цитированием
Старый 19.01.2016, 23:36   #590
demtro
Старший Пользователь
 
Регистрация: 17.12.2014
Возраст: 32
Город: Самара
Регион: 63, 163
Машина: Lifan Solano
Сообщений: 184
demtro is on a distinguished road
По умолчанию

Народ, заливаю данный скетч в ардуину и кнопки как-будто залипают (нажал-кнопка сработала и ни одна другая не сработает пока ее же еще раз не нажмешь), а так же на кнопке DELETE ардуина зависает и не реагирует ни на что, помогает перезагрузка ее только, уже что только не пробовал, куда копать?
Вложения
Тип файла: txt Джойстик.txt (11.2 Кб, 815 просмотров)
demtro вне форума   Ответить с цитированием
Ответ


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

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

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



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


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