OSD на ATmega1281
меня устроил rf-store…
Спасибо.
Итого 16 байт, для скорости 4800= 26,6 мс.
Период передачи пакетов 30 мс.
Поочередная передача (и надеюсь прием…) пакетов на одной из 2 частот.
Проще- невозможно, сложнее- имхо не к чему.
С OSD планирую связь по SPI-подобному протоколу ( с передачей,кроме собственно значений каналов, уровень RSSI и кол-во дропов в сек) с относительно медленной скоростью ( 1 бит за TV-строку).
4800 это еще терпимо хотя напрашивается 1200 и 2400. Можно обойтись полосой 45 кГц как говориться как с куста вынь и полож. Там еще надо включать вайтенинг и этот забыл… где нолики и еденички кодируются переходом, дабы избежать постоянной составляющей, ведь там FSK, непосредственная модуляция а то уведет несущую.
А с софтом надеюсь что поделитесь:) а то со временем катастрофа. Еще бы неплохо обратно координаты и остальные параметры что бы вслепую летать.
присоединяюсь - есть 3 штуки 23х рфмов, 2 на платках уже и чот нивкакую не заводятся:( убил на них 2 недели, видно что обмен между мк и модулем идет но гдет я неправильно мыслю:( - перредать ничего не вышло, так и лежат уже 2 месяца
Реализовал подобие FHSS, немного причесал код для приемника и передатчика (тест) + конфигуратор/загрузчик:LRS433_test.rar
Хоть и слеплено все на скорую руку, работает на удивление стабильно.
Всех с наступающим!
Всех с наступающим!
Пользуясь случаем в этой ветке всех с Новым Годом!
Код скомпилился без ошибок спасибки, но подозреваю мне может не подойти.
Навскидку, еще не поизучал код. Конфигуратор? Может все же в коде таблицу с регистрами это более универсально и не привязанно к диапазону. Далее по параметрам, навскидку девиации приемлимые получались ±45кГц а там вроде такого нет. А так конечно здорово, требуем продолжения:)
пусть всем будет Jazz ( не путать с дизель генератором язз 30)
пусть всем будет Jazz
ЙАААЗЗЗЬЬ1!111
Желаю Сергею вылезти из беты, не распыляться и довести свой однокристальный шедевр ОСД+АП до серии! Пусть злопыхают поклонники АРМ и DSP, есть еще виртуозы в AVR и мы еще не сказали свое последнее CLI RJMP -1 😉
может кому интересно: !!! НЕ РЕКЛАММА !!!
Есть чел в гонконге, предложил меги1281 по 8,80 дол, оплата через пайпал, если кому интересно дам его адрес.
Всех доброжелателей с Новым годом! И спасибо! Вдохновляете на новые трудовые подвиги…
В редких перерывах между затянувшимися отмечаниями Великого народного праздника, дописал-таки вчерне софт LRS… Передатчик принимает PPM, приемник выдает PWM по своим каналам и передает по UART для АП/ОСД. Вполне удовлетворен 8 битовой разрядностью на канал. Особенно когда поставил в передатчике гистерезис в половину ширины квантования, вообще никаких життеров не стало, сервы ( хоть цифровые, но самые дешевые с ХС) очень точно отрабатывают движения стиков. В диапазон 8-бит загнал значения от 0.8ms до 2.2ms. Даже когда со стика в крайних положениях идет от 1 до 2мс (те, используется на полных ход стика всего ~180 квант из 256) нужно сильно постараться шевельнуть стик так, что-бы значение канала изменить только на 1.
АП/OSD уже принимает (и понимает) значения приемника по UART. Особенно понравилось, что теперь “палки” качества сигнала показывают не абстрактных попугаев, а вполне конкретные dbm (пока от -70 до -20 с шагом 10). Хотя с получением значения RSSI в приемнике немножко пришлось повозиться, пока не понял, что он выдает уровень именно в момент чтения, те у меня первоначально получалось на границе между пакетами…
может кому интересно: !!! НЕ РЕКЛАММА !!!
Есть чел в гонконге, предложил меги1281 по 8,80 дол, оплата через пайпал, если кому интересно дам его адрес.
Напишите плз сюда или в личку
доброжелателей с Новым годом!
И Вам того же.
новые трудовые подвиги…
Эта завсегда.
Великого народного праздника, дописал-таки вчерне софт
О, на это и надежда, праздники длинные.
принимает PPM, приемник выдает PWM по своим каналам и передает по UART для АП/ОСД.
а как насчет параллельного обратного TX канала через RFM22?
АП/OSD уже принимает (и понимает) значения приемника по UART. Особенно понравилось, что теперь “палки” качества сигнала показывают не абстрактных попугаев, а вполне конкретные dbm (пока от -70 до -20 с шагом 10)
А ну с палками ИМХО актуальнее диапазон от -100dBm что бы не прозевать момент когда вырубят, да и задача OSD вернуть на базу.
Вот так вот мотивируем а когда ознакомиться поближе сможем:)
Обратный канал пока не планирую. Летать по приборам не интересно, да и 100мвт линк вряд-ли обеспечит надежную связь на вменяемых расстояниях. Правда приемник при потери канала периодически включается на передачу, для поиска gmrs рацией (режим - “маяк”).
актуальнее диапазон от -100dBm
Сейчас много по работе приходится заниматься установкой WiFi подобных систем на 2.4 и 5.8. Практика показывает, что при уровнях меньше -75…-80 даже со стационарными антеннами вне крупных населенных пунктов ни о какой надежности канала говорить не приходится. 433 имхо несравнимо более шумный диапазон, поэтому -70 выбрал нижней границей именно
что бы не прозевать момент когда вырубят
. Практические испытания покажут куда скорректировать эти границы.
Выложу все hexы/исходники тоже после полевых испытаний, те. не раньше весны (если будет положительный результат конечно…).
Сейчас надо дописать еще режим бинда приемника, а то пока приходится конфигурацию вливать по uart и в передатчик и приемник.
полевых испытаний, те. не раньше весны (если будет положительный результат конечно…).
А весна это когда (это когда выборы)? А как мы подготовимся к встрече кода, нужно жеж железо подготовить😒
Я тут чьи-то уши прожужал по поводу propagation losses. Получается по грубым
прикидкам на 10 км -129.5dB а энергетика канала при front end 30dBm - 165dB
и антеннах по 8dBi остается в запасе 35dB вполне может хватить и на 100мвт и приличный SNR.
WiFi подобных систем на 2.4 и 5.8
2 msv возможно ли ваш проект использовать в сокращенном виде?
собственно очень интересует осд система для Ardupilot и ArdupilotMega, кто то заметит что осд для нее уже придумали и она скоро будет в продаже, но она основана на схеме ремзиби, у нее три существенных недостатка
1 очень дорогая микруха видечипа
2 прожорливая по току эта микруха по тактильным ощущениям не меньше ампера
3 закрытый программный код - ни продебажить ни понять чего он от тебя хочет.
За прошедшие полгода я спаял и протестировал “вдоль и поперек” плату сенсоров которая ardupilot imu v2 flat (это типа 6DOF ) 3D гиро + 3D аксель, вход жпс, возможность подключения компаса с отлаженным кодом их обработки, есть библиотеки под баро, на выходе по сериалу устройство выдает результат в простом и понятном виде. логично было бы его применить вместо пиродатчиков. Кстати себестоимость деталей вполне сносная - около 1500р
лично моя потребность это осд система без дорогих и прожорливых по току деталей, в которую по сериалу можно передать данные о горизонте и вывести в определенное место на экране показания датчиков телеметрии (возможно также по сериалу передавать координаты начала строки и желаемый текст)
а функции стабилизации и навигации от дать на откуп ардупилоту, такое решение упростило бы код за счет что не надо учитывать кучу прерываний - один процессор - одна функция - ОСД, но надежная и универсальная.
поскольку задача не такая уж и простая, позвольте несколько вопросов
- я особо в с++ и тем более в ассемблерных вставках не кумекаю, возможно ли это реализовать в среде более всокого уровня, на Arduino?
- какой чип следует выбрать? обязательно 1281 или потянет 328 / 1280 / 2560? (эти чипы поддерживает ардуино )
если вам интересена тема заменить пиродатчики на ardupilot imu v2 flat
я бы мог посодействовать бесплатно выслав заводскую печатную плату (я заказывал в резоните для себя, но при заказе одной ценник 2000р а 20шт стоят 2500, вот я и заказал с запасом)
2 all
в теме было еще обсуждение, про 10 герцовые жпс, и утилиту MiniGps 1.4
я в последнее время активно пробиваю тему поиска надежного и точного приемника, попутно нарыл последнюю версию, 1.7 - в ней особо нового не прибавилось, но опция 10 герц есть, я пробовал один из своих модулей, реально вываливает десяток строк с одной секундной меткой при записи в лог,
если кому надо качнуть можно тут: hobby.msdatabase.ru/…/ardupilot-gps
для отображения вкладок setup нажмите Ctrl + Alt + S
какой чип следует выбрать? обязательно 1281 или потянет 328 / 1280 / 2560?
Ардуино, точнее, GCC, допускает ассемблерные вставки, но там настолько все мутно, что не стоит связываться.
Без ассемблера при скорости атмеги 16 МГц возможно делать только унылые текстовые ОСД с огромными буквами.
Выбор чипа при одинаковой тактовой определяется его объемом SRAM - это напрямую связано с тем, что нужно выводить на экран. Если это более-менее пристойная графика, то нужно делать экранный буфер на весь экран (ширина*высота). При разрешении 128х128 пикселей это 2 кБ памяти только под буфер. 240х240 (практически максимум для атмеги по разрешению) - это 7.2кБ. 8 кБ памяти имеют 1280, 2560, 1281…
Если тупо 4 строки по 20-40 знаков, то подойдет любая атмега, т.к. буфер только символьный 160 байт, а шрифт берется из flash.
Для примера, как все работает, в т.ч. ассемблерные вставки, посмотрите MegaPirate OSD - перешитый Hobbyking E-OSD, исходники открыты, автор йа. Там и графика, и текст, а чип - всего лишm atmega88. Видео по сети тоже валяются.
спасибо огромное за ликбез!
и за код и за выкладку по ттх чипов.
сразу возникла гипотеза- вопрос как к автору что если к примеру не весь экран держать в рам, а поделить на несколько зон,
и к примеру если брать за раскладку сабжевое осд - есть средняя зона в которой искусственный горизонт - его черточки можно высчитать и на лету в на верхнюю и нижнюю части для вывода текста затратить рам?
или держать в рам не весь экран а подготавливать процессу выводящему биты несколько строк налету?
Собственно, так и сделано в мегапирате 😃 В центре панель 64х64 точки, индикатор крена, тангажа и указатель “домой”.
Сверху и снизу по 2 строки по 40 символов + одна статусная строка с мигающими символами всяких аварий, 5 символов.
Центральная панель держится целиком в памяти, а вот строки - это один массив в 160 байт, в котором только ASCII-коды символов. В строчном прерывании знакогенератор (программный) подставляет соответствующие символы из шрифта.
В принципе, можете повторить (или даже купить - $12) схему Е-ОСД, там кроме резисторов, пары кондеров, atmega88 и одного транзистора ничего нет. Кварц там на 24МГц: разогнали чип. Распространения переделка не получила, т.к. для получения ком-порта нужно паяться к ноге микрухи в корпусе 5х5мм 😃
У меня на ютубе есть несколько роликов с megapirate osd
www.youtube.com/user/syberian1980?feature=mhee
Если есть какие-то еще вопросы, пишите в личку, не будем тему Сергея засорять.
Да я не против… 😃 А то мои монологи уже всем надоели…
2 msv
вовсе нет, очень интересно, даже неудобно лишний раз спросить…
в обсуждении была картинка с алгоритмом автопилота (страница 2 пост 54) , я распечатал чтоб изучить но не читаются надписи, непонятно. хорошоб покрупнее
А то мои монологи уже всем надоели…
Отнюдь, все по делу, ждемс не дождемся исходников.
Даже если Сергей их выложит, там, подозреваю, черт ногу сломит. Сплошной асм. Имею в виду ОСД. Другими средствами такую красивую картинку не получить, да еще и навигация…
если Сергей их выложит, там, подозреваю, черт ногу сломит.
Ну дык уже влез, железо на мази, приходится на кого то полaгаться. Тут по ходу присматриваюсь к OpenPilot GCS.
была картинка с алгоритмом автопилота…
Сейчас она малость устарела… Будет время, пройдусь по коду, обновлю… Кстати тогда был разочарован, что не было никаких вопросов, замечаний, предложений…
Кстати, Сергей, а генерацию видео при помощи SPI делаете или вручную сдвиг делаете ?
К сожалению передающий регистр SPI в атмегах не буферирован и выводить им графику не получится. Приходится программно двигать. Ближе к началу темы есть исходный код вывода строки.
простите за дилетантский вопросик, а в атмегах нельзя делать непосредственный сдвиг в выходном порту
типа portb<<1 ?
чтоб сдвиг за один такт, конечнож потеряются остальные выводы порта для использования с другим функционалом, но у атмеги их полно