Помогите избавиться от проводов.

Тема в разделе "Проводная и беспроводная связь", создана пользователем tofik, 16 ноя 2016.

  1. tofik

    tofik Нерд

    Доброго дня.
    Прошу помочь с выбором решения.
    Есть музыкальный синтезатор, который хочется сепарировать на 2 части:
    1. Там где блок питания, DSP плата, и прочие разъемы подключения.
    2. Лицевая, управляющая панель с экранчиком, энкодерами, кнопками, диодами и т.д.
    Соеденены эти части в данный момент 4 контактами, 2 из которых: GND и 5V, для запитки лицевой панели.
    2 другие по всей видимости это Rx и Tx, т.к. связь двунаправленная.
    Хочу эту лицевую панель научить общаться с основной платой по радиосигналу.
    Сигнал цифровой.
    Радиус предполагаемого использования 10-15 метров.
    Питание панели предполагается от пауэрбанка.

    Вопрос: с помощью чего это возможно реализовать?
    Пока вижу 2 варианта:
    1. два Arduino UNO + 2 Bluetooth HC-05
    2. два Беспроводных передатчика на 433 МГц (http://amperka.ru/product/rf-433-transmitter)
    + два Беспроводных приёмника на 433 МГц (http://amperka.ru/product/rf-433-receiver)
    __
    Может порекомендуете другие варианты.
    А может мои варианты совсем не подходят.
    Прошу помощи.
     
  2. rkit

    rkit Гуру

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

    Какого-то простого решения не могу предложить.
    Можно антенны на HC-05 нацепить
    Можно взять esp8266, но там тоже заморочек с программированием немало.
     
    tofik нравится это.
  3. tofik

    tofik Нерд

    спасибо. в принципе хотелось бы осознать это возможно или нет. ) поэтому будем пробовать.

    по HC-5: ограничился бы и 5-10 метрами, не столь сильно важно пока.

    т.е. для приемников-передатчиков тоже нужен МК?
    откровенно говоря я предполагал вот как:
    модули эти парные, т.е. как я понимаю друг на друга настроенные.
    да и в описании сказано, что никаких протоколов и вообще ничего не треба.
    => модуль передатчика на обоих сторонах подключаем к Tx и запитываем,
    а модуль приемника также на обоих сторонах к Rx.
    Так не заработает?
     
  4. rkit

    rkit Гуру

    Любой приемник примет любой передатчик.
     
  5. rkit

    rkit Гуру

    В описании написано, что протокола не предусмотрено. Это значит, что протокол с вас.
     
  6. ИгорьК

    ИгорьК Гуру

    НС-12 - очень приятная вещь, работающая "из коробки" на 433 МГц.
    Спросите у Rambler про нее.
     
    tofik нравится это.
  7. tofik

    tofik Нерд

    Интересно, но несколько смущает задержка. Какова она на практике?
     
  8. ИгорьК

    ИгорьК Гуру

    Я не измерял.
     
  9. тут НС-11 получше будет, они и побыстрее и подешевле и не жарит на сотни метров.
     
    tofik нравится это.
  10. tofik

    tofik Нерд

    Доброго дня.
    Заказал модули HC-11. Приехали. Потестил... видно что работают, т.е. что то передают, но судя по всему не с той скоростью. Согласно достоверной информации от разработчика сепарируемого девайса - скорость 9600bps слишком мало, в девайсе скорость выше, но сколько именно пока не выяснено.
    Делаю попытки изменить скорость на модулях, но никак не удается подключить модуль к компьютеру.

    Задам совсем нубский вопрос:
    У меня Arduino UNO, как мне посылать на модуль HC-11 AT-команды???
    я подключаю как положено Vcc, Gnd, Rx, Tx. Сажаю 5-ый пин на землю. Открываю в Arduino IDE монитор последовательного порта. Посылаю команду "AT", на что он должен ответить "OK", но он молчит.
    Что я делаю не так?
    На какие пины UNO нужно сажать Rx и Tx HC-11? Пробовал и на 0,1 и на 6,7 как в одном из примеров. И так и сяк и наоборот... результата нет.
    Проясните, как монитор последовательного порта поймет, куда я посылаю команду "АТ"?? Это нужно прописать в скетче? Или можно всунуть Rx модуля в Tx(1) UNO, а Tx в Rx(0) соответственно. И отправлять команды??? Хотя так у меня тоже не получилось.
    Грешу на плохой контакт уно и модуля, подсоединенных через Breadboard с помощью проводов папа-папа, но паять не хочется, пока все не настрою, теперь ищу Вилку штыревую PLS-40, ну или что-то по типу... думаю с ней вопрос контакта отпадет
     
    Последнее редактирование: 23 ноя 2016
  11. ИгорьК

    ИгорьК Гуру

    Чтобы посылать что-то большее, чем на... нужно прочитать что-нибудь. Или кино посмотреть, у Пушного Звера, наверняка, есть. Вы что-то читали уже?
     
  12. tofik

    tofik Нерд

    И читал и смотрел. И про сериал порт почитал, и уроки Блума все посмотрел. И примеров кучу, по подключению модулей настраиваемых AT командами изучил.
    По идее все везде просто, но у меня что то не выходит... вот и думаю, что я упустил... (контакт?)
    Думал уже может модули спалил пока тыкался, поставил опять на синтезатор, проверил... посылает успешно, но криво... а с ардуиной не хочет дружить =(
    2 вечера прокопался, но в связи с тем, что результата нет, пишу тут.
     
  13. ИгорьК

    ИгорьК Гуру

    Ок, раз уже кое-что понимаете, начнем.
    1. Покажите-ка документацию на модуль, где расписана его система команд, чтобы мы знали, что ему надо отправить.
    2. UART на ардуино, действительно, находится на 0 и 1 ноге. Но там же сидит то, что общается при этом с компьютером по Serial. Из этого следует, что общаться с модулем как: модуль - железный UART - компьютер (монитор порта) - нельзя.
    3. Есть библиотека SowtwareSerial. Она эмулирует UART на любых ногах. То есть Вы подключаете модуль с использованием этой библиотеки, и тогда вы можете смотреть в мониторе порта на компьютере как там идет общение. Один нюанс - эта библиотека не работает быстрее 9600.
    Для начала - хватит.
    Гроссмейстер, ваш ход.
     
    tofik нравится это.
  14. rkit

    rkit Гуру

    Замыкаем reset и gnd, пишем в сериал порт через иде.
     
    ИгорьК нравится это.
  15. rkit

    rkit Гуру

    Да, и подключать надо tx к tx с таким способом.
     
    ИгорьК нравится это.
  16. подключить к 6,7 как на схеме, в уну залить это
    Код (C++):
    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(6, 7); // RX, TX

    void setup() {
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for native USB port only
      }
      mySerial.begin(9600);
    }

    void loop() { // run over and over
      if (mySerial.available()) {
        Serial.write(mySerial.read());
      }
      if (Serial.available()) {
        mySerial.write(Serial.read());
      }
    }
     
     
    tofik нравится это.
  17. tofik

    tofik Нерд

    1. даташит: http://micro-pi.ru/wp-content/uploads/2016/11/HC-11.pdf
    2. учту, спасибо.
    3. вот один из рассматриваемых примеров: http://arduinolab.pw/index.php/2016/07/02/radiomoduli-na-433mgc-hc-11hc-12-c-uart-interfejsom-obzor/
    здесь как раз в коде работа с этой библой. Но видимо какой то пробел в знаниях. И я не очень понимаю куда монитор порта отсылает AT-команду. К примеру вот такой код:
    Код (C++):
    #include <SoftwareSerial.h>
    SoftwareSerial radio(6, 7); // RX, TX
    void setup() {
        Serial.begin(9600);
        radio.begin(9600);
    }
    void loop() {
    }
    После этого, как я понимаю, порты открыты и можно посылать команды через монитор... но куда он их отправит?? Я в мониторе пишу "АТ", но модуль молчит... как посылать команду "АТ" на конкретный пин Rx (6)??
    ___
    По идее мне надо "АТ" слать именно на Rx (6 пин), а принимать с 7-го...
    И в loop необходимо добавить что-то типа:
    Код (C++):
    radio.print('AT');
    radio.read();
    Но read читает побайтно.... вобщем тоже мне кажется это не тот путь... и чтобы совсем все не усложнить и в конец не запутаться, прошу помочь разобраться.
     
    Последнее редактирование: 23 ноя 2016
  18. tofik

    tofik Нерд

    Уффф... ну теперь то все ясно... спасибо мил человек.
    буду коротать очередной вечерок сегодня. =)

    Спасибо друзья, о результатах отпишу
     
  19. ИгорьК

    ИгорьК Гуру

    Надо же. Не знал. Полезно будет для определенных вещей.
     
  20. tofik

    tofik Нерд

    Скорость выяснилась. 38400 8N1. Настроил на нее. Все работает. Задержка настолько мала, что не имеет принципиального значения.
    Хочу поблагодарить вас за помощь. Без которой, возможно не состоялось бы этой маленькой, но все-таки победы. Буду наводить красоту. Проверять на дальность. И двигаться дальше.

    Спасибо друзья.
     
    ИгорьК нравится это.