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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2017, 13:57   #751
mihrun79
Новый Пользователь
 
Регистрация: 09.02.2017
Город: красноярск
Регион: 24
Машина: nissan wingroad
Сообщений: 5
mihrun79 is on a distinguished road
По умолчанию

Цитата:
Сообщение от blogsylar Посмотреть сообщение
Два источника лучше ставить на 2 разных канала А0 и А1 и немного править в скетче. Сам сажал 2 источника на А0 и в итоге такая каша.
Второй канал: 5в брать оттуда же,и подтяжку на А1 добавлять?
mihrun79 вне форума   Ответить с цитированием
Старый 31.03.2017, 14:01   #752
mihrun79
Новый Пользователь
 
Регистрация: 09.02.2017
Город: красноярск
Регион: 24
Машина: nissan wingroad
Сообщений: 5
mihrun79 is on a distinguished road
По умолчанию

Цитата:
Сообщение от lti1 Посмотреть сообщение
Начало здесь.
Nett, в папке \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 на те, что во вложении соответственно. И добавляете в код из поста murano нужные действия, не нужные удаляете
Код:
int analogPin=0;
int data;

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

void loop()
{
  data=analogRead(analogPin); //читаем значение нажатой кнопки
  Serial.println(data); //для определения кодов нажатых кнопок на мониторе порта
  /*поддерживаемые коды управляющих клавиш
  http://arduino.cc/en/Reference/KeyboardModifiers*/
  if (data==614)  Keyboard.write(176); //ENTER
  if (data==122)  Keyboard.write(216); //стрелка влево
  if (data==165)  Keyboard.write(215); //стрелка вправо
  if (data==216)  Keyboard.write(218); //стрелка вверх
  if (data==276)  Keyboard.write(217); //стрелка вниз
  if (data>=315 && data<=345)  // приглушение звука
    {
      Remote.mute();
      Remote.clear();
    }
  if (data>=420 && data<=460)  // воспроизведение / пауза
    {
      Remote.play_pause();
      Remote.clear();
    }
  delay(100);
}
И как писал murano, добавить диапазон значения +- 5%, напимер если значение клавиши 330 вместо data==330 использовать data>=315 && data<=345 и т.д.
Возможные варианты мультимедиа клавиш
Код:
// Volume
Remote.increase();	Volume Up
Remote.decrease();	Volume Down
Remote.mute();		Mute
 
// Playback
Remote.play();		Play
Remote.pause();		Pause
Remote.play_pause();	Play/Pause
Remote.stop();		Stop
 
// Track Controls
Remote.next();		Next
Remote.previous();	Previous
Remote.forward();	Fast Forward
Remote.rewind();	Rewind

Remote.power();		Power
Remote.home();		WWW Home
Remote.search();	WWW Search
Кстати, какая у Вас плата? Должна быть Arduino Leonardo или Arduino Pro Micro.
Исходник здесь, Stop заменен на Play/Pause
Alt/tab и кнопки планшета не могу реализовать ?Есть решения к этому скетчу?
mihrun79 вне форума   Ответить с цитированием
Старый 18.04.2017, 12:18   #753
blogsylar
Старший Пользователь
 
Регистрация: 19.04.2016
Город: Подольск
Регион: 50, 90, 150
Машина: Ford Focus 3
Сообщений: 379
blogsylar is a jewel in the roughblogsylar is a jewel in the roughblogsylar is a jewel in the roughblogsylar is a jewel in the rough
По умолчанию

Всем привет! Суть такова. Ардуино подключено к кнопкам, но не резистивно, по двум проводам, а с каждой кнопки идет по два провода и подключается каждая к своему порту. В файлике vendor.kl прописаны все действия, типа home, back, next, volume_up, и тд., эти команды отрабатывает на ура. Так же прописаны горячие клавиши, типа ctrl+1. ctrl+2... итд. Вопрос вот в чем. В 4-м андройде была панель быстрых клавиш, или типа того, quick launch, что ли, и в ней можно было назначать целые приложения на комбинации кнопок. В 6-м андройде это вырезали. Есть ли способ интерпретировать это сочетание в запуск приложения? Может через таскер? Андройд само нажатие видит, но не знаю как назначить на него запуск приложения

Последний раз редактировалось admin; 28.04.2017 в 11:25.
blogsylar вне форума   Ответить с цитированием
Старый 20.04.2017, 17:19   #754
maxymike
Пользователь
 
Регистрация: 01.06.2015
Возраст: 41
Город: Владимир
Регион: 33
Машина: Chery Tiggo Fl
Сообщений: 82
maxymike is on a distinguished road
По умолчанию

Не могу подружить про микро и bluetooth hc 05,hc 06. Питание давал и 3,3 и 5 вольт. RX и TX местами менял-бесполезно. Блютус виден,подключается,но данные не сыпет. По usb все хорошо. HC 05-06 работают с UNO отлично. В чем может быть собака?

Последний раз редактировалось admin; 28.04.2017 в 11:24.
maxymike вне форума   Ответить с цитированием
Старый 20.04.2017, 17:29   #755
ВладимирC
Старший Пользователь
 
Регистрация: 20.08.2007
Возраст: 52
Город: Москва
Регион: 77, 97, 99, 177
Машина: Hyunday Grandeur 3.3
Сообщений: 852
ВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of light
По умолчанию

Цитата:
Сообщение от maxymike Посмотреть сообщение
Не могу подружить про микро и bluetooth hc 05,hc 06. Питание давал и 3,3 и 5 вольт. RX и TX местами менял-бесполезно. Блютус виден,подключается,но данные не сыпет. По usb все хорошо. HC 05-06 работают с UNO отлично. В чем может быть собака?
3.3В не питание нужно, а логические уровни, делители попробуйте поставить на TX RX.

Последний раз редактировалось admin; 28.04.2017 в 11:24.
ВладимирC вне форума   Ответить с цитированием
Старый 30.04.2017, 01:49   #756
Alladim
Новый Пользователь
 
Регистрация: 03.12.2010
Возраст: 41
Город: Одесса
Регион: Украина
Машина: Mitsubishi Galant 8
Сообщений: 24
Alladim is on a distinguished road
По умолчанию

Всех приветствую! Нужна Ваша помощь!
Недавно раздобыл себе вот такую панель управления от финика.


Давняя мечта что то подобное заточить под управление планшетом.
С кнопками разобрался, там матрица 5*5=25 кнопок (26-я аварийка выведена отдельно)
Использую Arduino pro micro. Подключил, залил для теста простенький скетч- на мониторе отзываются все кнопки без проблем. Вот скетч:

Код HTML:
#include <Keypad.h> // подключаем нашу библиотеку
const byte ROWS = 5; //число строк у нашей клавиатуры
const byte COLS = 5; //число столбцов у нашей клавиатуры
char hexaKeys[ROWS][COLS] = {
{'1','2','3','4','5'}, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования
{'6','7','8','9','0'},
{'A','B','C','D','E'},
{'F','G','H','I','J'},
{'K','L','M','N','O'}
};
byte rowPins[ROWS] = {2, 3, 4, 5, 6}; //к каким выводам подключаем управление строками
byte colPins[COLS] = {7, 8, 9, 10, 16}; //к каким выводам подключаем управление столбцами
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){
Serial.begin(9600);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
}
Собственно вопрос: как мне реализовать управление по подобию поста Ув. lti1
http://pccar.ru/showpost.php?p=319975&postcount=307
С учетом того что клавиатура не резистивная? В програмировании мягко говоря не очень. Поэтому не могу пока понять как считать нажатие моей клавиатуры и присвоить ей действие, которое будет отправлено в планшет.

Еще как вариант, будут ли работать приложения такие как "Remote steering wheel control" или "SerialManager" с матричной клавиатурой?

Помогите пожалуйста реализовать мечту идиота)
Буду очень благодарен за помощь!
Alladim вне форума   Ответить с цитированием
Старый 04.05.2017, 09:51   #757
wanix
Новый Пользователь
 
Аватар для wanix
 
Регистрация: 11.03.2017
Город: Железногорск
Регион: 24
Машина: Pathfinder R51
Сообщений: 6
wanix is on a distinguished road
По умолчанию

Народ, направьте в правильное русло. Есть кнопки на руле резистивные, есть sony MEX-DV1600U у него есть вход для пульта судя по всему такого : https://www.drive2.ru/l/288230376152759568/ так вот у меня возникло желание впендюрить ему родные кнопки руля чтобы он их кушал.
Я это понимаю как: берем ардуину по выше указанным методам читаем кнопки, понимаем кто есть кто, а потом как это скормить соньке ?
wanix вне форума   Ответить с цитированием
Старый 04.05.2017, 11:23   #758
blogsylar
Старший Пользователь
 
Регистрация: 19.04.2016
Город: Подольск
Регион: 50, 90, 150
Машина: Ford Focus 3
Сообщений: 379
blogsylar is a jewel in the roughblogsylar is a jewel in the roughblogsylar is a jewel in the roughblogsylar is a jewel in the rough
По умолчанию

Цитата:
Сообщение от wanix Посмотреть сообщение
Народ, направьте в правильное русло. Есть кнопки на руле резистивные, есть sony MEX-DV1600U у него есть вход для пульта судя по всему такого : https://www.drive2.ru/l/288230376152759568/ так вот у меня возникло желание впендюрить ему родные кнопки руля чтобы он их кушал.
Я это понимаю как: берем ардуину по выше указанным методам читаем кнопки, понимаем кто есть кто, а потом как это скормить соньке ?
Нужен цифровой потенциометр. А в общем - так
blogsylar вне форума   Ответить с цитированием
Старый 04.05.2017, 13:26   #759
wanix
Новый Пользователь
 
Аватар для wanix
 
Регистрация: 11.03.2017
Город: Железногорск
Регион: 24
Машина: Pathfinder R51
Сообщений: 6
wanix is on a distinguished road
По умолчанию

Цитата:
Сообщение от blogsylar Посмотреть сообщение
Нужен цифровой потенциометр. А в общем - так
спасибо
wanix вне форума   Ответить с цитированием
Старый 06.05.2017, 02:02   #760
Alladim
Новый Пользователь
 
Регистрация: 03.12.2010
Возраст: 41
Город: Одесса
Регион: Украина
Машина: Mitsubishi Galant 8
Сообщений: 24
Alladim is on a distinguished road
По умолчанию

В общих чертах накидал с горем пополам вот такой скетч
Код HTML:
#include <Keypad.h> // подключаем нашу библиотеку

const byte ROWS = 5; //число строк у нашей клавиатуры

const byte COLS = 5; //число столбцов у нашей клавиатуры

char hexaKeys[ROWS][COLS] = {

{'1','2','3','4','5'}, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования

{'6','7','8','9','0'},

{'A','B','C','D','E'},

{'F','G','H','I','J'},

{'K','L','M','N','O'}



};

byte rowPins[ROWS] = {2, 3, 4, 5, 6}; //к каким выводам подключаем управление строками

byte colPins[COLS] = {7, 10, 16, 14, 15}; //к каким выводам подключаем управление столбцами

//initialize an instance of class NewKeypad

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup()
{
  PCICR=1<<PCIE0; 
  PCMSK0=(1<<PCINT5)|(1<<PCINT4); 
  pinMode (8,INPUT_PULLUP); 
  pinMode (9,INPUT_PULLUP); 

  Keyboard.begin();
  Serial.begin(9600);
}
// настройка функциональных клавиш
void loop(){ 
  char customKey = customKeypad.getKey();



// назначение действий на кнопки


if (customKey == 'B') {
  
Keyboard.press(KEY_UP_ARROW);
delay (100);
Keyboard.releaseAll();
}
if (customKey == '2') {
  
Keyboard.press(KEY_DOWN_ARROW);
delay (100);
Keyboard.releaseAll();


}
if (customKey == 'O') {
  
Remote.previous();
delay (100);
Remote.clear();


}if (customKey == '7') {
  
Remote.next();
delay (100);
Remote.clear();

}if (customKey == '4') {
  
Remote.play_pause();
delay (100);
Remote.clear();

}if (customKey == '5') {
  
Remote.mute();
delay (100);
Remote.clear();

}if (customKey == '9') {
  
Keyboard.press(KEY_RETURN);
delay (100);
Keyboard.releaseAll();
  

Serial.println(customKey);
}

} 


// часть кода для регулировки громкости энкодером  

ISR (PCINT0_vect){ 
static byte old_n=PINB&B00110000; 
byte new_n=PINB&B00110000; 
if (old_n==32&&new_n==48||old_n==16&&new_n==0) { 
        Remote.increase();  
        delay(10);   
        Remote.clear();} 
if (old_n==16&&new_n==48||old_n==32&&new_n==0) { 
        Remote.decrease(); 
        delay(10);   
        Remote.clear();} 
old_n= new_n;
} 


Все кнопки работают, энкодер работает, нажатия на кнопки назначать получается. Но ! очень хочется реализовать управление с коротким/ длинным нажатием как в скетче Ув. lti1
http://pccar.ru/showpost.php?p=319975&postcount=307.
Ну ни как я не могу въехать, как переделать строки
Код HTML:
if(millis()-eventTime>10 && millis()-eventTime<499 && data>=165 && data<=185) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 7;
}
под матричную клавиатуру, в которой нету дребезга, не надо ничего сравнивать.
Очень прошу, на примере одной команды перемотки вперед, подскажите что нужно добавить в мой скетч, в том числе над циклом loop.
Alladim вне форума   Ответить с цитированием
Ответ


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

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

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



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


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