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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Дополнительные устройства (http://pccar.ru/forumdisplay.php?f=177)
-   -   Резистивные кнопки под андроид (http://pccar.ru/showthread.php?t=18478)

oleg707 09.09.2015 19:33

Цитата:

Сообщение от Maniac82 (Сообщение 337694)
Проблема известная - наводки в звуке из за земляной петли. Разве они не появятся если я землю возьму с минуса авто? Избавился от них как раз NSDшкой.

у меня наводок нет. Что я делаю не так?

По сабжу как вариант питать ардуину от преобразователя типа кренки. Хреноватый вариант, как по мне.

<<МиТяЙ>> 09.09.2015 22:31

ребят, а есть команды для принятия вызова и отмены?

strike990 20.09.2015 00:28

подскажите пожалуйста, залил скетч из поста №307. Спасибо большое за него, основа работает(больше всего интересовался переключением треков), но вот с громкостью вылезла проблема. При нажатии кнопки volume up - иногда самопроизвольно происходят разные действия ( чаще всего переключение трека назад, иногда пауза). Сделал вывод значений в монитор, понял что иногда проскакивают значения около 173 ( значение volume up = 16), в режиме покоя выдает 340. Все остальные кнопки работают исправно. Подскажите пожалуйста, что может быть?

Maniac82 20.09.2015 06:53

Скорее всего нужно сделать подтяжку к земле или к +5. Плюс сопротивления подобрать так, чтобы разброс значений был максимален.

lti1 20.09.2015 08:39

Цитата:

Сообщение от strike990 (Сообщение 338530)
подскажите пожалуйста, залил скетч из поста №307. Спасибо большое за него, основа работает(больше всего интересовался переключением треков), но вот с громкостью вылезла проблема. При нажатии кнопки volume up - иногда самопроизвольно происходят разные действия ( чаще всего переключение трека назад, иногда пауза). Сделал вывод значений в монитор, понял что иногда проскакивают значения около 173 ( значение volume up = 16), в режиме покоя выдает 340. Все остальные кнопки работают исправно. Подскажите пожалуйста, что может быть?

Скорее всего плохой контакт на этой кнопке, попробуйте разобрать и по чистить.

strike990 30.09.2015 21:38

Почистил кнопки, не помогло. Сначала работало как раньше, через время начались глюки на всех кнопках. Может с таймингами проблема? Если мониторить через первый скрипт (который ловит код кнопок), то получается четкие значения, без дребезга.

lti1 30.09.2015 22:37

Цитата:

Сообщение от strike990 (Сообщение 339379)
Почистил кнопки, не помогло. Сначала работало как раньше, через время начались глюки на всех кнопках. Может с таймингами проблема? Если мониторить через первый скрипт (который ловит код кнопок), то получается четкие значения, без дребезга.

Попробуйте увеличить значение еint time_tinkling = 10;. Как у Вас организованно питание ардуино? Удержание работает нормально или тоже значения скачут?

strike990 30.09.2015 22:47

Цитата:

Сообщение от lti1 (Сообщение 339383)
Попробуйте увеличить значение еint time_tinkling = 10;. Как у Вас организованно питание ардуино? Удержание работает нормально или тоже значения скачут?

Спасибо большое, Только что разобрался, методом проб и ошибок добавил delay(15) после analogRead.
(data=analogRead(analogPin);
delay(15);), и заработало. Пока все ок, нужно тестировать.
С питанием не заморачивался, просто через usb из хаба. С удержанием все было хорошо все время, сейчас немного медленнее начала работать перемотка. Сейчас попробую допилить паузу на удержание кнопки кнопки mode (нажатие - alt+tab).

Все, с паузой на удержание разобрался. Огромное спасибо за скетч, все продумал за меня)

lti1 30.09.2015 23:15

delay не лучшее решение, попробуйте так как я выше предложил. И с питанием нужно сразу определится и сделать его максимально стабильным, иначе значения кнопок потом могут поменялся.

strike990 30.09.2015 23:23

К сожалению данная переменная ситуацию не изменила. Сейчас поднял значение до 300, но проскакивает пауза при повышении громкости. (это если убрать delay). А с какими сложностями можно столкнуться с delay?

lti1 30.09.2015 23:28

Цитата:

Сообщение от strike990 (Сообщение 339389)
К сожалению данная переменная ситуацию не изменила. Сейчас поднял значение до 300, но проскакивает пауза при повышении громкости. (это если убрать delay). А с какими сложностями можно столкнуться с delay?

300 очень много, пробуйте 35-45.
delay()
Цитата:

Не рекомендуется использовать эту функцию для событий длиннее 10 миллисекунд, т.к. во время останова, не могут быть произведены манипуляции с портам, не могут быть считаны сенсоры или произведены математические операции. В качестве альтернативного подхода возможно контролирование времени выполнения тех или иных функций с помощью millis().

strike990 01.10.2015 11:47

Цитата:

Сообщение от lti1 (Сообщение 339390)
300 очень много, пробуйте 35-45.
delay()

Нет, почему-то не сработало ничего с Вашими значениями. Насколько я понял delay создаст мне проблемы при реализации следующего проекта:
подключиться параллельно к кнопкам климат контроля, для просчитывания количества нажатий на кнопки ( кнопка вверх - переменная + 0.5, вниз - 0.5), так как вывод информации о климате был на монохромный дисплей, который был заменен на nexus, а настраивать климат стало совсем не удобно)

lti1 01.10.2015 23:56

Обновил посты 182 и 307.
Доработал немного скетчи в 307 посту, теперь значения кнопок не должны меняться при изменении напряжения питания ардуино.
В 182 прикрепил доработанные файлы USBAPI.h, HID.cpp, которые теперь работают и с IDE 1.6.5. А так же благодаря Alex_St добавил поддержку новых мультимедиа клавиши:
Код:

// 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


Maniac82 02.10.2015 06:41

Молодец! Прогресс не стоит на месте :)
Кстати, а можно добавить мультимедийные кнопки Sleep и Wake? Если подключать клавиатуру, то они работают. Думаю пригодились бы больше чем power ;)

lti1 02.10.2015 08:11

Вложений: 1
Цитата:

Сообщение от Maniac82 (Сообщение 339475)
Молодец! Прогресс не стоит на месте :)
Кстати, а можно добавить мультимедийные кнопки Sleep и Wake? Если подключать клавиатуру, то они работают. Думаю пригодились бы больше чем power ;)

Насколько я понял, на андройде они выполняют одну и туже функцию, ссылка.

klimsky 14.10.2015 12:28

nexus 7 3g, прошивка autodroid 1.2, питание nsd10-12s5, хаб DLINK dub-h7, Arduino Leonardo подключен как usb-hid, в списке подключенных usb устройств (EasyCap +usb-flash 32gb +Звуковая Behringer + Arduino) Arduino присутствует. собираю на столе через блок питания 12В, нажатия кнопок обрабатываются, всё работает.
вариант, подключаю Arduino напрямую через OTG, кнопки работают
беда в том, что если подключаю В АВТО, кнопки не работают. в чем может быть проблема? другие устройства, подключенные через usb-hub, работают. при этом флешки монтируются, easy cap, внешняя звуковая - всё работает. Arduino присутствует, но кнопки не нажимаются. физическая клавиатура при этом определяется, значок клавиатуры висит в уведомлениях
в чем может быть проблема? наводки по питанию? что делать и кто (или что?) виноват?

Maniac82 14.10.2015 13:13

Кнопки то одни и те-же нажимаете? :)
Для начала написать чтоб в Serial порт выводились значения нажатых кнопок и убедиться, что их значения дома и в машине совпадают :)

klimsky 14.10.2015 14:27

Цитата:

Сообщение от Maniac82 (Сообщение 340423)
Кнопки то одни и те-же нажимаете? :)
Для начала написать чтоб в Serial порт выводились значения нажатых кнопок и убедиться, что их значения дома и в машине совпадают :)

подключаю ноут вместо планшета минуя хаб, в Serial порт выводятся значения нажатых кнопок, все работает. значения совпадают, громкость регулируется. Arduino + планшет напрямую через otg работает, через хаб - нет. Serial на планшете поднять не могу, когда arduino подключен через хаб в авто.

Maniac82 14.10.2015 14:57

На планшете прогу usbterminal установи, она сможет показать значения.

ali_vlad 14.10.2015 15:49

Цитата:

Сообщение от lti1 (Сообщение 339479)
Насколько я понял, на андройде они выполняют одну и туже функцию, ссылка.

Не совсем в тему, но
Мне тут насоветовали...

anru 15.10.2015 14:34

Цитата:

Сообщение от Maniac82 (Сообщение 340426)
На планшете прогу usbterminal установи, она сможет показать значения.

А можно поподробнее как эта программа работает я думаю это очень будет полезно для всех. Проблема есть такая на столе одни значения а в машине другие да и если есть разброс значений сразу можно будет понять что делать, править числа или питание ардуинки править.

lti1 15.10.2015 14:56

Цитата:

Сообщение от anru (Сообщение 340527)
А можно поподробнее как эта программа работает я думаю это очень будет полезно для всех. Проблема есть такая на столе одни значения а в машине другие да и если есть разброс значений сразу можно будет понять что делать, править числа или питание ардуинки править.

Так же как монитор порта IDE на ПК.
Можно ещё использовать Anduino - Arduino usb terminal.

Maniac82 15.10.2015 18:16

Цитата:

Сообщение от lti1 (Сообщение 340528)
Так же как монитор порта IDE на ПК.
Можно ещё использовать Anduino - Arduino usb terminal.

У меня она почему-то может только передавать в порт - ничего не принимает.
А USBterminal наоброт - ничего не передает, зато хорошо принимает :)
Причем одновременно с Ардуиной может работать только одна программа насколько я понял.
anru, ставь юсбтерминал, убедись что программа видит ардуино (если ничего не назначал, то при подключении ардуины должна выдать окошко каким приложением открыть ардуину), затемжми кнопочку "RTS" справа сверху. Начнет показывать всё, что пишется в порт.

klimsky 15.10.2015 19:32

помогите разобраться с коммуникацией Arduino и Android?
не получается подключиться по Serial к Arduino, не работает скрипт с XDA. в списке устройств Arduino LLC присутствует. Android USB Serial Monitor Lite не подключается, UsbTerminal подключается, но сообщения с Arduino не выводятся

1) здесь: http://forum.xda-developers.com/show....php?t=2635159 указана настройка Arduino:
Код:

void setup()
{
  pinMode(KPin, OUTPUT);
  pinMode(SPin, INPUT); 
 
  Serial.begin(115200); 
  while (!Serial); 
  Serial.flush();
 
  digitalWrite(KPin, HIGH);
  delay(500);
  Serial.print("AT+RESET\r\n");
  Serial.flush();
  delay(1000);
  Serial.print("AT+INIT\r\n");
  Serial.flush();
  delay(1000);
  Serial.print("AT+INQ\r\n");
  Serial.flush();
  digitalWrite(KPin, LOW);
}

здесь, я так понимаю, блок настройки Serial:
master device configuration:
Код:

//AT+ROLE=1 - master
//AT+CMODE=1 - connect to all device (or yse could use 0 with BAT+BIND=mac,of,you,device)
//AT+SENM=3,0 - allow to connect to tablet after pair even table if hidden
//AT+IAC=9e8b33 - stay visible

как выполнить эти команды? в Tasker-е? UPD: это настройка Bluetooth?

2) как я понимаю, Arduino может работать одновременно в режиме Serial и usb-hid. максимум что у меня получается - на столе работают мультимедиа-кнопки, когда Arduino работает в режиме клавиатуры
3) что за окно выбора приложения по-умолчанию для подключаемого usb-устройства? можно его как-то отключить? даже есть установить его по-умолчанию, почему оно выскакивает каждый раз при подключении?

Maniac82 15.10.2015 20:10

Первый пункт не нужен. Это для BT все.
3. Вроде не будет выскакивать если оставить только одно приложение, использующее ардуину. Остальные удалить.
Запусти usbterminal, подключи ардуину, затем на ардуине кнопочку сброса нажми - у меня окошко вылазит, выбираем использовать usbterminal и все - пишет программа, что устройство подключено. Должно работать при таком раскладе.

bizz 24.10.2015 22:19

Прошу помощи! Т.к. в написании скетчей руки из заднего места растут то прошу помощи тут. Надо из данного скетча убрать все значения кнопок http://pccar.ru/showpost.php?p=333238&postcount=876 ,а вставить вот это http://pccar.ru/showpost.php?p=309621&postcount=27 как провернуть сие деяние?

bizz 25.10.2015 16:29

Вложений: 1
Прошу глянуть, правильно ли совместил два скетча.

demtro 29.10.2015 22:37

Вложений: 2
Ребят нужна помощь! Суть в следующем: есть скетч - обрабатывает включение и выключение всей системы, а так же кнопки руля, раньше надо было передавать 6 кнопок в планшет, сейчас надо только 1 (Play/Pause), остальные 5 должны замыкать и держать замкнутым соответствующее оптореле пока нажата кнопка.
Считывание значений проходит нормально, значения вношу в скетч, но на оптореле сигнал не поступает. Схема и скетч во вложениях

Kree 06.11.2015 10:54

Цитата:

Сообщение от lti1 (Сообщение 277286)
Начало здесь.
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

Подскажите, реально ли заставить плату Arduino NANO выполнять эти функции?

lti1 06.11.2015 11:35

Цитата:

Сообщение от Kree (Сообщение 342675)
Подскажите, реально ли заставить плату Arduino NANO выполнять эти функции?

Пост 307
Цитата:

Сообщение от lti1 (Сообщение 319975)
Работает только с Arduino Pro Micro и Arduino Leonardo на чипе ATmega32u4.


yuriy m 11.11.2015 20:23

Цитата:

Сообщение от demtro (Сообщение 341976)
Ребят нужна помощь! Суть в следующем: есть скетч - обрабатывает включение и выключение всей системы, а так же кнопки руля, раньше надо было передавать 6 кнопок в планшет, сейчас надо только 1 (Play/Pause), остальные 5 должны замыкать и держать замкнутым соответствующее оптореле пока нажата кнопка.
Считывание значений проходит нормально, значения вношу в скетч, но на оптореле сигнал не поступает. Схема и скетч во вложениях

Еще актуально ?

fedor5800 13.11.2015 17:14

Всем привет, друзья подскажите, как через энкодер реализовать прокрутку по меню и в списках и возможно ли это? Заказал промикро, буду думать как соеденить резистивные кнопки руля + планшет+магнитола Pioneer deh5600. И как определить на магнитоле какой источник испрользуется, в магнитолу залесть не проблема. Кто подскажет где посмотреть по магнитоле?
Пока юзаю переделаную плату от ЮСБ клавы))

lti1 13.11.2015 18:01

Цитата:

Сообщение от fedor5800 (Сообщение 343334)
И как определить на магнитоле какой источник испрользуется, в магнитолу залесть не проблема. Кто подскажет где посмотреть по магнитоле?

Я на Pioneer AVH-P3100DVD считывал режим по протоколу I2C с помощью ардуино.

fedor5800 13.11.2015 20:58

Цитата:

Сообщение от lti1 (Сообщение 343340)
Я на Pioneer AVH-P3100DVD считывал режим по протоколу I2C с помощью ардуино.

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

При не замкнутых кнопках сопротивление баластного (или что это за сопротивление?) =3,6 КОм
"О"=285 Ом
"-" =83 Ом
"+" = 165 Ом
назад = 1,47 КОм
трэк назад =790 Ом
трэк вперед = 460 Ом
Я так понимаю в скетче по кнопкам нужно будет выставить эти значения.
Так а что на счет энкодера, возможно сделать на нем прокрутку списка?

P.S.
Как то, пробовал подключать ЮСБ мышь к планшетке, так при прокрутке колесиком работала прокрутка в списках и всех меню. Решил опять заморочиться с мышой для прокрутки, но почему то теперь этот фокус не работает, не помню какую мышь тогда подключал.

yuriy m 15.11.2015 17:42

Вложений: 1
Цитата:

Сообщение от demtro (Сообщение 341976)
Ребят нужна помощь! Суть в следующем: есть скетч - обрабатывает включение и выключение всей системы, а так же кнопки руля, раньше надо было передавать 6 кнопок в планшет, сейчас надо только 1 (Play/Pause), остальные 5 должны замыкать и держать замкнутым соответствующее оптореле пока нажата кнопка.
Считывание значений проходит нормально, значения вношу в скетч, но на оптореле сигнал не поступает. Схема и скетч во вложениях

В личку получил... Теперь вопрос,правильно ли я понимаю - у вас все работает по отдельности тиская на каждую и 6ти кнопок срабатывает один выход ? так ? Если так ,дальше - вам нужно что-бы при кратком нажатии на кнопку плей/пауза срабатывали все шесть выходов ? Чуть по подробней что.есть и что хочется... Если я правильно понял то надо нечто подобное смотри в о вложении.

yuriy m 15.11.2015 17:48

Цитата:

Сообщение от fedor5800 (Сообщение 343357)
"О"=285 Ом
"-" =83 Ом
"+" = 165 Ом
назад = 1,47 КОм
трэк назад =790 Ом
трэк вперед = 460 Ом
Я так понимаю в скетче по кнопкам нужно будет выставить эти значения.

Нет. Обычно прописывается среднее значение ацп при нажатой кнопке.(которое можно вывести в порт и посмотреть)...

demtro 15.11.2015 20:15

Цитата:

Сообщение от yuriy m (Сообщение 343488)
В личку получил... Теперь вопрос,правильно ли я понимаю - у вас все работает по отдельности тиская на каждую и 6ти кнопок срабатывает один выход ? так ? Если так ,дальше - вам нужно что-бы при кратком нажатии на кнопку плей/пауза срабатывали все шесть выходов ? Чуть по подробней что.есть и что хочется... Если я правильно понял то надо нечто подобное смотри в о вложении.

Есть 6 кнопок на руле: play, next, prev, mode, гр+, гр-.
Надо play передавать только в планшет, а остальные управляют оптореле( каждая своим): нажал гр+ замкнулось оптореле #3, например, и пока кнопка нажата оптореле замкнуто. Нажал mode замкнулось оптореле #5 и т.д

lti1 15.11.2015 23:09

Цитата:

Сообщение от demtro (Сообщение 343515)
Есть 6 кнопок на руле: play, next, prev, mode, гр+, гр-.
Надо play передавать только в планшет, а остальные управляют оптореле( каждая своим): нажал гр+ замкнулось оптореле #3, например, и пока кнопка нажата оптореле замкнуто. Нажал mode замкнулось оптореле #5 и т.д

Пробуйте.

fedor5800 15.11.2015 23:59

Вложений: 2
Уважаемые знатоки, возможно задействовать такой энкодер? У него 4 вывода, а не 3 как на обычных. 3 вывода переключаются по очереди на 4.

oledv 16.11.2015 09:47

fedor5800 прекрасно работает, у вас 3 состояния, три разряда, в зависимости от комбинации определяем направление вращения.
Можно задействовать 3 цифровых или один аналоговый вход.
Прекрасно наработает без прерывания.


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

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