Радиомодули HopeRF HM-R433 и HM-T433. Тест на дальность

Такс, в порядке работы над коммерческим проектом (и не спрашивайте о каком — не скажу), который сожрал все мое свободное время огромной зазубренной ложкой, раскурил до самого пепла радиомодули HopeRF HM-R433/HM-T433. Сегодня собрал полудуплексную схему на четырех модулях и провел сеанс дальнобойной приемо-передачи.

Итак, что из себя представляла установка:

Блок А:

  • Передатчик: HM-T433
  • Приемник: HM-R433
  • Антенна передатчика: Кусок провода МГТФ длинной 17см (1/4 от длины волны 433Мгц сигнала) загнутый абы как.
  • Антенна приемника: та же херня.
  • Расположение модулей: параллельно друг другу, на расстоянии 2см, усики антенн разбросаны в разные стороны, на манер тараканьих.
  • Расположение блока: 5 этаж, на столе. У северной стены.
  • Питание: 5 вольт.
  • Скорость передачи: 4800 бод.
  • Длина пакета данных: 10 байт.

Блок Б:
  • Передатчик: HM-T433
  • Приемник: HM-R433
  • Антенна передатчика: Кусок провода МГТФ длинной 17см (1/4 от длины волны 433Мгц сигнала) загнутый абы как.
  • Антенна приемника: та же херня.
  • Расположение модулей: параллельно друг другу, на расстоянии 2см, усики антенн разбросаны в разные стороны, на манер тараканьих.
  • Расположение блока: У меня в руках, на земле. С южной стороны дома (смотри схему)
  • Питание: 5 вольт.
  • Скорость передачи: 4800 бод.
  • Длина пакета данных: 10 байт.
Условие передачи:
 Блок Б дает десятибайтный пакет блоку А, тот, убедившись, что пакет принят без искажений, шлет подтверждение обратно на блок Б, те же десять байт. Блок Б, получив подтверждение зажигает зеленый диод. Передача идет с обрывом несущей. Т.е. после отправки пакета передатчик вырубается полностью.

Проведение опыта:
 Щелкая кнопкой передачи и фтыкая в зеленую лампочку, я начал спускаться по лестнице. К моей радости, даже когда я спустился на первый этаж зеленая лампочка бодро сигнализировала о том, что передача идет без помех, несмотря на то, что меня от другого блока отделяло как минимум 5 бетонных плит перекрытий, не считая кирпичных стен. После я вышел из подъезда и подорвался к противоположному углу дома. Примерно на 50 метрах от подъезда связь прервалась и ответа не было. Тогда я начал возвращаться обратно. Связь восстановилась лишь когда я подошел почти вплотную к своему подъезду. Поначалу мне казалось, что наверху тупо зависла софтина, оказалось все ок. В чем была причина не знаю. Возможно, стоящее в тот момент возле подъезда, такси имело у себя на борту 433МГц передатчик и насрало мне в эфир. Так как следующий отход на другой конец здания подтвердил дальность и качество приема. Это при том, что на прямой видимости, между мной и другим концом был практически весь кирпичный дом, продольно.

Алгоритм работы с двумя приемниками и двумя передатчиками:
Итак, что мы имеем:

  • У нас два приемника и два передатчика.
  • Приемник можно заглушить выходом Enable, так что он не будет принимать.
  • А вот передатчик передает всегда когда на входе есть активность. Засыпает он спустя 70ms бездействия.
  • А еще мы знаем, что два передатчика одновременно фурычить не могут — несущие у них разные, а значит приемники посылают в пешее эротическое путешествие обоих. Ну или того чей сигнал слабее.

 Чтобы организовать в таких мерзких условиях дуплекс приходится извращаться.
Для передачи нужно во-первых инициализировать несущую. Проблема в том, что когда несущей нет, то приемник ловит всякую муть, а входящая линия UART принимающего контроллера захлебывается от дерьма. Так что тут, в целях экономии ресурсов проца, имеет смысл выставить минимальную скорость приема 600бод, чтобы его реже дергало прерыванием от UART RX. Сразу слать байт нельзя — так как у нас на входе мусор, а протокол RS232 отличается тем, что конец байта практически не отличим от середины, то если тупо взять и послать, то с вероятностью в 90% у нас произойдет смешение части байта из окружающего мусора и нахлынувшими данными из вдруг образовавшегося канала. Получится рассинхронизация и на выходе будет полная ахинея.
 Так что вначале надо поднять несущую и синхронизировать протокол. Несущая у нас встает как только меняется состояние линии DATA, а вот с протоколом хитрее. Вспомним пост про UART — видите, спокойное состояние UART’a — высокий уровень. Так что после подъема несущей нужно выставить DATA в High, дольше чем на один байт по текущей скорости протокола, но не дольше чем на 70ms — иначе у нас передатчик опять заснет. При этом на выходе DATA приемника тоже выставится High и UART, спокойно прожевав очередную порцию дерьма из эфира, успокоится и приготовится к приему нормального корма. Дальше можно слать данные.
Чтобы не заморачиваться с дрыганьем ножкой и вычислением задержек ,можно просто послать раза три число 255 — это фактически сплошной высокий уровень, с небольшим провалом в виде старт бита. Но на одном из байтов таки произойдет синхронизация и дальше можно слать данные. И повышать скорость передачи (помните я чуть выше говорил про понижение до минимума), после взаимной договоренности сторон.

 На прием тоже есть пара хитростей. Сразу же после передачи нам нужно дождаться А) Когда байт таки отправится до конца Б) когда наш собственный передатчик заснет от бездействия. Т.е. это 70ms + время на передачу байта. Чтобы не словить сигнал от своего же передатчика. Как только наш передатчик отвалится можно врубать приемник и начинать ждать несущей от вражеской станции. Отличить полезный сигнал от дерьма очень просто — достаточно за начало передачи взять 10 одинаковых байт. Как только пришло 10 одинаковых байт — опа, есть коннект. Вероятность появления 10 одинаковых байт в мусоре эфира микроскопическая. Особенно если это байты численно близкие к нулю. (в среднем, шум, по значениям, колеблется от 50 до 255, крайне редко проваливаясь ниже 20)

Организация сети:
А если нам нужно не два, а больше приемо передатчиков? Как быть? А тут рулит эстафета aka Token Ring — когда передатчик по очереди передает служебный байт-эстафетную палочку. Получив этот пакет передатчик имеет право вещать. Если же ему вещать нечего, то он отсылает это право другому и так по кругу. Разумеется делается это все программно.

Приколы с контроллером:
При отладке этого девайса у меня сдохли три (!!!) ATTiny2313. В первой убился порт PB4 — там висела кнопка и она стала самопроизвольно срабатывать. Замеряю напряжение подтяжки (внутренней) — 0.5 вольта вместо положенных 4.5. Вот засада :/ Заменил (точнее перепаял, т.к. была в SOIC — фен рулит! :) ). Это к вопросу о внешней подтяжке резисторами. Внешняя подтяжка рулит, что бы там не бубнили любители минимализма на плате! Зажал я пару резисторов и, в итоге, просрал три контроллера, а так, может быть, даже и не заметил бы пробоя ноги.

Потом опять сдохла ножка PB4, попутно унеся в могилу еще и ногу RXD. Да что за засада??? Неужели статика? Сколько десятков ATTiny2313 пустил в оборот — ни одна от статики не сдохла, а тут уже вторая. Что то тут нечисто. Ладно, хрен с ней, у меня еще в палке этих ATTiny2313 штук 70 лежит. Перепаял. Фен воистину рулит!!!

Когда на третьей микросхеме сдохла нога PB4 я стал искать где же собака порылась… Статика… не статика это как авиабомба — дважды в одну и ту же воронку не падает. Схемотехника? Да не, откуда там пробои — пассивка одна вокруг… И тут я вспомнил когда пробивало ногу — когда я антенну передатчика сворачивал в этакое колечко вокруг платы и закрывал в коробочку, а после жал на передачу… Гляжу — точка запайки антенны передатчика в аккурат над ногой процессора, а потом антенна идет с другой стороны платы вдоль дорожки от этой злосчастной ноги. Дорожка длинная, сантиметра три-четыре. Вот сижу и чешу репу — неужели наводка с антенны модуля столь мощная была, что пробивала нафиг транзистор в МК? На всякий случай между антенной и платой проложил кусок фольгированного текстолита и заземлил его на массу. Выглядит как броня, зато теперь ножки не дохнут. От так!

З.Ы.
На этом тему модулей HopeRF HM-R433/HM-T433 считаю закрытой.
Разве что библиотечку кода под обработку этого барахла потом предоставлю, когда отлажу и вычищу все баги. Вопросы в комменты.

102 thoughts on “Радиомодули HopeRF HM-R433 и HM-T433. Тест на дальность”

    1. Думаешь я просто так их выбрал? ;) Они единственные подходили под задачу.

      нужно было:
      1) открытый канал, чтобы двое общаются и куча снифферит
      2) в качестве антенны обычный кусок провода
      3) частотная модуляция.
      4) низкая цена и доступность.

      «нормальные» аналоги подходящие под эти условия? М?

          1. ну …. либо шашечки, либо ехать.

            клепать свой протокол и проч — это, конечно, приятно и спортивно.
            но тратить на это драгоценное время для комерческого проекта — нерентабельно.

            но если уж есть время — лучше проштудировать интернет на эту тему,
            скорее всего уже есть что то подходящщее и лучшее.

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

  1. Не, ты скажи, как ты умудряешься авры бить? Единственный раз, когда у меня авра сгорела, это когда 24вольта, 5ампер в клочья порвало подключённый к авру L293D (закоротил мост по ошибке %).

    1. Может, надежность снижается от перегрева при пайке? Паяльник греет только ноги, и то не все сразу, а фен — и корпус, и плату. Пока еще это все остынет… Не знаю, как для AVR, а для других микросхем раньше предельная температура корпуса (или кристалла) при пайке обычно указывалась 150-160 градусов. Нагрев выводов до 3 сек до 230 градусов. Скорость миграции легирующих примесей в кристалле резко растет с температурой, да и размеры переходов сейчас — доли микрона… Конечно, можно паять микросхемы и паяльной лампой, но я уж лучше по — старинке, паяльником…
      Все — таки на входах стоят защитные диоды, а мощность передатчика — мизерная, чтобы их сжечь наводкой. Период частоты передатчика соизмерим с длиной фронтов микросхемы (при отсутствии емкостной нагрузки), диоды должны отрабатывать. Не знаю, как в AVR, а в PIC они десятки миллиампер выдерживают. Да и вообще спалить порт в PIC в нормальной схеме практически невозможно. А вот про AVR что — то частенько в Интернете попадается…

      1. Феном ты тоже греешь не корпус а ноги. Тем более микрухи рассчитаны на то, то бы их в печке запекали. В общем это у DiHalt’a карма агрессивная =)

        1. Карма кармой, но три раза подряд… Терзают жуткие сомнения… Как говорил известный Чукча: «Один — случайноcть. Два — совпадение. Три раза — Однако, ТЕНДЕНЦИЯ !!!».

          1. Кстати, это тот самый авр который не пережил близкого взрыва сверхновой в исполнении L293D =) В нем высверлены дырки под светодиоды, и фрезой выпотрошено брюшко, в которое вставлен attiny12 который весело моргает светодиодами =)

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

              1. Аха… Я всегда мечтал собирать гульбарии, делать из мышей чучела. Но вот юнната из меня не вышло, приходится из мелкосхем чучела набивать =)

        2. У меня на фене нет насадки под соик. Так что я грею все кругом :))))) Фен ставлю на 300 градусов (реальная температура в зоне пайки порядка 250) но учитывая, что АВР предназначен для запекания в печи — не должно сдохнуть.
          Опять же — дохнет то одна и та же нога. И только тогда когда антенна внутрь корпуса свернута. Резонанс?

          1. Я как-то в запаре atmega88 на 420 градусах имени нашего дедушки Цельсия, грел. И хоть бы хны. И это с учётом, что у неё корпус совсем мелкий и прогревается на раз =)

          2. Та же фигня. Паял, потом выпаивал, потом обратно паял MAX1684, SOIC8, 320С в течение секунд 10-15 — все отлично. Главное дать остыть, прежде чем запускать.

          3. И в резонансе тоже: можно в нете поискать радиолюбительские таблицы, где указаны киловольты (!!) напряжений проходных конденсаторов в зависимости от частоты и мощности передатчика (чем выше частота тем больше киловольты, и мощность тоже добавляет).

            Но в данном случае мне вспоминается еще один прикол: вобщем отлаживал я одно устройство на zilog 182, что вобщем не так важно, а в данном случае важно что он как и твой случай CMOS; и обнаружил, что когда на какую-то ногу случайно (сопля), приходит минус (или плюс) 12в, не помню точно, весь контроллер перестает подавать признаки жизни до отпаивания каких-то других цепей и впаивания опять.
            А дело в том что в гражданском (не авиационно-космическом) CMOS при подаче нехорошего напряжения на схему, она «залипает», как минимум до полного обесточивания схемы, а благодаря малой утечке может в таком состоянии быть очень-очень долго, даже при выключенном питании, и видимо поэтому, у народа иногда загадочно оживают через недели-месяцы явно убитые контроллеры, ну а в моем случае видимо контроллер приводила в чуства статика или наводка при пайке (я не заземлялся когда паял эту схему) ;)

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

              А вот чего так долго заряд с затвора стекал… хз. А пока ты ее паяльником ковырял проходило время (или на паяльник стекало).

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

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

    1. Резисторы есть. А вот с приёмопередатчиками — и вправду засада. на сходных пробовали делать, в конце концов пришли к trc101 — результат гораздо веселее, при сходной стоимости. всё, что остаётся сделать — проверить принятый пакет на соответствие формальным требованиям, и правильную CRC. Один из плюсов trc101 — что эта микросхема умеет и принимать и передавать. дискуссия есть вот тут kazus.ru/forum/topic_6076-120.html
      Также народ очень хорошо отзывается о чипконовских микросхемах cc1100,cc2250 и прочих, но они мне не понравились корпусом — всё же mlf паять — это печь нужна.
      А эти аналоговые модули хорошо работают, по моему мнению, только совместно с аппаратным кодеком манчестера.

    2. Есть. Он подключается транзистором. Вот этот транзистор и убило наводкой. Как результат — внутренний подтягивающий резистор «сломался».

  3. А каким ты феном пользуешься (марка, модель)? Что-то не припоминаю, чтобы ты писал про него.

    Поделись плиз :)

    1. Актаком АТР-4501 а так да, надо написать про фен. Только я не спец по орудованию сим девайсом. Боюсь ремонтники которые собаку сожрали на реболинге чипсетов меня засмеют :)

      1. Было-бы очень интересно про использование фена!
        Особенно ввиду того что ремонтники, которые собаку сожрали на реболинге, как правило, имеют дело с хорошими заводскими платами с шелкографией, металлизацией и тп, что в корне отличается от ЛУТ :)

  4. чему ты удивляешся с пробоем? у тебя у самого же был глюк с дорожкой на плате
    народ делал маяк на авр + на выходе ирф510 на 27мгц
    выход всего 100мвт, а мк глючил страшно и только экранирование спасло

    в блоках укв от 100вт без экранировки горят обмотки вентиляторов охлаждения

      1. По поводу ника -нет, ник ни с чем таким не связан. По повду того, что на премодерацию не поступил — ну, наверное это глюки или моего браузера, или движка сайта, хотя ссылка там была. вот такая kazus.ru/forum/topic_6076-120.html

      1. А теперь критически перечитайте ваше сообщение. Кристалл в TRC101 тот же самый, как и в каком из обсуждаемых здесь модулей HopeRF? HM-R433 или HM-T433 ?

  5. абажаю этот блог — при чтении возникает непреодолимое желание что нибудь собрать :)
    хочу подкинуть идею для будущих тем
    я электронщик-теоретик (никогда не видел устройств которые проектирую :)), и радиотехник с небольшим стажем, всегда завидовал электронщикам, которые вот так лабают девайсы на коленке
    сам никогда ничего не проектировал на микрах и хочу чтонибудь попробовать, чтобы понимать что я вообще делаю на работе :)
    так вот идею простая — хочется сделать умное устройство, пусть для начала гирлянду, но что управление было с компа
    валяется на полке пара КПК, хочется их применить как то. хочу собрать устройство, которое бы общалось с КПК по БТ, в любом устройстве сейчас есть БТ или даже wifi, хотя думаю пропусной способности БТ хватит за глаза для задач такого рода.
    идея такая чтобы вынести все мозги в КПК, чтобы устройство на микре было минимально простым — исполняло команды данные с КПК и посылало информацию на обработку в основную программу.
    под кпк есть не плохой SDK с програмированием на ЯВУ, можно написать хороший ГУИ интерфейс и вообще просто удобнее на него программировать, вобщем хочется как можно больше реюза, подкручивать гаечки к уже изобретенным великам
    мои лаги:
    — не знаю как сделать подключать девайсы к компу
    — не знаю как писать драйвера

    для твоего (можно на ты, да?) проекта было бы также интересно подключить робота к компу, нацепить вэбкамеру на него и управлять роботом интерактивно, нацепить на него GPS и разные другие фитюлечки

    не мог бы ты посвятить статеечку-другую написанию дров, как сделать USB контроллер (хочется начать с USB) и как им управлять программно, ИК устройство с дровами, ну и если есть какие то наработки по стандартным промышленным протоколам типа BT/wifi.

    это может неплохо пополнить твою коллекцию «для чайников»

    1. Не, я тебе могу написать дрова. Например для COM порта. Только они будут написаны на ассемблере под DOS6.0 и в RealMode :)

      1. Хорошо было под WINDOWS 98SE, с портами можно было работать как в MSDOS, общаясь непосредственно с физическими регистрами портов. Вставил в любой программе 2-3 команды на ASMе, и готово… А в этих долбаных системах на ядре NT5 (WIN 2000, XP, VISTA), приходится извращаться с потоками, теряя байты, да и написать драйвер с доступом нулевого уровня — геморрой еще тот… Врагу не пожелаешь…

  6. и шо, таки опять на премодерацию не поступило??? Тогда смотрите скрипт на сайте, что-то не так. Ссылку давал.

    1. Странно. Не было. Может слова какие содержал которые у меня в черном списке (там правда тока названия лекарств всякиех вроде виагры) :/ скинь на мыло мне clihlt(c)yandex.ru

  7. Спасибо DI HALT за добавленную сслылку. По поводу ника отвечаю — нэ. (вспомнился анекдот — на территории музея «Циганский табор» просьба не ай-нэ-не-кать) Так что никаких официальных лиц или организаций я не представляю, и от всех ассоциаций с ними заранее открещиваюсь.

  8. Привет!
    Кстати, раз девайс такой тупой, можно еще попробовать сделать с ним расширение спектра, оно-же шумоподобный сигнал, оно-же DSSS и CDMA.
    — Принцип что вместо ноликов и единичек передаются полиномы или в переводе на русский, заранее рассчитанные группы бит, например вместо «0» передавать «00» а вместо «1»- «11», на приеме делается очередь и перемножается на полином который был использован при передаче, и если результат больше какого-то порога, следовательно принят определенный бит.
    — Теоритически, каждое умножение длины кода, эквивалентно увеличению отношения сигнал/шум, и хотя тут выше головы не прыгнуть, потому что и основной шум такой железки собственный, и чувствительность низкая, но по крайней мере помехоустойчивость можно вырастить очень и очень.

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

      1. Ага, точно, получается расширение вдесятеро :)
        Но 10 это совсем мало. Минимум который я знаю — радиолюбительский стандарт, кажется PSK-31 называется — соответственно у его расширение в 31 раз.
        А в коммерческих системах нормальная цифра 256, и там прелесть что несколько пар приемников и передатчиков могут работать вместе на одной частоте при разном коде, правда там конечно не просто вместо «0» («1»), куча нулей (единиц) передается, а математикой генерится своя пара полиномов для каждой пары приемника и передатчика.

        1. Простое снижение скорости в те же 10 раз и разрешение контроля четности даст почти тот же эффект без особых заморочек. Особенно если на входе поставить фильтр, не пропускающий импульсы с длиной меньше заданной, примерно процентов 40 длины посылки (для защиты от ложного старта). Когда — то я делал такие на 2х микросхемах 155 серии — АГ1 и ТМ2, 4х конденсаторах и 5 резисторах (один из них переменный). Особенность его в том, что импульсы большей длительности проходят на выход без изменения длины. Или промодулировать битовые посылки тональной частотой, которую выделять на приеме узкополосным фильтром. Все это уже было, использовалось, и давало хороший эффект.
          Лично для меня пока главное — не решение проблемы радиоканала как таковой (решения давно известны, и их много), а сделать так, чтобы почти ничего не делать, и все работало. Лень — двигатель прогресса… Другой вариант, радикальный — сделать радиоканал с нуля, в виде отдельного модуля, где уже на этапе проектирования предусмотреть решение всех проблем, без затычек и заплаток (по молодости всегда так и делал). Иногда это проще, чем приспосабливать что — то готовое, но не совсем подходящее.
          Один из простых вариантов, не требующий доработки на аппаратном уровне и минимальных на программном — передавать данные (ведь в основном идут короткие команды и телеметрия) в виде пакетов, начинающихся с определенной последовательности, например, FF FF 5A, затем команда или данные фиксированной длины, например, 3 или 5 байт, и байт контрольной суммы данных. Начинать принимать данные только получив «5A». Передавать сразу, например, по 2 — 3 копии пакета, на приеме принятые с ошибками просто отбрасывать. В особо важных случаях можно отправлять подтверждение приема, но часто можно и без него обойтись, просто контролируя поведение робота. Телеметрия от робота вообще в подтверждении не нуждается, особенно, если слать ее достаточно часто. Пропуск одного — двух сеансов особых проблем не принесет.
          Еще одна из идей: использовать для канала передачи от робота к компу звуковой канал телекамеры, подавая туда тональные посылки с заполнением, например, 8-10 КГц, легко выделяя их фильтром на приеме. Фильтр со схемой сопряжения со входом RS232 поместить в корпус приемника телекамеры, места там много. Радиоканал камеры ~1100-1200 МГц и на командный (315 МГц) влиять не должен, даже при близком расположении.
          Что-то все руки не доходят побаловаться с радиоканалом. Задолбали дела домашние… Да и на работе перегружен. Может, хоть в этот выходной время выберу.

  9. Вот я ж и говорю. Ставим нечто типа trc10x или CCxxxx и забываем вообще про уровень среды. Слушать треск и жужжание в эфире, синхронизироваться, ошибки ловить — это всё забота микросхемки. А нам на выходе поставляют уже готовый пакет, у которого надо проверить соответствие формальным признакам и CRC.

  10. «Зависит от..» — зачем ставить что-то еще, если десятки мегагерц как правило «гуляют»?
    — У меня когда-то на работе спор был с начальником — надо было радиомодем делать, под интерфейс обычной голосовой радиостанции (дело было в 1999 году и радиомодули стоили вообще нереально дорого, тем более что дальность предполагалась десятки км), и были варианты: либо купить микросхему-модем и смириться что за бешенные деньги и хз сколько каждый раз ждать когда привезут, там еще и полно глюков, либо сделать модем на однокристалке и при этом иметь возможность все комплектующие купить в любой момент в любой лавке и ни от кого не зависеть..
    Начальник сказал примерно «не твоего ума дело» и пошел пробивать чипы-модемы, и в итоге через несколько месяцев весь отдел разогнали, потому что верхнее руководство не волновало сколько времени затрачено на ожидание поставки, а волновало чтобы был видимый результат, который можно хоть на выставке показать.

  11. Кстати, только уменьшение скорости хуже дополнительной модуляции с технической точки зрения — у большинства приемников (чуть не почти у всех), есть серьезный завал полосы пропускания на низкой частоте, из-за чего при передаче длинной последовательности нулей (единиц) приниматься будет некий меандр далеко не нулевой частоты (чаще всего влезает помеха 50Гц или ее гармоники), причем вручную сигнал несложно расшифровать — как правило просто периодически инвертируется бит приходящийся на каждые 20мс, но реализовать автоматическую расшифровку оказывается непросто.
    Лет 10 назад реально делали специальные приемники с пропусканием почти от нуля, где-то тогда-же сделали манчестерское кодирование, которое не боится случайных переполюсовок, сейчас оказалось выгоднее скремблировать псевдошумовым кодом, чтобы длинные последовательности одинаковых битов не передавались.

  12. DI HALT, есть что-нибудь новенькое по радиоканалу? У меня пока руки не дошли, между делом прикидываю варианты, а попробовать все то некогда, то лень… Может, свежая инфа сподвигла б тоже на подвиги…

    1. Сделал пока командную систему для одного коммерческого заказа. ИЗбыточное кодирование, 10байт в посылке = 1 байт. С подтверждением приема, чтобы все четко. Сейчас не до игрушек, клиент косяком пошел. У всех конец года, всем надо проекты закрыть.

        1. А тут надо чувствовать сколько они готовы заплатить. И драть :)

          Принцип такой, если сама затея дорогостоящая, то дорог любой компонент, вне зависимости от сложности его.

          Например, мой любимый случай: клавиатура для лазерного резака. ТАм схема из одного МК с МАХ232 да прошивка, написанная за вечер левой ногой. И подцепленная к оригинальной клаве. Но сам лазер стоит бешеных бабок, фирменная клава к нему мало того что стоит бешеных бабок, так еще ждать ее месяца два. А простои стоят бешеных бабок. Так что они легко отвалили мне 15тыр. Мог бы больше взять тысяч 30-40, но директор, заказавший мне ее сам круто сечет в электронике и он бы ее сам спаял на раз.

        2. Да, и я примерно прикидываю так, что, в худшем случае, день моей работы стоит тысячи полторы. За меньшее я даже не шевельнусь :)

          1. Я редко берусь за левак, (а хорошему другу могу и даром сделать), но если берусь, прикидываю примерно так:
            1. На работе у меня получается 6 баксов в час (без премий).
            2. Поскольку левак делается в нерабочее время (сверхурочные!) — тариф удваивается.
            3. В обычные дни я могу заниматься в среднем 4 часа, в выходные — около 12. Значит, в неделю 5*4 + 2*12 = 44, 44*12 = ~500$,
            4. плюс стоимость деталей,
            5. плюс некоторый бонус для компенсации морального ущерба, потраченного времени и преодоления усталости и лени, в зависимости от настроения.
            Если заказчик предлагает меньше, отказываюсь. Сам цену называть не люблю.
            Также никогда не берусь за заведомо нереальные вещи, как бы заказчик не уверял, что «все это просто, да они бы и сами сделали, да им некогда».

            1. У нас разные условия. Ты работаешь на работе, а я живу исключительно с заработков от сайта + выполнение сторонних проектов. Так что у меня все время рабоче-свободное. Есть заказ — делаю :) Даже мелкий заказ требует около дня на изготовление. Пока по квартире послоняешься, пока плату вытравишь, пока корпус сделаешь… куча времени пройдет.

  13. Делал я когда-то «удлиннитель UART» на паре подобных модулей. Вся их так называемая «цифровая» сущность состоит лишь в том, что в приемнике после радио-детектора стоит компаратор. Конкретно в тех модулях, с которыми я имел дело (насколько помню, RR10-433), даже был «контрольный» выход прямо с детектора, и можно было убедиться, какой там срач прет.

    В общем-то, это свойство любого приемника с АРУ: в отсутствие полезного сигнала АРУ задирает усиление до предела, загребая при этом все шумы эфира.

    Так что я сразу даже не пытался заводить выход приемника на вход UART микроконтроллера ;) . Придумал простенький протокол на основе Манчестера, плюс несколько байт «преамбула» (обязательна для подстройки АРУ приемника), плюс байты синхронизации типа 0xAA55, в конце CRC (не мудрствуя особо, взял готовый код от протокола MODBUS ;) ).

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

      1. А чего там «обрабатывать»? Компаратор, который в приемнике после детектора, дает логические уровни, их-то сразу на МК и завожу. Только не на вход RX UART-а, а на «обычный» вход, дальше вся обработка чисто программно.

  14. Здраствуйте!
    Вобщем нада прочитал инфу про эти модули и они мне оч понравились! особенно то что их не практически не нада инициализировать и можна работать как с обычным ЮАРТом по проводах в полудуплексе)))))
    Но вот прикол в том, что мне нада сделать связь на растоянии 400 метров при небольшой скорости (около 2400 бод). между приемником и передатчиком будет просто воздух.
    Можно ли сделать какую нить антену чтобы увеличить дальность?

    1. Да, если сделать волновой канал (антена Яги) то дальность можно ОЧЕНЬ Сильно увеличить. Но антенна будет направленной.

  15. о, круто! два девайса будут стационарними, поэтому антены можна делать направленые!
    А вы такую уже делали?

    1. Да делал. ПРобил на двух модулях RC1240 около километра по прямой видимости. Причем направленная антенна была только одна. С другой стороны был говеный кусок провода в 1 четверть волны :)

    1. Я ее готовой купил, в магазине где рации всякие продаются. Смотрю лежит у них где то на задворках яга. Спрашиваю на 433мгц? Говорят да, хватаю и доволен как слон :)

    2. ягу на самом деле несложно сделать — в инете куча руководств есть.
      Единственная сложность в том что там между диполями и каркасом должна быть изоляция, то есть например мои знакомые каркас делали из доски и в ней сверлили отверстия и в качестве диполей трубки люминиевые вставляли и крепили клеем.
      Еще вариант на плоскую плиту например из пластика трубы прикрутить.
      И скажем на 100мгц яга здоровенная и тяжелая получается (примерно 2 метра на 3 метра) а на 433 намного легче, тк длина волны вчетверо меньше.

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

    1. Насколько часто будут передавать передатчики?
      И насколько высокая надежность передачи требуется — в смысле если один раз не пройдет это уже катастрофа или нет?

      1. ну вобщем даные будут постоянно педедаваться с частотой 5 раз в секунду(будет передавать значение теппературы и ещё несколько инфы, вобщем де то 100 байт) но при определённом событии(оно будет вызываться оч редко, возможно через день а может через месяц, год) это должно произойти моментально и передаваться постоянно до появления другого события. еси за 10 сек не придут даные от устройства с нужным идентефикатором то приемник сообщит об ошибке но это не катастрофа

        1. Считаем:
          100 байт это 1000бит (тк у нас вероятно асинхронка будет и там 8 битов данных+ стартовый и стоповый биты)
          5 раз в секунду это уже 5000бит в секунду — уже само по себе серьезная цифра для дешевого радио.

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

          То есть чтобы заработало с случайной задержкой, нужно при 5 передатчиках, и 1000-битовом пакете и скорости 4800 делать передачу примерно раз в 10 секунд, соответственно можно рассчитывать что данные будут приходить не реже чем раз в 100 секунд (остальные разы будут друг-другу мешать).

          Хотя вообще когда у меня будет время, я обязательно попробую сделать на таком дешевом железе CDMA — чтобы несколько передатчиков могли и одновременно передавать, а приемник уже будет расшифровывать из шумов передачу каждого, но на таком CDMA скорость будет очень низкая.

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

    2. Если ты выберешь HM-T(R) модули, то знай, что там нет никакого транспортного протокола. Там сырой сигнал. Два передатчика одновременно работать не смогут — один не достучится до цели т.к. приемник ухватится за другую несущую. Вариант тут один — слать короткими посылками, после которой глушить несущую. А чтобы не было коллизий (а точнее для снижения их в мизерную вероятность), то слать с хаотичными интервалами. Либо жестко синхронизировать все, но полагаю что в твоем случае это невозможно.

      1. а можешь посоветовать какие нить радиомодули чтобы можна было записать в модуль через ЮАРТ (SPI не пройдет) адрес устройства и модуль после этого будет принимать сигнал только еси передан правильный адрес или чета типа того.
        Тока для меня символически важна цена. поэтому желательно чтобы модуль был не дороже этого, ну мож дороже на 10% но не больше!

        1. Самый дешевый из адресных который я знаю RC1240, но он стоит 2000р штука. Но это действительно крутая вещь :)

          Дешевых и с адресацией ты скорей всего не найдешь. Минимум 500-600р за штуку. Так что придется тебе корячить протокол обмена самому.

            1. Блин, сейчас уже и не помню. С год назад где то выбирал, остановился на RC1240, но были и еще варианты.

              Да, были с UART относительно дешевые (хотя из дешевых все больше на SPI от HopeRF).

              Качай даташиты на все подряд и смотри, если выводы входные помечены как Rx Tx или R T или что то похожее — значит это uart, если DI ,DO, SCK или MOSI MISO значит это SPI

  17. а можешь посоветовать ЮАРТ трансивер чтобы не дороже 20 баксов. и с помощью внешней антены можна было сделать радиосвязь на 400 метров?
    Я щас в инете ищу такой трансивер, они почти все СПИ а мне нада ЮАРТ.
    К сожалению сильно качать не могу потому чо у меня скорость 1-4 кб/с :(

    1. Только HM-TR433 Но у него были косяки с прошивкой. Год назад я наступил там на огромные грабли. Не знаю как сейчас с этим. Бага была столь вопиющей, что я аж сам охренел — настройки модуля слетали произвольным образом. Это наверняка уже поправили и в новых партиях должно быть все ОК. Но как понять из какой партии ты купил модуль?

  18. лан, буду делат на этом:) точнее возьму приемник и передатчик для каждого девайса.
    Скорость у меня 1200 бод.
    Ты говорил, что снначала нада отправить три раза 255 при скорости 600 бод, я так понял в моем случае нада отправить шесть раз 255 чтобы передатчк проснулся?

    1. Там дело не в том что передатчик просыпается, а в том что у него за эти 50мс стабилизируется передача (и у приемника тоже ОС где-то за такое время отрабатывает), и надо смотреть доку, может на 1200 бод время стабилизации другое.

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

      И я бы все-же еще поискал какое-то решение чтобы синхронизировать по времени — ну может даже примитивно купить пять радиоприемников и сделать подстройку по пискам точного времени.
      Еще встречаются часы с синхронизацией по радио — говорят, там внутрях просто стандартный модуль приемника сигналов точного времени и говорят, этот модуль легко интерфейсится к микроконтроллеру.
      — С кварцами время не должно сильно убегать за часы, которые проходят между этими сигналами, и синхронизированную передачу ИМХО легче сделать чем опрос.

  19. Це все добре, але є один глюк в HM-R433, який вилазить не зразу. Модуль глохне. В задачі передавач раз 10мн отправля посилку, значить приймач в основном отримує мусор. Глюк в том, що раз в неділю принімать , що небудь, відмовляется до перезапуска системи. В масовом виробництві не рекомендую :) Да і дорогуват- думаю, щось на АМ вибрать.

  20. Доброго дня.
    а можно где можно посмотреть «библиотечку кода под обработку…» ) по сайту вроде нигде не валяется

  21. Привет!
    У меня очень простая задача:
    Нужен передатчик и приёмник.
    На передатчике жмём на кнопку(шлём 1 или 0) на выходе приёмника тоже получаем 0 или 1.
    Т.е. выход приёмника к примеру подключаем к электронному ключу.
    Можно ли это организовать без использования МК с помощью HM-T433 и HM-R433 ?
    А если нет, то на чём это можно дешёвом сделать?

    1. Ммм.. не все так просто. У этих передатчиков есть западло — если сигнал не меняется на входе чаще чем в 50мс (уже не помню точно, надо в ДШ лезть) то передатчик уходит в слип и вырубает несущую. У приемника в этот момент срывает крышу и на выходе появляется шум.

      Т.е. тупо вкл-выкл на этих модулях сделать нельзя. Впрочем, возможно есть модули на которых можно.

    2. Проще купить готовую систему радиоуправления. Китайцы такие штампуют вагонами. Обычно пультик мелкий и на нем 4ре кнопки, а на блоке приемника четыре релюшки. Стоит недорого, рублей 500 вроде бы.

      1. Ммм… может вспомнишь какую-нибудь из этих китайских систем управления и где их купить?
        Я вот только знаю мк324 от мастеркит, но они дороговаты (особенно zigBee)и радиус действия маловат (30м на открытой местности).

        Заранее спасибо:)

        1. Где купить хз, я их в наших радиомагазинах видел, да и на деалэкстреме что то подобное встречал. Есть и у мастеркита что то похожее за 600 чтоль рублей. А дальность в 30 метров это нормальная такая дальность :) Особенно для девайсов такой мощности.

  22. Потестировал тоже на дальность недавно.
    Передатчиком слал каждые две секунды по очереди две разных строки по 8 байт каждая. На приемнике, при приеме какой-либо из этих строк, мигали соответствующие светодиоды.
    Передатчик оставлял, приемник брал с собой и уходил.
    На открытой местности выдало 220 метров (мерил яндекс-картами), что кстати соответствует обещанному. В не очень густом лесу — 80-100 метров. С кирпичным зданием получилось похоже: 4 этажа + небольшое расстояние.

    Интересует следующее: кто-нибудь пробовал совместно использовать в качестве приемника HM-R433, а в качестве передатчика мощный RFM12BP-433 от того же производителя HopeRF?
    Дело в том что нужно малое количество мощных передатчиков, и большое количество маленьких и относительно дешевых приемников.

    1. Есть какой то RFM12 стоит не дороже этого, но вот с 12BP он вроде бы совместим. Там тоже отдельно и приемник и передатчик есть.

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

  24. Столкнулся с проблемой при использовании AM радиомодулей. Очень маленькое расстояние передачи данных. А через газобетонную стену вообще загибается. Питание 12 В и у приемника, и у передатчика. Понять из за чего — не могу. нет нужных приборов. FM модули, получается, получше будут?

  25. Доброго времени суток!
    А по поводу прямой видимости есть данные?
    И вообще можете что-нибудь посоветовать километра на 2 прямой видимости?

    1. Что то гораздо более мощное чем это. У меня тут были обзоры нескольких модулей. Ищи на 100мВт или около того.

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

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha