Простой поисковый радио маячок.

Vladimir_N

Я не думаю, что Вам поможет простой ответ. Типа: SPI должен быть 2 раза по 8 бит, первый бит старший. Вначале адрес, затем данные. Это все есть в даташите модуля. Как это сделать в аппаратной реализацией SPI на ассемблере очень сильно зависит от контроллера, поэтому не знаю, и знать не желаю 😃 ( на СИ это сделать проще и надежней он аппаратно не зависимый) , для таких приложений как Ваше, на ассемблере проще реализовать это программно, там просто нужно дергать и читать выводы контроллера. Опять же есть пример в первом посте этой темы в архиве есть фаил .asm . Но без изучения даташитов и документации по протоколу SPI ничего нормально не получится.

Polle

вот мой неработующий код, если можете подскажите где ошибки

Vladimir_N

Блинский нафиг, все это напоминает старый анекдот про старого и молодого хакера. 😃 Ладно, еще раз повторяю внимательно читайте документацию! cdn-shop.adafruit.com/…/sx1276_77_78_79.pdf Страница 80, расписан и нарисован в картинках обмен по SPI. И что мы видим? SPI должен быть 2 раза по 8 бит, первый бит старший. Вначале адрес, затем данные. (Это я уже писал!). Начало и конец отсекаются сигналом NSS (CS) всего 2 байта!, а не десять. Обмен с регистрами идет по 16 бит, 2 байта адрес и данные. Дальше обратить внимание на старший бит адреса в каком состоянии он должен быть для записи в регистр и в каком для чтения из него? Его нужно устанавливать или снимать принудительно пред отправкой адреса иначе ничего не получится. Для начала научитесь читать регистры модуля, например, регистр с адресом 0x42-RegVersion если научитесь нормально читать его значение, то дальше будет проще.

PS: У разных модулей Lora обмен spi может быть разный нужно читать документацию по конкретному типу.

Polle

Передатчик заработал, сигнал виден на SDR приёмнике, приём пока не делал. вот код:

Polle

И с аппаратным SPI передача работает. Проблема была в загрузке данных в буфер FIFO надо грузить по байтно,- адрес FIFO и байт данных и так пока не загрузишь все данные. Вот код:

Vladimir_N

Это все конечно хорошо, но нафига столько подпрограмм? В результате получается не читаемый код с кучей одинаковых подпрограмм и множеством ошибок. Нужно всего лишь две подпрограммы чтения и записи и вызывать их по мере необходимости, зачем городить весь этот огород с кучей одинаковых подпрограмм. FIFO буфер это один регистр( один адрес) и с ним можно работать и в пакетном режиме.

Polle

Оптимизацией кода займусь позже, помогите с приёмом данных

Polle

Сегодня заработал приём на модулях SX1778. Вот пример кода приёмника:

включаются 4 ре светодиода в любой последовательности, а на передатчике 4 ре кнопки каждая для своего светодиода на приёмнике, один раз нажал включится, второй выключится. Вот код передатчика, кроме кнопок,- там меняется регистор rb в подпрограмме FIFO

Polle

Получается не плохая поисковая система на базе модулей лора и мк ATMega8, к сведенью: микроконтроллер ATMega8 весит 0,15 гр. , а Tiny85?- 0.12 гр. поэтому не вижусмысла экономить. Я уже частично испытал систему: поисковое устройство посылает запрос на маяк, а маяк присылает коордитаты своего положения, а также напряжение своего аккумулятора. В радиомаяке применён GPS модуль ATGM336H, он показал лучшие результаты,- в помещении в пасмурную погоду ловит 7 спутников. Пока всё на макетках, в выходные собираюсь собрать маяк уже на печатной плате. В маяке будит установлен маленький активный зуммер который просто необходим для ближнего поиска небольших аппаратов, сам столкнулся как это необходимо.

Polle

Собрал GPS-маяк уже на печатной плате 31Х30 мм

вес получился 11,08 г без баттареи.

Polle

Маяк уже в корпусе: 35х36х20 и весит с аккумулятором 240 ма\ч 25,5г. Буду собирать пульт с олед дисплеем.

Polle

Готова и проверена в работе плата пульта для запроса координат с маяка, размеры 46мм на 36мм. Начинаю делать корпус, а потом на испытания.

Polle

вот готов и корпус для пульта, полный вес 48,7 грамма

Vladimir_N

Приветствую!

Решил выложить старую разработку маячка на LORA и GPS в тестовом варианте. Разработка получилась рабочая, но используются не дешевые элементы. Идея была получить направление на маяк в виде динамической стрелки и удаленно управлять маяком включая сирену и мощный светодиод.

Маяк построен по классической схеме использованием AVR контролера. Модуль LORA-RFM98W, модуль GPS L80-R, яркий светодиод на 3 Вата и громкая пищалка. Для экономии энергии аккумулятора сделано управление питанием модуля GPS. То есть маяк спит, периодически просыпаясь и слушая эфир. Окончательно он проснется только после получения сигнала от приемника и запустит GPS, ну а дальше по командам от приемника может выдать координаты, включить свет или сирену.

Приемник построен на STM32F411 выбор на него пал потому, что хотелось иметь быструю цветную графику, а у этого контроллера достаточный объём оперативной памяти для буферов дисплея. Модуль LORA на 1 ват, он легко может разбудить маяк на больших расстояниях. Модуль без контроллера все функции по управлению возложены на STM32 у него памяти и скорости более чем достаточно. Дисплей выбран трансфлективным(transflective) не слепнет на солнце, чем ярче падает на него свет, тем лучше видно картинку, но при слабом освещении картинка блеклая, в темноте опять все хорошо, работает внутренняя подсветка. Модуль компаса CMPS12 взял готовым, просто у меня он был. С компасом поиск становится совсем простым, просто идешь куда показывает стрелка (причем не важно, как повернут приемник) и смотришь как, уменьшаются расстояние. Подошел по ближе можешь включить сирену или свет и не важно в высокой траве или на дереве маяк, все равно сразу найдешь.

софт drive.google.com/file/d/…/view?usp=drive_link

Маркс

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

Маркс

их, как блох на собаке )), я RAR не пользуюсь, поэтому у меня нет подходящего архиватора )

10 days later
Семён_Авраменко

Добрый вечер Владимир вы делали печатную плату под схему передатчика или заказывали на jlcpcb? Есть ли гербер файлы ? Где вы писали код для атмеги328 в ардуино иде возможно ли сюда загрузить скетч для редактирования под себя прошивки? Подскажите какой вес передатчика с таким модулем gps?

Vladimir_N

Герберы для платы маяка, возможно где-то есть, если найду выложу. А вот исходники уже точно нету. Все написано было на IAR или на АVR Studio щас уже не помню. Ардуино я не люблю (очень уж мерзкий asm код оно генерит), но использую ее загрузчик для простоты загрузки 😃. HEX фалы скачаны именно с помощью него с готового устройства 😃 . Вес маяка, я не взвешивал, но я думаю около 10грам. Причем 70% веса приходится именно на модуль GPS с антенной. Если поставить более легкий модуль вес можно было существенно снизить.

Семён_Авраменко

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

Polle

Добрый день, пожалуйста подскажите как работать с пинами трансивера E19- 433M30S,_ RXEN и TXEN. Это если я правильно понимаю выводы для того что бы микроконтроллер знал когда законлилась передача или приём?

Vladimir_N

Павел, я конечно все понимаю хочется халявы, но нельзя же быть таким “Ламером” и не читать документацию 😉 . Например результат поиска в google www.ebyte.com/en/downpdf.aspx?id=128

16 TXEN Input Radio frequency switch control, make sure the TXEN pinis in high level, RXEN pin is in low level when transmitting.

17 RXEN Input Radio frequency switch control, make sure the TXEN pinis in high level, RXEN pin is in low level when transmitting

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

Как Вы вообще планируете работать с модулями не читая документацию?

Хотя конечно приятно, что хоть кто-то пытается сам думать и делать, а не получать готовое 😃

Семён_Авраменко

Владимир добрый день, а вы не помните почему было принято решение использовать модуль RFM98 по сравнению с RFM22B или лора Ra-01;02?