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

Обсуждаем приемники, передатчики, радиомикрофоны, жучки, генераторы, ВЧ-усилители, антенны и прочее радиохозяйство
Ответить
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

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

пульт
///////////////////////////////////////////////////////////// инициализация 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
////////////////////////////////////////////////////////////////////////////////////////////

значит что-то где-то сдохло))
Реклама
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вт мар 23, 2021 01:22:06

Сообщение denk12345 »

Я тоже так думал, но пока без понятия что именно
Реклама
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

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

поменяй адрес переменный 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:
но это не влияет на работу радиомодуля...
ну и что у нас сдохло ? ))
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вт мар 23, 2021 01:22:06

Сообщение denk12345 »

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

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

Добавлено after 33 minutes 45 seconds:
Возник вопрос, а если транзистор сгорел на корабле может ли он влиять на работу самого радиомодуля?
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

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

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

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

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

Добавлено after 30 minutes 50 seconds:
вообще радиомодули надо делать самодельные на транзисторах... как на первой странице.
они не ломаются))
а вообще выше была идея сделать запасной канал связи...
а то кораблик уплывёт далеко... вода попадёт... и связь будет потеряна... будет обидно...))
:cry:
Реклама
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вт мар 23, 2021 01:22:06

Сообщение denk12345 »

Модули абсолютно новые как на корабле так и на пульте
Реклама
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

новые.. угу... только один залит водой))
выше меняли модули местами...
ещё выше есть тестовые прошивки для модулей - для проверки отдельно логики и от дельно передатчика модуля...
короче всё есть))
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1565
Зарегистрирован: Пт янв 20, 2012 16:25:02

Сообщение sashamelja »

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

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

Питание 5v..

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

Версия 3.1 точно програмно рабочая и схематически тоже (проблема в модулях)),,,
И опыт сын ошибок трудных и гений парадоксов друг
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

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

Добавлено after 1 minute 8 seconds:
но это будет уже в следующей части))
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вт мар 23, 2021 01:22:06

Сообщение denk12345 »

[uquote="roman.com",url="/forum/viewtopic.php?p=4089941#p4089941"]новые.. угу... только один залит водой))
выше меняли модули местами...
ещё выше есть тестовые прошивки для модулей - для проверки отдельно логики и от дельно передатчика модуля...
короче всё есть))[/uquote]
Новые модули не затоплены, не знаю с чего вы так решили. Ну да ладно.
Проблему решил, сначала купил модули оригинальные(которые идут без самой антенны, которая накручивается ), как оказалось) Сразу все заработало. Потом решил посмотреть что с другими, так вот на одном пришлось выпаять кондер, и все заработало.
В перспективе буду брать ещё оригинальный, который на 1км тянет, и было бы хорошо сделать сразу две антенны в корабле.
А сейчас я не смог найти функцию, где можно сделать инверсию поворота, если помогите, можете подсказать где это настроить? Или может в версии 3.1 это вообще нельзя делать?))

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

Добавлено after 3 minutes 13 seconds:
[uquote="roman.com",url="/forum/viewtopic.php?p=4090462#p4090462"]короче судя по отзывам модули отстой)) хотя у меня ни одного не ещё сдохло...
надо переходить на другие... например на 433 мгц. там и дальность больше...
к счастью кораблик поддерживает любые виды связи)) включая подключение к Интернет )) да ещё и с шифрованием...
:tea:

Добавлено after 1 minute 8 seconds:
но это будет уже в следующей части))[/uquote]
Скорее всего модули только те отстой, которые не оригинальные, которые были в моем случае.
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

[uquote="denk12345",url="/forum/viewtopic.php?p=4093714#p4093714"]не смог найти функцию, где можно сделать инверсию поворота, если помогите, можете подсказать где это настроить.[/uquote]
Всё есть в меню. И выбор канала (1...8) и инверсия любого канала (+ / -).
Screenshot_1.jpg
(58.2 КБ) 105 скачиваний
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

Что у нас тут..))
МК закончились...
А пока надо подкрутить Java...
[uquote="Ser60",url="/forum/viewtopic.php?p=4093714#p4093714"]если создавать сокеты в потоках, то их нельзя будет назначить на один и тот-же порт. Значит, следует создать один сокет в стартовой программе вне потоков и передать его потокам, например чераз паракетр конструктора потока. Таким образом, управляющая программа содзаст сокет и потоки на приём и передачу, запустит их и потом terminate. А оба потока будут продолжать использовать созданный ей сокет. Я попробовал таким образом, у меня всё работает.[/uquote]
Можно и так... И я попробовал таким образом и у меня всё работает.))
Но есть идея лучше))
Создать один сокет в стартовой программе вне потоков и передать его через параметр в функцию этого же потока. Таким образом, управляющая программа создаст сокет и на приём и передачу и запустит его. А обе функции будут продолжать использовать созданный ей сокет в одном потоке...
Вот я попробовал...
Screenshot_2.jpg
(200.09 КБ) 110 скачиваний
И у меня всё работает.))
:tea:
При этом скорость работы Java увеличилась в ~5 раз. Больше 1000 пакетов в секунду обрабатывает Java.
И это с шифрованием ! ))
Прикольно.))
:tea:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1565
Зарегистрирован: Пт янв 20, 2012 16:25:02

Сообщение sashamelja »

нужно попробовать когда-то https://www.youtube.com/watch?v=-VVtaB0fOcE
И опыт сын ошибок трудных и гений парадоксов друг
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

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

Лучше бы рассказали подробней про Key.
Как там всё это работает... режим шифрования... генерация и обмен ключами... всё в подробностях))
Сейчас для меня этот вопрос более актуальный.
:tea:
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

А как там наш умный дом поживает ? )) Интересно... всё работает ? Эксперименты продолжаются ? ))
:tea:
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

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

Добавлено after 34 minutes 49 seconds:
Далее надо придумать схему и протокол умного дома.
Думаю всё будет работать по проводам... Значит надо придумать как связать много МК по проводам.
В кораблики для связи всех МК мы использовали UART.
кораблик.jpg
(143.09 КБ) 96 скачиваний
Для умного дома надо придумать свой протокол...
:tea:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1521
Зарегистрирован: Сб апр 17, 2021 12:24:15
Откуда: Украина

Сообщение Niobium »

Для кораблика новых идей пока н поступало...
Как насчёт полностью аналогового кораблика?))))) :)))
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

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

Добавлено after 8 minutes 19 seconds:
Далее...
Топология сеть для умного дома может быть разной.
-"общая шина"
общая шина.jpg
(80.08 КБ) 67 скачиваний
- "кольцо"
кольцо.jpg
(61.87 КБ) 73 скачивания
- "звезда"
звезда.jpg
(72.87 КБ) 74 скачивания
- ещё варианты...
пассивная звезда.jpg
(72.36 КБ) 69 скачиваний
смешанная.jpg
(57.86 КБ) 70 скачиваний
и т.д.
Надо выбрать одну.
:tea:

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

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

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

Добавлено after 8 minutes 52 seconds:
Далее... Берём любые МК типа AVR.
Протокол.
Возьмём самый простой протокол - с частотным кодированием.
модем.jpg
(132.25 КБ) 74 скачивания
Принцип работы простой:
TX - используем задержки или любой таймер. Переводим биты в импульсы разной частоты.
RX - используем прерывания INT0 по изменению уровня и таймер который считает время между изменениями уровня и переводит частоту импульсов обратно в биты.
Закидываем в протеус...
частотное кодирование.jpg
(148.99 КБ) 68 скачиваний
Всё работает.))
Скорость (при RC = 8 MHz) 20 кБит/с.
Для сравнения скорость UART (при RC = 8 MHz) 56 кБит/с.
Пакетики между AVR побежали))
синхронизация.jpg
(140.5 КБ) 74 скачивания
:tea:

Добавлено after 4 minutes 2 seconds:
Далее...
Режим SLEEP.
Переводим МК в Режим выключения (Powerdown) и пробуждения по получению пакета.
время пробуждения.jpg
(147.76 КБ) 71 скачивание
AVR переходит в активный режим (ток потребления 4...6 mA) только на время приёма и отправки пакета.
Всё остальное время AVR спит (ток потребления 0,1...0,5 мкA).
У нас получился самый экономичный МК.))
:)

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

Добавлено after 4 minutes 39 seconds:
Подробней...
обработка пакета.jpg
(156.94 КБ) 78 скачиваний
Протокол устойчив к помехам на линии...
ошибка передачи.jpg
(154.13 КБ) 70 скачиваний
Прикольно))
:tea:

Добавлено after 1 hour 24 minutes 5 seconds:
Далее...
В прошлой раз мы подключали много датчиков и исполнительных устройств по витухе через два роутера.
схема_1.jpg
(196.87 КБ) 76 скачиваний
На одну витуху можно подключить два датчика или исполнительных устройства.
раздельно.jpg
(120.15 КБ) 77 скачиваний
Для питания датчиков и исполнительных устройств использовали технологию PoE.
витуха.jpg
(58.16 КБ) 75 скачиваний
Всеми датчиками и исполнительными устройствами управляли с компьютера.
scada-l.jpg
(119.11 КБ) 65 скачиваний
Теперь задача заменить два роутера на МК типа AVR.
Вопрос как это лучше сделать ?
:roll:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1521
Зарегистрирован: Сб апр 17, 2021 12:24:15
Откуда: Украина

Сообщение Niobium »

Я конечно в этом ничего пока не понимаю, но мне всё-равно интересно. Куча микроконтроллеров, которые как-то хитро соеденены - это компьютер? Один МК - это ядро процессора. Верно?
Друг Кота
Сообщения: 9338
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

Niobium писал(а):Куча микроконтроллеров, которые как-то хитро соединены - это компьютер?
Это локальная вычислительная сеть (LAN).
https://ru.wikipedia.org/wiki/Локальная ... льная_сеть

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

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

Добавлено after 8 minutes 27 seconds:
*
для гальванической развязки МК можно использовать трансформаторы или высоковольтные конденсаторы.
гальваническая развязка_1.jpg
(52.73 КБ) 74 скачивания
при необходимости МК могут работать в режиме модема с внешней буферизацией (буфер на втором МК).
модем.jpg
(48.82 КБ) 66 скачиваний
при необходимости МК могут работать в режиме сквозной маршрутизации (для схемы "кольцо").
...
И т.д.
:roll:

Добавлено after 4 hours 38 minutes 22 seconds:
Далее...
Соединяем кучу МК...
"звезда" - много проводов...
"шина" - один провод. Но есть коллизии... Надо писать протокол по устранению коллизий...
Для уменьшения коллизий можно сделать раздельно TX и RX.
схема_1.jpg
(30.11 КБ) 62 скачивания
"кольцо" - один провод. Коллизий нет. Это интересно. ))
схема_2.jpg
(25.04 КБ) 71 скачивание
Выше в бортовых системах кораблика мы уже использовали "кольцо" - соединяли несколько Ардуино последовательно по UART.
кораблик.jpg
(141.64 КБ) 67 скачиваний
Схема получилась довольно устойчивой. Можно её повторить для умного дома.
:roll:

Добавлено after 21 minute 28 seconds:
Далее...
"кольцо" - при обрыве провода в любой точке вся схема перестаёт работать.
схема_2.jpg
(28.24 КБ) 65 скачиваний
:roll:
Но с другой стороны... можно же сделать выводы в МК переключаемыми... TX<>RX
схема_3.jpg
(29.67 КБ) 67 скачиваний
Тогда при обрыве в любой точке вся схема продолжит работать. Просто пакеты будет передаваться в обратном направлении...
схема_4.jpg
(32.72 КБ) 61 скачивание
Будет не просто схема устойчивая к обрывам но и с автодиагностикой))
В этой схеме МК сами подскажут в каком месте произошел обрыв провода.
А вот и это уже интересно))
:tea:

Добавлено after 41 minute 7 seconds:
P.S.
А что происходит в мире ? ))
На планете Земля самая популярная схема "звезда".
Практически весь проводной Интернет работает по схеме "звезда".
Screenshot_2.jpg
(103.11 КБ) 65 скачиваний
На втором месте схема "кольцо".
Практически весь мобильный Интернет работает по схеме "кольцо".
Screenshot_3.jpg
(29.45 КБ) 77 скачиваний
Схема "шина" практически уже нигде не используется. Устарело.))
:tea:
Ответить

Вернуться в «Радиотехника: приемники, передатчики, антенны»