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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Разработка устройств (http://pccar.ru/forumdisplay.php?f=18)
-   -   Многофункциональная USB клавиатура (http://pccar.ru/showthread.php?t=19742)

YAM1966 28.09.2015 14:39

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

Сообщение от Alex_St (Сообщение 339171)
Это правда. Но это ж не наши методы... Устройство должно быть не только функциональным, но и красивым )))

Эх... были времена когда и такое считалось красивым :derisive:
Вложение 41133

Alex EX 13.10.2015 18:12

Добрый день
Хочу повторить устройство, есть пара вопросов... Нет ли ошибок в схеме ? На вход используется один порт ADC в Меге их 8 возможно ли использовать еще ? На руле в Одиссее две группы кнопок (4 и 5)... Конфигуратор узнает клавиатуру только после подключения ?
Спасибо

Alex_St 13.10.2015 21:15

Привет!
В схеме ошибок быть не должно. По-крайней мере быть могут, но я их за время эксплуатации не выявил )
использовать еще можно. Только нужно ли? У меня на руле используются 10кнопок, все уживаются нормально. Для использования двух и более линий нужно менять софт модуля и конфигуратора. Стоит ли оно того? Не уверен.
В конфигураторе можно вводить сопротивления кнопок, напряжения на кнопках. Но увы, у резисторов есть погрешности, у ацп тоже. Можно поставить допуски побольше, но лучше прощелкать саму клаву и снять ее параметры устройством. ИМХО.

Alex EX 14.10.2015 11:47

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

http://pccar.ru/attachment.php?attac...1&d=1444808735

Alex EX 14.10.2015 13:57

Вложений: 1
Контроллер прошил. Фьюзы поставил вот так (не уверен что правильно...) пока не шил. Подскажите как правильно ?

http://pccar.ru/attachment.php?attac...1&d=1444816604

Alex EX 15.10.2015 17:44

Почему то не запустилось на win7x64 ? (Неизвестное устройство). Но опозналось на ХР 32. Завтра подстыкую кнопки...

Все заработало... Подхватились все девять кнопок, две линейки 4 и 5 пришлось слить в одну подтянуть к питанию.
Спасибо автору, хороший проект!

Alex_St 19.10.2015 10:17

Сорри, что долго не выходил на связь..
Я рад, что все заработало! Я так понял, на вин7 тоже заработало? Если да - почему не работало?

Alex EX 19.10.2015 11:20

Цитата:

Сообщение от Alex_St (Сообщение 340785)
Сорри, что долго не выходил на связь..
Я так понял, на вин7 тоже заработало? Если да - почему не работало?

Добрый день
Нет, под win7 говорит "устройство сообщило о проблемах и было отключено..."
Еще есть вопрос по функционалу - какой командой в конфигураторе выдать в порт 5 вольт или 0 ? Подскажите...
Забыл добавить, рабочее применение устройства - планшет на андроиде, управление без тача.

Alex_St 19.10.2015 12:03

Цифровые выходы (8 штук) - это просто 8мибитный порт атмеги.
В конфигураторе есть три поля с неочевидными названиями и функционалом: Port Data, Port Init, Port Trig. В них записываются шестнадцатиричные значения. Каждый бит значения - это ножка порта.
Работают они следующим образом:
1. При старте в порт записывается значение из Port Init. В текущей реализации для всех кнопок должно быть установлено одинаковое значение.
2. Биты в PortData показывает какие каналы будут меняться при нажатии на кнопку.
3. Биты в PortTrig показывают какие каналы будут меняться обратно при отпускании кнопки (0), а какие не будут (1).

Пример: у нас на канал 1 подключены противотуманки. Изначальное состояние "выключено" соответствует 0 на выходе. Каждое нажатие кнопки должно менять состояние противотуманок. Иными словами - одно нажатие - включить, второе - выключить.
А на канал 2 у нас подключен насос форсунок омывателя фар. Причем по схемотехнике схемы управления выключенное состояние - это 1 на выходе порта. При этом нам надо сделать так, чтобы при нажатии на кнопку он включался, а при отпускании выключался.
Как такое сделать...
Биты в порту нумеруются так: 7 6 5 4 3 2 1 0. Нас интересуют биты 1 и 2 (второй и третий справа).
Т.к. начальное состояние бита 1 должно быть 0, а бита 2 - 1, то запишем регистр инит: х х х х х 1 0 х, где х - это любое состояние. Примем, что неиспользуемые порты будут изначально выключены (0), поэтому получим двоичное значение 00000101. В шестнадцатиричном виде это будет 0x05. Это значение запишем в PortInit для всех кнопок.

Далее - кнопка противотуманок влияет только на канал 1, а насоса - только на канал 2. Поэтому запишем для них значения регистра PortData:
ПТФ: 00000010 = 0x02
насос: 00000100 = 0x04

Ну и что делать при нажатии на кнопку: ПТФ управляется триггерно (опрокидывается при каждом нажатии), а насос - нет (включается при нажатии, выключается при отпускании). Поэтому запишем в PortTrig следующие значения:
ПТФ: 00000010 = 0x02
насос: 00000000 = 0x00.

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

Alex EX 19.10.2015 13:55

Понял, спасибо...
Просто пробовал шевелить PD5 (PORT5) 9pin не шевелится, а вот PC1 PC2 отзываются на 0х01 0х02. Завел лампочку на РС1 теперь при нажатии любой кнопки загорается, показывает нажатие ... (PD и PC вроде разные порты ?)

Мысль то простая, ронять планшет в ОТГ по нажатию любой клавиши...


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

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