|
|
|
Канал Elite: Dangerous: «Самодельные панели управления для Elite: Dangerous» |
|
|
RenderG 2293 EGP
Рейтинг канала: 13(2004) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
Ну да, Трастмастеры, ВКБ и прочие дураки зря используют сдвиговые регистры в своих джойстиках и прочей переферии видимо. Не, я не претендую, просто мне не понятно, зачем идти по своему пути, наступая на грабли, которые уже давно решены, как, к примеру, с матрицей у тебя было.
Дребезг дебаунсом вполне себе очень даже и норм убирается.
Нагрузки там смешные абсолютно, и не влияют ни на что вообще.
Кстати, о шилдах.
У меня с 5-ю сдвиговыми регистрами (40 кнопок) и выходами на i2c и возможностью их в цепь объединять, заменив промикру на разъем в следующей плате и 4-мя осями, 6-ю светодиодами, управляемыми напрямую тумблерами, выходом на управляемые RGB светодиоды типо ws2812 или APA106 выводом на семисегментные цифропанели и всеми остальными выводами шилд под промикру вот такой новый получился. Но я сам не травлю, заказываю готовые платы заводские. В размере 95*49мм
Если кому надо - файл в спринте https://www.dropbox.com/s/7mb0p2pkt209bc8/rgcustm_2.5_i2c.lay6?dl=0
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy
Последний раз редактировалось: RenderG (13:20 10-07-2017), всего редактировалось 2 раз(а) |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Дебонсер с матрицей ну ащще не работал от слова совсем. Ни родной Bounce ни альтернативный Bounce2. Любое нажатие кнопок вызывало реагирование только первого столбца в ряду. Как только закомментил обработку дебонсером нажатий и сделал просто if digitalRead==HIGH - все заработало четко.
Кроме того при зажатии 4 кнопок одновременно девайс зависает. Матрица не очень удачное решение там где можно жмакнуть одновременно.
Последний раз редактировалось: NailMan (13:28 10-07-2017), всего редактировалось 1 раз |
|
|
RenderG 2293 EGP
Рейтинг канала: 13(2004) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
NailMan : |
Матрица не очень удачное решение там где можно жмакнуть одновременно.
|
Матрица зло, а если матрица без диодов - то вообще адское зло.
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Матрица с диодами конечно была(Шоттки поставил на стенде, что в наличии нашел). Схему со знакомыми спецами раз 10 пересобирали, исследовали - все должно было работать с демонсером, однако не работало. Убрали дебонсер - все взлетело. Ну а нестыкуемость матрицы с триггером Шмитта подтолкнуло к схеме точка-точка, так как в наличии были микрухи порт-расширителей.
Я вообще если что то делать начинаю, то только с тем что имею или быстродоставаемо.
Ну а заказывать у китайцев - это если на продажу. Я не делаю из этого хобби бизнес.
Этот проект всего-лишь некоторая тренировка перед более крупным проектом из области IoT для моделистов, как раз кнопки с аппаратным дебонсером являлась тренировкой для того проекта.
|
|
|
RenderG 2293 EGP
Рейтинг канала: 13(2004) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
NailMan : |
Ни родной Bounce ни альтернативный Bounce2.
|
Зачем для дебаунса библиотека? Всего то пара строк.
Код: |
if (bitRead(switchVar[r], i) != bitRead(lastState[r], i)) {
// сброс таймера дебаунса, используем вшитую тикалку аптайма,
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
// если таймер минус прошлый таймер больше задержки debouncedelay, то
состояние кнопки изменилось - шлем.
//сохраняем состояние кнопки в конце цикла опроса этой кнопки.
lastState[r] = switchVar[r]; |
Тут у меня регистры используются, посему кнопки - это массив switchVar[номер кнопки]
Весь опрос ВСЕХ кнопок на регистрах выглядит так, вместе с дебаунсом:
Код: |
// *******************************************
// PUSH BUTTONS r = register number
// Starting with 2nd register
// *******************************************
for (int r = 2; r <= num_registers - 1; r++) {
for (int i = 0; i <= 7; i++) {
if (bitRead(switchVar[r], i) != bitRead(lastState[r], i)) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (bitRead(switchVar[r], i) != bitRead(switchState[r], i)) {
switchState[r] = switchVar[r];
if (bitRead(switchState[r], i) < 1) {
Joystick.pressButton(i + ((r - 1) * 8));
Joystick.sendState();
}
else {
Joystick.releaseButton(i + ((r - 1) * 8));
Joystick.sendState();
}
}
}
}
lastState[r] = switchVar[r];
} |
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy
Последний раз редактировалось: RenderG (13:47 10-07-2017), всего редактировалось 1 раз |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Ну примерно так же я и делал еще до привлечения библиотеки дебонсера. Был взят пример из статейки про матрицу(с диодами) и он также не работал выдавая срабатывание первых кнопок в строке. Что то связанное с задержками как я понимаю. Ну его нафиг этот софтовый дебонсер! аппаратный надежней и не зависит от качества кнопки. Это у меня используются малошумящие кнопки с молоточками контактов, а если использовать простые кнопки(как у меня на регулировку подсветки и калибровки) - софтовый дебонсер не помогает. на стенде собрал под одну кнопку обработчик и тестировал с разными кнопками - заранее задержку не подгадаешь.
|
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Ха! Косяки приводят к техническому прогрессу! В выводной плате на PWM не с той стороны поставил пятачки и чуть в стороне чем реально расположены на шилде(нет нигде его шаблона, а штенгель куда-то пролюбился), линейкой корявой мерял. В общем решил полнорстью на фоторезист перейти. Купил ламинатор, достал старые запасы немного просроченного фоторезиста и переделал плату - все получилось очень супер. Ламинатор творит чудеса. Жалко что паяльную маску ждать еще месяц, так бы вышло как с производства
|
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Хотелось бы поделиться чудой что родилась на сегодняшний момент в части EDPanel.
- за две недели освоил и полностью перешел на фоторезист -даже с просроченным на полтора года все нормально получается (без фейлов почти). Несколько плат убил)как косяками разводки так и технологическими неудачами.
- купил кошерный 4 вальный ламинатор. Теперь прикатывается фоторезист идеально.
- допилил плату вывода PWM под DeekRobot PWM. Несмотря на то что это клон Adafruit шилда, оказалось что в нем были мутации в расположении выводов относительно сокета ардуины.
- Это моя крайняя плата с лужением. заказал UV Cover Mask для паяльной маски(трех цветов взял). Следующие изделия(контроллер полива домашних лимонов) будет как с завода выглядеть.
Все фотки(должно работать, сервер починил)
http://nailalex.dyndns.org/gallery/index.php?level=album&id=109
Там же есть сравнительные фотки плат выполненных ЛУТом и фоторезистом(все промежуточные кривые платы).
Последний раз редактировалось: NailMan (23:20 16-07-2017), всего редактировалось 1 раз |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
предпредпоследняя миля перед выходом в космос с панелькой!
спаял лицевые панели игрового девайса и зажгутовал провода все перед припайкой к выводным платам контроллера(красные - ЛЕДики, желтые - кнопки).
Остается спаять все и допилить общую групповую анимацию в скетче и отладить контроллер(на 5 кнопке что-то муть была при маленькой конфигурации со стенда) и в части софта и начинки будет готово.
Остается сделать под все это корпус из пеноплекса, стеклоткани и смолы с куском стали. ну и на пленке напечатать надписи на кнопках и вложить внутрь.
Фоточки
Крупнее
Крупнее
Крупнее
Последний раз редактировалось: NailMan (18:14 22-07-2017), всего редактировалось 1 раз |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Вот что я называю кнопочной анимацией!
http://www.youtube.com/watch?v=UKFPGCUBa8I
Сейчас есть 4 типа анимации включения подсветки панели(интро) и анимация нажатия. Можно сделать еще анимацию выключения(пока просто гасится). Ну и еще надо процедуру калибровки визуализировать на кнопочном массиве.
Вся анимация задается в двух массивах по числу активных кнопок - номера стартовой анимации(0-3) и задержки в мс от момента включения. Каждая кнопка может иметь любое сочетание.
Как в дискорде подсказали не так давно, можно прикрутить модуль ускорений и сделать периодическое включение на произвольной кнопке хаотического мигания как при хреновых контактах(по типу как в правом верхнем углу) - тогда хлопок по корпусу устройства "вылечит" "барахлящие кнопки"
Последний раз редактировалось: NailMan (15:30 24-07-2017), всего редактировалось 1 раз |
|
|
B_SINGLE_S 70 EGP Рейтинг канала: 4(68) Репутация: 6 Сообщения: 143
Зарегистрирован: 17.09.2015 |
|
NailMan вы меня практически "контузили" Раскройте "секрет швейной машинки"! Ну ведь не просто так же она появилась в кадре , а ? Такая интрига ...
|
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
B_SINGLE_S : |
NailMan вы меня практически "контузили" Раскройте "секрет швейной машинки"! Ну ведь не просто так же она появилась в кадре , а ? Такая интрига ...
|
Да там нет интриги, просто сейчас это самое очищенное место!
А так вот для чего она
http://nailalex.dyndns.org/egoparamodels/
|
|
|
PedaleCreator 112 EGP
Рейтинг канала: 12(1754) Репутация: 5 Сообщения: 1515
Зарегистрирован: 03.09.2014 |
|
B_SINGLE_S : |
"секрет швейной машинки"!
|
Для "прошивки" контроллеров! Очевидно же!
_________________ CMDR Fl@ck |
|
|
B_SINGLE_S 70 EGP Рейтинг канала: 4(68) Репутация: 6 Сообщения: 143
Зарегистрирован: 17.09.2015 |
|
Это был уже - "контрольный в голову"... Параплан на швейной машинке своими руками - по хорошему завидую вашей "усидчивости"
|
|
|
RenderG 2293 EGP
Рейтинг канала: 13(2004) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
Пленку макетным ножом обрезать удобно. Уже прикленную. Тогда не получится таких рваных краев. А вокруг прямоугольных кнопок вздутия тоже плохо. Кстати, вообще рекомендовал бы вместо пленки баллон с краской использовать. Или сразу надо было брать чОрный поликарбонат.
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Пузырики потом разойдутся. я на жидкость для моников сажал, потом размажется. Краску совершенно не хочу - воняет потом сильно и долго. Я по хобби периодически крашу стеклопластики(капоты самолетные, фонари) - намаялся с красками. Оракал самое то. Края платы я пройду потом модельным ножом, пока не к спеху, к тому же я подумываю еще как сделать отбортовку корпуса девайса вокруг панелей кнопочных - пока видится так что даже недорезанные края не помешают внешнему виду.
Кстати именно и-за нежелания красить я буду корпус девайса делать из уже подцвеченной черным колером смолы делать. Он уже сразу черный будет и не будет стираться. Я так пропеллеры для модели паралёта в матрице делаю - черные как уголь.
|
|
|
RenderG 2293 EGP
Рейтинг канала: 13(2004) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
NailMan : |
Как в дискорде подсказали не так давно, можно прикрутить модуль ускорений и сделать периодическое включение на произвольной кнопке хаотического мигания как при хреновых контактах(по типу как в правом верхнем углу) - тогда хлопок по корпусу устройства "вылечит" "барахлящие кнопки"
|
Акселерометр тут лишним будет. Есть копеечный девайс, которого хватит за глаза. Типо jtron sw-520d. Оно стоит 20 рублей и устроено до безобразия просто. Два контакта и шарики внутри малюсенького корпуса как от маленького конденсатора. При вибрации начинает ловить/терять контакт.
добавлено спустя 2 минуты:
Кстати. Если крепить твои понели поверх. И подсветить снизу, то контуры будут светиться. Ток стекло заматовать нулевкой.
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy
Последний раз редактировалось: RenderG (17:31 28-07-2017), всего редактировалось 1 раз |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Передумал я с датчиком ускорений(у меня их навалом если честно лежит) - слишком много съедает библиотека под него, да и излишество явное.
С панелью поверху подумаю. как раз сейчас собирался я начинать собирать болванку корпуса, может и поверху сделаю. Только подсветка - лишний ток на порт USB будет давать. 10 штук уже 0.1А.
Я сейчас к сожалению не могу замерять полный ток на порту, надо или датчик тока подпаивать в разрез(на эффекте холла), или амперметр. В 0.5А точно вписываюсь. Подсветка жрет 210-230мА. контроллер еще где то 150. В принципе есть еще резервы.
|
|
|
RenderG 2293 EGP
Рейтинг канала: 13(2004) Репутация: 243 Сообщения: 20534 Откуда: [OEG] Зарегистрирован: 18.09.2006 |
|
Тем временем китайцы напечатали мне платок для новых панелей управления.
_________________ No More Mr. Nice Guy!
Смирись, Пилот!
Ты будешь жалок
Всего-лишь после
Пары палок... (с) Dandy |
|
|
NailMan 70 EGP Рейтинг канала: 9(1017) Репутация: 6 Сообщения: 249 Откуда: Москва Зарегистрирован: 24.07.2016 |
|
Неплохо неплохо!
Я тут все в делах и в работе, но собрал девайс на платах с корявой маской(не шелкографией делал), попалил чип PWM на готовом шилде что использовал первоначально(один порт из 16 сгорел как то) и в итоге переразвел девайс заново сразу с чипами PWM на моей плате. В итоге увеличил с 24 кнопок до 36(32 уйдут в джойстик в комп, остальные сервисные), светики вывел через полевички(причина палева порта PWM была), уменьшил высоту девайся на 1 этаж и уже напечатал шаблончики для фоторезиста. Сегодня завтра засвечу плату и в выхи буду шелкографией маску паяльную делать уже по цивильному. Научился с ними работать.
Времени катастрофически нет закончить проект. Начал шкурить болван корпуса, половинку сделал, а потом накатило.
|
|
|
|
|
|
Канал Elite: Dangerous: «Самодельные панели управления для Elite: Dangerous» |
|