Что можно разработать на микрокомпьютере raspberry pi

Что такое Raspberry Pi

Raspberry Pi представляет собой настоящий компьютер, который выполнен в виде всего одной платы.

Raspberry Pi разрабатывается английской компанией Raspberry Pi Foundation.

Почему «малина»

«Raspberry» в переводе с английского, означает — «малина», поэтому компьютер очень часто называют малинкой.

Логотип Raspberry Pi — изображение ягоды малины. В символике платы и графическом оформлении материалов и аксессуаров часто применяют изображение малины.

Название «Raspberry» было выбрано по аналогии с названиями других компаний, которые также имеют съедобные названия — Apple (яблоко), Apricot (мандарин) Computers, Tangerine (мандарин) Computer Systems и другие.

«Pi» происходит от первоначальной идеи сделать маленький компьютер для работы с языком Python (Пайтон).

Модели Raspberry Pi

Система наименований различных моделей Raspberry Pi может немного запутать новичков, но на самом деле все очень просто.

Pi 1, Pi 2, Pi 3 и Pi 4 означают поколение модели.

  • Pi 1 — это модели 2012-2014 г.
  • Pi 2 — модели 2015-2016 г.
  • Pi 3 — модели 2016-2018 г.
  • Pi 4 — текущая модель 2019 г.

Индексы A, A+, B и B+ можно ассоциировать с характеристиками устройства. Модели B, в рамках одного поколения, более производительные и более «навороченные», чем модели A.

«+» добавлялся к моделям, которые имели совсем незначительные изменения по сравнению с моделью без индекса «+», например, Pi 1 B отличается от Pi 1 B+ наличием функции POE (Power over Ethernet).

Также есть Zero-версии платы. Они в прямом и переносном смысле «урезаны».

Настройка локальной сети

Если у вас есть локальная сеть, то Raspberry Pi 3 уже подключен к ней (в случае открытой и корректно настроенной сети). Чтобы иметь к ней удобный доступ, в стандартном файловом менеджере нужно открыть меню «Перейти», выбрать «Сеть», открыть меню «Закладки», нажать «Добавить в закладки», переключить вид «Дерево директорий» на «Точки входа». Теперь ссылка на сеть будет под рукой при каждом открытии файлового менеджера.

Вроде, всё неплохо: сетевые ресурсы доступны, файлы открываются, копируются и даже удаляются. Только при входе чуть ли не в каждую сетевую папку система запрашивает пароль (который мы меняли в самом начале работы с ОС). Другие компьютеры в моей сети (и на Windows, и на Linux) заходят на те же ресурсы без паролей. Убрать ввод этого пароля пока не удалось (ввожу каждый раз).

Для того, чтобы компьютеры, входящие в ЛВС, отображались на верхнем уровне, правим настройки Samba /etc/samba/smb.conf. Только файл нужно открыть с правами суперпользователя. Например, вводим в терминале следующую команду (предварительно выполнив sudo -i):

leafpad /etc/samba/smb.conf

Меняем значение параметра workgroup на название нашей рабочей группы, сохраняем изменения, делаем перезагрузку. Теперь при заходе в «Сеть» можно сразу переходить к нужному компьютеру (не открывая ещё две папки).

Библиотеки .NET IoT

dotnet/iot

  • System.Device.Gpio. Пакет System.Device.Gpio поддерживает множество протоколов для взаимодействия с низкоуровневыми аппаратными интерфейсами:

    • General-purpose I/O (GPIO);
    • Inter-Integrated Circuit (I2C);
    • Serial Peripheral Interface (SPI);
    • Pulse Width Modulation (PWM);
    • Serial port.
  • Iot.Device.Bindings. Пакет Iot.Device.Bindings содержит:

    • Драйвера и обертки над System.Device.Gpio для различных устройств которые упрощают разработку приложений;
    • Дополнительные драйвера поддерживаемые сообществом (community-supported).

Стек библиотек .NET IoTBlink an LED

Разбор кода:

  • using System.Device.Gpio — пространство имен для использования контроллера GpioController доступа к аппаратным ресурсам;
  • using var controller = new GpioController() — создает экземпляр контроллера для управления контактами GPIO;
  • controller.OpenPin(pin, PinMode.Output) — инициализирует контакт pin = 18 на вывод, к 18 контакту подключен светодиод;
  • controller.Write(pin, ((ledOn)? PinValue.High: PinValue.Low)) — если ledOn принимает значение True, то PinValue.High присваивает высокое значение 18 контакту и светодиод загорается. На 18 контакт подается  напряжение в 3.3V. Если ledOn принимает значение False, то PinValue.Low присваивает низкое значение контакту 18 и светодиод гаснет. На 18 контакт подается напряжение в 0V (или минимальное пороговое для значения «0», может быть немного выше 0V).

dotnet publish -r linux-armdotnet publish -r linux-arm64GpioController

Драйвера доступа к GPIO из .NET

System.Device.Gpio.Drivers

  • HummingBoardDriver — GPIO драйвер для платы HummingBoard на процессоре NXP i.MX 6 Arm Cortex A9;
  • LibGpiodDriver — этот драйвер использует библиотеку Libgpiod для получения доступа к портам GPIO, заменяет драйвер SysFsDriver. Библиотека Libgpiod может быть установлена на Linux и Armbian, не является аппаратно-зависимой, что позволяет ее использовать для различных одноплатных компьютерах ARM32 и ARM64;
  • RaspberryPi3Driver — GPIO драйвер для одноплатных компьютеров Raspberry Pi 3 или 4;
  • SysFsDriver — GPIO драйвер работающий поверх интерфейса SysFs для Linux и Unux систем, предоставляет существенно меньше возможностей, чем драйвер LibGpiodDriver, но не требует установки библиотеки Libgpiod. Тот случай, когда хочется просто попробовать помигать светодиодом из C# без дополнительных действий;
  • UnixDriver — базовый стандартный класс доступа к GPIO для Unix систем;
  • Windows10Driver — GPIO драйвер для ОС Windows 10 IoT. Из поддерживаемых плат только Raspberry Pi, весьма ограниченное применение.

LibGpiodDriverSysFsDriver

  • Низкая скорость работы I/O;
  • Есть проблемы с безопасной работой с GPIO при совместном доступе;
  • При контейнеризации приложения на C# в контейнер придется пробрасывать много путей из файловой системы Linux, что создается дополнительные сложности. При использование библиотеки Libgpiod этого не требуется.

LibgpiodLibgpiodLibgpiod

Дистрибутив Raspbian

Существует целый ряд дистрибутивов Linux, которые поддерживают работу с Raspberry Pi. Каждый из них имеет свои особенности. Среди них на первое место всегда ставят дистрибутив Raspbian.

Raspbian — это дистрибутив Linux, который основан на Debian. Его разработкой занимается сама Raspberry Pi Foundation и именно его рекомендует к использованию.

Raspbian использует среду рабочего стола PIXEL (Pi Improved Xwindows Environment, Lightweight). PIXEL основана на LXDE и OpenBox, но имеет определенные отличия и доработки.

Новичкам я рекомендую начинать знакомство именно Raspbian, так как он хорошо протестирован и должен работать без каких-либо проблем.

Ниже мы рассмотрим установку дистрибутива Raspbian.

Сделаю небольшое отступление. Очень часто, в отношении сборок Linux для Raspberry Pi не используют понятие дистрибутив, а называют их просто операционной системой. Стоит также отметить, что в Raspberry Pi используется процессор ARM, поэтому на малинку нельзя установить привычные нам дистрибутивы, которые мы используем на персональных компьютерах. Дистрибутивы для Raspberry Pi специально собираются под процессоры ARM и включают необходимые драйвера и программные компоненты, которые обеспечивают поддержку аппаратных частей платы.

Можно ли установить Windows

Нет, привычный Windows не будет работать. Однако, есть Windows 10 Internet of Things (IoT) Core — это специальная версия Windows для «интернета вещей» и ее можно установить на Raspberry Pi. Данная система разработана исключительно для встроенного использования. Она не включает графический интерфейс и не может работать, как настольная операционная система.

Преимущества и недостатки Raspberry Pi 3

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

Преимущества использования:

  • После установки спецсистемы «Умный дом» жилью становится охраняемым от большинства проблем. Система позволяет обезопасить свой загородный дом, коттедж или дачу от пожара, протечки воды и даже кражи.
  • При правильной установке датчика, реагирующего на движение, количество потребляемой электроэнергии значительно уменьшается, потому что свет выключается автоматически, если человек не находится в комнате. Платить за коммунальные платежи придется намного меньше.
  • Уменьшение потребления электроэнергии для отопления помещений. Включить батареи можно дистанционно за 1–2 часа, в зависимости от площади, до приезда домой. Также можно выключить отопление дистанционно, если пользователь забыл это сделать.
  • Увеличение уровня комфорта и экономия времени. К примеру, включить мультиварку, чайник или другой прибор, можно находясь в другой комнате. Также это работает для управления шторами или приготовление утреннего завтрака.
  • Интеллектуальные развлекательные системы — «домашний кинотеатр» или система мультирум.

Несмотря на большое количество плюсов, которыми обладает данная система, есть несколько минусов. Их нужно учитывать. Умный дом на базе raspberry pi обладает такими недостатками:

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

Несмотря на несколько минусов, значительные плюсы этой системы их перекрывают. Raspberry Pi умный дом — это устройство, которое справляется с большим количеством поставленных задач, предлагая несколько оптимальных решений. Можно купить готовые наборы или разработать все самостоятельно. В интернете очень много инструкций и готового ПО под любую задачу. Удобно, что управлять можно по локальной сети или при помощи Интернета.

Что нужно, чтобы сделать из RPi десктоп?

Самый простой способ сделать из «Малины» десктоп – это приобрести Raspberry Pi 3 desktop starter kit и докупить к нему клавиатуру и мышь, если их нет в наличии. Такой набор включает в себя:

  • саму плату компьютера;
  • радиатор охлаждения;
  • пластиковый корпус;
  • шнур HDMI;
  • карту памяти;
  • блок питания.

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

Отдельно внимания заслуживает накопитель. Для RPi лучше использовать класс 6-8 или выше. При этом если она будет использоваться в качестве десктопа, лучше выбирать флэшку как можно более высокого класса.

Что касается программной части, то чтобы превратить Raspberry Pi 3 в desktop, подойдет практически любая ОС на ядре Linux. Другое дело, что не нужно использовать тяжелую DE. Лучше всего установить Xfce или более легкую среду рабочего стола. В загруженном состоянии она занимает всего около 100 мегабайт ОЗУ.

А также рекомендуется внимательно подбирать и остальное ПО. Например, вместо отдельных приложений мессенджеров лучше использовать Pidgin с нужными плагинами, а взамен тяжелого музыкального плеера – VLC или какой-то другой не очень требовательный проигрыватель.

Настоятельно не рекомендуется забивать автозагрузку системы разными программами. Это создаст большие трудности при использовании «Малины». Рекомендуется запускать приложения по мере их необходимости.

Подключение Raspberry Pi

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

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

Если вы считаете, что вашему устройству не хватает питания, можно проверить напряжение с помощью мультиметра. На старых платах есть отверстия на верхней части платы подписанные TP1 и TP2.На модели B+, Pi2 и Pi3 они размещены внизу платы, на стороне SD карты, и отмечены PP3 и PP7.

Сначала подключите все периферийные устройства, которые вы собираетесь использовать. Установите мультиметр на измерение напряжения до 20 вольт. Подключите красный провод к TP1 или PP3, а черный к TP2 или PP7. Мультиметр должен выдать значение около 5 Вольт. отклонение в 0,25 Вольт  — это плохо и чем ближе к пяти, тем лучше. Если вы обнаружили снижение напряжения это могло произойти по двум причинам:

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

В общем, подключение Raspberry Pi не вызывает много проблем.

Что умеет Raspberry Pi

Существует несколько версий компьютера: первого, второго и третьего поколения, а также мини-версия Zero. К нам на обзор попала старшая модель Raspberry Pi 3 Model B в составе набора «Малина» от наших друзей из «Амперки».

Технические характеристики модели третьего поколения:

  • 4-ядерный 64-битный процессор Broadcom BCM2837 1,2 ГГц;
  • 1ГБ ОЗУ;
  • Wi-Fi и BT LE модуль BCM43438;
  • 4 USB порта стандарта 2.0.

Это позволяет не только установить на одноплатный компьютер полноценную ОС с графическим интерфейсом, но и подключить его к FullHD монитору и использовать в качестве рабочего ПК, а также запускать на нем, например, Quake III.

Что мы сделаем с нашей Raspberry Pi? Превратим в мост для HomeKit

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

Специальные гаджеты или компьютеры с определенным ПО могут получать сигналы управления от системы HomeKit и переводить их в доступные команды для умных гаджетов в доме.

Самым доступным решением, которое способно связывать систему управления Apple и штуки разных производителей, является HomeBridge.

Специальный сервис может быть запущен на обычном Windows-компьютере или Mac. О запуске HomeBridge на компьютере мы уже подробно рассказывали ранее.

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

Доступ к Raspberry Pi с компьютера

Есть несколько способов доступа к Raspberry Pi. Вне зависимости от способа цель — получить доступ к терминалу RPi для ввода команд, помогающих подготовить компьютер к работе с TFLite.

Можно работать с RPi как с обычным ПК, подключив его к монитору через порт HDMI, а также подсоединив мышь и клавиатуру. После успешного запуска RPi вы сможете получить доступ к его графическому интерфейсу и открыть терминал. К сожалению, этот метод может не сработать при покупке новой RPi: чтобы разрешить использование порта HDMI, нужно изменить некоторые настройки.

Доступ к RPi через специальный монитор и периферийные устройства обойдётся дорого, если у вас нет собственного ПК/ноутбука. Для управления RPi через свой ПК сначала нужно подключить порт Ethernet RPi к порту коммутатора. Коммутатор должен поддерживать протокол DHCP, чтобы IP-адрес для RPi присваивался автоматически.

Назначив IP, при помощи IP-сканера вы найдёте IP Ethernet-интерфейса RPi с подключённого через тот же коммутатор ПК, а имея IP-адрес RPi, с вашего ПК вы сможете открыть сеанс SSH, где получите доступ к терминалу RPi. Подробности читайте в этом учебном руководстве.

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

Возможно, после настройки сети коммутатор не понадобится. Всё, что нужно сделать, — подключить ПК к той же беспроводной сети. IP-сканер сообщит IP беспроводного интерфейса в RPi. После этого можно открыть сеанс SSH и достучаться до терминала одноплатника.

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

Подключение к сетевому принтеру

Раз уж у нас есть офисные программы, то и печать документов, скорее всего, потребуется. В рассмотренной выше сети установлен единственный принтер, подключённый к ПК на Windows 10. Принтер уже сетевой, но нужно как-то добавить его в Raspbian. Для этого установим программы CUPS и samba-client:

apt install samba-client cups

CUPS не пустит нас в настройки просто так. Поэтому нужно добавить нашего текущего пользователя в группу lpadmin:

usermod -aG lpadmin pi

Управление в CUPS происходит через веб-интерфейс. Вводим в браузер адрес 127.0.0.1:631, затем переходим в раздел «Администрирование», нажимаем «Добавить принтер». Вводим имя пользователя pi и пароль, который задали при настройке системы (в начале статьи). Отмечаем «Windows Printer via SAMBA» и нажимаем «Продолжить».

Дальше важный момент. В поле «Подключение» нужно ввести адрес принтера в сети. В данном случае smb://192.168.1.6/hp1010. Из чего он состоит: smb:// — протокол SAMBA, 192.168.1.6 — локальный адрес компьютера, к которому подключён принтер, hp1010 — сетевое имя принтера.

Нажимаем «Продолжить». Вводим название принтера для нашей системы и на всякий случай ставим флажок «Разрешить совместный доступ к этому принтеру», нажимаем «Продолжить». Выбираем драйвер для принтера (список впечатляет), нажимаем «Добавить принтер». Сохраняем параметры. Печатаем для теста какой-нибудь документ и радуемся жизни.

Установка радиаторов на Raspberry Pi

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

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

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

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

Крепятся радиаторы к чипам, судя по всему, обычным двусторонним скотчем. По крайней мере для 3M-ленты этот клейкий материал выглядит уж слишком тонким.

Чипы перед наклейкой радиаторов на всякий случай следует обезжирить спиртом. Крупный чип слева – сердце микрокомпьютера, однокристальная система Broadcom BCM2837 с интегрированным процессором и графическим адаптером. В синтетических тестах греется до 100°C, так что оставлять его без охлаждения никак нельзя.

Правее, возле USB-портов, находится контроллер USB. Он тоже греется, хотя и не так сильно, как SoC Broadcom BCM2837. Второй радиатор из набора будет закреплен на нем.

2 верхних радиатора надежно закреплены на своих местах.

Медная пластина закреплена на модуле 1Гб LDDR2 памяти с нижней стороны. Оперативная память сильно не греется, поэтому полноразмерный радиатор на ней не нужен. Но медная пластина все же пусть будет. На всякий случай. Как минимум, ее наличие способно защитить чип от случайных механических повреждений.

Забегая наперед: радиаторы оказались действительно полезной вещью, когда процессор “малины” находится под нагрузкой, то установленный на нем радиатор начинает обжигать палец. Так что пренебрегать их установкой, думая что “раз производитель не оснастил ими плату – значит и не нужно”, не стоит.

Робот-тележка 2.0. Часть 3. Внутри навигационного стека ROS, немного majordomo

Tutorial

Эта часть цикла статей по навигации домашнего автономного робота на базе open-source linorobot будет суховата на картинки, так как будет большей частью посвящена теории. «Теория, мой друг, суха, но зеленеет жизни древо», -как говорил классик. Заглянем под капот linorobot, разберем подробно составляющие его навигационного стека ROS, а также n-е количество параметров, стандартно используемых в ROS.
В конце небольшой бонус — как прикрутить робота к другому проекту — majordomo и приподнять автоматизацию своего жилища на новый уровень.
Предыдущие статьи цикла:Робот-тележка 2.0. Часть 2. Управление в rviz и без. Элементы красоты в rvizРобот-тележка 2.0. Часть 1. Автономная навигация домашнего робота на базе ROS

Маршрутизатор

Из Rasbperry Pi можно сделать нечто вроде роутера, который будет блокировать рекламу на всех устройствах в вашей домашней сети. Установите на одноплатный компьютер специальное приложение под названием Pi-Hole, настройте, затем переведите Raspberry Pi в режим раздачи Wi-Fi. Возможно, вам придётся докупить внешний модуль Wi-Fi для Pi, если качество сигнала покажется неудовлетворительным.

Когда все ваши гаджеты будут подключаться к интернету через Pi-Hole, на них перестанет отображаться реклама. Баннеры в браузерах, всплывающие окна в приложениях на смартфонах или умных телевизорах — всё это будет заботливо вырезано.

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

А если немного поковыряться с настройкой, то с Raspberry Pi можно пропускать весь ваш трафик через VPN или TOR. Тогда вы забудете о постоянных блокировках.

Настройка внешнего вида

Для удобства приводим рабочий стол к более привычному виду (в данном случае к виду подобному Windows). Правый клик по панели, «Panel Settings». Edge переключаем в положение «Botton» — панель перемещается вниз. Переходим во вкладку «Panel Applets», удаляем лишнее, добавляем нужное. Удалил Ejecter и CPU Usage Monitor. Добавил Minimize All Windows и Keyboard Layout Handler (переключатель раскладки клавиатуры).

Через последний добавляем русскую раскладку. Правый клик по флагу, «Keyboard Layout Handler Setting». Снимаем флажок «Keep system layouts», нажимаем «Добавить», выбираем ru. Меняем сочетание клавиш для переключения раскладок кнопкой под надписью Change Layout Options.

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

Меняем набор значков слева. Правый клик на одном из значков, «Application Launch Bar Settings». Вытаскиваем пару ярлыков из меню на рабочий стол. Меняем обои (предпочитаю что-то более однотонное):

Операционные системы Retro Gaming для Raspberry Pi

На Raspberry Pi можно установить несколько операционных систем в стиле ретро. Эти инструменты, работающие на Raspbian / Debian, позволяют запускать игровые ПЗУ и эмуляторы.

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

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

, Следующие ретро-игровые системы работают на всех моделях Raspberry Pi.

12. RetroPie

RetroPie, оригинальное решение для ретро-игр Raspberry Pi, предлагает эмуляцию широкой коллекции ретро-платформ 80-х, 90-х и начала 2000-х годов.

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

13. RecalBox

Основным конкурентом RetroPie является RecalBox. Эта система имеет тенденцию выпускать эмуляторы для некоторых более поздних систем, чем раньше, чем RetroPie. Например, эмулятор Dreamcast для Raspberry Pi

был выпущен для Recalbox до RetroPie.

14. Lakka

Считающийся «легким дистрибутивом Linux, превращающим маленький компьютер в полноценную консоль эмуляции», Lakka — это интеллектуальная ретро-игровая платформа.

Официальный Linux дистрибутив RetroArch и libretro, Lakka доступен для множества печатных плат, а также для Windows и macOS.

15. Система развлечений Pi (PES)

PES — это коллекция эмуляторов на основе Arch Linux. Он обрабатывает эмуляцию для 22 платформ, отслеживает достижения с помощью RetroAchievements.orgи включает в себя Kodi.

Написанный на Python, PES — более увлеченный подход к ретро-играм.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector