![]() |
Encoder + Arduino + Резистивные кнопки
В принципе в машине минимальный набор кнопок для любого кар-писишника это: Vol+, Vol-, AltTab, Previous и Rewind.Что на форуме уже реализовано в сообщении уважаемого lti1
есть ещё куча примеров и уроков как здесь на форуме так и на просторах инета о том как прикрутить энкодер к ардуине например вот http://www.pccar.ru/showthread.php?t=20222 Теперь для меня встал вопрос как это объединить в один скетч и что бы это всё работало как клавиатура при подключении к любому PC в том числе и планшету. Прошу помощи знающих и ведающих програмированием :blush: |
теория
http://arduino.ru/forum/programmirov...ra-pod-android коды клавиш https://code.google.com/p/androhid/wiki/Keycodes ардуина годится любая, которая подключается напрямую к USB, без всяких USB-Serial мостов (FT232, CH340 etc.) Читаем ссылки до полного просветления. Задаем вопросы, хотя там и так все понятно: прикидываемся USB-клавой, скетчем обрабатываем кнопки и энкодер, посылаем нужные сканкоды клавиатуры. Будет работать в любом аппарате на Андроид с поддержкой OTG. |
Спасибо за ликбез, но это я всё читал и ничего непонятно. Мои знания в програмировании заканчиваются на школьном уровне, это как построить космический корабль кандидату юридических наук.
Прошу помощи в предложениях что где и куда писать? вот так выглядит рабочий скетч для энкодера PHP код:
PHP код:
подскажите как их объединить? |
Нашел ещё одну тему
http://www.pccar.ru/showthread.php?t=20222 может всё таки кто нибудь подключится? или все грамотные а делиться грамотой стыдно? Едиственное там все регулировки делаются фубаром, а хотелось бы на прямую в ОС регулировать громкость |
Собрал два вместе
Откуда эти либы Keyboard и Remote - лучше спросить в тех ветках, откуда взяты эти куски кода. PHP код:
|
Спасибо за сборку данного скетча, и с библиотеками всё норм, ни каких ошибок нет.
Но вот почему-то часть отвечающая за энкодер не работает при чем не могу понять почему((( Пытался заставить работать скетч с энкодером не получается, как он у меня заработал в прошлый раз не могу понять может сделать всю сборку попроще типа вот такой? PHP код:
|
Решил сделать Encoder + Arduino + Резистивные кнопки.
Только у меня другой подход. Я хочу сделать плату на Atmega8. Размеры платы не более 5х5 см. В плату будут подключаться резистивные кнопки и энкодер. Мультимедиа клавишы 3 цифровых входа Энкодер VOL+ //// VOL- //// MUTE //// UNMUTE 5 ¬ходов кнопки матрица 5х4 1 Play/Pause 2 Stop 3 Next 4 Previous 5 Brightness+ 6 Brightness- 7 Power 8 Reset 9 Forward 10 Back 11 Refresh 12 Full Screen 13 Sleep 14 Tab 15 Enter 16 Space 17 Lock 18 Reserve 19 Reserve 20 Reserve Схема соединений уже нарисована, плата разведена. Осталось сделать печатные платы и прошить. Нужны соискатели готовые приобрести плату (без компонентов). 10 плат обойдется в 20$, 2$ за штуку при условии 10 человек. Жду вопросов и предложений. |
Цитата:
Ардуино всё таки универсальная штуковина и каждый может настроить ее как ему удобно, а в Вашем сообщении только слова. Есть хотя бы макетка или пример который реально существует и работает? Посидев на разных форумах и почитав сообщения умных (не то что я) людей практически собрал полноценный пульт на ардуине. ))) Чуть позже выложу схему и скетч))) |
И так:
поиски по инету и общение с грамотными людьми дало свои результаты 1.100% работающий код для энкодера Код:
//Скетч регулятора громкости на энкодере для Arduino PRO MICRO http://arduino.ru/forum/programmirov...comment-111864 2. так же как и у всех тут на форуме работающий скетч от lti1 Сочленение этих двух скетчей ни выдает ни каких ошибок, проходит компиляцию, но работают только кнопки :unsure2: не могу понять в чем проблема. может у кого есть идеи где ошибка в скетче обьедененном? Код:
//****************** Здесь необходимо указать свои значения *************** |
Уважаемый lti1 прислал мне свой скетч для энекодера
Код HTML:
//Скетч регулятора громкости на энкодере для Arduino PRO MICRO Но видимо у меня кривые руки не могу обьеденить скетч для кнопок и энкодера. Хочу переделать теперь кнопки потому как щелчки не красивые и именно они дают дребезг при нажатии на кнопки хотя новые:sad2: |
Код HTML:
int val; |
Цитата:
|
Цитата:
|
Цитата:
В винде шаг регурировки 4 единицы, т.е. 0-4-8-12... и т.д. В андроиде тоже все четко, но от мин до макс ползунок проходит за 4-5 щелчков энкодера. |
Цитата:
как пример http://ru.wikihow.com/увеличить-шаги...ойства-Андроид |
Вложений: 1
В связи с покупкой нового руля, и ковырянием в куче всякой информации выяснилось что подключить новый руль в машине с его заводским устройством не представится возможным. (единственное поможет замена почти всей проводки в авто)
Родилась идея воткнуть всё рулевое (4 кнопки и 2 энкодера) в ещё одну ардуину. Вот тут нашёл пример включения 2 энкодеров. Убрал всё что не относится к рулевому Может кто посоветует что со скетчем? |
Тут уже кучу скетчей выложили, выбирай любой. Но я бы посоветовал использовать не аппаратное прерывание, а библиотеки. Bounce.h для ликвидации дребезга и encoder.h. Описания и примеры в интернете навалом.
Вечером добирусь до компа - выложу пример. |
Все скетчи тут выложенные предусматривают подключение 3 пинов к ардуине, а в последнем варианте, всего 2.
В этом и вся сложность((( Может я конечно совсем чайник, но мы тут и находимся все, чтобы делится опытом... |
Ну хоть чуть теорию почитай. Есть аналоговые входы. На них резистивные кнопки вешаются. Есть цифровые входы. Без матчасти тяжело будет.
|
Ну как всегда ((( повторюсь тем что было написано выше, мы тут для обсуждения того как и что тут реализовывает а не для ликвидации безграмотности.
Прошу прощения за грубость и с учетом Ваших заслуг и умений ali_vlad - Ваша позиция мне сейчас напоминает человека у которого всё есть и ему не хватает только кисточки для "чистки пупка". Можно же ткнуть туда, где есть реальные примеры которые можно переработать под мою идею, а "не возить меня по полу и указывать на мою безграмотность" Я сравниваю скетчи которые у меня есть из разных примеров, и реально не могу понять алгоритм действий который необходим для реализации моей идеи. Правый энкодер - горомкость + - TEL - play+stop кнопка на правом энкодере - mute Левый энкодер - треки >> и << MODE - Alt+tab кнопка на левом энкодере - хотелось бы реализовать как яркость экрана в связке с левым энкодером, нажал и покрутил |
Цитата:
Вы сами не представляете, чего просите. Левый, правый, яркость... А если левый и средний тогда что, конец света, земля остановилась? Повторяю еще раз без элементарных знаний Ваша идея так и останется идеей. Вы даже не можете 2 скетча сложить, а уже начали советы давать. Не всё так просто в ардуине. Вот, почитайте. И это почитайте, про энкодер почитайте. Про управление яркостью - здесь ищите. А если у Вас есть время писать гневные коменты на дельные советы - значит Вы его бесполезно тратите. Потратьте его ан изучение матчасти. |
А если Вам лень учить - здесь то, что Вы хотите, и знаний нужно 0,00000000000000000000000000000000.
|
Ну вот и померились как говориться.....
А за ссылки большое спасибО! Пошёл учить мат.часть) |
И еще один совет: хотите безотказной работы - обратите особое внимание на последнюю ссылку. Ардуина - так, поиграться. Без серьезных знаний толку будет мало. Я тоже начинал с тех же граблей. Итог: ардуина так и осталась на макетке. Детей развлекать.
Дальше Вам понадобится умный блок питания. Тоже будете искать скетчи, складывать их. Ошибки неизбежны. А это тормоза, глюки, нервы. Потом посчитайте, сколько Вы туда вложили, сколько контроллеров спалили. Добавьте потраченное впустую время и у Вас выйдет... Если Вы хотите нормальную вещь - берите то, что посоветовал. Можете мне сейчас не верить, но пойдет время и Вы поймете, что я был прав на 200% |
Цитата:
Если что, то у меня 25см |
Я лично и не сСорился чтобы мИриться.....
А размер не имеет значения, если не уметь пользоваться этим размером :big: Теперь по теме: изучение показало, что информации по скетчам действительно море и каждый реализует свои идеи как ему вздумается, к сожалению нет ни рецепта ни конкретного языка которым можно было бы воспользоваться. :shok: теперь пытаюсь сложить, нужные мне части из разных скетчей в единый. пока не ясен вопрос только с переключением треков с помощью энкодера :be: |
Одна голова хорошо, а две, три - уже бардак. :) Кидай наработки, вечером поковыряю. Переключение треков реализовать не сложно. Мой пример с громкостью и mute изучи. Там следует только заменить вызываемую из библиотеки remote финкцию.
|
Да наработок то как я понимаю и не нужно, lti1 уже всё наработал и оно работает, осталось только разобраться как раз со вторым энкодером для переключения треков, чем я в принципе и занимался непонимая что и как:dntknw:
ДЛя себя решил что просто не буду подключать ненужные мне кнопки и всё. Кстати благодаря ковыряниям в инфе по энкодерам решил прозвонить все свои энкодеры и выяснилось что мой основной который уже работает на громкости он постоянно разомкнут (т.е. сигнал проходит только в момент поворота), а те что стоят в руле (завод ауди, сделал постоянно замкнутыми и в момент поворота происходит разрыв) Не повлияет ли это как-то на скетч? |
Озадачил. Надо искать инфу по библиотеке bounce, так как она занимается обработкой энкодеров.
|
Да, как выяснилось по bounce (спасибо за направление) библиотеке пофик что обрабатывать замыкание или разрыв,
http://greenoakst.blogspot.ru/2012/0...ounce.html?m=1 Вот пример это демонстрирующий, главное указать ей начальные и конечные значения. Блин на вид всё так просто, а когда начинаешь копать скетч, голова кругом. И ещё нюанс, теперь даже проверить не могу эти энкодеры со скетчем, планшет готовлю в машину, а ардуину вытаскивать уже не вариант((( Жду другую из поднебесной.... |
Я ошибся. Библиотека encoder называется.
|
Цитата:
НАШЕЛ))) теперь бы как нибудь её изучить, сама библиотека есть теперь, а вот информации по ней, кто-то маловато будет ((( |
Посмотри ссылки, которые я осталял. Там готовый пример с регулятором громкости и библиотекой энкодер и с пояснениями. С ней вообще всё просто: 3 режима. С аппаратным прерыванием, без прерываний и еще какой-то. На мой взгляд, лучше без прерываний.
|
Забыл самое главное. Библиотека remote. Она всем рулит. А bounce, encoder это для избавления дребезга контактов.
|
Привет.Подскажите, может знает кто нибудь. Залил скетч на ардуино pro micro управление звуком энкодером,все отлично работает. Но если запуск pipo x8 идет с данным регулятором то при включении он не работает пока не отключишь и подключишь его обратно. Может есть способ программно побороть это без задержки включения 5 вольт на usb?
|
defed, мне кажется тебе с этой проблемой обратиться на ардуиновский форум. Там программистов больше чем здесь, а значит и вероятность получить решение проблемы больше.
|
Эпопея продолжается...
теперь есть всё необходимое для рулевого управления, пишу скетч для правой (пока) чести управления по отдельности 2 счетча работают 1 для кнопок PHP код:
а вот вместе они дружить не хотят (((( что я могу не так соединять? PHP код:
sketch_encoder:37: error: expected unqualified-id before '{' token |
TransF, ну наверное потому, что в loop добавлять нужно, чтиво.
PHP код:
P.S. Это не мой скетч, я его только подправил. |
Цитата:
И еще спасибо за чтиво, пока только читаю кучу теории и не совсем понимаю для чего какая команда,скорее даже пытаюсь повторить что делают другие :be: Опытным путем выяснено что дэлэй для энкодера в показателе 100 исключает дребезг контактов (вместо 10 в оригинальном скетче) Верхний дэлэй пришлось вернуть, так как только с его помощью исключил дребезг в кнопках мьют и плэй/пауза на данном этапе скетч выглядит вот так Код:
int analogPin=0; начал работу над левый частью, по особо не получается, мучаюсь с альт+табом |
Помогите пожалуйста люди добрые, где-то скосячил не пойму где
Код HTML:
int analogPin=0; Код HTML:
sketch_nov24a.ino: In function 'void loop()': |
Часовой пояс GMT +4, время: 11:57. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot