SCratORS

SCratORS

STOP 0x0000007B
пикабушник
поставил 234 плюса и 438 минусов
проголосовал за 0 редактирований
2928 рейтинг 42 подписчика 958 комментариев 30 постов 6 в горячем
1 награда
5 лет на Пикабу
6

Странная СМС. Мошенники? Чтобы что?

Сегодня утром супруге на телефон пришла СМС.

Странная СМС. Мошенники? Чтобы что? Без рейтинга, МТС, СМС, Телефонные мошенники, Зачем, Идиотизм

У супруги МТС. Я же не являюсь клиентом МТС уже давно. Был когда-то, но ушёл с сохранением номера и поэтому код оператора в номере МТС-овский остался. Никакими услугами МТС не пользуюсь, ни сотовыми, ни проводными.

Что это за СМС, для чего и чтобы что?

Показать полностью 1
242

Домофон на ESP

Наверное любой кто занимался "умнизацией" своего жилища, задумывался или даже сделал "умный" домофон, а точнее своё абонентское устройство координатного домофона в квартире. Я не стал исключением и тоже решил сделать своё.

Почему своё, а не уже придуманное кем-то? Всё потому что: 1. Идеи заложенные в уже придуманные немного не входили в мои планы, и не все функции реализованы. 2. Как-то колхозно всё реализовано и с большими вопросами к элементной базе и габаритам устройств.

Итак, чего же тебе не хватает, сабака? - Все придуманные варианты, которые я смог найти в этих ваших интернетах:

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

2. Использовали куеву тучу реле и/или оптопар.

Тоесть: Берём несколько реле и подпаиваем их выходы к геркону - для эмуляции снятия трубки, к кнопке - для открытия, еще реле к линии зачем-нибудь. Оптопару на линию для детекции (это понятно), и прочее прочее... Фу так делать. Схема получается хоть и простая, но габаритная.

3. Никто не реализовал передачу аудио сигнала на блок вызова.

В связи с этим, мои требования были такие:

1. Устройство (печатная плата) должна влезать в обычную монтажную телефонную коробку. Это значит что сразу готовый корпус, а также подключение линии и телефона можно выполнить нормальным способом, а не так как "было" - на соплях примотали толстую медную лапшу на тонкую многожилку провода трубки. Провод трубки обжимается разъемом RJ11, вставляется в розетку девайса, а там нормально клеммами прижимается к плате.

2. Передача аудио сигнала на блок вызова.

3. Минимально возможное использование релюх или оптопар.

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

Начинаю шуршать схемы трубок. И после детального изучения принципов работы, что и за что отвечает - делаю вывод: Все схемы трубок координатных домофонов идентичны где-то на 90% как бы по разному из не рисовали. Беру за основу ту. которая мне показалась наиболее удобна для понимания.

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

И начинаем в ней разбираться. Геркон не надо, Динамик не надо, значит "схему его обвязки" тоже не надо. Резисторы 100-ки не надо, тумблер тоже.

Кнопка открытия... Зачем там люди реле ставят?... транзистор же нужен.

Микрофон... Как подать сигнал. Да просто. Микрофон электретный, а значит это по сути транзистор. Вот и поставим туда транзистор, только через 10 кОм, что бы сигнал по громкости не завалило. Немного поколдовав схему в ИзиИдея получаем:

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

Далее, детектор линии. Тут без оптопары не обойтись. Ну на схеме трубки есть диод индикации через 10кОм, делаем аналогично. Вход на светодиод, Выход на ногу ESP.

Теперь, как ни крути, но одно реле понадобится. Задача которого состоит в том, чтобы  в выключенном состоянии коммутировалась на линию трубка, а во включенном наша схема. Я долго пытался найти решение как тут отказаться от реле, но всё сходилось к тому, что если нет питания, никакой коммутации не будет, т.е. если устройство по какой-либо причине не запитано, то домофон вообще не работает. Эх ладно, пусть будет одно реле =( к счастью нашлась одна миниатюрная релюшка от OMRON.

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

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост
Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

Моя система умного дома - это HomeAssistant. Значит писать будем под ESPHome. (MQTT-шники, лишний брокер - это ваш выбор. Мой выбор ESPHome).

Всё бы было хорошо, если бы ни два НО:

1. Хоть маленькая заметка о том как воспроизвести звук на ESPHome используя библиотеку ESP8266Audio и есть, но она не работает, а точнее, там много не описано и досказано. Пришлось додумывать самому.

2. Ни одной статьи как использовать LittleFS в ESPHome нет. Пришлось всё решать самому.

Как итог:

Прошивка написана, всё работает как и положено.

В HomeAsistant карточка выглядит так:

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

А поскольку у меня имеется аж 2 Алиса-станции мини, и они умеют взаимодействовать с этой системой, то и домофоном теперь можно управлять голосом.


Ссылка на прошивку: https://github.com/SCratORS/SmartIntercom

Если у Вас тоже есть вопросы как работать с LittleFS и воспроизводить из нее Аудио файлы в ESPHome - Это для Вас.

Ссылка на схему: https://easyeda.com/scrators/intercom


Спасибо за внимание. Надеюсь кому-нибудь пригодится

Показать полностью 4 1
655

USBtiny ISP

Хочу оставить эту маленькую заметку, вероятно она кому-нибудь, когда-нибудь поможет.
Значит приобрёл я на всем известном китайском сайте USBtiny ISP программатор, вот такой вот:

USBtiny ISP Isp, Avr, Arduino, Attiny

Подключаю к компу, он определился, дрова adafruit находятся в гугле. Всё вроде ок, но при попытке прошить ардуину, дудка пишет - "Присоединенное к системе устройство не работает". При этом, дрова стоят, система сидит, ошибок в диспетчере устройств нету, сам этот свисток без проблем читается и шъется другим ISP программатором. Ответ нашёл в отзывах к этому девайсу, спасибо тому покупателю.
Оказывается, китайцы их присылают с стоящей перемычкой (капля припоя) на контакте SJFAB. Обратите внимание, что на картинке нет перемычки, а на девайсе она действительно стоит. Берем паяло, убираем перемычку и всё начинает работать как надо. Для чего и зачем так сделано не знаю.

15

МФЦ выбрал за меня участок для голосования[UPD: Проблема решена]

Решил я зайти сегодня в свой личный кабинет в мобильном приложении ГосУслуг и с удивлением обнаружил, что Я в понедельник во время рабочего дня сходил и подал заявление в МФЦ о выборе участа для голосования. И ладно бы этот участок был моим обычным по месту жительства. Дак нет, учаток немного в другом конце города! Складывается ощущение, что это было сделано специально, что бы я не пошёл на голосование о поправках. Ну ладно, я не гордый, из принципа схожу и проголосую против там. Уроды.
Для справки: работаю на заводе, рабочий день с 8 до 17, и выйти за пределы пропускного пункта (даже в соседнее крыло в отдел кадров например) - гемморой.

МФЦ выбрал за меня участок для голосования[UPD: Проблема решена] Голосование, Госуслуги, Поправки, Конституция, Длиннопост

Не хочу ничего утверждать, но дорогие друзья, проверте свои личные кабинеты, что бы не было удивления в день голосования "против".

Показать полностью 1
145

Разработка живых обоев для Android

Разработка живых обоев для Android Приложение на Android, Android разработка, Видео, Длиннопост

Всех приветствую. Решился я наконец рассказть о своём маленьком проектике.

Все началось примерно в 2014 году, когда я приобрел себе HTC one X. Этот аппарат был идеальным для меня, и начиная с того момента я стал фанатом HTC. В этом аппарате были интересные живые обои в силе слайд-шоу, всё в них было хорошо, но были некоторые ньюансы, например нельзя запускать смену изображения ручками, например через двойной тап по экрану, а этого очень хотелось. Картинки перемещались не только в одну (рандомную) сторону - к примеру.


И вот захотелось мне найти замену, которая меня бы удовлетворяла больше. Перелопачивая всё, что было на плей-мараркете найти что-то стоящее не удавалось. То работает рывками, то весит дофига, то свайпов нет, то растягивает изображение. Нашлось только ОДНО приложение платное, которое более-менее выполняло то, что мне хотелось, но тут сыграл роль мой перфекционизм, который никак не давай покоя: Зачем делать экраны настроек, интерфейс приложения каким-то цветастым-пердястым, почему вообще приложение платное, ведь ничего сверх естественного оно не делает. И так было много мелких причин, которые вылились в "не нравится? - сделай сам!". Ок, попробуем.


Для себя я поставил несколько целей:

1. Минимализм в весе приложения, - ибо почему приложение весит >10Мб? Чего там такого?

2. Максимально простой интерфейс, максимально стандартный, без всяких свистелок перделок.

3. Обязательно использовать OpenGL 2.0 (ну и выше соответственно)! Только так можно добиться максимальной плавности и производительности.

4. Картинки прокручиваются влево-вправо и свайпом.

5. Двойной тап по экрану меняет изображение.


В процессе разработки удалось добиться всего что хотелось и даже больше:

1. Вес приложения 117кб... из них 70кб весит дефолтная картинка!

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

2. Приложению ВООБЩЕ не нужны разрешения!

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

3. Можно выбрать как каталог из которого будут браться файлы, так и отдельно выбрать файл/файлы.

4. Удалось заставить воспроизводить видео-файлы!

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

И при этом откуда у них столько скачиваний? Ума не приложу.


Приложение сделал бесплатное, без реклам, без всякой чепухи. И бонусом открытый исходный код.

GooglePlay: https://play.google.com/store/apps/details?id=com.scrat.imag...

Исходный код: https://github.com/SCratORS/ImageWallpaperSC


Надеюсь кому-нибудь пригодится и будет полезным.

Буду рад коментариям, отзывам, предложениям.

Показать полностью 1

Сон

Белая черёмуха, яблони в цвету,
С белыми ромашками я к тебе иду.
Ты навстречу в платьице в беленький горох,
Прежняя девчонка из далёких снов.
Мы любовь когда-то не смогли сберечь.
Угасали чувства, как огарки свеч.
Думал я, что счастье лучше где-то есть,
Но найти другое, как пуд соли съесть.
Жизнь судьбой вертела, и неслись года.
Только в моём сердце ты была всегда.
Одиноким волком рыскал я, не жил.
О тебе мечтая, не любя, грешил.
В чудеса поверю, в магию примет:
К нам весна вернулась через столько лет!
Две судьбы- тропинки снова нас свели.
И белей ромашки в поле зацвели.
Под ветвями яблони, в аромате грёз
Глажу с прежним трепетом прядь твоих волос.
Боже, как же сильно я тебя люблю!
Щемит сердце болью: я ведь просто сплю!

от автора:
Что б душа не ныла по утрам от снов,
Берегите чувства, счастье и любовь!

Елена К.

С наступающим праздником, влюблённые!!!

P.S. Стих написала моя мама.
Вообще мама пишет в последнее время много стихов, и готовится 2 книги в продакшн.

40

Замена analogWrite на Arduino Nano. Массивы функций.

Доброго времени суток!

Да, может уже надоело по ШИМ, но я хочу закончить этот ШИМ для себя и оставить немного полезностей.

В первой части программного ШИМа, уважаемый @Begemot911 подкинул одну занимательную статейку (если интересно - ссылку найдете там же), а именно про то, что analogWrite довольно медленный в силу своей универсальности, и для того что бы его ускорить, нужно просто ручками вписать в нужный таймер в нужный регистр сравнения значение скважности (в таймер, или подключить вывод нужного таймера, - не знаю как это правильно сказать). Да, это действительно ускоряет результат, но нужно знать какой таймер, какой регистр, какой бит порта, и пока analogWrite все это определит и получается задержка.


Так же в статейке написано как "подключить таймер", и как "записать значение в регистр", по сути это просто скопировано из исходника.

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


Спустя полчаса-час мучений и баданий с Arduino IDE, его компилятор сказал, что он понял чего я хочу, и скомпилировал код.


Что получилось на практике - Если записать сначала скважность хотя бы 1, то потом, записав 0 - на выходе все-равно есть сигнал.  Вообщем перед записью значений 0 и 255 надо бы еще и ШИМ выключить (в статейке про это сказано, что типа нефиг писать 0 и 255) - да, логично, но я чот подумал что если в порт на этот пин записать 0 или 1, то ШИМ сам отключится - *индейская народная изба*. Ладно, берем все необходимое, и пишем код:

Замена analogWrite на Arduino Nano. Массивы функций. Arduino Nano V3, Программирование, Шим, Массив функций, Длиннопост

Взять код можно на github.com


Как работает котэ:

Дефайны - просто определяют cbi и sbi, ничего интересно, все это знают.

Есть 6 функций, каждая и которых отвечает за свой пин (3, 5, 6, 9, 10, 11), по порядку. Алгоритм функции таков: сначала порт переводится в режим OUTPUT, затем, если задаваемое значение скважности 0 или 255, то отключается режим ШИМ, и в порт пина записывается 0 или 1, иначе, включается ШИМ на нужное значение скважности. В общем и целом, вся логика сделана такая же как и у analogWrite, только без всех проверок и прочих определений, все только по факту.

Далее определяем массив из указателей на эти функции. Делается это так:


void ( * название_массива_функции[])(типы_условных_параметров) = {&название_функции_1, &название_функции_2 ... и т.д.}


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


Конечно же, если у вас не Nano, а что-то более жирное, то можно добавить свои функции


И получаем вот  такую удобную конструкцию.

Например надо на все пины ШИМ, подать какие-либо значения скважности


Определяем значения скважности в массив

byte valueMass[]={v1 ,v2, v3, v4, v5, v6};


и банальным FORэм передаем все значения в функции

for(byte i=0;i<6;i++) analogFastWrite[i](valueMass[i]);


Вот и всё!


Я думаю что существует способ обойтись без FOR и передать значения как-то напрямик, но я пока не нашёл как. Если кто знает, напишите в комментариях, очень требуется.

Наверняка кому-нибудь пригодится, если не вариация замены analogWrite, то пример как сделать массив из указателей на функции в Arduino IDE.

Показать полностью 1
Отличная работа, все прочитано!