В самодельном радиомодуле мы так же использовали протокол передачи PCM-256, только в отличии от заводского радиомодуля (nRF24L01+), в самодельном радиомодуле мы использовали Манчестерское кодирование (https://ru.wikipedia.org/wiki/Физическо ... одирование). На выходе приёмника стоит усилитель-ограничитель. На осциллограмме видно, что при небольшом расстоянии от пульта сигнал на выходе усилителя-ограничителя чёткий, практически без шумов:
При большом расстоянии от пульта, сигнал на выходе усилителя-ограничителя идёт с шумами. Однако и при таком сигнале наш кораблик работает исправно.)) У нас в приёмнике цифровая обработка сигнала:
По изменению уровня сигнала МК восстанавливает из зашумлённых импульсов наш "манчестер" (используется дифференциальный цифровой фильтр). Конечно, по нормальному надо использовать АЦП и оцифровывать как положено)).
Тогда из схемы можно убрать усилитель-ограничитель, а сигнал снимать с предварительного усилителя (или прямо с детектора приёмника) и подавать сразу на АЦП в МК. В этом случае схема будет такая:
И ещё. С точки зрения радиоканала, а мы сейчас говорим об использовании для радиоуправления корабликом обычной, стандартной рации (самодельной или заводской, значение не имеет), для передачи голоса, наверное предпочтительней использовать не манчестеркое кодирование, а стандартные поднесущие частоты. Например ПАКЕТНЫЕ РАДИОМОДЕМЫ, где используется две поднесущие частоты - "0" соответствует частота 1200 Гц, а "1" - 2200 Гц. http://programming-lang.com/html/hard/modem1/10.htm При этом теоретически получаем более равномерный спектр передатчика. Правда, при использовании поднесущей скорость передачи меньше (в среднем в 1,5 раза) по сравнению с манчестерским кодированием. Но с другой стороны, мы ведь можем использовать не две, а более поднесущих (передавать не по одному биту, а сразу по несколько бит) и тем самым повысить скорость передачи. Т.е. повысить плотность информации (бит/герц). Правда при этом снижается дальность связи, т.к. с увеличением количества поднесущих требуется более мощный сигнал (больше отношение сигнал/шум на выходе приёмника), иначе МК не сможет их различить в шумах)). А можем применить и другие виды модуляций... например фазовую... или многоуровневую... более высоких порядков)) Например сейчас у нас FSK-2, можем сделать FSK-4 (как в некоторых заводских радиомодулях). И т.д. и .т.п.)) ПАКЕТНЫЕ РАДИОМОДЕМЫ для радиоуправления - тема интересная, займёмся этим позже)) А сейчас переходим к Часть 5. )) ---------- Часть 5. В этой части мы будем управлять корабликом по интернету! С помощью ноутбука/телефона (с Wi-Fi)... и т.д. Для этого нам нужно найти/сделать/придумать Wi-Fi и Ethernet. )) В инете есть любопытные проекты... Например вот: http://cxem.net/uprav/uprav34.php Надо сделать нечто подобное)) Wi-Fi роутер не до конца доломанный есть. Главная проблема - как нам в схему кораблика добавить Ethernet? Есть идеи? ))
Часть 5. В этой части мы будем управлять корабликом по интернету! С помощью ноутбука/телефона (с Wi-Fi)... и т.д. Для этого нам нужно найти/сделать/придумать Wi-Fi и Ethernet. )) В инете есть любопытные проекты... Например вот: http://cxem.net/uprav/uprav34.php Надо сделать нечто подобное)) Wi-Fi роутер не до конца доломанный есть. Главная проблема - как нам в схему кораблика добавить Ethernet? Есть идеи? ))
Я рекомендую начать с более чёткого описания целей разработки новой версии. В частности, если она будет улушением предыдущих, то в каком плане? Пока возникает масса вопросов, на которые приведённый выше параграф описания не даёт однозначного ответа. Например, почему WiFi? Хотите камеру прикрутить к кораблю (зачем она ему?) или приведённый пример проекта был просто пример? И если WiFi, то причём здесь Ethernet? Хотите кораблём по проводам управлять или прикрутить Ethernet-камеру к WiFi роутеру как в том проекте по ссылке? Если камеру, в сети есть проекты подключения камер непосредственно к МК. Зачем вообще ставить громоздкий роутер на модель, когда имеются компактные WiFi модули, некоторые даже снабжённые коннектором для подключения более эффективной внешней антенны? Неужели только потому, что уже есть в наличии недоломанный старый роутер?
Нет чёткого описания целей разработки новой версии. Я просто хочу чтобы КОРАБЛИК мог выходить в интернет... для начала в изернет)) Как я уже писал выше "проект КОРАБЛИК создан с целью изучения современных технологий". )) А WiFi в кораблике пока рассматриваю просто как дополнительную опцию. Например как запасной канал связи или для других целей... или для подключения разных устройств... камеры.. эхолоты... GPS навигаторы... и т.д.
Ser60 писал(а):
Зачем вообще ставить громоздкий роутер на модель
Ну просто.. потому что мне его девать некуда)) А это http://cxem.net/uprav/uprav34.php просто как пример, куда можно использовать старый роутер... Не выбрасывать же его)) WiFi модули ESP8266 уже хотели использовать (см. выше). Потом ими займёмся. Был ещё в планах GPS - навигатор... и даже SIM 800 (SIM 900) для GSM связи... http://codius.ru/articles/GSM_модуль_SIM800L_часть_1 Но для начала хочу изернет в КОРАБЛИК ! ))
Сейчас наш кораблик можно подключить к компьютеру только по UART. У меня есть такой кабель (переходник USB-UART).
можно выводить все данные кораблика на компьютер (программа монитор). И через эту же программу можно управлять нашим корабликом. Правда не очень удобно)) Надо писать значения в терминале - например "лево 20" ... "вперёд 30" ... ))
Можно считывать данные и/или управлять нашим корабликом прямо с ноутбука (программа монитор). Питание схемы прямо с USB (+5V).
Только повторяю - это неудобно! )) И главное - это не интересно... Хочу изернет в КОРАБЛИК! ))
P.S. Кроме того, проект "кораблик" это платформа для других проектов, например "Умный Дом". Берём кораблик и быстро переделываем в умный дом)) - вместо фар - подключаем освещение дома. - вместо серво - ставим шаровый кран
- датчик протечки оставляем как есть. - датчик температуры подключаем например к бойлеру и к другим устройствам. - всё это выводим (по проводам или по радиоканалу) на главнй пульт управления с экранчиком (одним или несколькими). - добавляем часы (для всяких таймеров). - быстренько переписываем программу... было "меню кораблик" >> стало "меню умный дом". )) ... Впринципе всё есть.
Только нет выхода в интернет. Вот почему нам так жизненно важен изернет в кораблике)) Так понятней?)) Ну и просто для спортивного интереса (я ещё не вникал во все тонкости работы интернета). Надо же с чего то начинать.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Мне всё ещё не ясно чего конкретно хотите добиться введениен изернета в кораблк. Однако, если в плане освоения новых технологий, достаточно просто добавить изернет в проект можно путём использования продукции фирмы WIZnet, как самих чипов, так и модулей на их основе. У меня есть здесь статья про пдин из таких. Сегодня у фирмы имеются более новые решения, в апноутах найдёте даже примеры их использования на С.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
https://radiokot.ru:443/circuit/digital/measure/114/ - Да, интересно. Спасибо. Уже заказал модули на W5500. Судя по форумам - самый лучший из своей серии. С него и начнём)) А пока модуль едит (из Китая путь не близкий), хотелось бы ещё рассмотреть один вариант.
Тогда возникает вопрос - можно ли вместо ПЛИС использовать ATmega8, с реальной максимальной тактовой частотой 25 МГц... И как это лучше сделать? ))
К сожалению высокочастотного осциллографа под рукой нет, посмотреть сигнал на выходе сетевой карты пока не могу, но есть осциллограммы в инете)) Например вот так выглядит сигнал Ethernet 10Base-T на выходе сетевухи:
И т.д. )) Вообщем смысл ясен)) Такой же манчестер, как в нашем кораблике на самодельных модулях)) Только одна проблема... в кораблике частота манчестера 1 кГц, а в Ethernet 10Base-T частота манчестера 10 МГц... )) А в остальном всё тоже самое))
Теперь совственно вопрос - как ATmega8, с максимальной тактовой частотой 25 МГц... должна записать сигнал 10 МГц? )) Первое что приходит на ум - использовать внешний буфер... например на двух сдвиговых регистрах... или можно придумать ещё что-то))
Последний раз редактировалось roman.com Пн авг 27, 2018 22:24:42, всего редактировалось 1 раз.
Да, мы со студентами делали проекты и на W5500. Они сейчас выпускаются на платах примерно того-же размера, что и старые WIZ820.
Цитата:
Теперь совственно вопрос - как ATmega8, с максимальной тактовой частотой 25 МГц... должна записать сигнал 10 МГц?
Программно реализовать низшие уровни стека протоколов, тем более на меге, не есть правильно. По крайней мере я смысла в этом не вижу никакого. Мягче говоря и другими словами, мне это не интересно. Для этой цели обычно используют Ethernet драйверы типа ENC28J60 (в сети тоже куча примеров с ним), которые реализуют PHY или лучше MAC+PHY уровни, в связке с МК. Помню, лет 10 назад занимался подобным проектом в купе с dsPIC33, чтобы реализация высших протоколов в память влезла, но потом полностью перешёл на модули WIZnet, хотя они и не без "закидонов".
До 16 битных dsPIC33 я ещё не дошёл... Использовать ENC28J60 не вижу смысла... за туже цену лучше купить W5500 с апаратной реализацией стека протоколов))
Ser60 писал(а):
Программно реализовать низшие уровни стека протоколов, тем более на меге, не есть правильно.
Мы на сайте радиолюбителей... Всё что тут делают люди - всё не есть правильно.)) Или (к примеру) по Вашему собирать самодельные радиоприёмники на радиолампах... в 21 веке - это есть правильно? )) А именно этим многие тут и занимаются.
И про какие стеки мы вообще говорим ? Для радиоуправления (и телеметрии) используем пакет фиксированной длины. Записать данные в массив, посчитать контрольную сумму и отправить пакет по сети... Для это не нужны стеки)) - https://www.fpga4fun.com/10BASE-T2.html
за туже цену лучше купить W5500 с апаратной реализацией стека протоколов
Дело не в цене. Рано или поздно наткнётесь на ограничения и негибкость внутренней реализации протоколов в W5500. С домашним роутером скорее всего будет работать без проблем. Однако, на кампусе у нас потом поставили слишком умные огромные свитчи и роутеры с хитрой схемой экономии энергии и домашняя реализация передачи данных не всегда срабатывала. Ещё позже весь кампус перевели под IPv6 и W5500 кончилась (нужна была полная поддержка IPv6 включая DHCPv6). Вот тут-то и вспомнится ENC28 с гибкой программной реализацией стеков. Может и есть где-то адаптация W5500 для всего этого, но я искать не стал из-за неактуальности и перешёл на "нормальный" контроллер (Кинетис К64) с аппаратным модулем MAC-NET и программной реализацией верхних протоколов. А позже на WiFi, которая поддерживается ПО модулей гораздо лучше, чем встроенные сетевые протоколы в W5500.
и отправить пакет по сети... Для это не нужны стеки
Смотря по какой сети и что значит "отправить". Если связь точка-точка по приватному каналу с фиксированным получателем, то это одно. При передаче данных по сети Интернет (или любой другой коммерческой) существуют определённые правила (=протоколы и их совокупность и называется стеком). Если будете реализовывать свой приватный канал для радиоуправления и алгоритм передачи и всё с нуля и по-своему, то, конечно, стандартные стеки не нужны.
вспомнится ENC28 с гибкой программной реализацией стеков. Может и есть где-то адаптация W5500
Судя по даташиту, у всех W5100, W5200, W5500... и т.д. есть режим MAC RAW. Цитата из даташита: "режим MAC RAW (Socket 0) может передавать пакет MAC (Ethernet-кадр) без соединения" ... В даташите даже нарисовали MAC RAW:
Короче, записываем МАС адрес и длину Ethernet-кадра, а программный стек сетевых протоколов, таких как TCP, UDP, IP, ARP... и т.д. пишем сами))
Ser60 писал(а):
Смотря по какой сети и что значит "отправить".
Для радиоуправления (в пределах локальной сети) можно использовать любой протокол. Даже просто MAC RAW)) Будем просто гонять Ethernet-кадры по сети)) Только боюсь мой роутер не моймёт... Это вам не свитч)) Хотя не знаю... это надо будет проверить)) Ну хорошо, тогда для маршутизации по сети (локальной или с выходом в Интернет) используем простой протокол UDP. ))
Да, для одного сокета режим MACRAW у W5500 может быть выходом в простых ситуациях. Однако, как я упоминал, для "домашних" условий скорее всего будут нормально работать встроенные протоколы в W5500. Практически уверен в этом, т.к. проблем дома с W5500 не наблюдал. Поэтому и рекомендовал её.
Теперь сделаем на базе W5500 простенький “TCP SERVER”. Настраиваем W5500 в режим TCP/IP согласно даташиту от производителя. (https://wizwiki.net/wiki/doku.php?id=pr ... p_function) Пишем в память МК HTML (https://ru.wikipedia.org/wiki/HTML) строку <html>Привет от кораблика!</html> Проверяем: В строке браузера пишем локальный IP адрес нашего кораблика (192.168.0.2).
Подключаемся к кораблику по локальной сети... Компьютер (192.168.0.3) отправляет кораблику GET запрос... Кораблик нам в ответ отправляет HTML строку <html>Привет от кораблика!</html>
Теперь надо чем-нибудь поуправлять... Например включить/выключить подсветку экранчика Nokia 5110. И так... Кораблик у нас в режиме приёма. Кораблик (модуль W5500) принимает все запросы (SYN) на соединение по локальной сети на IP адрес 192.168.0.2, порт 80 и автоматически отправляет всем в ответ приветствие (Привет от кораблика!)...)) После чего кораблик автоматически закрывает соединение (FIN) и ждёт нового соединения...
Чтобы включить/выключить подсветку экранчика, нужно отправить кораблику GET запрос, в котором необходимо указать что мы хотим..)) Например для того что-бы просто включить подсветку экранчика отправим условный запрос... например цифру "1". А что-бы выключить подсветку отправим соответственно цифру "0"... по-моему логично))
Чтобы отправить GET запрос кораблику с цифрой "1" достаточно просто в адресной строке браузера написать цифру "1"... логично)) Проверяем:
Работает..)) -Кораблик принял GET запрос с цифрой "1" (цифра "1" в шестнадцатиричной системе - 0x31, согласно таблице ASCII). -Кораблик увидел в GET запросе цифру "1" и включил подсветку экранчика Nokia 5110.
Теперь выключим подсветку. Пишем в адресной строке браузера цифру "0".
Работает..)) -Кораблик принял GET запрос с цифрой "0" (цифра "0" в шестнадцатиричной системе - 0x30, согласно таблице ASCII). -Кораблик увидел в GET запросе цифру "0" и выключил подсветку экранчика Nokia 5110.
Мдя... ---------- В принципе радиоуправления корабликом по Wi-Fi у нас уже готово)) Достаточно просто поставить в наш кораблик старенький Wi-Fi роутер (который не жалко если утонет ), как это сделали тут - http://cxem.net/uprav/uprav34.php
и можно отправляться в путь)) Управлять будем из браузера строки любого устройства с Wi-Fi... ноутбука, планшета и т.д.)) Только добавим команды... "вперёд", "назад", "лево", "право"... и т.д. )) ---------- Всё это интересно, но управлять из строки браузера неудобно...)) Тогда сделам посложней...
3- Теперь нажимаем кнопку ON. При нажатии кнопки ON браузер отправил GET запрос кораблику, с указанием параметров запроса (? - начало запроса, LED - подсветка экранчика, 1 - включить подсветку). Кораблик принял GET запрос, проанализировал и включил подсветку экраничика:
5- Теперь нажимаем кнопку OFF. При нажатии кнопки OFF браузер отправил GET запрос кораблику, с указанием параметров запроса (? - начало запроса, LED - подсветка экранчика, 0 - выключить подсветку). Кораблик принял GET запрос, проанализировал и выключил подсветку экраничика:
Всё..)) Вот так всё просто работает..)) ---------- HTML позволяет создавать кучу всего... кнопки, переключатели, ползунки, загружать картинки, ссылки... и т.д. и т.п. ))
Далее... Потребление у модуля 5500 довольно большое... ~140 mA на скорости 100 Мбит/c ~80 mA на скорости 10 Мбит/c ... Выбираем пониженную скорость... Правда я так и не понял, как программно перевести модуль на пониженную скорость... Регистр настройки PHY не работает - если записать другое значение (отличное от заводских), моудуль W5500 просто отключает весь блок PHY... Может кто знает в чём проблема? Пока просто замкнул выводы TD- и RX-, чтобы W5500 не мог работать на 100 Мбит/c...
После включения W5500 немного подумав... переключается в режим пониженной скорости 10 Мбит/c... Автоопределение у W5500 работает чётко.. )) https://en.wikipedia.org/wiki/Autonegotiation
Цитата из даташита W5500: "Настройка режима работы PHY: Аппаратная настройка с помощью выводов PMODE [2: 0] на схеме. Программная настройка с помощью регистра OPMDC [2: 0]..." Конец цитаты.
Я хочу настроить PHY программно. Но похоже эта функция не работает...
Уже сам разобрался. Функция работает. Просто перед настройкой PHY забыл сделать программный сброс PHY... Тогда всё работает как надо)) А то тут уже предложили бежать за паяльником... и перепаивать выводы на плате... Развелось советчиков... блин..))
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения