#1 Re: Аппаратные вопросы » Векторный анализатор цепей » 2020-07-24 02:11:04

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

EdpTImqXYAA8HbD?format=jpg&name=4096x4096

С учетом КСВ < 2.0 можно сказать, что эта перевернутая L-образная антенна (ILA) работает в диапазоне 820-920МГц. При этом минимальный КСВ составил 1.05, обратные потери RL < -32Дб, а коэффициент отражения Г = 0.025. Даже с учетом крайне низкого качества антенны, этого должно быть достаточно для временного использования в полевых условиях.

Кстати, антенна сделана из обрезка того самого коаксиального кабеля без изоляции, который тестировался ранее. Длина вибратора - 72 мм.

#2 Re: Аппаратные вопросы » Векторный анализатор цепей » 2020-07-17 15:47:40

Для настройки антенны необходимо впаиваться в радиотракт между антенной и трансивером, и для этих целей нужен высококачественный кабель малого диаметра, до 2 мм. Один из вариантов - это RG178. Еще один вариант - Molex Temp-Flex.

На днях я поехал на местный радиобазар в надежде купить что-нибудь подходящее. Однако, к моему сожалению, того, чего нужно, там нет и в помине. Наиболее близкий вариант - это RG-174 (сопротивление 50 Ом, толщина 2.8 мм). Хоть он и не подходит для моих целей, я все же купил для тестов метр кабеля Cabletech RG-174 (10 гривень). Мне объяснили, что его часто ставят на WIFI или GSM. Кроме того, для интереса взял метр какого-то неизвестного коаксиального кабеля без изоляции или, как его называют, "провод в экране" (цена 5 грн), а также разъемы SMA (по 25 грн за штуку).

Разъемы, скажу сразу, пришлось выкинуть и купить другие. Те, что на базаре, просто не работают. При сборке я стабильно получаю короткое замыкание. Собрали три штуки - все выкинули. Еще один остался на память, чтобы знать, как выглядит и больше не покупать:
EdIEDxsX0AccK5C?format=jpg&name=360x360

Пришлось отдельно заехать в "Радиомаг" и купить другие разъемы, на этот раз по 15 грн, но они оказались намного лучше. Собрал вот таких два кабеля, каждый по 1 м:

EdF5YLbXsAI7KmK?format=jpg&name=small

Итак, имеем два кабеля: кабель А и кабель Б.

Первый тест: кабель подключается к порту VNA, на другом конце устанавливается терминатор 50 Ом. При такой схеме включения коэффициент стоячей волны для идеального кабеля, рассчитанного на импеданс 50 Ом, должен быть равен единице, поскольку он определяется качеством согласования нагрузки и линии связи. По общему признанию, если кабель возбуждает стоячую волну с КСВ больше 1.22, то его использовать нежелательно. На графиках ниже отображено фактическое состояние дел; красный график - КСВ, синий график - импеданс.

Очевидно, что кабель Б имеет явно меньший КСВ и, следовательно, вносит меньше искажений. Кабель А при этом достаточно сносно работает до частоты 1.5 ГГц, но при этом бросается в глаза явное смещение импеданса с повышением частоты. Видимо, кабель А имеет слишком большую индуктивную составляющую.

EdF6jUQWAAIzOAZ?format=png&name=900x900 EdF6wK9WkAA8hb-?format=png&name=900x900

Следующий тест проверяет то, насколько качественно собраны эти два кабеля. Геометрическая форма влияет не только на импеданс, но и на фазовые задержки. Это может быть важным моментом, если используются несколько подобных кабелей одновременно, например, для нескольких антенн MIMO или Bluetooth 5.1. Для эксперимента, кабелем соединяются два порта VNA и после этого выполняется калибровка VNA. После калибровки фазовая задержка принимается равной нулю. После этого, кабель нужно подвигать, поскручивать, подергать и снова посмотреть на фазовую задержку. Идеальный кабель не меняет своей формы и новых задержек вносить не будет.

EdHxM9FXoAAhDM7?format=png&name=medium

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

И последний тест, самый очевидный - это вносимые потери. Для этого кабель подключается к двум портам VNA и оценивается уровень сигнала после прохождения через кабель. Потери отображаются на графике. Для сравнения, неплохой кабель будет иметь это значение порядка 80 дБ на 100 метров длины, хороший - около 60 Дб на 100 метров. Оба моих кабеля длиной один метр:

EdHiGVBXkAAbefx?format=png&name=900x900

Похоже, что оба кабеля и разъемы очень невысокого качества. Что касается импеданса и вносимых помех (КСВ), кабель Б имеет явно более стабильную характеристику, однако при этом он хуже сделан физически: после скручивания он создает явно выраженную фазовую задержку. Также, для частот больших 500МГц я бы воздержался от использования кабеля Б длиннее одного метра.

В свою очередь по сравнению с Б кабель А вносит намного меньшие затухания на высокой частоте. Нужно, тем не менее, отметить, что это аж 1.5 Дб на метр на частоте 2.4 ГГц. Все-таки, кабель больше подходит для частот до 1 ГГц, где он ведет себя и стабильнее, и вносит не такие высокие потери.

#3 Re: Аппаратные вопросы » Векторный анализатор цепей » 2020-07-15 14:49:18

Не совсем про NanoVNA v2, но про очередную штуку, которую можно делать на VNA - измерение длины кабелей.

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

Для эксперимента я подключил на первый порт один из SMA кабелей, которые шли в комплекте. На красном графике ниже, который отображает КСВ по времени, всплеск наблюдается через приблизительно 3 наносекунды. Это соответствует сигналу, отраженному от места обрыва кабеля, где болтается свободный конец. Если учесть, что за это время (3 нс) сигнал должен пройти до конца и обратно, и скорость света в кабеле SS405 (я не знаю, но похоже, что это он) составляет приблизительно на 0.7 от скорости света в вакууме, то можно посчитать расстояние до обрыва:

3(нс) * 0.3(м/нс) * 0.7 / 2 = 0.315 м = 31.5 см

Ec7UijQWsAEkdbA?format=png

Ec9iIFKXkAAGmjD?format=jpg&name=small

#4 Re: Аппаратные вопросы » Векторный анализатор цепей » 2020-07-14 04:13:29

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

Ec2T1VpXkAAi-j1?format=png

#5 Re: Аппаратные вопросы » Векторный анализатор цепей » 2020-07-13 22:35:04

Впечатления, скажу я вам, самые положительные! NanoVNA v2 имеет все те же возможности, что и оригинальный NanoVNA, но только в диапазоне до так необходимых 3 ГГц (и при желании даже несколько больше - смотрите выше) и при этом с очень высоким качеством.

Вот пример для одной из антенн моего маршрутизатора Linksys EA6900:

1594656421031.jpeg

image_2020_07_13T17_57_03_190Z.png

smile

#6 Re: Разное » Корпус для датчика BMP280. » 2020-07-08 13:46:51

archer2k19 пишет:

Этот датчик имеет диапазон измерений до 30кПа.  А корпусу будет подводится трубка от объема в котором нужно померить давление.

Хоть это не относится к вопросу о коробке, в документации указано, что от 30 кПа до 110 кПа. Может, это действительно не совсем подходящий сенсор?

#7 Re: Разное » Помощь (обучение) в написании скретча » 2020-07-03 13:21:47

renoshnik пишет:

Но этот прибор я делал на заказ человеку который серьезно занимается огородничеством.
Функционал подробно согласовывался с заказчиком и весь выше перечисленный набор "экзотических" функций был совершенно не востребован.

Значит, я говорю про систему для несерьезных огородников :-)

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

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

#8 Re: Разное » Помощь (обучение) в написании скретча » 2020-07-03 12:10:43

Интересный таймер. По форме так, как будто можно поставить на DIN рейку. Это хороший старт, тем более для относительно стационарных условий.

В то же время я думаю о некоторой системе с обратной связью. Какие могут понадобится параметры для мониторинга и как на них можно повлиять? Перечислю некоторые очевидные (не претендуя на полноту и без особого порядка):

  • Влажность почвы

  • Кислотность почвы

  • Яркость и продолжительность освещения

  • Влажность воздуха

  • Температура почвы

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

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

#9 Разное » Продам носимые контроллеры nRF52833 » 2020-07-03 00:13:32

Mishka
Ответов: 0

Продам носимые платы на базе Nordic nRF52833. Основные параметры:

  • Диаметр 25 мм (5 копеек), работает от одной батарейки CR2032 / CR2025 (напряжение 1.8V - 3.6V)

  • MCU nRF52833 (aQFN-73): Cortex-M4F 64МГц, 512KB flash, 128KB RAM, Bluetooth® 5.1 Direction Finding, 105°C

  • Две кнопки

  • Светодиод RGB

  • Инфракрасный светодиод (850 нм)

  • Гнездо 2x4, шаг 1.27 мм: 6хGPIO (один из которых поддерживает 12-бит АЦП), питание 3V, земля

  • Разъем для NFC антенны, совместимой с Nordic FPC и Liard 0600-00061, можно использовать в качестве двух дополнительных GPIO

  • Интерфейс USB 2.0 в виде контактных площадок на плате

  • Интерфес ARM Cortex SWD через отламываемый разъем Tag-Connect 2030 и площадок на плате

  • Пассивные компоненты AEC Q200

Детальнее - https://www.openhardware.io/view/742/

В наличии есть пара штук по цене - 650 грн.

В нагрузку идет нераспаянная плата для гироскопа Bosch BMG250 и магнитометра-акселерометра ST LSM303AGR.

#10 Re: Разное » Помощь (обучение) в написании скретча » 2020-07-02 22:06:30

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

#11 Re: Программирование Arduino » Передача сигналов по Bluetooth » 2020-06-13 16:41:06

Разве компилятор не выдает ошибку для case "A1"? Как оно вообще собирается?

Оператор case ожидает целочисленное значение. Это неплохо работает со следующей конструкцией, потому что 'А' фактически является числом 65 и C может свободно привести char к int, обратите внимание на одинарные кавычки.

switch (command) {
case 'A':
    functionA();
    break;
...
}

Но строки типа "A1" являются регионами памяти и запись case "A1" будет синтаксически неверной.

Касательно сути вопроса. Serial.read() возвращает всего один (первый) байт из буфера, поэтому чтобы обрабатывать больше, нужно либо сохранять прочитанные байты между вызовами loop(), либо читать весь буфер Serial в контексте одного вызова loop(). Также возникает вопрос, что произойдет, если передать две команды "А1" и "B2" подряд? Подозреваю - поправьте меня, пожалуйста, если это не так - что они будут прочитаны как одна команда "A1B2". А если два устройства будут заполнять буфер Serial одновременно, не возникнет ситуация, когда результат окажется чем-то вроде "AB12"?

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

#12 Re: Проекты » Проект "тревожная кнопка" » 2020-06-10 17:53:03

Возможно, вот такое - https://arduino.ua/prod3224-sonoff-rf-bridge-433-mgc

#14 Re: Аппаратные вопросы » Эволюция Ардуино впечатляет "Arduino Portenta H7" » 2020-05-26 17:59:07

Вячеслав Азаров пишет:

К сожалению, эти характеристики не приведены в описании.

В описании указано, что Portenta использует десятидолларовый MCU STM32H747XI, к которому подключен дешевенький трансивер LAN8742AI. Схема включения - тоже самая бюджетная, на одном кристалле 25 МГц через RMII. Впрочем, похоже, что параметры трансивера хорошо соответствуют интерфейсу, все тайминги совпадают. Например, ширина фронтов 0-1 составляет для обоих устройств около 8 нс. Очевидно, это максимально возможное значение, чтобы хоть как-то пройти сертификацию на 100BASE-TX.

smile

А если серьезно, то почему возник такой вопрос? Любопытно было бы узнать, в каких случаях важно иметь действительно высокий показатель для Fast Ethernet, тем более для такого устройства, как Portenta. По моему скромному мнению, все компоненты подобраны весьма удачно, но ждать абсолютной производительности от нее нет резона. Разве что в пересчете на кубический миллиметр или на ватт.

#15 Re: Аппаратные вопросы » Радиоуправление на NRF24L01 » 2020-05-22 14:48:25

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

Увеличить дистанцию с nRF24 можно разными способами. Если есть прицельная видимость, то самый дешевый способ - использовать направленную антенну на передатчике. В зависимости от конструкции антенны это должно поднять уровень передаваемого сигнала в сторону кораблика в среднем на 6-9 Дб и, соответственно, увеличить дистанцию раза в два-три. С другой стороны, можно взять модуль nRF24 со встроенным PA/LNA. К тому же такие модули обычно имеют не только более чувствительные антенны, но и лучше держат ее настройку. Это добавит около 8-10 Дб к чувствительности приемника кораблика, что будет соизмеримо с результатом направленной антенны. Само собой, можно использовать оба подхода одновременно.

Ну и в качестве альтернативы, можно рассмотреть переход на Bluetooth 5, который регламентирует помехоустойчивое кодирование (coded phy) и увеличивает дистанцию где-то в те же самые два-три раза. Для этого понадобится заменить nRF24 на одну из микросхем серии nRF52, которая имеет поддержку long range. В контексте этой задачи имеет смысл сразу иметь поддержку Bluetooth 5.1 Direction Finding - кораблик тогда вернется назад, просто как на маяк в море. Это ограничивает выбор до микросхем nRF52811 для приемника кораблика (чувствительность около -97Дб), и nRF52820 / nRF52833 для передатчика. Но можно взять и все одинаковые, например, nRF52811 и иметь PA/LNA. В таком случае усилитель должен иметь возможность переключать антенны, чтобы полноценно работал алгоритм direction finding.

В теории, сочетание coded phy + усилители на приемнике (+10Дб) и передатчике (+20Дб) + направленная антенна (+10Дб) может увеличить энергетический баланс на +30..35 Дб и, соответственно, дальность Bluetooth раз в пятьдесят. Это может составить свыше 5 км.

Еще один вариант - это модули LoRa. За счет высокого энергетического баланса линии и помехоустойчивого кодирования дальность связи может быть до 10 км. При плохой связи задержка, однако, может доходить до нескольких секунд. Что, впрочем, на таких дистанциях в море может быть приравнено к управлению спутником в космосе :-)

#16 Re: Аппаратные вопросы » Векторный анализатор цепей » 2020-04-22 01:02:43

Не так давно вышел анализатор NanoVNA V2. Судя по всему, этот VNA прекрасно работает с частотами до 3.5 ГГц (с верхним пределом в 4.5ГГц, хотя заявлено 3 ГГц - вероятно, из-за кабелей), что дает возможность использовать его для настройки WiFi, Bluetooth, Zigbee, Thread и других 2.4 ГГц антенн. Прибор можно (иногда) купить на Tindie по цене менее $60 (шестидесяти долларов США). Хотя это никак не профессиональное оборудование, но он просто идеально подходит для настройки любительских устройств.

Если кто-то уже успел купить и опробовать в деле, пожалуйста, напишите свои впечатления!

#17 Re: Проекты » Контролер для автоматического полива » 2020-04-22 00:42:43

Паяльник пишет:

Задача: создать авто полив газона 4-16 зон, с датчиком дождя.
...
Полив должен включаться раз в неделю (лучше чтобы это можно было менять) на определенное время каждая из зон по очереди.
Когда по графику должен включиться полив, сразу проверил нету ли дождя, потом начал открывать электромагнитные клапана. Если есть дождь то пропускает этот полив.

Может быть, имеет смысл контролировать влажность и температуру почвы, воздуха? Датчики можно разместить даже на разной глубине. Кроме того, насколько я знаю, полив обычно проводится так, чтобы избежать попадания прямых солнечных лучей сразу же после полива (нужен датчик освещенности). Если нужно будет разместить систему в поле, то понадобятся сборщики и накопители энергии на солнечных батареях. В свою очередь Bluetooth 5 мог бы обеспечить хорошее покрытие на произвольной площади.

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

Обновлено: Возвращаясь к базовым требованиям, цена на Arduino и датчик дождя очень маленькая. Электромагнитные клапаны тоже не очень дорогие. Похоже, что основные задачи, которые нужно решить - это неблагоприятные условия и электропитание.

#18 Re: Аппаратные вопросы » Помогите разобраться с конденсатором. » 2020-04-12 03:33:20

Обычно для определения обрыва линии обычно требуется постоянное КЗ на другом конце линии, то есть тут больше подходит кнопка с постоянно замкнутыми контактами, как посоветовал Lic Control. В таком случае нет необходимости нажимать на кнопку, чтобы проверить был ли обрыв. Соответственно, тогда и конденсатор тоже будет не нужен. Все, что необходимо - это через резистор подтянуть вывод, к которому подключена кнопка, на VDD (кстати, судя по рисунку выше, у Ардуино есть встроенный pull-up резистор), а кнопку саму подключить на землю. Если на выводе читается низкое напряжение, значит цепь работает и кнопка не нажата. Если высокое - то цепь оборвалась или нажали на кнопку. В таком случае проверьте вывод еще раз через некоторое время. Если после N проверок он будет в высоком состоянии, то, вероятно, был обрыв.

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

#19 Re: Программирование Arduino » Перчатка манипулятор "Мышь" » 2020-04-01 19:45:37

Watchdog пишет:

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

Вон оно чё, Михалыч...

#20 Re: Программирование Arduino » Перчатка манипулятор "Мышь" » 2020-04-01 18:22:55

Watchdog пишет:
Mishka пишет:
Watchdog пишет:

Но выбранный вами модуль это не позволяет.

Да вроде ж позволяет.

Да нет. ftp://imall.iteadstudio.com/Modules/IM130614001_Serial_Port_BLE_Module_Master_Slave_HM-10/DS_IM130614001_Serial_Port_BLE_Module_Master_Slave_HM-10.pdf

Дак вроде все-таки как да: http://www.ti.com/lit/ds/symlink/cc2540.pdf

#21 Re: Программирование Arduino » Перчатка манипулятор "Мышь" » 2020-04-01 16:30:36

Watchdog пишет:

Но выбранный вами модуль это не позволяет.

Да вроде ж позволяет.

#22 Re: Программирование Arduino » Нужна помощь в написании программы arduino » 2020-03-31 13:49:39

vvr пишет:
Alex45 пишет:

Чтоб при зависания ардуино отправил смс и я мог сделать reset по смс.

я исхожу из требований заказчика.

"А кто же тогда будет осуществлять мониторинг мониторинга мониторинга?" (с) "Враг государства"

#23 Re: Проекты » Очередная система считывания данных счетчика » 2020-03-30 20:46:45

NickVectra пишет:

Ymid - это середина цифры по оси Y
Высота (height_letter) и ширина цифры (width_letter) принята по 26 пикселей.
Ширина цифры после определения занимает от 16 до 3 пикселей в зависимости от того какая цифра.
В высоте также участвует возможный сдвиг цифры, когда она занимает промежуточное положение.
У меня так просто, к сожалению, не получилось разобраться в нейронной сети даже самой простейшей.

Ага, вижу, извините за невнимательность. Размер получается еще меньше!

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

#24 Re: Проекты » Очередная система считывания данных счетчика » 2020-03-30 20:00:12

Вячеслав Азаров пишет:

Так кто вам мешает? Покажите класс. smile Восьмиразрядные микроконтроллеры даже интерфейса, к этим видеосенсорам, не имеют. Нужно будет делать самостоятельно. Минимальная скорость чтения которых 5 Мбайт/с, Объем данных сами вычислите. Эти сенсоры не имеют внутреннй памяти изображения, это ПЗС и выборочно читать отдельные области картинки невозможно.

Мне ничего не мешает. Но я ведь и не должен? smile

В ESP32-CAM, похоже, стоит камера OV2640. У нее есть возможность отображать только интересующий регион (region of interest - ROI). Интерфейс с кадровым буфером делать тоже не нужно.

В принципе вполне возможно читать и распознавать цифра за цифрой все значения счетчика. Похоже, что на Uno с ее Mega2560 это сделать достаточно комфортно. Но теоретически можно попробовать уложиться и в 2Кб ОЗУ, переместив предварительно обученную сеть в ПЗУ.

Конечно же, я совсем не имею ввиду, что нужно заменить ESP32-CAM на 8-битный контроллер. Но и утверждать, что Ваш знакомый просто неудачно пошутил, тоже не могу.

#25 Re: Проекты » Очередная система считывания данных счетчика » 2020-03-30 13:59:28

Вячеслав Азаров пишет:
NickVectra пишет:

Полностью согласен, что алгоритм требует доработки. Если кто-то возьмет за основу идею может совместно и доработаем  smile

Мне один тальянец предлагал на 8-ми разрядном микроконроллере распознавание цифр сделать; шутник. Хотя, думаю возможно, с внешней памятью.

"На показанных фотографиях [ширина цифр] равна 45 пикселям (Ymid), высота цифр 21 пикселям (Y_d)", и вы можете добавить порядка двух внутренних уровней по 16-20 узлов, а так же иметь один 10 разрядный уровень на выходе. Итого 45*21+2*20+10 = 995 байтов займет нейронная сеть. Плюс несколько десятков байтов на другие структуры. Само собой, веса тренированной сети прописаны в ПЗУ.

Суммирование операция простая, скорость тут тоже не требуется. Даже если цифра будет проворачиваться в момент получения фотографии и ее нельзя будет распознать, то через 5 секунд это уже станет возможным. С дополнительным контролем результата (число должно все время увеличиваться, цифры в старших разрядах не должны хаотично менять свои значения) можно избежать случайных ошибок. Кроме того, можно даже вести карту вероятностей появления каждой цифры - счетчик ведь работает предсказуемым образом. Она тоже займет порядка 10*N байтов, где N - количество разрядов на счетчике. Зато вероятность ошибки может быть получится свести чуть ли не до нуля.

Подвал раздела