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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Сделай сам (http://pccar.ru/forumdisplay.php?f=17)
-   -   Поворотный энкодер - регулировка громкости (http://pccar.ru/showthread.php?t=1685)

mcf1 29.03.2007 19:06

Цитата:

Сообщение от aToxic (Сообщение 21278)
- не будет ли конфликтовать второй энкодер с первым при параллельном соединении

будет!!! однозначно

aToxic 29.03.2007 19:11

Цитата:

Сообщение от mcf1 (Сообщение 21282)
будет!!! однозначно

Тогда остается первый вариант? Выпаивать "родные" и удлиннять? А 3 метра не проблема?

Wanted 29.03.2007 19:14

Цитата:

Сообщение от aToxic (Сообщение 21283)
Тогда остается первый вариант? Выпаивать "родные" и удлиннять? А 3 метра не проблема?

Mcf1 прав! Подтверждаю.
Кнопки можешь продублировать, энкодер придется отпаивать полюбому!!!
3 и даже 5 метров совершенно не проблема, главное чтобы контакт был хороший!

aToxic 29.03.2007 19:17

Ух. Спасибо за оперативность :big: Паяльник уже в сети.:derisive:

Wanted 29.03.2007 19:47

Цитата:

Сообщение от aToxic (Сообщение 21288)
Ух. Спасибо за оперативность :big: Паяльник уже в сети.:derisive:

Твори, а мы оценим ;)

dmAlf 27.08.2007 13:46

Можно вместо энкодера расковырять мышку и использовать колесико от нее. А софт для управления громкостью с колесика есть.

Wanted 27.08.2007 14:05

Цитата:

Сообщение от dmAlf (Сообщение 33007)
Можно вместо энкодера расковырять мышку и использовать колесико от нее. А софт для управления громкостью с колесика есть.

Можно и швабру как пульт от телевизора использовать! Только зачем ;) ?

outruller 29.09.2007 04:36

Энкодер через контроллер USB джойстика
 
А можно подключить энкодер через контроллер USB джойстика? Т.е. подключить три ноги, которые выдают Грей-код на одну из осей как три кнопки и завести их через скрипт AutoHotkey на громкость.
Или нужно обязательно найти клавиатуру УЖЕ с энкодером и поменять его на свой?

Wanted 29.09.2007 20:28

Цитата:

Сообщение от outruller (Сообщение 35430)
А можно подключить энкодер через контроллер USB джойстика? Т.е. подключить три ноги, которые выдают Грей-код на одну из осей как три кнопки и завести их через скрипт AutoHotkey на громкость.
Или нужно обязательно найти клавиатуру УЖЕ с энкодером и поменять его на свой?

Можно, но громоздко получится - проще клаву разобрать!

Pahan 30.09.2007 02:08

Цитата:

Сообщение от outruller (Сообщение 35430)
А можно подключить энкодер через контроллер USB джойстика? Т.е. подключить три ноги, которые выдают Грей-код на одну из осей как три кнопки и завести их через скрипт AutoHotkey на громкость.
Или нужно обязательно найти клавиатуру УЖЕ с энкодером и поменять его на свой?

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

archer 30.09.2007 12:15

аналогично - при подключении энкодера "напрямую" к лпт порту порт не успевал опрашивать энкодер и случались "провалы", соответственно при резком повороте ползунок мог просто дергаться на месте......

Krock 19.05.2008 14:23

Добрых времени суток!
Делаю свой пульт для управления компьютера на контроллере от клавиатуры. Громкость и преключение трэков, хочу сделать на энкодере (энкодер со встроенной кнопкой) т.е. поворот - громкость, клик+поворот переключение трэков.
Собственно вопрос, у когонибудь есть схемка для того чтобы при повороте энкодера замыкалась та или иная группа контактов?
Просто незнаю от чего отталкиваться.
Спасибо!

Wanted 19.05.2008 14:36

Цитата:

Сообщение от Krock (Сообщение 62447)
Добрых времени суток!
Делаю свой пульт для управления компьютера на контроллере от клавиатуры. Громкость и преключение трэков, хочу сделать на энкодере (энкодер со встроенной кнопкой) т.е. поворот - громкость, клик+поворот переключение трэков.
Собственно вопрос, у когонибудь есть схемка для того чтобы при повороте энкодера замыкалась та или иная группа контактов?
Просто незнаю от чего отталкиваться.
Спасибо!

Только через микроконтроллер. Иначе никак. Либо писать прогу отслеживающую события!

Krock 19.05.2008 14:45

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

Wanted 19.05.2008 14:52

Цитата:

Сообщение от Krock (Сообщение 62455)
Это и понятно, думал может есть какое-нибудь готовое решение, вариант с шаговым двигателем и перелапачиванием мышки както не совсем нравится...

Есть почти готовое решение 2 Exial!

Wanted 19.05.2008 17:04

З.Ы. А скоро будет программное решение от меня ;)

Krock 19.05.2008 17:26

Ну чтож жду :rolleyes2:, а на МК или напрямую к порту?
Если все пойдет хорошо, к концу недели покажу свой дивайсик...

Wanted 19.05.2008 18:44

Цитата:

Сообщение от Krock (Сообщение 62477)
Ну чтож жду :rolleyes2:, а на МК или напрямую к порту?
Если все пойдет хорошо, к концу недели покажу свой дивайсик...

Тупо хук на клавиотуру, который будет отрабатывать по сему принципу:
Дано:
Крутилка с нажималкой, нажималка соответственно Mute!
1. Если нажать мьют, покрутить и отпустить - перейдет вперед на трэк либо назад на трэк.
2. Если нажать мьют, покрутить и держать то осуществится плавная перемотка.
3. Если тупo покрутить то тупо измениться громкость.
4. Тупа нажать мьют - тупо включится мьют ;)

Мастер 20.05.2008 01:30

6й час бьюсь над проблемой "энкодер + atmega8"
Постоянные ошибки в обработке. Видимо дребезг контактов :(

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

Krock 21.05.2008 12:14

Нужна светлая голова, на этой статейке стоит заморачиваться или нет?
http://www.mcmanis.com/chuck/robotic...uadratrak.html

Wanted 21.05.2008 12:43

Цитата:

Сообщение от Krock (Сообщение 62709)
Нужна светлая голова, на этой статейке стоит заморачиваться или нет?
http://www.mcmanis.com/chuck/robotic...uadratrak.html

Вполне адекватная статья! МОжно заморачиваться :)
С софтовым вариантом не прокатило, оказывается Винда не может обрабатывать нажатие двух мультимедийных кнопок одновременно!
Другие может хоть пять штук сразу, а эти б...я не работают!

Krock 21.05.2008 14:00

а Girder-ом не пробовал? делаю пульт на нем.

Wanted 21.05.2008 14:25

Цитата:

Сообщение от Krock (Сообщение 62743)
а Girder-ом не пробовал? делаю пульт на нем.

А толку? Если даже напрямую к DirectInput (DirectX8) подключаюсь и такого не получается!!!!

Krock 20.06.2008 13:39

Блин все никак с этим гребанным энкодером разобраться не могу :angry:
Народ, помогите разобраться пожалуйста!

Вот нашел самый подходящий вариант, 1хPIC 2х4066 для управления 4-х энкодеров, есть плата в лэе прошивки для разных пиков, прошивал PIC16F628A - пик молчит ЁПРСТ :shok: , автор делал на 88 пике но таких у нас на рынке нет :dry2:

Здесь архив со всем:
http://ifolder.ru/7045185

сайт автора:
http://robh.nl/ (Quadrature encoder circuits for rotary encoders version 1.0.4.)

В общем кто разберается в этих делах гляньте плиз,

Wanted 20.06.2008 16:58

Цитата:

Сообщение от Krock (Сообщение 65639)
Блин все никак с этим гребанным энкодером разобраться не могу :angry:
Народ, помогите разобраться пожалуйста!

Вот нашел самый подходящий вариант, 1хPIC 2х4066 для управления 4-х энкодеров, есть плата в лэе прошивки для разных пиков, прошивал PIC16F628A - пик молчит ЁПРСТ :shok: , автор делал на 88 пике но таких у нас на рынке нет :dry2:

Здесь архив со всем:
http://ifolder.ru/7045185

сайт автора:
http://robh.nl/ (Quadrature encoder circuits for rotary encoders version 1.0.4.)

В общем кто разберается в этих делах гляньте плиз,

Скажи а зачем тебе этот гемор, когда проще на основе USB клавы сделать??? Или на банальном одном ATtiny45?

Krock 20.06.2008 19:57

Ну во первых, плекс под мою клаву порезан и отгравироват. С микроконтроллерами не дружу, а предыдущий пост единственное что нашел подходящее в инете. Что касается УСБ клавы, кхм наверное ты имел ввиду со встроенным энкодером (громкость) - там микрика нет т.е. переключение трэков идет на :)
Цитата:

банальном одном ATtiny45
:big: Думаю ты меня понял...

ПС: Поймите меня правильно, намного приятнее сделать что-то, что задумывалось изначально, тем более что задача вполне выполнимая (всего лишь вопрос времени)
Все равно Спасибо!:derisive:

Wanted 20.06.2008 23:02

Цитата:

Сообщение от Krock (Сообщение 65659)
Ну во первых, плекс под мою клаву порезан и отгравироват. С микроконтроллерами не дружу, а предыдущий пост единственное что нашел подходящее в инете. Что касается УСБ клавы, кхм наверное ты имел ввиду со встроенным энкодером (громкость) - там микрика нет т.е. переключение трэков идет на :)
:big: Думаю ты меня понял...

ПС: Поймите меня правильно, намного приятнее сделать что-то, что задумывалось изначально, тем более что задача вполне выполнимая (всего лишь вопрос времени)
Все равно Спасибо!:derisive:

Тогда опиши чего хочешь сделать - советом уж точно поможем!

Мастер 21.06.2008 09:08

Проходил мимо магазина сегодня, решил спросить у них энкодер (обычно только по каталогам такие вещи).
Долго пытались выяснить что это, в итоге нашли девайс - "двоичный выключатель". Пришлось взять в руки и пощелкать - точно он.
Но я таких не видел раньше - у него всего 10 щелчков на оборот. НО! выводы пронумерованы 1 2 4 8 С
Проверил тестером, точно - двоичный код. Крутим вправо уведичивается, влево - уменьшается. Можно тупо кинуть на 4 бита порта, читать целиком значение и тупо сравнивать. LPT должно даже скорости хватить.
Вот только 10 позиций и отсутствие кнопки это плохо.
Зато с таким девайсом, можно смело опрашивать когда получится и всегда знаешь в какой он позиции, пропущеные щелчки прощитываются логикой.

Wanted 21.06.2008 17:09

Цитата:

Сообщение от Мастер (Сообщение 65681)
Проходил мимо магазина сегодня, решил спросить у них энкодер (обычно только по каталогам такие вещи).
Долго пытались выяснить что это, в итоге нашли девайс - "двоичный выключатель". Пришлось взять в руки и пощелкать - точно он.
Но я таких не видел раньше - у него всего 10 щелчков на оборот. НО! выводы пронумерованы 1 2 4 8 С
Проверил тестером, точно - двоичный код. Крутим вправо уведичивается, влево - уменьшается. Можно тупо кинуть на 4 бита порта, читать целиком значение и тупо сравнивать. LPT должно даже скорости хватить.
Вот только 10 позиций и отсутствие кнопки это плохо.
Зато с таким девайсом, можно смело опрашивать когда получится и всегда знаешь в какой он позиции, пропущеные щелчки прощитываются логикой.

Это четырех битный, а для наших целей удобнее двухбитный. Этот требует больше проводов и логики, хотя тоже думаю прокатит!

Krock 23.06.2008 00:54

Думаю этот скетч вам все объяснит (будет подлокотник). Тут все поидее просто, контроллер от обычной старой 101 клавиатуры. Прозвонив матрицу нашел что кнопки "=" "6" и "CTRL" имеют общую "точку" (допустим землю) итого имеем 4 комбинации, в моем случае громкость и переключение трэков, микрик на энкодере будет формировать нажатие "CTRL". Что в принципе мне нужно, чтоб при повороте энкодера в ту или иную сторону "общая точка" замыкалась с нужным контактом кнопки "=" "6". Почему именно крутилку а не кнопки, просто не нужно будет отвлекаться от езды в поисках кнопок. Вот вроде бы и все!

ПС. Так же в интернете наткнулся на схему REDec на Xor логике, но там присутствует большой процент ошибок, вот поэтому пытаюсь домучать таки на МК.


Линк на скетч:
http://img508.imageshack.us/img508/8770/keyboardyt7.jpg

Мастер 25.06.2008 23:24

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

Krock 29.06.2008 23:37

Ну что народ, есть идеи по моему вопросу?:dntknw:

Wanted 30.06.2008 11:33

Цитата:

Сообщение от Krock (Сообщение 66360)
Ну что народ, есть идеи по моему вопросу?:dntknw:

В предпоследнем посту вопросов не наблюдаю :)
В чем проблема в данный момент? В программировании МК?

Krock 30.06.2008 11:39

Именно в нем, был бы презнателен еслиб кто-то глянул на те прошивки которые я выкладывал и что-то подправил, ну скажем для PIC16F628A, хотя в принципе неважно главное чтоб заработало, вот.
Или подскажите прогу в которой можно былоб работу МК+схему симулировать.

Wanted 30.06.2008 12:43

Цитата:

Сообщение от Krock (Сообщение 66378)
Именно в нем, был бы презнателен еслиб кто-то глянул на те прошивки которые я выкладывал и что-то подправил, ну скажем для PIC16F628A, хотя в принципе неважно главное чтоб заработало, вот.
Или подскажите прогу в которой можно былоб работу МК+схему симулировать.

Я для AVR Логику энкодера реализовал за две минуты, еще пару дней делал USB привязку, в итоге схема из 10-15 деталей вместе с МК, а такие вещи будет вытворять! Мама не горюй.
Так что по AVR могу помоч только!

Krock 30.06.2008 13:16

:rolleyes2: Мне в принципе всеравно на чем делать, уж больно :) хочется доделать... Если не сложно удели и мне 2 минуты своего времени, навороты мне не нужны, только то что я раньше писал. Как я понимаю нужно 2 выходных порта, при повороте на одном "1" другой "0" и наоборот и все это через резистор на землю, токи там небольшие (на клавиатуре написанно 75mA max) где-то так. Большой тхэнкс!

Wanted 30.06.2008 13:35

Цитата:

Сообщение от Krock (Сообщение 66389)
:rolleyes2: Мне в принципе всеравно на чем делать, уж больно :) хочется доделать... Если не сложно удели и мне 2 минуты своего времени, навороты мне не нужны, только то что я раньше писал. Как я понимаю нужно 2 выходных порта, при повороте на одном "1" другой "0" и наоборот и все это через резистор на землю, токи там небольшие (на клавиатуре написанно 75mA max) где-то так. Большой тхэнкс!

Смотри я делал так, использовал два порта МК, на все настраиваются как входы с подтяжкой на +. Резисторы не нужны. При вращении энкодера соответсвующие ножки становятся 1 или 0. Проц работает у меня на частоте 12мегагерц. Идет опрос каждую 1/1000 секунды. Этого хватает чтобы не было проскоков и ошибок и внутри МК уже программа обрабатывает сам энкодер, вот она на C:
Код:

void pollEncoder(void)
{
uchar Enc;

Enc=(bit_is_clear(PINA,0)<<1)|(bit_is_clear(PINA,1)<<0);

 reportBuffer.Encoder1=0;
 reportBuffer.Encoder2=0;

if (oldEnc==Enc) { return; }

Enc=(oldEnc<<2)|(Enc);
oldEnc=Enc;

  if (Enc==0b0100) { reportBuffer.Encoder2=1; }
  if (Enc==0b0111) { reportBuffer.Encoder1=1; }
  if (Enc==0b1101) { reportBuffer.Encoder2=1; }
  if (Enc==0b1110) { reportBuffer.Encoder1=1; }
  if (Enc==0b1011) { reportBuffer.Encoder2=1; }
  if (Enc==0b1000) { reportBuffer.Encoder1=1; }
  if (Enc==0b0010) { reportBuffer.Encoder2=1; }
  if (Enc==0b0001) { reportBuffer.Encoder1=1; }

//go1:

return;
}


Krock 30.06.2008 13:54

Спасибо! :derisive: Вот только подскажи модель мк и буду делать!

Wanted 30.06.2008 14:04

Цитата:

Сообщение от Krock (Сообщение 66397)
Спасибо! :derisive: Вот только подскажи модель мк и буду делать!

ATTiny26 SU20 который.

den_sad 30.06.2008 17:36

Цитата:

Сообщение от Krock (Сообщение 66360)
Ну что народ, есть идеи по моему вопросу?:dntknw:

Я себе сделал из клавиатуры - там энкодер с кнопкой, через autohotkey развел на громкость, пролистывание треков и масштабирование карты


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

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