Нажать на кнопку

nen777w
Offline
Зарегистрирован: 08.07.2019

Добрый час!

Потребовалось сделать вот такую штуку:

Есть радио-брелок с двумя кнопками, нужно нажимать на эти кнопки с компьютера.

Т.е. насколько я понял из своего иследования вопроса. Нужна ардуинка, два оптрона и пару резисторов.

По аппаратной части у меня пробелы. Хочу заказать вот этот набор. Правильно ли я подобрал компоненты?

По программной части думаю что разберусь самомстоятельно.

Спасибо.

PRC
Offline
Зарегистрирован: 03.02.2019

Нравятся мне люди экономящие на спичках, что бы потом мужественно преодалевать созданные собой же трудности. Вот нафига для одноразовой поделки брать тиньку, когда добавив 50р можно взять уже нано мегу, в которой гораздо больше ресурсов.

Ну и еще не хватает как минимум конвертора usb-com.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Резисторов возьмите пачку 600 штук.
600pcs/set 30 Kinds 1/4W Resistance 1% Metal Film Resistor Pack Assorted Kit 1K 10K 100K 220ohm 1M Resistors
https://s.click.aliexpress.com/e/bQcoytpq

nen777w
Offline
Зарегистрирован: 08.07.2019

PRC пишет:

Нравятся мне люди экономящие на спичках, что бы потом мужественно преодалевать созданные собой же трудности. Вот нафига для одноразовой поделки брать тиньку, когда добавив 50р можно взять уже нано мегу, в которой гораздо больше ресурсов.

Ну и еще не хватает как минимум конвертора usb-com.

Спасибо за быстрый ответ!

Я понял. Возьму мегу.

А USB->COM это в смысле вот такой USB->UART?

https://ru.aliexpress.com/item/32630048726.html?spm=a2g0s.9042311.0.0.274233edfMrvia

Зачем он нужен? Если можно взять ардуинкой с USB поротом?

Про 600 резисторов это я так понял, разных номиналов что бы было легко подбирать?

Сори за глупые вопросы, я первый раз имею дело с микроконтроллерами на железном уровне.

nik182
Offline
Зарегистрирован: 04.05.2015

PRC пишет:

Нравятся мне люди экономящие на спичках, что бы потом мужественно преодалевать созданные собой же трудности. Вот нафига для одноразовой поделки брать тиньку, когда добавив 50р можно взять уже нано мегу, в которой гораздо больше ресурсов.

Ну и еще не хватает как минимум конвертора usb-com.

Нравятся мне люди, которые вместо маленькой и умеющей шиться по USB без переходников платки берут кирпич  и корячат афигенный корпус а потом используют 4 ноги и больше никогда не перешивают. И так работает. А все супер ресурсы лежат мёртвым грузом весом и размером. 

PRC
Offline
Зарегистрирован: 03.02.2019

 И связь с компом тинька тоже по этому юсб обеспечит?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А как Вы собьираетесь в брелок залезть? Может взять сервомотор и просто механически нажимать кнопку?

nen777w
Offline
Зарегистрирован: 08.07.2019

ЕвгенийП пишет:

А как Вы собьираетесь в брелок залезть? Может взять сервомотор и просто механически нажимать кнопку?

Зачем такие сложности? Подпаяюсь и все.

b707
Offline
Зарегистрирован: 26.05.2017

nen777w - тиньку не берите, управлять с компа по этому УСБ вы не сможете, в стандартном виде он только для прошивки. Но и Мегу, что вам товарищ PRC посоветовал - нафик не надо. Берите Нано или Уно.

 

PRC
Offline
Зарегистрирован: 03.02.2019

Да, я имел в виду нано мегу168 или 328))

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

nen777w пишет:

Есть радио-брелок с двумя кнопками, нужно нажимать на эти кнопки с компьютера.

Т.е. насколько я понял из своего иследования вопроса. Нужна ардуинка, два оптрона и пару резисторов.

Если я правильно понял, нужно замыкать контакты кнопок посредством компьютера. Зачем тут МК? Последовательных портов сейчас на ПК не найдешь, но есть переходники USB-RS232. На контакты разъема DTR и RTS программно подаем логические единицы - вот Вам и управление двумя кнопками. Нужны только пара оптронов с транзисторным выходом (PC817, 4N25....), пара резисторов 200-220 ом (токовый резистор для входного светодиода оптрона), а выходными транзисторами оптронов замыкаем кнопки. Из того, что я понял, ардуинка не нужна вообще. Или ТС как-то очень завуалированно описал более сложную задачу?

nik182
Offline
Зарегистрирован: 04.05.2015

PRC пишет:

 И связь с компом тинька тоже по этому юсб обеспечит?

А что, Digispark Virtual Com Port уже отменили? Посылай символы и управляй чем хочешь. Именно через воткнутую в USB плату. Вот человек светодиодом управляет http://rfanat.ru/Arduino_projekts/klone/Digispark_Attiny85.html

Плата самодельная, но сам принцип.

nen777w
Offline
Зарегистрирован: 08.07.2019

Sonologist пишет:

Если я правильно понял, нужно замыкать контакты кнопок посредством компьютера. Зачем тут МК? Последовательных портов сейчас на ПК не найдешь, но есть переходники USB-RS232. На контакты разъема DTR и RTS программно подаем логические единицы - вот Вам и управление двумя кнопками.

А можно подробнее. Есть у меня и даже несколько штук таких переходников USB->UART

https://ru.aliexpress.com/item/32364013343.html?spm=a2g0o.detail.1000016.1.7aad41971p7OMu&isOrigTitle=true

На нем есть: DCD, DSR, RTS, CTC, RST, SI, SUS, SUS (с верхним подчеркиванием), DTR, RXD, TXD, +5V, GND, 3V3

А можете если не сложно примерно нарисовать как правильно подключить его?

Если я правильно понял. То: Соблюдая полярность, ноги двух оптронов, (со стороны светодиода) подключаем к GND, другие их ноги к DTR, RTS. И на оставшиеся две ноги (со стороны транзистора) у каждого их оптрона подключем кнопки.

Ну и для питания самого брелока, тоже соблюдая полярность берем GND и 3V3.

Я правильно все понял?

Спасибо.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

nen777w пишет:

Я правильно все понял?

Да, все верно. Катоды светодиодов на GND, аноды через резисторы на RTS и DTR. Кнопки брелока зашунтировать выходными транзисторами  оптронов (возможно, придется подобрать подключение - поменять контаты кнопки местами). Не бойтесь пробовать, транзисторы не спалите.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Sonologist пишет:
Катоды светодиодов на GND, аноды через резисторы на RTS и DTR. Кнопки брелока зашунтировать выходными транзисторами  оптронов (возможно, придется подобрать подключение - поменять контаты кнопки местами). Не бойтесь пробовать, транзисторы не спалите.

И при всём, при этом, на моё скромное предложение:

ЕвгенийП пишет:

Может взять сервомотор и просто механически нажимать кнопку?

Отвечают:

nen777w пишет:

Зачем такие сложности?

Куда катится этот мир? :)))

svm
Offline
Зарегистрирован: 06.11.2016

Sonologist пишет:

nen777w пишет:

Я правильно все понял?

Да, все верно. Катоды светодиодов на GND, аноды через резисторы на RTS и DTR. Кнопки брелока зашунтировать выходными транзисторами  оптронов (возможно, придется подобрать подключение - поменять контаты кнопки местами). Не бойтесь пробовать, транзисторы не спалите.

Зачем такие сложности, в брелке кнопка тупо замыкается на землю. Можно использовать любой ключ. И скорее всего можно напрямую подключить к выводам RTS и DTR при условии, что можно соединить землю ПК и брелка. Тогда и питание можно взять от ПК. Остается только научиться правильно управлять этими выводами. Но это другая история.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

svm пишет:

Зачем такие сложности, в брелке кнопка тупо замыкается на землю. Можно использовать любой ключ. И скорее всего можно напрямую подключить к выводам RTS и DTR при условии, что можно соединить землю ПК и брелка. Тогда и питание можно взять от ПК. Остается только научиться правильно управлять этими выводами. Но это другая история.

В принципе - да. Но тут ключевое слово "скорее всего".  Насчет гальванического соединения брелока и порта ПК - тоже в принципе да, но ТС утверждает, что питание брелока 3,3 вольта. Как поведет он себя при подаче на кнопку 5 вольт, если представить, что кнопка там не на землю коротит, а на плюс? То есть, покопавшись в схемах, можно покумекать и совокупить напрямую в конце концов, но оптрон - универсальрное решение.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

ЕвгенийП пишет:

Может взять сервомотор и просто механически нажимать кнопку?

Евгений, это не кошерное решение. Вы предлагаете стрелять из пушки по воробьям. Простой электромагнит (типа замыкателя дверей на автомобиле) изящно решает проблему нажатия кнопки

:)

sadman41
Offline
Зарегистрирован: 19.10.2016

Серва нажимает нежно.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Sonologist пишет:

nen777w пишет:

Есть радио-брелок с двумя кнопками, нужно нажимать на эти кнопки с компьютера.

Т.е. насколько я понял из своего иследования вопроса. Нужна ардуинка, два оптрона и пару резисторов.

Если я правильно понял, нужно замыкать контакты кнопок посредством компьютера. Зачем тут МК? Последовательных портов сейчас на ПК не найдешь, но есть переходники USB-RS232. На контакты разъема DTR и RTS программно подаем логические единицы - вот Вам и управление двумя кнопками. Нужны только пара оптронов с транзисторным выходом (PC817, 4N25....), пара резисторов 200-220 ом (токовый резистор для входного светодиода оптрона), а выходными транзисторами оптронов замыкаем кнопки. Из того, что я понял, ардуинка не нужна вообще. Или ТС как-то очень завуалированно описал более сложную задачу?

не, это не наш путь, там жеж еще правильно порты настроить надо чтобы при старте винды при инициализации на сигналы RTS и DTR ничего не прилетало, а 99,9% здесь обитающих, я более чем уверен, понятия не имеют, как это сделать  )))

PS если ошибаюсь, пните ...

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

ua6em пишет:

PS если ошибаюсь, пните ...

Абсолютно верно. При загрузке ПК на этих выводах цветомузыка. Я решил этот вопрос просто: подключал свои кнопочные приборы после загрузки винды. Мне это не мешало. А вот как быть с брелоком.... Тут ардуинка может помочь: пущай поспит, пока порт "танцует" при  загрузке виды, а потом работает. Но это возвращение к исходной проблеме. А если не критично, то подключать брелок к уже работающему ПК.

nen777w
Offline
Зарегистрирован: 08.07.2019

Sonologist пишет:

ua6em пишет:

PS если ошибаюсь, пните ...

Абсолютно верно. При загрузке ПК на этих выводах цветомузыка.

Пущай поспит, пока порт "танцует" при  загрузке виды, а потом работает. Но это возвращение к исходной проблеме. А если не критично, то подключать брелок к уже работающему ПК.

Гм... Спасибо, про "цветомузыку" не знал. У меня правда Linux, но думаю что это не суть, хотя посмотрим... Отпишусь по результатам в этот топик. Завтра должны приехать оптроны, начну паять.

b707
Offline
Зарегистрирован: 26.05.2017

nen777w - а вообще я вам советую всю эту мутоту с компортом выкинуть из головы :) Сугубое ИМХО - на ардуине все получится в разы проще...

А некоторые товарищи просто застряли в прошлом веке, им все кажется, что МК - это сложно. И им думается, что подключится к компорту и написать в винде прогу управления - будет быстрее, чем взять 100рублевую ардуину и за 5 минут написать скетч из трех строк

nik182
Offline
Зарегистрирован: 04.05.2015

Именно из за цветомузыки при включении и загрузке голосую за ардуинку. Можно обеспечить контролируемое поведение в этом режиме. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Так, на горизонте пока не появился ни один программист знающий винду хотя бы на троечку )))

Ждём садман41, подозреваю, что он то знает как это лечится...

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

Так, на горизонте пока не появился ни один программист знающий винду хотя бы на троечку )))

Вам тоже кажется, что переходник USB-RS232 - это "проще", чем ардуина? :)

nen777w
Offline
Зарегистрирован: 08.07.2019

b707 пишет:

nen777w - а вообще я вам советую всю эту мутоту с компортом выкинуть из головы :) Сугубое ИМХО - на ардуине все получится в разы проще...

Мне как раз и нужно управлять с компьютера брелком.

Если раскрывать все карты, делаю следующее (проект просто хобби):

- Камера стоит и смотрит на ворота со шлагбаумом.

- На компьютере работает приложение которое посредством библиотеки openALPR распознает подъехавшие к воротам и шлагбауму машины и отрывает их "для своих".

Сейчас часть с OpenALPR и клиентским приложение в разработке.

Пока просто хочу просто сделать Viber бота которые по командам будет открывать ворота и шлагбаум.

ua6em пишет:

Так, на горизонте пока не появился ни один программист знающий винду хотя бы на троечку )))

Так я как раз программист :-)

Просто с смехотехникой у меня пробелы.

 

b707
Offline
Зарегистрирован: 26.05.2017

nen777w пишет:

Мне как раз и нужно управлять с компьютера брелком.

 

Не вижу противоречий. Берете ардуино Нано. втыкаете в USB и управляете своим брелком. Код на ардуине - сторок 30 максимум.

и лично на мой взгляд это куда проще возни с USB-RS232

nen777w
Offline
Зарегистрирован: 08.07.2019

b707 пишет:

nen777w пишет:

Мне как раз и нужно управлять с компьютера брелком.

 

Не вижу противоречий. Берете ардуино Нано. втыкаете в USB и управляете своим брелком. Код на ардуине - сторок 30 максимум.

и лично на мой взгляд это куда проще возни с USB-RS232

Да это я криво прочитал Ваше начальное сообщение.

Ардуины уже в пути из Китая, но завтра будут оптроны, и "руки чешуться" уже попробовать спаять.

Если будут проблемы (а я так понял будут) то переделаю все на ардуину.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

ua6em пишет:

Так, на горизонте пока не появился ни один программист знающий винду хотя бы на троечку )))

Вам тоже кажется, что переходник USB-RS232 - это "проще", чем ардуина? :)

мне не кажется, я это пользую десятки лет

nik182
Offline
Зарегистрирован: 04.05.2015

А у нас ворота открываются ещё и кнопкой, к которой всяко проще прицепиться дляуправления. Тем более что программа у вас  уже открывает ворота, значит весь интерфейс уже построен. По мне проще в программу внедриться и параллельно ей слать программно команды на открытие - закрытие через существующие схемы.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nen777w пишет:

b707 пишет:

nen777w пишет:

Мне как раз и нужно управлять с компьютера брелком.

 

Не вижу противоречий. Берете ардуино Нано. втыкаете в USB и управляете своим брелком. Код на ардуине - сторок 30 максимум.

и лично на мой взгляд это куда проще возни с USB-RS232

Да это я криво прочитал Ваше начальное сообщение.

Ардуины уже в пути из Китая, но завтра будут оптроны, и "руки чешуться" уже попробовать спаять.

Если будут проблемы (а я так понял будут) то переделаю все на ардуину.

проблема только на стадии обнаружения виндовс устройств подключенных к последовательному порту, когда всё загружено и работает проблемы нет, но это лечится )))
PS мышь питается от сигнала DTR (это подсказка)

nen777w
Offline
Зарегистрирован: 08.07.2019

ua6em пишет:

проблема только на стадии обнаружения виндовс устройств подключенных к последовательному порту, когда всё загружено и работает проблемы нет, но это лечится )))

PS мышь питается от сигнала DTR (это подсказка)

У меня linux. Завтра заберу оптроны напишу как там.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nen777w пишет:

ua6em пишет:

проблема только на стадии обнаружения виндовс устройств подключенных к последовательному порту, когда всё загружено и работает проблемы нет, но это лечится )))

PS мышь питается от сигнала DTR (это подсказка)

У меня linux. Завтра заберу оптроны напишу как там.

по линуксу не подскажу, в самых первых версиях код был очень кривой в части прерываний и адресов портов, это помню, наверное уже давно поправили, но зато поднимался порт ручками, ...и да если он не пытается определить (PnP) устройства, то засады быть не должно, а в своей программе инициируйте линии порта на LOW

nen777w
Offline
Зарегистрирован: 08.07.2019

Прибыли радио детали.

Пока что решил написать программу эмулирующую нажатие кнопок (управление DTR, RTS).

Подключил через резисторы два светодиода к этим выходам.

Обнаружил что при включени USB->UART эти два выхода устанавливаются в 1-цу. Скачал терминал (Terminal by Br@y++) поуправлял выходами оттуда.

Забавно то что в терминале эти выходы (судя по графической индикации, тоже должны быть на старте в 0-е). Ну да ладно...

Буду смотреть ioctl API в Linux для управления DTR, RTS.

p.s.

Тут же пришла идея оставить эти светодиоды когда я добавлю оптроны.

Я так понимаю ничего страшного я не случиться?

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

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nen777w пишет:

Прибыли радио детали.

Пока что решил написать программу эмулирующую нажатие кнопок (управление DTR, RTS).

Подключил через резисторы два светодиода к этим выходам.

Обнаружил что при включени USB->UART эти два выхода устанавливаются в 1-цу. Скачал терминал (Terminal by Br@y++) поуправлял выходами оттуда.

Забавно то что в терминале эти выходы (судя по графической индикации, тоже должны быть на старте в 0-е). Ну да ладно...

Буду смотреть ioctl API в Linux для управления DTR, RTS.

p.s.

Тут же пришла идея оставить эти светодиоды когда я добавлю оптроны.

Я так понимаю ничего страшного я не случиться?

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

можете, только учтите, что нормальный RS232 на эти сигналы даёт минус до 15 вольт (уровень нуля), отсекается диодом в прямом включении...
Значит в Линуксе тоже PnP реализован на уровне ядра, гуглите как отключить для конкретных портов

nen777w
Offline
Зарегистрирован: 08.07.2019

Во общем, только что собрал схему и вроде все плучилось, но есть одно НО!

Те светодиоды что я оставил для индикации при добавлении в схему оптронов перестали работать.

Но сами оптроны работают нормально, это видно по диоду на брелке.

Что это может быть? 

Резисторы: 200 Om.

Оптроны: PC817

Принципиальную схему и фото макетки прилагаю.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

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

nen777w
Offline
Зарегистрирован: 08.07.2019

Еще вопросы :-)

Я так понимаю никак нельзя сделать так что бы до старта приложения которое управляет этой железячкой на пинах USB->UART RTS, DTR были 0-и?

Т.е. прийдется переходить на ардуину.

На счёт "тиньки" которая сейчас под рукой, я так понимаю там нет возможности управлять ею по USB ? И USB там только для прошивки?

Спасибо.

nik182
Offline
Зарегистрирован: 04.05.2015

Извини, но ты тему то читаешь? В #11 я дал ссылку как управлять тинькой через USB.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nen777w пишет:

Еще вопросы :-)

Я так понимаю никак нельзя сделать так что бы до старта приложения которое управляет этой железячкой на пинах USB->UART RTS, DTR были 0-и?

Т.е. прийдется переходить на ардуину.

На счёт "тиньки" которая сейчас под рукой, я так понимаю там нет возможности управлять ею по USB ? И USB там только для прошивки?

Спасибо.

можно, но не я на этом ресурсе крутой специалист по Линух, что делать понятно, надо отключть PnP на выбранном тобой компорту, погули, не может быть, чтобы в линухе это не отключалось

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:
Извини, но ты тему то читаешь? В #11 я дал ссылку как управлять тинькой через USB.

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

nen777w
Offline
Зарегистрирован: 08.07.2019

Не все так просто с этой Тинькой :-)

Решил поробовать сперва под Win 10. Установил драйвера, перепрошил блинком. Все ок. Светодиод мигает. Красота!

Потом решил залить CDC_LED, и вот тут уже после загрузки, по истесчению 5-ти секунд когда скетч в микроконтроллере уже начал свою работу он сделал системе BSOD :-) Я потом еще пару раз проверял, перезагружал Win поключал тиньку и по истечению 5-ти секунд BSOD. 

Я еще не смотрел минидампы, но думаю что дело в драйверах Digispark (который нужны тиньке). У кого то было такое?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Так под десятку и не должны, кто их правил

nen777w
Offline
Зарегистрирован: 08.07.2019

ua6em пишет:

Так под десятку и не должны, кто их правил

Есть и под 10-ку. Например тут: https://arduino.ua/prod1986-plata-razrabotchika-attiny85-microusb-ot-digispark

Но с проблемой уже разобрался. Начитался что нужно отключить в биос

xHCI, EHCI 

когда включил обратно, то падать перестало.

Материнка ASUS X99 DELUX 

nen777w
Offline
Зарегистрирован: 08.07.2019

Продолжаю осваивать переход на Arduino (пока что ATtiny85).

Такой вопрос: Мне для питания брелка нужно 3v3 у тиньки можно взять только 5. Сегодня почитал спеку и обнаружил что у нее есть PWM т.е. можно использовать analogWrite() ?

Также у меня есть вот такой DC->DC конвертор: https://ru.aliexpress.com/item/32684592402.html?spm=a2g0s.9042311.0.0.274233eddL2KOS

Т.е. у меня два пути либо запитать брелок от PWM (подобрав значение analogWrite() что бы на выходе получилось 3v3 (т.е. (255/5)*3.3 ~= 169)) либо взять +5v и запитать брелок через DC->DC конвертор.

Какой вариант лучше?

И если таки можно от PWM то нужен ли сглаживающий конденсатор? Если да то какой и как его включать в схему?

Спасибо.

p.s.

Прошу прощения за возможно глупые вопросы.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

А сколько миллиампер потребляет брелок, может обычного резистора и стабилитрончика на 3.3 вольта будет достаточно?