Простой поисковый радио маячок.
пост 1425, не получается управлять модулями Lora SX1276. может кто объяснит на примере что нужно загрузить в SX1276 чтобы он передал в эфир несколько байт. только язык СИ я не понимаю, а програмирую в AlgorithmBuilder
пост 1425 чистый AVR ассемблер - AlgorithmBuilder причем тут Си. По передаче spi, почитать даташит по модулю lora религия не позволяет? Пример программной реализации SPI есть в первом посте в том числе и на ассемблере. Нефиг лезть к аппаратной реализации SPI если не понимаешь как это работает, там дофига нюансов.
PS: СИ нужно знать, хотя бы на уровне Ардуино!
Спасибо за помощь, я так тоже могу.
Я не думаю, что Вам поможет простой ответ. Типа: SPI должен быть 2 раза по 8 бит, первый бит старший. Вначале адрес, затем данные. Это все есть в даташите модуля. Как это сделать в аппаратной реализацией SPI на ассемблере очень сильно зависит от контроллера, поэтому не знаю, и знать не желаю 😃 ( на СИ это сделать проще и надежней он аппаратно не зависимый) , для таких приложений как Ваше, на ассемблере проще реализовать это программно, там просто нужно дергать и читать выводы контроллера. Опять же есть пример в первом посте этой темы в архиве есть фаил .asm . Но без изучения даташитов и документации по протоколу SPI ничего нормально не получится.
Блинский нафиг, все это напоминает старый анекдот про старого и молодого хакера. 😃 Ладно, еще раз повторяю внимательно читайте документацию! cdn-shop.adafruit.com/…/sx1276_77_78_79.pdf Страница 80, расписан и нарисован в картинках обмен по SPI. И что мы видим? SPI должен быть 2 раза по 8 бит, первый бит старший. Вначале адрес, затем данные. (Это я уже писал!). Начало и конец отсекаются сигналом NSS (CS) всего 2 байта!, а не десять. Обмен с регистрами идет по 16 бит, 2 байта адрес и данные. Дальше обратить внимание на старший бит адреса в каком состоянии он должен быть для записи в регистр и в каком для чтения из него? Его нужно устанавливать или снимать принудительно пред отправкой адреса иначе ничего не получится. Для начала научитесь читать регистры модуля, например, регистр с адресом 0x42-RegVersion если научитесь нормально читать его значение, то дальше будет проще.
PS: У разных модулей Lora обмен spi может быть разный нужно читать документацию по конкретному типу.
Это все конечно хорошо, но нафига столько подпрограмм? В результате получается не читаемый код с кучей одинаковых подпрограмм и множеством ошибок. Нужно всего лишь две подпрограммы чтения и записи и вызывать их по мере необходимости, зачем городить весь этот огород с кучей одинаковых подпрограмм. FIFO буфер это один регистр( один адрес) и с ним можно работать и в пакетном режиме.
Оптимизацией кода займусь позже, помогите с приёмом данных
Сегодня заработал приём на модулях SX1778. Вот пример кода приёмника:
включаются 4 ре светодиода в любой последовательности, а на передатчике 4 ре кнопки каждая для своего светодиода на приёмнике, один раз нажал включится, второй выключится. Вот код передатчика, кроме кнопок,- там меняется регистор rb в подпрограмме FIFO
Получается не плохая поисковая система на базе модулей лора и мк ATMega8, к сведенью: микроконтроллер ATMega8 весит 0,15 гр. , а Tiny85?- 0.12 гр. поэтому не вижусмысла экономить. Я уже частично испытал систему: поисковое устройство посылает запрос на маяк, а маяк присылает коордитаты своего положения, а также напряжение своего аккумулятора. В радиомаяке применён GPS модуль ATGM336H, он показал лучшие результаты,- в помещении в пасмурную погоду ловит 7 спутников. Пока всё на макетках, в выходные собираюсь собрать маяк уже на печатной плате. В маяке будит установлен маленький активный зуммер который просто необходим для ближнего поиска небольших аппаратов, сам столкнулся как это необходимо.
Приветствую!
Решил выложить старую разработку маячка на LORA и GPS в тестовом варианте. Разработка получилась рабочая, но используются не дешевые элементы. Идея была получить направление на маяк в виде динамической стрелки и удаленно управлять маяком включая сирену и мощный светодиод.
Маяк построен по классической схеме использованием AVR контролера. Модуль LORA-RFM98W, модуль GPS L80-R, яркий светодиод на 3 Вата и громкая пищалка. Для экономии энергии аккумулятора сделано управление питанием модуля GPS. То есть маяк спит, периодически просыпаясь и слушая эфир. Окончательно он проснется только после получения сигнала от приемника и запустит GPS, ну а дальше по командам от приемника может выдать координаты, включить свет или сирену.
Приемник построен на STM32F411 выбор на него пал потому, что хотелось иметь быструю цветную графику, а у этого контроллера достаточный объём оперативной памяти для буферов дисплея. Модуль LORA на 1 ват, он легко может разбудить маяк на больших расстояниях. Модуль без контроллера все функции по управлению возложены на STM32 у него памяти и скорости более чем достаточно. Дисплей выбран трансфлективным(transflective) не слепнет на солнце, чем ярче падает на него свет, тем лучше видно картинку, но при слабом освещении картинка блеклая, в темноте опять все хорошо, работает внутренняя подсветка. Модуль компаса CMPS12 взял готовым, просто у меня он был. С компасом поиск становится совсем простым, просто идешь куда показывает стрелка (причем не важно, как повернут приемник) и смотришь как, уменьшаются расстояние. Подошел по ближе можешь включить сирену или свет и не важно в высокой траве или на дереве маяк, все равно сразу найдешь.
Доступ к файлам закрыт…
архиватор
их, как блох на собаке )), я RAR не пользуюсь, поэтому у меня нет подходящего архиватора )