Обсуждаем приемники, передатчики, радиомикрофоны, жучки, генераторы, ВЧ-усилители, антенны и прочее радиохозяйство
Ответить

Re: Радиоуправляемый кораблик своими руками.

Пт сен 10, 2021 20:52:07

да одинаково всё...

пульт
///////////////////////////////////////////////////////////// инициализация nRF24L01+ :
PORTB.0=0; // SS
SPDR=0b00100001; while(!(SPSR & (1<<7))); // 0x01 EN_AA: (Enhanced ShockBurst ™) -выкл.
SPDR=0b00000000; while(!(SPSR & (1<<7))); // EN_AA = 0x00.
PORTB.0=1; // SS
PORTB.0=0; // SS
SPDR=0b00100100; while(!(SPSR & (1<<7))); // 0x04 SETUP_RETR: (Enhanced ShockBurst ™) -выкл.
SPDR=0b00000000; while(!(SPSR & (1<<7))); // SETUP_RETR = 0x00.
PORTB.0=1; // SS
Address_TX_RX(); // // Адрес nRF24L01+:
PORTB.0=0; // SS
SPDR=0b00110001; while(!(SPSR & (1<<7))); // 0x11 RX_PW_P0: размер FIFO_RX
SPDR=0b00001000; while(!(SPSR & (1<<7))); //(LSB)...(MSB) -8.
PORTB.0=1; // SS

модель
////////////////////////////////////////////////////////////////////////////// инициализация nRF24L01+ :
delay_ms(100); // Power on reset 100ms
PORTC.5=0; // SS
tx=0b00100001; SPI(); // 0x01 EN_AA: (Enhanced ShockBurst ™) - отключить.
tx=0b00000000; SPI(); // EN_AA = 0x00.
PORTC.5=1; // SS
PORTC.5=0; // SS
tx=0b00100100; SPI(); // 0x04 SETUP_RETR: (Enhanced ShockBurst ™) - отключить.
tx=0b00000000; SPI(); // SETUP_RETR = 0x00.
PORTC.5=1; // SS
//PORTC.5=0; // SS
//tx=0b00100101; SPI(); // 0x05 RF_CH: Частота
//tx=0b01111101; SPI(); // 125 // 2.525GHz. - 01111101(125) - вызывной канал
//PORTC.5=1; // SS
PORTC.5=0; // SS
tx=0b00100110; SPI(); // 0x06 RF_SETUP: Скорость, мощность.
tx=0b00100110; SPI(); // 250kbps; 0dBm.
PORTC.5=1; // SS
PORTC.5=0; // SS
tx=0b00110000; SPI(); // 0x10 TX_ADDR_P0: Адрес передатчика
tx=Address_Pult; SPI(); // адрес nRF24L01+
//tx=0b11000111; SPI(); // 0x........C7
tx=0b11000111; SPI(); // 0x......C7..
tx=0b11000111; SPI(); // 0x....C7....
tx=0b11000111; SPI(); // 0x..C7......
tx=0b11000111; SPI(); // 0xC7........
PORTC.5=1; // SS
//0xE7E7E7E7E7 (11100111 11100111 11100111 11100111 11100111) - По умолчанию
PORTC.5=0; // SS
tx=0b00101010; SPI(); // 0x0A RX_ADDR_P0: Адрес приёмника.
tx=Address_Pult; SPI(); // адрес nRF24L01+
//tx=0b11000111; SPI(); // 0x........C7
tx=0b11000111; SPI(); // 0x......C7..
tx=0b11000111; SPI(); // 0x....C7....
tx=0b11000111; SPI(); // 0x..C7......
tx=0b11000111; SPI(); // 0xC7........
PORTC.5=1; // SS
//0xE7E7E7E7E7 (11100111 11100111 11100111 11100111 11100111) - По умолчанию
PORTC.5=0; // SS
tx=0b00110001; SPI(); // 0x11 RX_PW_P0: Длина полезной нагрузки для приёмника.
tx=0b00001000; SPI(); //(LSB)...(MSB)-8
PORTC.5=1; // SS
////////////////////////////////////////////////////////////////////////////////////////////

значит что-то где-то сдохло))

Re: Радиоуправляемый кораблик своими руками.

Пт сен 10, 2021 20:54:38

Я тоже так думал, но пока без понятия что именно

Re: Радиоуправляемый кораблик своими руками.

Пт сен 10, 2021 21:03:17

какая та старая прошивка... откуда она взялась вообще))

поменяй адрес переменный Address_TX_RX(); // // Адрес nRF24L01+:
PORTB.0=0; // SS
SPDR=0b00110000; while(!(SPSR & (1<<7))); // 0x10 TX_ADDR_P0: Адрес передатчика
SPDR=Address_Pult; while(!(SPSR & (1<<7))); // адрес пульт начальное 1.
//SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x........C7
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x......C7..
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x....C7....
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x..C7......
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0xC7........
PORTB.0=1; // SS
PORTB.0=0; // SS
SPDR=0b00101010; while(!(SPSR & (1<<7))); // 0x0A RX_ADDR_P0: Адрес приёмника
SPDR=Address_Pult; while(!(SPSR & (1<<7))); // адрес пульт начальное 1.
//SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x........C7
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x......C7..
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x....C7....
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0x..C7......
SPDR=0b11000111; while(!(SPSR & (1<<7))); // 0xC7........
PORTB.0=1; // SS

на постоянный адрес
PORTC.5=0; // SS
tx=0b00110000; SPI(); // 0x10 TX_ADDR_P0: Адрес передатчика
tx=0b11000111; SPI(); // 0x........C7
tx=0b11000111; SPI(); // 0x......C7..
tx=0b11000111; SPI(); // 0x....C7....
tx=0b11000111; SPI(); // 0x..C7......
tx=0b11000111; SPI(); // 0xC7........
PORTC.5=1; // SS
//0xE7E7E7E7E7 (11100111 11100111 11100111 11100111 11100111) - По умолчанию
PORTC.5=0; // SS
tx=0b00101010; SPI(); // 0x0A RX_ADDR_P0: Адрес приёмника.
tx=0b11000111; SPI(); // 0x........C7
tx=0b11000111; SPI(); // 0x......C7..
tx=0b11000111; SPI(); // 0x....C7....
tx=0b11000111; SPI(); // 0x..C7......
tx=0b11000111; SPI(); // 0xC7........
PORTC.5=1; // SS
//0xE7E7E7E7E7 (11100111 11100111 11100111 11100111 11100111) - По умолчанию

а лучше вообще оставить заводской адрес да и всё)

Добавлено after 1 minute 15 seconds:
но это не влияет на работу радиомодуля...
ну и что у нас сдохло ? ))

Re: Радиоуправляемый кораблик своими руками.

Пт сен 10, 2021 21:46:22

В прошивке ничего не менял)) да и раньше работало. Проблема в том что сначала затопило модуль) не спрашивай как это произошло))) и моя ошибка что вместо того чтобы сначала поменять модуль а потом делать остальные работу по кораблю и пульту. Я сначала начал менять то бузер в пульте, то ставил датчики потопа то ещё что-то, а потом подключил уже антенну. Но сигнал нет….. даже снял все то что напаял, но толку ноль. Теперь даже мыслей нет в каком русле искать.

Добавлено after 2 minutes 33 seconds:
С антеннами вряд ли что-то , так как они сейчас на заводских коннеторах, ничего даже в них не паял. Та и ноги которые идут к антеннам проверил раз 10

Добавлено after 33 minutes 45 seconds:
Возник вопрос, а если транзистор сгорел на корабле может ли он влиять на работу самого радиомодуля?

Re: Радиоуправляемый кораблик своими руками.

Сб сен 11, 2021 14:43:43

Address_Pult надо вообще выкинуть из программы...
будет работать только 0xE7E7E7E7E7 (11100111 11100111 11100111 11100111 11100111) - По умолчанию

затопило модуль... ну тогда менять на другой для проверки...

С антеннами или без - не важно. На пару метров работает и без антенн.
выше есть видео как работает вообще с отключённой антенной.

если транзистор сгорел... какой транзистор ?

Добавлено after 30 minutes 50 seconds:
вообще радиомодули надо делать самодельные на транзисторах... как на первой странице.
они не ломаются))
а вообще выше была идея сделать запасной канал связи...
а то кораблик уплывёт далеко... вода попадёт... и связь будет потеряна... будет обидно...))
:cry:

Re: Радиоуправляемый кораблик своими руками.

Сб сен 11, 2021 15:52:09

Модули абсолютно новые как на корабле так и на пульте

Re: Радиоуправляемый кораблик своими руками.

Сб сен 11, 2021 22:39:03

новые.. угу... только один залит водой))
выше меняли модули местами...
ещё выше есть тестовые прошивки для модулей - для проверки отдельно логики и от дельно передатчика модуля...
короче всё есть))

Re: Радиоуправляемый кораблик своими руками.

Вс сен 12, 2021 10:47:04

denk12345 то что новые не означает что рабочие)))

По хорошему их надо паровать на заведомо рабочем устройстве мастер-слейв (и не только на робо то способность а и на дальность пары) и так чтобы была адыкватная дальность и телеметрия на пульте работала (И ТОГДА ПО ПАКЕТИКАМ ПАРАМИ) потом впаиваеш на новое устройство (имено впаиваеш)...

Питание 5v..

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

Версия 3.1 точно програмно рабочая и схематически тоже (проблема в модулях)),,,

Re: Радиоуправляемый кораблик своими руками.

Пн сен 13, 2021 00:39:20

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

Добавлено after 1 minute 8 seconds:
но это будет уже в следующей части))

Re: Радиоуправляемый кораблик своими руками.

Вс сен 19, 2021 17:28:13

новые.. угу... только один залит водой))
выше меняли модули местами...
ещё выше есть тестовые прошивки для модулей - для проверки отдельно логики и от дельно передатчика модуля...
короче всё есть))

Новые модули не затоплены, не знаю с чего вы так решили. Ну да ладно.
Проблему решил, сначала купил модули оригинальные(которые идут без самой антенны, которая накручивается ), как оказалось) Сразу все заработало. Потом решил посмотреть что с другими, так вот на одном пришлось выпаять кондер, и все заработало.
В перспективе буду брать ещё оригинальный, который на 1км тянет, и было бы хорошо сделать сразу две антенны в корабле.
А сейчас я не смог найти функцию, где можно сделать инверсию поворота, если помогите, можете подсказать где это настроить? Или может в версии 3.1 это вообще нельзя делать?))

Добавлено after 2 minutes 18 seconds:
sashamelja, roman.com, Спасибо, что давали советы)

Добавлено after 3 minutes 13 seconds:
короче судя по отзывам модули отстой)) хотя у меня ни одного не ещё сдохло...
надо переходить на другие... например на 433 мгц. там и дальность больше...
к счастью кораблик поддерживает любые виды связи)) включая подключение к Интернет )) да ещё и с шифрованием...
:tea:

Добавлено after 1 minute 8 seconds:
но это будет уже в следующей части))

Скорее всего модули только те отстой, которые не оригинальные, которые были в моем случае.

Re: Радиоуправляемый кораблик своими руками.

Вс сен 19, 2021 20:49:35

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

Всё есть в меню. И выбор канала (1...8) и инверсия любого канала (+ / -).
Screenshot_1.jpg
(58.2 KiB) Скачиваний: 82

Re: Радиоуправляемый кораблик своими руками.

Вт сен 21, 2021 20:52:17

Что у нас тут..))
МК закончились...
А пока надо подкрутить Java...
если создавать сокеты в потоках, то их нельзя будет назначить на один и тот-же порт. Значит, следует создать один сокет в стартовой программе вне потоков и передать его потокам, например чераз паракетр конструктора потока. Таким образом, управляющая программа содзаст сокет и потоки на приём и передачу, запустит их и потом terminate. А оба потока будут продолжать использовать созданный ей сокет. Я попробовал таким образом, у меня всё работает.

Можно и так... И я попробовал таким образом и у меня всё работает.))
Но есть идея лучше))
Создать один сокет в стартовой программе вне потоков и передать его через параметр в функцию этого же потока. Таким образом, управляющая программа создаст сокет и на приём и передачу и запустит его. А обе функции будут продолжать использовать созданный ей сокет в одном потоке...
Вот я попробовал...
Screenshot_2.jpg
(200.09 KiB) Скачиваний: 90

И у меня всё работает.))
:tea:
При этом скорость работы Java увеличилась в ~5 раз. Больше 1000 пакетов в секунду обрабатывает Java.
И это с шифрованием ! ))
Прикольно.))
:tea:

Re: Радиоуправляемый кораблик своими руками.

Пн окт 11, 2021 11:17:38

нужно попробовать когда-то https://www.youtube.com/watch?v=-VVtaB0fOcE

Re: Радиоуправляемый кораблик своими руками.

Пн окт 11, 2021 18:27:55

попробовать то можно... да только всё одно и то же))
выше делали уже на все частоты... 27 мгц... 433 мгц... 2400 мгц...
что мы ещё не пробовали ?))

Лучше бы рассказали подробней про Key.
Как там всё это работает... режим шифрования... генерация и обмен ключами... всё в подробностях))
Сейчас для меня этот вопрос более актуальный.
:tea:

Re: Радиоуправляемый кораблик своими руками.

Чт окт 14, 2021 19:54:08

А как там наш умный дом поживает ? )) Интересно... всё работает ? Эксперименты продолжаются ? ))
:tea:

Re: Радиоуправляемый кораблик своими руками.

Пт окт 15, 2021 10:30:33

Что у нас тут))
Для самодельного Ethernet закончились МК...
Для кораблика новых идей пока н поступало...
Поэтому займёмся пока Умным домом...))
:tea:

Добавлено after 34 minutes 49 seconds:
Далее надо придумать схему и протокол умного дома.
Думаю всё будет работать по проводам... Значит надо придумать как связать много МК по проводам.
В кораблики для связи всех МК мы использовали UART.
кораблик.jpg
(143.09 KiB) Скачиваний: 70

Для умного дома надо придумать свой протокол...
:tea:

Re: Радиоуправляемый кораблик своими руками.

Пт окт 15, 2021 11:47:25

Для кораблика новых идей пока н поступало...


Как насчёт полностью аналогового кораблика?))))) :)))

Re: Радиоуправляемый кораблик своими руками.

Пт окт 15, 2021 16:18:56

полностью аналоговый кораблик уже пытались делать...
https://cxem.net/uprav/uprav3.php
но быстро от этой идеи отказались... ввиду бесперспективности этой идеи))
:tea:

Добавлено after 8 minutes 19 seconds:
Далее...
Топология сеть для умного дома может быть разной.
-"общая шина"
общая шина.jpg
(80.08 KiB) Скачиваний: 48

- "кольцо"
кольцо.jpg
(61.87 KiB) Скачиваний: 48

- "звезда"
звезда.jpg
(72.87 KiB) Скачиваний: 57

- ещё варианты...
пассивная звезда.jpg
(72.36 KiB) Скачиваний: 52

смешанная.jpg
(57.86 KiB) Скачиваний: 48

и т.д.
Надо выбрать одну.
:tea:

Добавлено after 5 minutes 15 seconds:
"общая шина" - один провод на все устройства в доме. Прикольно))
но есть проблема - коллизии..

"кольцо" - один провод на все устройства в доме. Прикольно))
но есть проблема - при обрыве провода упадёт вся сеть...

"звезда" - много проводов на все устройства в доме. Не прикольно.
и ещё проблема - надо много деталей...
:roll:

Добавлено after 8 minutes 52 seconds:
Далее... Берём любые МК типа AVR.
Протокол.
Возьмём самый простой протокол - с частотным кодированием.
модем.jpg
(132.25 KiB) Скачиваний: 55

Принцип работы простой:
TX - используем задержки или любой таймер. Переводим биты в импульсы разной частоты.
RX - используем прерывания INT0 по изменению уровня и таймер который считает время между изменениями уровня и переводит частоту импульсов обратно в биты.
Закидываем в протеус...
частотное кодирование.jpg
(148.99 KiB) Скачиваний: 48

Всё работает.))
Скорость (при RC = 8 MHz) 20 кБит/с.
Для сравнения скорость UART (при RC = 8 MHz) 56 кБит/с.
Пакетики между AVR побежали))
синхронизация.jpg
(140.5 KiB) Скачиваний: 50

:tea:

Добавлено after 4 minutes 2 seconds:
Далее...
Режим SLEEP.
Переводим МК в Режим выключения (Powerdown) и пробуждения по получению пакета.
время пробуждения.jpg
(147.76 KiB) Скачиваний: 54

AVR переходит в активный режим (ток потребления 4...6 mA) только на время приёма и отправки пакета.
Всё остальное время AVR спит (ток потребления 0,1...0,5 мкA).
У нас получился самый экономичный МК.))
:)

Добавлено after 2 minutes 33 seconds:
Теперь надо придумать как подключить 20 штук AVR к одному AVR !!!
1_20.jpg
(60.59 KiB) Скачиваний: 50

:tea:

Добавлено after 4 minutes 39 seconds:
Подробней...
обработка пакета.jpg
(156.94 KiB) Скачиваний: 53

Протокол устойчив к помехам на линии...
ошибка передачи.jpg
(154.13 KiB) Скачиваний: 51

Прикольно))
:tea:

Добавлено after 1 hour 24 minutes 5 seconds:
Далее...
В прошлой раз мы подключали много датчиков и исполнительных устройств по витухе через два роутера.
схема_1.jpg
(196.87 KiB) Скачиваний: 55

На одну витуху можно подключить два датчика или исполнительных устройства.
раздельно.jpg
(120.15 KiB) Скачиваний: 52

Для питания датчиков и исполнительных устройств использовали технологию PoE.
витуха.jpg
(58.16 KiB) Скачиваний: 51

Всеми датчиками и исполнительными устройствами управляли с компьютера.
scada-l.jpg
(119.11 KiB) Скачиваний: 45

Теперь задача заменить два роутера на МК типа AVR.
Вопрос как это лучше сделать ?
:roll:

Re: Радиоуправляемый кораблик своими руками.

Пт окт 15, 2021 16:22:24

Я конечно в этом ничего пока не понимаю, но мне всё-равно интересно. Куча микроконтроллеров, которые как-то хитро соеденены - это компьютер? Один МК - это ядро процессора. Верно?

Re: Радиоуправляемый кораблик своими руками.

Пт окт 15, 2021 22:19:59

Niobium писал(а):Куча микроконтроллеров, которые как-то хитро соединены - это компьютер?

Это локальная вычислительная сеть (LAN).
https://ru.wikipedia.org/wiki/Локальная ... льная_сеть

И это же Интернет вещей (IoT).
https://ru.wikipedia.org/wiki/Интернет_вещей

Далее...
Какие есть варианты ?
Думаем...
:roll:
1- можно соединить все МК по схеме "звезда".
звезда.jpg
(78.93 KiB) Скачиваний: 42

Но тогда придётся прокладывать слишком много проводов по дому... Не очень хорошая идея))
2- можно соединить все МК по схеме "шина".
3- можно соединить все МК по схеме "кольцо".
Что лучше ?
:roll:

Добавлено after 8 minutes 27 seconds:
*
для гальванической развязки МК можно использовать трансформаторы или высоковольтные конденсаторы.
гальваническая развязка_1.jpg
(52.73 KiB) Скачиваний: 52

при необходимости МК могут работать в режиме модема с внешней буферизацией (буфер на втором МК).
модем.jpg
(48.82 KiB) Скачиваний: 50

при необходимости МК могут работать в режиме сквозной маршрутизации (для схемы "кольцо").
...
И т.д.
:roll:

Добавлено after 4 hours 38 minutes 22 seconds:
Далее...
Соединяем кучу МК...
"звезда" - много проводов...
"шина" - один провод. Но есть коллизии... Надо писать протокол по устранению коллизий...
Для уменьшения коллизий можно сделать раздельно TX и RX.
схема_1.jpg
(30.11 KiB) Скачиваний: 46

"кольцо" - один провод. Коллизий нет. Это интересно. ))
схема_2.jpg
(25.04 KiB) Скачиваний: 47

Выше в бортовых системах кораблика мы уже использовали "кольцо" - соединяли несколько Ардуино последовательно по UART.
кораблик.jpg
(141.64 KiB) Скачиваний: 45

Схема получилась довольно устойчивой. Можно её повторить для умного дома.
:roll:

Добавлено after 21 minute 28 seconds:
Далее...
"кольцо" - при обрыве провода в любой точке вся схема перестаёт работать.
схема_2.jpg
(28.24 KiB) Скачиваний: 46

:roll:
Но с другой стороны... можно же сделать выводы в МК переключаемыми... TX<>RX
схема_3.jpg
(29.67 KiB) Скачиваний: 46

Тогда при обрыве в любой точке вся схема продолжит работать. Просто пакеты будет передаваться в обратном направлении...
схема_4.jpg
(32.72 KiB) Скачиваний: 47

Будет не просто схема устойчивая к обрывам но и с автодиагностикой))
В этой схеме МК сами подскажут в каком месте произошел обрыв провода.
А вот и это уже интересно))
:tea:

Добавлено after 41 minute 7 seconds:
P.S.
А что происходит в мире ? ))
На планете Земля самая популярная схема "звезда".
Практически весь проводной Интернет работает по схеме "звезда".
Screenshot_2.jpg
(103.11 KiB) Скачиваний: 47

На втором месте схема "кольцо".
Практически весь мобильный Интернет работает по схеме "кольцо".
Screenshot_3.jpg
(29.45 KiB) Скачиваний: 54

Схема "шина" практически уже нигде не используется. Устарело.))
:tea:
Ответить