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

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

lti1 10.09.2017 20:41

Цитата:

Сообщение от Rover (Сообщение 392068)
А как скетч поправить, чтобы при длительном нажатии кнопки, эмулирующем AltTab вызвать RESET ардуины?

Вначале нужно впаять перемычке между входом RST и цифровым входом/выходом, например 3-им.
В самом начале setup добавляете digitalWrite(3, HIGH);, вот так:
PHP код:

void setup()

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


далее добавляем digitalWrite(3, LOW); на удержание Alt+Tab:
PHP код:

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

if(millis()-eventTime<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)  
{  
digitalWrite(3LOW);
//flag = 0;  


Но всё это, какой-то кривой "костыль".
Цитата:

Сообщение от oleg707 (Сообщение 392075)
если ты сделаешь команду delay(10000); то ватчдог вроде должен сработать. Уже не помню свои опыты.
https://geektimes.ru/post/255800/

Ардуина не зависает, а просто не определяется 10-ой виндой.

Rover 12.09.2017 21:21

[QUOTE=lti1;392076]
Но всё это, какой-то кривой "костыль".

Кривой. Но эта поблема с ардуиной и вин 10 не только у меня:
http://arduino.ru/forum/apparatnye-v...comment-133389
Вот вроде бы решение:
https://github.com/arduino/Arduino/issues/3611

возможно ли его применить к нашему конкретному случаю?

Rover 13.09.2017 17:59

lti1, я пока временно прописал перезагрузку вместо Mute

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

if(millis()-time_tinkling && millis()-eventTime= 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)
{
digitalWrite(3, HIGH);
}


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;
}





Работает :) А можно дополнить AltTab длинным нажатием , сохранив сам AltTab?
А то делаю, как прописали - ничего не выходит :( ,а мне этой кнопкой пользоваться удобнее

lti1 13.09.2017 22:28

Rover, забыл уже свой код, так много лет прошло :).
Подправил своё предыдущее сообщение.
Вот так должно быть:
PHP код:

if(millis()-eventTime>time_holding && data >= alt_tab button_range && data <= alt_tab button_range && flag == 1)   
{   
digitalWrite(3LOW); 
//flag = 0;   



pine 21.09.2017 21:04

Я тут немножко полностью перелопатил код для адаптера кнопок. Используется все та же библиотека Tablet, но структура кода больше похожа на классическую реализацию конечного автомата. Да, так длиннее, но как по мне - это более читабельно, чем непонятные числовые флаги :) Кучка switch-case в функциях состояний - для единообразия. Чуть позже перепишу в типовые функции onPress, onRelease, onHold.

Общий GitHub репозиторий тут

Конкретно исходник скетча тут

Алгоритм работы
- состояние кнопок опрашивается каждые 50 мс
- исходное состояние конечного автомата - NOBUTTON
- если нажали какую-то кнопку, то переходим в состояние соответствующее этой кнопке (см функцию noButton() )
- каждая функция типа noButton(), prev(), next() и т.п. - состояние, параметр buttonState - переход в новое состояние

Как работает с точки зрения пользователя
- если нажали и отпустили кнопки NEXT или PREV быстрее чем 250 мс - переключились между треками
- если держим PREV или NEXT - каждые 250 мс перематываем
- громкость увеличивается или уменьшается каждые 250 мс
- Play/Pause нажимается при отпускании кнопки Play/Pause (для устранения ложных срабатываний)

Alt-Tab и прочее не реализовано ввиду ненужности лично мне, но пулл-реквесты принимаются.

Antoxa 14.10.2017 17:42

Создал аналогичную тему, в данной тебе постараемся разобрать как подключить резистивную клавиатуру через Bluetooth. Сам пока не силен в данном вопросе, поэтому знатоков приглашаю дать мастер класс.
http://pccar.ru/showthread.php?p=393326#post393326

Antoxa 31.10.2017 01:36

Цитата:

Сообщение от Antoxa (Сообщение 393349)
Создал аналогичную тему, в данной тебе постараемся разобрать как подключить резистивную клавиатуру через Bluetooth. Сам пока не силен в данном вопросе, поэтому знатоков приглашаю дать мастер класс.
http://pccar.ru/showthread.php?p=393326#post393326

Ребят помогите пожалуйста, в ардуинках не силен, но сей девайс собрать очень хочется.

DizzJK 20.12.2017 22:18

кто нибудь windows 10 использует? побороли отвал кнопок после перезагрузки?

Nasrok 28.02.2018 19:04

Коллеги, подскажите, имею вот такую клавиатуру
https://3.downloader.disk.yandex.ru/...&size=1280x815
Подключается к планшету как клавиатура и значения клавиш соответствующие. При отключении NumLock, пререходит в режим стрелок.
Я правильно понял, после прочтения 50 страниц, что для того чтобы полностью раскрыть ее функционал (запуск приложений, альттаб, Home? громкость и т.д., мне нужно подключать ее к ардуино, и уже ардуино к планшету?

Или ещё читать? :)

lti1 28.02.2018 22:33

Цитата:

Сообщение от Nasrok (Сообщение 399772)
Коллеги, подскажите, имею вот такую клавиатуру

Подключается к планшету как клавиатура и значения клавиш соответствующие. При отключении NumLock, пререходит в режим стрелок.
Я правильно понял, после прочтения 50 страниц, что для того чтобы полностью раскрыть ее функционал (запуск приложений, альттаб, Home? громкость и т.д., мне нужно подключать ее к ардуино, и уже ардуино к планшету?

Или ещё читать? :)

Не правильно.
http://pccar.ru/showthread.php?p=319975#post319975


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

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