OSD на ATmega1281

Петруччо
msv:

Лениво возиться с программной реализацией протокола DS

Сергей, вот здесь всё расписано avrlab.com
Там есть статья про реализацию термометра на дс18б20.
Удачи!

Vlado
msv:

устройства могут передавать/принимать данные не имея вообще ни одной явной катушки (хотя в передатчик пи-контур все же ткнул… на всякий…)…
Это чудо-чудное! Оно работает!

Та как насчет софта и как сопрягается OSD ( SPI? или какая хитрость?), вы не ответили, можно в личку. А на счет контуров, то бишь катушек, они там в изобилии на самом кристалле да и на модуле 0201 или 0402 катушки и кондеры в ассортименте. Там начиная прехода с не на симметричный ( не балун, хотя такой и готовый можно применить) а выходной каскад на модуле RC развязка плюс пи контура для согласования, там кстати что то не очень было по поводу возбуждения, плюс свич. Вообще SiLab блюдёт г…о не делает. Для датчиков всяких, самое то но до профессиональных связных систем не дотягивает, да это и понятно, как говорят дареному коню в зубы то не того 2-3$, модуль конечно примитив два слоя с промблемками.
А мертвые зоны это благодаря диапазону, она вполне вмещается в комнаты и хорошо переотражается, это не 70 МГц. Помню зделал приемопередатчик на сверхрегенераторе, 27МГц симметричный, каскад два транзистора, трансивер, коридор метров 50 и не тянет, подойдя к окну другое дело, пошло.

msv

Удалось немало накосячить с железом приемника. Детские ошибки на невнимательность, когда хочется побыстрее…

  1. Развел линии ADC будучи уверенным, что все они относится к порту С. У атмел оказывается свой взгляд на это… Придется в этом железе ограничиться только 6-ю каналами PWM. Хотя мне и это не нужно…
  2. Из кучи примеров, уже не помню откуда взятых, из-за всех сил управляю линиями RFM RX_ANT и TX_ANT. В даташите на RFM22b на рисунках распиновки эти линии честно называются “NC”. Правда в таблице описания пинов упорно существуют и даже расписано, что, когда на них подавать…
  3. Зачем-то сделал плату под кнопку и светодиоды со стороны элементов. Забыл, что без металлизации дырок, все разъемы все равно паять сверху…
Vlado:

Та как насчет софта и как сопрягается OSD

Да какой там софт… пока только уровень теста…
Пока планирую радиоканал:
5 байт- преамбула (AFС- включен)
1 байт- синхро (он же ID-системы бум считать)
8 байт- данные по каналам
2 байта - CRC
Итого 16 байт, для скорости 4800= 26,6 мс.
Период передачи пакетов 30 мс.
Поочередная передача (и надеюсь прием…) пакетов на одной из 2 частот.
Проще- невозможно, сложнее- имхо не к чему.
С OSD планирую связь по SPI-подобному протоколу ( с передачей,кроме собственно значений каналов, уровень RSSI и кол-во дропов в сек) с относительно медленной скоростью ( 1 бит за TV-строку).

Панкратов_Сергей
msv:

rfm22b стоит копейки

Сергей подскажи - через инет где реально купить можно ?
На ebay предложений нет .

msv

Ну за весь инет не скажу, меня устроил rf-store… 😃

Vlado

Итого 16 байт, для скорости 4800= 26,6 мс.
Период передачи пакетов 30 мс.
Поочередная передача (и надеюсь прием…) пакетов на одной из 2 частот.
Проще- невозможно, сложнее- имхо не к чему.
С OSD планирую связь по SPI-подобному протоколу ( с передачей,кроме собственно значений каналов, уровень RSSI и кол-во дропов в сек) с относительно медленной скоростью ( 1 бит за TV-строку).

4800 это еще терпимо хотя напрашивается 1200 и 2400. Можно обойтись полосой 45 кГц как говориться как с куста вынь и полож. Там еще надо включать вайтенинг и этот забыл… где нолики и еденички кодируются переходом, дабы избежать постоянной составляющей, ведь там FSK, непосредственная модуляция а то уведет несущую.
А с софтом надеюсь что поделитесь:) а то со временем катастрофа. Еще бы неплохо обратно координаты и остальные параметры что бы вслепую летать.

Иван

присоединяюсь - есть 3 штуки 23х рфмов, 2 на платках уже и чот нивкакую не заводятся:( убил на них 2 недели, видно что обмен между мк и модулем идет но гдет я неправильно мыслю:( - перредать ничего не вышло, так и лежат уже 2 месяца

msv

Реализовал подобие FHSS, немного причесал код для приемника и передатчика (тест) + конфигуратор/загрузчик:LRS433_test.rar
Хоть и слеплено все на скорую руку, работает на удивление стабильно.
Всех с наступающим!

Vlado
msv:

Всех с наступающим!

Пользуясь случаем в этой ветке всех с Новым Годом!
Код скомпилился без ошибок спасибки, но подозреваю мне может не подойти.
Навскидку, еще не поизучал код. Конфигуратор? Может все же в коде таблицу с регистрами это более универсально и не привязанно к диапазону. Далее по параметрам, навскидку девиации приемлимые получались ±45кГц а там вроде такого нет. А так конечно здорово, требуем продолжения:)
пусть всем будет Jazz ( не путать с дизель генератором язз 30)

Syberian
Vlado:

пусть всем будет Jazz

ЙАААЗЗЗЬЬ1!111

Желаю Сергею вылезти из беты, не распыляться и довести свой однокристальный шедевр ОСД+АП до серии! Пусть злопыхают поклонники АРМ и DSP, есть еще виртуозы в AVR и мы еще не сказали свое последнее CLI RJMP -1 😉

avisenja

может кому интересно: !!! НЕ РЕКЛАММА !!!

Есть чел в гонконге, предложил меги1281 по 8,80 дол, оплата через пайпал, если кому интересно дам его адрес.

msv

Всех доброжелателей с Новым годом! И спасибо! Вдохновляете на новые трудовые подвиги…
В редких перерывах между затянувшимися отмечаниями Великого народного праздника, дописал-таки вчерне софт LRS… Передатчик принимает PPM, приемник выдает PWM по своим каналам и передает по UART для АП/ОСД. Вполне удовлетворен 8 битовой разрядностью на канал. Особенно когда поставил в передатчике гистерезис в половину ширины квантования, вообще никаких життеров не стало, сервы ( хоть цифровые, но самые дешевые с ХС) очень точно отрабатывают движения стиков. В диапазон 8-бит загнал значения от 0.8ms до 2.2ms. Даже когда со стика в крайних положениях идет от 1 до 2мс (те, используется на полных ход стика всего ~180 квант из 256) нужно сильно постараться шевельнуть стик так, что-бы значение канала изменить только на 1.
АП/OSD уже принимает (и понимает) значения приемника по UART. Особенно понравилось, что теперь “палки” качества сигнала показывают не абстрактных попугаев, а вполне конкретные dbm (пока от -70 до -20 с шагом 10). Хотя с получением значения RSSI в приемнике немножко пришлось повозиться, пока не понял, что он выдает уровень именно в момент чтения, те у меня первоначально получалось на границе между пакетами…

targetorsk
avisenja:

может кому интересно: !!! НЕ РЕКЛАММА !!!

Есть чел в гонконге, предложил меги1281 по 8,80 дол, оплата через пайпал, если кому интересно дам его адрес.

Напишите плз сюда или в личку

Vlado

доброжелателей с Новым годом!

И Вам того же.

новые трудовые подвиги…

Эта завсегда.

Великого народного праздника, дописал-таки вчерне софт

О, на это и надежда, праздники длинные.

принимает PPM, приемник выдает PWM по своим каналам и передает по UART для АП/ОСД.

а как насчет параллельного обратного TX канала через RFM22?

АП/OSD уже принимает (и понимает) значения приемника по UART. Особенно понравилось, что теперь “палки” качества сигнала показывают не абстрактных попугаев, а вполне конкретные dbm (пока от -70 до -20 с шагом 10)

А ну с палками ИМХО актуальнее диапазон от -100dBm что бы не прозевать момент когда вырубят, да и задача OSD вернуть на базу.
Вот так вот мотивируем а когда ознакомиться поближе сможем:)

msv

Обратный канал пока не планирую. Летать по приборам не интересно, да и 100мвт линк вряд-ли обеспечит надежную связь на вменяемых расстояниях. Правда приемник при потери канала периодически включается на передачу, для поиска gmrs рацией (режим - “маяк”).

Vlado:

актуальнее диапазон от -100dBm

Сейчас много по работе приходится заниматься установкой WiFi подобных систем на 2.4 и 5.8. Практика показывает, что при уровнях меньше -75…-80 даже со стационарными антеннами вне крупных населенных пунктов ни о какой надежности канала говорить не приходится. 433 имхо несравнимо более шумный диапазон, поэтому -70 выбрал нижней границей именно

Vlado:

что бы не прозевать момент когда вырубят

. Практические испытания покажут куда скорректировать эти границы.
Выложу все hexы/исходники тоже после полевых испытаний, те. не раньше весны (если будет положительный результат конечно…).
Сейчас надо дописать еще режим бинда приемника, а то пока приходится конфигурацию вливать по uart и в передатчик и приемник.

Vlado

полевых испытаний, те. не раньше весны (если будет положительный результат конечно…).

А весна это когда (это когда выборы)? А как мы подготовимся к встрече кода, нужно жеж железо подготовить😒
Я тут чьи-то уши прожужал по поводу propagation losses. Получается по грубым
прикидкам на 10 км -129.5dB а энергетика канала при front end 30dBm - 165dB
и антеннах по 8dBi остается в запасе 35dB вполне может хватить и на 100мвт и приличный SNR.

WiFi подобных систем на 2.4 и 5.8

А что ставим? Cisco?

alexeykozin

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

Syberian
alexeykozin:

какой чип следует выбрать? обязательно 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. Видео по сети тоже валяются.

alexeykozin

спасибо огромное за ликбез!
и за код и за выкладку по ттх чипов.

сразу возникла гипотеза- вопрос как к автору что если к примеру не весь экран держать в рам, а поделить на несколько зон,
и к примеру если брать за раскладку сабжевое осд - есть средняя зона в которой искусственный горизонт - его черточки можно высчитать и на лету в на верхнюю и нижнюю части для вывода текста затратить рам?

или держать в рам не весь экран а подготавливать процессу выводящему биты несколько строк налету?

Syberian

Собственно, так и сделано в мегапирате 😃 В центре панель 64х64 точки, индикатор крена, тангажа и указатель “домой”.
Сверху и снизу по 2 строки по 40 символов + одна статусная строка с мигающими символами всяких аварий, 5 символов.
Центральная панель держится целиком в памяти, а вот строки - это один массив в 160 байт, в котором только ASCII-коды символов. В строчном прерывании знакогенератор (программный) подставляет соответствующие символы из шрифта.
В принципе, можете повторить (или даже купить - $12) схему Е-ОСД, там кроме резисторов, пары кондеров, atmega88 и одного транзистора ничего нет. Кварц там на 24МГц: разогнали чип. Распространения переделка не получила, т.к. для получения ком-порта нужно паяться к ноге микрухи в корпусе 5х5мм 😃

У меня на ютубе есть несколько роликов с megapirate osd
www.youtube.com/user/syberian1980?feature=mhee

Если есть какие-то еще вопросы, пишите в личку, не будем тему Сергея засорять.