Irda своими руками

Делаем ИК-порт своими руками

irda своими руками

Любое событие влечет за собой цепочку различных последствий.

Все началось, когда я сменил мобильный телефон. Приобретенный телефон Siemens S65 имел на борту инфракрасный порт, а в компьютере такового не было. Пойти и купить готовый ИК-порт было бы очень просто: купил, подключил и что? А куда же пристроить руки?

Итак, принято решение, строим ИК-порт для своего компа

После изучения своей материнской платы, был найден разъем для подключения ИК-порта. Это очень сильно упрощало поиск решения. Далее в Интернете быстро находим всевозможные схемы ИК-портов, среди которых схемы на специализированных трансмиттерных микросборках. Далее нужно было найти какой либо трансмиттер у себя в городе.

Радиорынок, лучшее место для подобных поисков. После общения с несколькими «торговцами» импортными микросхемами был найден некий Стёпа, у которого есть такие микросхемы. Ассортимент конечно не радует, но мы же в конце концов не девушки, которые покупают себе губную помаду. Микросхема TFDS4500 обошлась аж в $2.

Это при том, что готовый ИК-порт, на такой микросхеме стоит $10-$11.

Далее на сайте было найдено описание этой микросхемы со схемой включения:

и перечнем компонентов:

Так как схема включения несложная было принято решение собрать это все на куске макетной платы.

Итак, нам понадобится:

— Специализированная микросборка-трансмиттер TFDS4500

— 2 конденсатора и 2 резистора

— кусок макетной платы

— кабель с 4 жилами

— разъем для подключения к материнской плате

— кусок термоусадки

— паяльник и паяльные принадлежности

С одной стороны к кабелю присоединяем разъем и записываем, какого цвета провод какой сигнал будет нести. Для этого придется заглянуть в мануал от своей материнской платы. Обычно распиновка разъема следующая:

+5В

пустой

Rx

Tx

GND

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

Другой конец кабеля запаиваем в монтажку и размещаем на ней нашу микросхему и ее обвес:

А на другой стороне при помощи перемычек соединяем детали по схеме.

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

Итак, ИК-порт готов, спешим его подключить и проверить. После подключения его к материнской плате нужно сказать БИОСу о наличии у него ИК-порта. Заходим в БИОС, находим параметр UART2 Mode Select и указываем значение IrDA.

Так же нужно убедится, что материнская плата будет «правильно» распознавать уровни нашего ИК-порта. Для его правильной работы нужно чтобы значения RxD, TxD были установлены Hi, Lo.

После включения компьютера операционная система найдет и установит драйвера для стандартного ИК-порта.

Собранный таким образом ИК-порт долго валялся около системного блока, но пользоваться им, в таком положении, мягко говоря, неудобно, да и кошка постоянно хотела его откусить и утащить. Было решено имплантировать его в корпус системного блока.

Системник НЕО на лицевой панели имеет пару USB разъемов прикрытых откидной крышкой.

Идеальное место для размещения ИК-порта.

Для его имплантации понадобится:

— Дрель с 3 мм сверлом или дремель с 3 мм фрезой

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

— Кусочек красного акрила, своеобразный светофильтр чтобы закрыть излучатель

В корпусе было вырезано отверстие, через которое будет проходить свет.

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

Затем из красного акрила был вырезан квадратик подходящего размера и закреплен 3 мм винтом, прикрыв излучатель.

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

Шнур от ИК-порта был проведен в корпус параллельно со шлейфом от USB разъемов и подключен к материнской плате.

Все готово, закрываем корпус, загружаем, включаем в телефоне ИК-порт и устанавливаем его в рабочее положение.

Компьютер сразу его находит и сообщает о готовности приема-передачи данных.

После приятного проведения двух вечеров, комп имеет на борту ИК-порт.

Это и стало одним из звеньев той цепочки последствий приобретения нового телефона.

Счастливого моддинга!

Источник: http://ModNews.ru/modding/view/8554

3.5 мм джек – IR управление для смартфона

Всем привет! Как и обещал в одном из предыдущих обзоров, напишу сегодня про очередной “умный” мини-джек 3.5 мм для смартфона. Когда я увидел этот девайс в китайском магазине, мне сразу захотелось пощупать его руками, протестировать, так сказать.

Предназначение этого устройства не сразу понятно. Оказалось, что это мини-приставка к смартфону для управления различными устройствами посредству инфракрасной связи. Проще говоря – это замена пульта ДУ почти для любого устройства, где ключевое слово “почти”, и об этом ниже. Работает с помощью приложения, которое доступно бесплатно в андроид-маркете. С яблоками тоже вроде работает.

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

Шнурок стилуса тоже вставляется в разъём наушников, кстати.

Я долго не мог найти в маркете приложение, которое подойдёт в данном случае. Потом полез на страницу товара в магазине и нашел название. Просто пишете в поиске маркета “zazaremote”, устанавливаете, запускаете, а потом только вставляете этот девайс в телефон.

В интерфейсе программы сразу выбираете вид устройства (ТВ, DVD, кондиционер, фотокамера, ТВ-приставка и т. д. ). Потом появляется список производителей, а потом список моделей.

Вроде всё просто. Первое на чём я проверил устройство – на своём фотоаппарате. Выбрал из списка Nikon, и что странно, мне выдало только одну модель – D90. Хотя у меня и D5100 – всё заработало! Потом был телевизор.

Вот тут всё сложнее. У меня стоит старенький кинескопный LG, и как я ни пытался, кроме как вклвыкл и переключения каналов я ничего настроить так и не смог. Проверял на работе на плазменном Самсунге – всё отлично.

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

Оригинальный пульт выглядит также.

Выпирает мини-джек из корпуса всего на 10-12 мм, но, в отличие от кнопки-заглушки, это устройство всё же видно, и при неосторожном обращении можно обломить. Будьте аккуратны.

Подытожим. Ради интереса заказать стоит. Не сказал бы, что вещь полностью бесполезная. Можно, например, пугать коллег на работе включая/выключая кондиционер (у меня на работе кондиционер Tadiran, его не было в списке), или попереключать каналы в спортбаре на висящей на стане плазме). Использовать его как полноценный пульт от телевизора как-то не очень удобно.

Мне это устройство действительно пригодилось только на зеркалку. Если учесть, что оригинальный никоновский пульт дистанционного управления спуском затвора стоит около 20 долларов, то это приобретение за доллар – очень хорошее вложение! В общем, советую к покупке, интересная штука. Ссылка на товар. Всем спасибо за внимание! Если что, спрашивайте ниже.

Источник: https://AliTrack.ru/review/3008.html

Homemade IRDA Soldering Station. ИК Паяльная станция для пайки BGA, своими руками..

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

Занимаюсь ремонтом всякой техники: компьютерами, ноутбуками, и возникла острая необходимость в пайке BGA микросхем, мой int 853A, уже для таких дел не годился, площадь нагрева очень мала и трупики на которых проводились эксперименты, выкручивались пропеллером, а то и при снятии чипа обрывались пятаки. Лишь только видеокарты выдерживали подобную экзекуцию и поддавались ремонту.

Так как цена на китайские станции очень кусалась, а качеством исполнения не блещут, решил я собственноручно воплотить сей проект и состряпать станцию собственного производства под кодовым именем “ИК паяльная станция Абрамовича”:), шучу вобщем начал работать.

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

За скелет будущей паяльной станции я взял, алюминиевый уголок, и пришлось прикупить ряд инструментов и материалов: Уголок алюминиевый, лист оцинковки, заклепочник, набор лерок и метчиков, расходников, винтиков, гаечек, болтиков. Дальше начал думать какие нагреватели будут ИК керамика, Кварцевые, галогенный; голова шла кругом.

Перелопатив кучу инфы, думал взять кварц от офисных обогревателей, но походив по магазинам, обогревателей полно, а ламп нету. Что за!???. В итоге набег мой был на ближайший супермаркет электрики, и я штурмом взял отдел галогенных ламп, в голичестве 12 штук, причем которые были последние на витрине и больше их я не видел:))).

Следующим делом было найти патроны R7s для линейных галогенных ламп, это оказалось совсем не из легких дел, но все же перелапатив интернет, они были найдены и заказаны в количестве 20 штук. Работа пошла, за пару часов был изготовлен каркас из уголков, конструкция получилась такая какой я ее и представлял.

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

В уголке высверлил отверстия с патаем, чтобы щляпки болтов были западлицо с уголком. Монтаж сетки так же был не тороплив, сетка прижималась к уголку вырезанными из жестянки полосками, в общем все встало как родное.Пока патрончики были в пути, меня посетили мысли, о том как плата будет располагаться на нижнем нагревателе.

И я начал экспериментировать с заклепками, достал на бор для нарезки резьбы, нашел в закромах стойки для материнок, но к моему удивлению, резьба оказалась достаточно толстой на М3, не все материнки владеют такими отверстиями, в комплекте лерка была только на М3. Все таки нужны отверстия М2, для большинства ноутбучных плат. Ну да ладно оставим стойки на потом.

Начал обдумывать управление паяльной станцией, корпус и крепления верхнего нагревателя. Посетила мысль использовать штатив от советского фотоувеличителя УПА 510, очень грамотно продуман, и регулировкой нагревателя по вылету. За основу были взяты мебельные салазки.

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

Начал придумывать как будет выглядеть низ, а точнее будет ли онфиксированный неподвижный, или всетаки дать ему свободы и заставить перемещаться по оси X-Y, эксперимент был воплощен в жизнь, но откатался он не долго, низ постоянно произольно смещался от зоны пайки, что очень раздражало. И было принято решение о фиксации, и лишении его подвижности.

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

Пид REX C100, термопара К до500 град, реле FOTEK 40А, в этот же вечер были экспериментально подключены и проверены. Над корпусом верхнего нагревателя снова пришлось усердно вкалывать, использовал лист оцинковки за корпус, в роле отражателя использовал хромированную подложку от старого ноутбучного жесткого диска, патроны и галогенные лампы те же, вылет был сделан фиксированный из алюминиевых уголков на период теста низа, электрику для низа собрал за считанные часы. Разъем питания был взят из АТХ блока питания, провод для внутренней проводки был куплен в 1кв, выключатель, реле так же разместилось на днище корпуса. В роле держателей плат использовал мебелные салазки, хороший вылет удобство фиксации, для верхнего нагревателя использовался регулятор мощности.Первые тесты прошли успешно, но для качественной работы, нужен термопрофиль, а точностью в ручную управлять достаточно сложно, но можно. Был заказан Altec PC410, термопара для верхнего пида и реле…..

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

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

Для обеспечения раномерности нагрева, использовать лучше стеклокерамику, была заказана варочная стеклокерамическая панель..

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

За основу был взят корпус от старого стабилизатора напряжения, передняя панель была подготовлена, были вырезаны технологические отверстия под REX c100 и Altec PC 410, так же были вырезаны отверстия под кнопки и выключатели, на задней панеле разместился COM Порт интерфейса RS232, разъемы подключения термопар, разъемы подключения силовых кабелей верхнего и нижнего нагревателей, а так же штуцер вакуумного пинцета…..                                                     Проект не стоит на месте, все движется и эволюционирует……  

https://vk.com/club85273851

https://www.youtube.com/user/evgeny251

http://mc-service.blogspot.ru/ 

Источник: http://mc-service.blogspot.com/2015/02/bga.html

Переходник COM — USB

В данной статье приведена подборка схем, позволяющая собрать несложное, но крайне  полезное устройство: переходник  Com USB.

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

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

На сегодняшний день подавляющее большинство компьютеров не оснащаются  RS-232 разъемом, поскольку широкое распространение получил стандарт USB.

  Но еще существуют многого внешних устройств работающих только с COM портом (различные программаторы, диагностическое оборудование, ресиверы и пр.). Выходом из данной ситуации является использование устройства переходник COM-USB.

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

Полноценный переходник – COM адаптер для USB порта

на микросхеме FT8U232BM

Основа данной схемы является микросхема FT8U232BM – производителя FIDI Ltd. Устройство построенное по данной схеме поддерживает все сигнальные уровни (DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI) согласно распиновки COM порта.

Для согласования TTL уровней RS232 интерфейса с уровнями микросхемы FT8U232BM используются две микросхемы 74НС00. Микросхема памяти 93С46 предназначена для  хранения персонального номера (PID), код изготовителя (VID), а так же  заводской номер устройства.

Данную микросхему можно и не устанавливать. В этом случае к компьютеру возможно будет подключить всего лишь 1 создающее виртуальный COM-порт устройство. Микросхему памяти AT93С46 возможно заменить на  AT93C66, AT93C56.

 Прошивается 93С46 непосредственно на плате при помощи фирменной утилиты производителя FTDI.

Скачать datasheet FT8U232BM (1,4 Mb, скачано: 1 882)

Скачать драйвер для FT8U232BM (1,7 Mb, скачано: 1 615)

Упрощенный вариант на FT8U232BM

Это схема упрощенного USB-COM адаптера, который поддерживает только сигнальные линии RX, TX, RTS, CTS RS232 интерфейса. Для согласования уровней com порта с цифровыми уровнями  FT8U232BM в схему добавлена микросхема MAX232.

Схема переходника для COM с USB на PL2303

Следующая схема построена на микросхеме PL2303HX, которая является преобразователем интерфейса USB в RS232. Производитель PL2303HX – Тайваньская фирма Prolific. В данной схеме также используется приемо-передатчик MAX232, преобразующий сигналы  RX, TX.

Для правильной работы необходимо установить драйвер для виртуального COM-порта. Для этого скачиваем и устанавливаем драйвер по нижеприведенной ссылке.

Скачать драйвер для PL2303HX (3,5 Mb, скачано: 2 243)

Затем настраиваем виртуальный порт: выставляем в окошке “управление потоком” – НЕТ. Затем выбираем свободный номер порта.

USB – COM переходник на микроконтроллере Attiny2313

Питание микроконтроллера Attiny2313 осуществляется непосредственно от шины питания USB. Вся схема собрана на односторонней плате (SMD и ТН варианты). Устройство поддерживает только сигналы Rx и Tx.

Прошивку к переходнику, рисунок печатной платы (SMD и TH), а также программу терминал для проверки адаптера можно скачать по ниже приведенной ссылке:

Скачать файлы для USB переходника (1,4 Mb, скачано: 2 195)

При программировании Attiny2313, фьюзы необходимо выставить следующим образом:

Для работы устройства необходимо установить драйвер виртуального  COM  порта. Для этого скачиваем его:

Скачать драйвер (1,1 Mb, скачано: 2 395)

Теперь вставляем в USB порт компьютера наш адаптер, компьютер должен выдать сообщение “Найдено новое устройство”, а затем предложит установить для него драйвер.

Выбираем пункт “Установить с указанного места” и нажимаем на кнопку “Далее”. Затем в новом окне выбираем путь к папке скаченного и распакованного драйвера и опять жмем кнопку “Далее”.

Спустя несколько секунд драйвер будет установлен и устройство будет готово к работе.

Для проверки работоспособности устройства, временно замыкаем Rx и Tx выводы и с программы терминала, так же находящегося в архиве, выставляем номер COM порта и отправляем любое сообщение. Для этого пишем например “Привет” и нажимаем кнопку “Send”. Если переходник рабочий, то написанное сообщение появится в верхнем окне программы.

Переходник COM-USB на микроконтроллере Atmega8

Еще одна схема COM-USB адаптера теперь уже на микроконтроллере Atmega8 (Atmega48, Atmega88). Схема обеспечивает обработку Rx, Tx, DTR, RTS, CTS сигналов RS232 интерфейса. Драйвер виртуального порта для этой схемы такой же как и для переходника на attiny2313.

Прошивку для atmega8/48/88 и рисунок печатной  платы можно скачать по следующей ссылке:

Скачать файлы для USB – Com на Atmega8 (1,5 Mb, скачано: 3 506)

Фьюзы при программировании  для atmega8/48/88:

Источник: http://www.joyta.ru/6898-perexodnik-com-usb/

RF-модулятор из кассетного видеомагнитофона

Нашлась тут на досуге в коробке с закромами непонятная деталька с гездом и штекером для телевизионного кабеля или антенны. Возникает внезапный вопрос: что за хрень? Разбираемся…

Вид спереди

Вид сзади

Сия вещь была вытащена из видеомагнитофона Funai VIP5000 перед отправкой его на помойку (он был рабочий, но уже HD 1080 видео… все фильмы смотрим онлайн в таком качестве, а тут унылое VHS).

Выяснилось, что это RF (Radio Frequency) модулятор, который переделывает сигналы V (Video) и A (Audio), выдаваемые видеомагнитофоном (и нормальным образом подаваемые через «тюльпан» на видеовход телевизора), в сигналы формата AM-видео и FM-аудио, после чего подмешивает их в ТВ-антенный кабель. В результате чего в телевизоре, антенный кабель которого пропущен через видемагнитофон, появляется ещё один канал (на некоторой частоте UHF-диапазона), который транслирует видемагнитофон.

Вот как это выглядит на задней панели видеомагнитофона (антенный вход и выход справа):

Задница Сони

Нужно это на тот случай, если у Вашего телевизора нет видеовхода. Либо для трансляции сигнала на множество телевизоров в разных комнатах.

Мало кто знал, что так можно… В конце 80-х и начале 90-х многие люди даже не думали покупать видемагнитофон, по причине того, что у советских телевизоров не было видеовхода, а что можно смотреть через ТВ-кабель — не знали.

Более конкретно работает это так: втыкаете ТВ-антенный кабель в TV-IN видика, другой провод из TV-OUT в телевизор.

Включаете видеомагнитофон (если он выключен, телек вообще ничего показывать не будет, потому что между TV-IN и TV-OUT видемагнитофона стоит активный антенный усилитель), вставляете кассету с фильмом «Греческая смоковница» и начинаете на телевизоре в режиме поиска каналов искать канал (где-то в райне UHF-диапазона), который транслирует этот фильм. Если так получилось, что фильм с видика смешивается с каналом с эфира, нужно покрутить колёсико «RF-channel» на видеомагнитофоне (около TV-IN и TV-OUT), это изменит частоту трансляции. Найдя канал с видика, запоминаете его на кнопку «0», и теперь на этом канале будет «Video» с видемагнитофона. Только видемагнитофон теперь нельзя выключать насовсем, иначе прервётся сигнал ТВ-антенны.

А теперь начинаем копать как этот RF-модулятор устроен и как его можно использовать отдельно.

Вот, что внутри (сняли крышечки-экраны с обеих сторон):

Нутро 1

Устройство разделено на две независимые (по питанию) половинки. Справа — антенный усилитель на +8 дб на транзисторе 2sc2570 (зелёная стрелка), это усиление компенсирует потери на ферритовом сердечнике, через который подмешивается сигнал с левой стороны на TV-OUT (гнездо сверху). Это часть питается +12 вольт (земля — на корпус).

В левой части с обратной стороны находится чип 2259 JRC, который питается +5V, преобразует сигналы V-IN и A-IN в «эфирный» формат и отправляет его на подмес на правую сторону. Белая стрелка — изменение частоты подмешиваемого канала, розовая стрелка — переключение ТВ-системы: PAL B/G или PAL D/K.

С обратной стороны:

Нутро 2

Здесь левая часть — антенный активный усилитель с питанием 12 вольт, правая часть — преобразователь (RF-modulator на чипе 2259 JRC). N/A — это «не используется».

Как всё это счастье можно корыстно попользовать в неприличных целях?

Вот здесь http://forum.cxem.net/index.php?#038;showtopic=122997&st=60 человек подаёт на вход этого девайса видеосигнал от дверного видеоглазка и смотрит картинку на телевизоре на одном из каналов (не нужно покупать отдельный монитор в коридор).

Вот здесь http://forum.cxem.net/index.php?#038;showtopic=122997&st=20 народ делает беспроводную трансляцию с видика на удалённые телевизоры через ДМВ-антенны.

А вот как можно запросто использовать отдельно активный антенный усилитель:

Схема 1

Подаём только 12 вольт на первый слева контакт (землю — на корпус). Также нужно замкнуть контакты, обозначенные оранжевой и циановой стрелками (чтобы отключить ферритовый сумматор [обведён зелёным овалом], чтобы он не затухлял сигнал). Усё, сигнал дико (на 8 дб) усилен…

Чисто для пущего познания:

  • Розовая стрелка указывает на точку подмеса сигнала справа, с 2259 JRC.
  • Зелёный овал обводит ферритовый сумматор-трансформатор (на нём существенные потери уровня сигнала, наверное около 8 дб, для чего и добавлен усилитель).
  • Сразу от циановой стрелки вверх — TV-OUT.
  • Красным овалом обведён транзистор 2sc2570 (n-p-n, высокочастотный до 5 ГГц, малошумящий 1.5-3.0 дб, усиление 8 дб), база у него в самом низу (на эту базу через конденсатор снизу подаётся TV-IN), в центре эмитер, вверху коллектор (на который подаётся 12 вольт через резистор, так чтобы на переходе коллектор-эмитер было 10 вольт, как нужно по датащиту на этот транзистор), далее с коллектора вверх уходит сигнал через сумматор на TV-OUT.

Вот некая схема антенного усилителя на 2sc2570 (но обычно на этом транзисторе не делают, т. к. есть транзисторы  значительно лучше для таких усилителей, например, T67, V3, 415, BFG67, BFR91A):

Схема 2

——————— уф, усё ———————

Источник: https://almois.ru/2016/02/18/rf-modulyator-iz-kassetnogo-videomagnitofona/

Передача данных в инфракрасном диапазоне при помощи Arduino

        Всем доброго времени дня (или ночи, как вам удобно), начнём пожалуй с лирического вступления. Сейчас у многих дома есть телевизор с пультом ДУ(дистанционного управления), тюнер, DVD проигрыватель.

Многие люди(и семьи) не представляют свой домашний быт без пульта ДУ в руке. Согласитесь – как здорово быть властелином домашней техники, и в любой момент диктовать этим железякам свою волю.

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

        Итак, что же нам потребуется в качестве компонентов для нашего эксперимента? Как вариант продаются готовые модули ИК-пульта и ИК-приёмника. Но нам не хочется ждать и платить деньги, поэтому будет действовать более хардкорно.

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

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

        Ну так что же, как говаривал Ганнибал – “Вперед, на Карфаген”. Нам нужно просто выпаять приёмник и подключить его к плате Arduino по нижеследующей схеме…

        ИК-приёмник который был выпаян из платы не имеет какой либо маркировки, это просто очередной неизвестный китайский радиокомпонент, каких выпущено было тысячи. Вкратце можно сказать – в одном корпусе он объединяет фотодиод, предусилитель и формирователь.

На выходе формируется обычный ТТЛ-сигнал без заполнения, пригодный для дальнейшей обработки микроконтроллером. Несущая частота возможно(!) 36 кГц, но сейчас это не так важно… Просто попробуем его подключить к плате Arduino, условная схема даст нужную распиновку данного девайса.

На схеме ниже, выделенное красным – это форма корпуса в котором выполнен наш ИК-приёмник, выделенное зеленым – распиновка по которой он подключен к плате Arduino. 

        Итак, всё подключено. Чтобы прочитать коды с пульта ДУ существует библиотека IRremote.h, именно с её помощью будем изучать наш пульт, а точнее коды кнопок. В дальнейшем используем прочитанные коды в своих целях.

Скетч, при помощи которого будут прочитаны коды кнопок, представлен в примерах этой библиотеки, называется он IRrecvDemo.

Внимание !!! Скетч при компиляции выдаёт ошибку, в  самом начале  нужно добавить еще две подключаемые библиотеки:

#include “boarddefs.h”   //Добавочная библиотека #include “IRremote.h” #include “IRremoteInt.h” //Добавочная библиотека int RECV_PIN = 2;        //Пин подключения выходного сигнала с ИК-приёмника //Создаём экземпляр класса IRrecv, в качестве параметра передаём пин подключения сигнала ИК-приёмника IRrecv irrecv(RECV_PIN);   decode_results results;   //Переменная для сохранения полученного кода нажатой кнопки void setup() {   Serial.begin(9600);   irrecv.enableIRIn();     //Включение ИК-приёмника в работу } void loop() {   if (irrecv.decode(&results))             //Если произошло событие/кнопка была нажата   {     Serial.println(results.value, HEX);    //Выводим в монитор порта код нажатой кнопки в шестнадцатиричном виде     irrecv.resume();                       //Считываем следующую значение/кнопку   }   delay(100); } 

        После того как скетч был залит в плату Arduino(мы используем Arduino Nano на шилде I/O Wireless Shield for Nano), можно открыть монитор порта и посмотреть какие появляются коды при нажатии кнопок на пульте ДУ. Результат работы скетча представлен на скриншоте ниже:

        Кстати, в качестве монитора порта мы используем свой проверенный софт, если кому интересно – почитать статью и скачать Serial Monitor Pro можно здесь. 

Далее, нужно оформить полученные коды кнопок в виде констант, сделано это будет примерно так:

#define KEY_ONOFF 0x807F807F    //Кнопка Включения/Выключения #define KEY_MUTE  0x807F48B7    //Кнопка Mute #define KEY_1     0x807F00FF    //Кнопка 1 #define KEY_2     0x807FE01F    //Кнопка 2 #define KEY_3     0x807F609F    //Кнопка 3 #define KEY_4     0x807F20DF    //Кнопка 4 #define KEY_5     0x807FD02F    //Кнопка 5 #define KEY_6     0x807F50AF    //Кнопка 6 #define KEY_7     0x807F10EF    //Кнопка 7 #define KEY_8     0x807FF00F    //Кнопка 8 #define KEY_9     0x807F708F    //Кнопка 9 #define KEY_0     0x807FC837    //Кнопка 0

        И вот теперь, в общем то всё готово для финального теста – это будет элементарный тест управления включением/выключением релейных модулей. Приведем небольшое задание:

  • Используем два релейных модуля
  • Реле №1 привязываем к кнопке “1” пульта
  • Реле №2 привязываем к кнопке “2” пульта 
  • Включение любого из релейных модулей производится нажатием на кнопку к которой он привязан
  • Выключение любого из релейных модулей также производится нажатием на кнопку к которой он привязан
  • Нажатие на кнопку On/Off безусловно выключает оба релейных модуля(если они были включены, либо один из них включеный) 

Скетч, который реализует вышеописанное задание:

#include “boarddefs.h”   //Добавочная библиотека #include “IRremote.h” #include “IRremoteInt.h” //Добавочная библиотека #define KEY_ONOFF 0x807F807F    //Кнопка Включения/Выключения #define KEY_1     0x807F00FF    //Кнопка 1 #define KEY_2     0x807FE01F    //Кнопка 2 #define RELOUT1 3               //Выходной порт для реле 1 #define RELOUT2 4               //Выходной порт для реле 2 int RECV_PIN = 2; IRrecv irrecv(RECV_PIN); decode_results results; static boolean REL1_ONOFF = false; static boolean REL2_ONOFF = false; void setup() {   pinMode(RELOUT1, OUTPUT);   pinMode(RELOUT2, OUTPUT);     Serial.begin(9600);   irrecv.enableIRIn(); // Start the receiver } void loop() {   if (irrecv.decode(&results))   {     switch(results.value)     {       case(KEY_ONOFF):         REL1_ONOFF = false;         REL2_ONOFF = false;         break;       case(KEY_1):         if(REL1_ONOFF)           REL1_ONOFF = false;         else           REL1_ONOFF = true;         break;       case(KEY_2):         if(REL2_ONOFF)           REL2_ONOFF = false;         else           REL2_ONOFF = true;         break;     }     irrecv.resume();   }   digitalWrite(RELOUT1, REL1_ONOFF);   digitalWrite(RELOUT2, REL2_ONOFF);     delay(100); }

        И в конце статьи – видео, которое демонстрирует работу обоих скетчей. При желании и наличии творческой фантазии, можно расширить парк подключаемых модулей и управлять этим всем более продвинуто. Мы же в своей статье, постарались привести базовый пример применения этой технологии. Спасибо за внимание и приятного просмотра !!!

Источник: http://arduino.on.kg/peredacha-dannyh-v-infrakrasnom-diapazone-pri-pomoshchi-Arduino

Ик пульт ардуино

ИК приемник и инфракрасный пульт дистанционного управления – самый распространенный и простой способ управления электронной аппаратурой.  Инфракрасный спектр излучения не виден человеческим глазом, но он отлично принимается ИК приемниками, которые встроены в электронные приборы. Модули Arduino ir remote используются для управления различной техникой в прямой видимости.

Принцип действия ИК пульта

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

ИК излучение лежит в диапазоне от 750 до 1000 мкм – это самая близкая часть спектра к видимому свету. В области инфракрасного излучения могут меняться оптические свойства различных материалов.

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

Регистрируется излучение с помощью специальных фотоматериалов, на основе которых изготавливаются приемники. Источником инфракрасного излучения помимо нагретых тел (Солнца, ламп накаливания или свечей), могут быть твердотельные приборы – ИК светодиоды, лазеры. Излучение в инфракрасном диапазоне обладает рядом особенностей, благодаря которым их удобно использовать в пультах:

  • Твердотельные излучатели (ИК светодиоды) стоят дешево и они компактны.
  • Инфракрасные лучи не  воспринимаются и не фиксируются человеческим глазом.
  • ИК приемники также дешево стоят, и они имеют небольшие размеры.
  • Малые помехи, так как передатчик и приемник настроены на одну частоту.
  • Отсутствует негативное влияние на здоровье человека.
  • Высокий показатель отражения от большинства материалов.
  • IR излучатели не влияют на работу других устройств.

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

Информация кодируется в виде логической последовательности пакетов импульсов с определенной частотой. Приемник получает эту последовательность и выполняет демодулирование данных.

Для приема сигнала используется микросхема, в которой содержатся фотоприемник (фотодиод), усилители, полосовой фильтр, демодулятор (детектор, который позволяет выделить огибающую сигнала) и выходной транзистор. Также в ней установлены фильтры – электрический и оптический.

Работают такие устройства на расстоянии до 40 метров. ИК способ передачи данных существует во многих устройствах: в бытовых приборах, в промышленной технике, компьютерах, оптоволоконных линиях.

IR приемник Arduino

Для считывания IR сигнала понадобятся сама плата Ардуино, макет, приемник IR сигнала и перемычки. Существует огромное множество различных приемников, но лучше использовать TSOP312 или другие соответствующие для Ардуино. Данные от пульта к приемнику могут передаваться по протоколу RC5 или NEC.

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

Для удобства можно использовать готовые модули IR приемника.

Подключение IR приемника к ардуино

Выходы IR приемника подключают к Ардуино к портам GND, 5V и цифровому входу. Схема подключения датчика к 11 цифровому пину изображена ниже.

Вот так выглядит схема с модулем инфракрасного приемника:

Библиотеки для работы с IR

Для работы с ИК устройствами можно использовать библиотеку IRremote, которая позволяет упростить построение систем управления. Скачать библиотеку можно здесь.  После загрузки скопируйте файлы в папку arduinolibraries. Для подключения в свой скетч библиотеки нужно добавить заголовочный файл #include .

Для чтения информации используется пример IRrecvDumpV2 из библиотеки. Если пульт уже существует в списке распознаваемых, то сканирование не потребуется. Для считывания кодов нужно запустить среду ARduino IDE и открыть пример IRrecvDemo из IRremote.

Существует и вторая библиотека для работы с ИК сигналами – это IRLib. Она похожа по своему функционалу на предыдущую. По сравнению с IRremote в IRLib имеется пример для определения частоты ИК датчика. Но первая библиотека проще и удобнее в использовании.

После загрузки библиотеки можно начать считывать получаемые сигналы. Для этого используется следующий код.

Оператор decode_results  нужен для того, чтобы присвоить полученному сигналу имя переменной results .

В коде нужно переписать «HEX» в «DEC».

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

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

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

Бывает, что при загрузке программы выдается ошибка «TDK2 was not declared In his scope». Для ее исправления нужно зайти в проводник, перейти в папку, в которой установлено приложение Arduino IDE и удалить файлы IRremoteTools.cpp и IRremoteTools.h. После этого нужно произвести перезагрузку программы на микроконтроллер.

Заключение

Использование Arduino ir remote упрощает жизнь пользователю. В качестве пульта дистанционного управления может выступать мобильный телефон, планшет или компьютер – для этого только нужен специальный софт. При помощи Ардуино можно централизовать все управление. Одной кнопкой на пульте можно выполнить сразу несколько действий – например, включить одновременно телевизор и Blu-Ray.

Источник: https://ArduinoMaster.ru/datchiki-arduino/ir-ik-pult-upravleniya-arduino/

Ардуино: инфракрасный пульт и приемник

Инфракрасный пульт дистанционного управления — один из самых простых способов взаимодействия с электронными приборами.

Так, практически в каждом доме есть несколько таких устройств: телевизор, музыкальный центр, видеоплеер, кондиционер. Но самое интересное применение инфракрасного пульта — дистанционное правление роботом.

 Собственно, на этом уроке мы попытаемся реализовать такой способ управления с помощью популярного контроллера Ардуино Уно.

1. ИК-пульт

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

На таком пульте есть 10 цифровых кнопок и 11 кнопок для манипуляции с музыкой: громкость, перемотка, play, stop, и т.д. Для наших целей более чем достаточно.

2. ИК-датчик

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

Вообще, мы можем детектировать инфракрасное излучение обычным фотодиодом/фототранзистором, но в отличие от него, наш ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц).

Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца.

Для этого урока воспользуемся популярным ИК-датчиком VS1838B, который обладает следующими характеристиками:

  • несущая частота: 38 кГц;
  • напряжение питания: 2,7 — 5,5 В;
  • потребляемый ток: 50 мкА.

Можно использовать и другие датчики, например: TSOP4838, TSOP1736, SFH506.

3. Подключение

Датчик имеет три вывода (три ноги). Если посмотреть на датчик со стороны приёмника ИК сигнала, как показано на рисунке,

  • то слева будет — выход на контроллер,
  • по центру — отрицательный контакт питания (земля),
  • и справа — положительный контакт питания (2.7 — 5.5В).

Принципиальная схема подключения

Внешний вид макета

4. Программа

Подключив ИК-датчик будем писать программу для Ардуино Уно.

Для этого воспользуемся стандартной библиотекой IRremote, которая предназначена как раз для упрощения работы с приёмом и передачей ИК сигналов.

С помощью этой библиотеки будем принимать команды с пульта, и для начала, просто выводить их в окно монитора последовательного порта. Эта программа нам пригодится для того, чтобы понять какой код дает каждая кнопка.

#include “IRremote.h” IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { Serial.begin(9600); // выставляем скорость COM порта irrecv.enableIRIn(); // запускаем прием } void loop() { if ( irrecv.decode( &results )) { // если данные пришли Serial.println( results.value, HEX ); // печатаем данные irrecv.resume(); // принимаем следующую команду } }

Загружаем программу на Ардуино. После этого, пробуем получать команды с пульта. Открываем монитор последовательного порта (Ctrl+Shift+M), берём в руки пульт, и направляем его на датчик. Нажимая разные кнопочки, наблюдаем в окне монитора соответствующие этим кнопкам коды.

Проблема с загрузкой программы

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

TDK2 was not declared In his scope

Чтобы ее исправить, достаточно удалить два файла из папки библиотеки. Заходим в проводник. Переходим в папку, где установлено приложение Arduino IDE (скорее всего это «C:Program Files (x86)Arduino»). Затем в папку с библиотекой:

…ArduinolibrariesRobotIRremote

, и удаляем файлы: IRremoteTools.cpp и IRremoteTools.h. Затем, перезапускаем Arduino IDE, и снова пробуем загрузить программу на контроллер.

5. Управляем светодиодом с помощью ИК-пульта

Теперь, когда мы знаем, какие коды соответствуют кнопкам пульта, пробуем запрограммировать контроллер на зажигание и гашение светодиода при нажатии на кнопки громкости. Для этого нам потребуется коды (могут отличаться, в зависимости от пульта):

  • FFA857 — увеличение громкости;
  • FFE01F — уменьшение громкости.

В качестве светодиода, используем встроенный светодиод на выводе №13, так что схема подключения останется прежней. Итак, программа:

#include “IRremote.h” IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { irrecv.enableIRIn(); // запускаем прием } void loop() { if ( irrecv.decode( &results )) { // если данные пришли switch ( results.value ) { case 0xFFA857: digitalWrite( 13, HIGH ); break; case 0xFFE01F: digitalWrite( 13, LOW ); break; } irrecv.resume(); // принимаем следующую команду } }

Загружаем на Ардуино и тестируем. Жмем vol+ — светодиод зажигается. Жмем vol- — гаснет. Теперь, зная как это все работает, можно вместо светодиода управлять двигателями робота, или другими самодельными микроэлектронными устройствами!

Изменено: 19 Фев, 2015 13:06

Источник: http://robotclass.ru/tutorials/arduino-ir-remote-control/

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}