Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 08:25:38

Многократные попытки найти информацию( с исходниками и пояснениями ), о том как можно организовать приемник и передатчик пропорционального радиоуправления на мк (AVR) , (да еще и на одну комманду для наглядности) - не увенчались успехом.
Нашел готовые решения на несколько дискретных команд, но исходников там не было - а если и были, то на СИ (я только в ассемблере немного кумекаю)
Так же нашел готовый профессиональный проект самодельной аппаратуры радиоуправления на сайте http://forum.rcdesign.ru (но это уж слишком круто для моих знаний)
Я (думаю, что не только я) хочу научиться самостоятельно строить аппаратуру радиоуправления на микроконтроллерах, но знания почерпнуть не от куда... (или я плохо ищу или недогоняю че то...)
приемо передающая часть меня не интересует - есть готовые RX TX модули, - интересуют толко шифраторы - дешифраторы.
Несколько раз создавал темы на форуме - но в ответ все очень сухо
мол ищи UART или RC-232. или ссылки на очень старые книжки, в которых одно трололо..
начал писать свой интерфейс - для передатчика написал, а для приемника нет (времени не хватило)
узнал что в некоторых МК уже есть встроенные интерфесы, но в каких (AVR-ках) и как их использовать???????
кто бы научил? (жаль что в обучалке нет примера передачи данных... :( )

Re: Приемопередатчик на МК (Знание=Сила)

Сб авг 18, 2012 10:53:07

Я вот делал небольшой примерчик с UART в АВРстд на асме + проект для протеуса, используется одна прошивка для "ведущего" и для "ведомого", практически не важно кто из них ведущий, а кто ведомый. В тексте может быть немного воды, так как пробовал разные варианты и некоторые функции уже не используются.
Работа примера простая, при нажатии кнопки значение порта В отображается на семисегментнике
Вложения
USART_Master vs Slave.rar
(95.92 KiB) Скачиваний: 508

Re: Приемопередатчик на МК (Знание=Сила)

Сб авг 18, 2012 10:57:23

На приемной стороне ищите синхропаузу. Запускаете таймер. Когда приходит следующий канальный импульс, берете значение таймера, обнуляете, запускаете снова. Полученные значения таймера переносите в другие таймеры, которые занимаются формированием ШИМ для управления сервами.

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 12:15:31

GRAF писал(а):На приемной стороне ищите синхропаузу. Запускаете таймер. Когда приходит следующий канальный импульс, берете значение таймера, обнуляете, запускаете снова. Полученные значения таймера переносите в другие таймеры, которые занимаются формированием ШИМ для управления сервами.
:o это Вам все так просто...

zero648 писал(а):Я вот делал небольшой примерчик с UART в АВРстд на асме + проект для протеуса, используется одна прошивка для "ведущего" и для "ведомого", практически не важно кто из них ведущий, а кто ведомый. В тексте может быть немного воды, так как пробовал разные варианты и некоторые функции уже не используются.
Работа примера простая, при нажатии кнопки значение порта В отображается на семисегментнике

zero648, у Вас есть возможность скинуть исходник в *.txt ? просто у меня поломался жесткий диск на компе на котором стоит студия и протеус... :cry:

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 12:28:05

uwrtey писал(а):zero648, у Вас есть возможность скинуть исходник в *.txt ? просто у меня поломался жесткий диск на компе на котором стоит студия и протеус... :cry:

Так в чем проблема? Открывай файл *.asm блокнотом и всё.

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 13:18:07

точно..
а где можно посмотреть "что такое UART и с чем его едят" МК ?
как в обще с ним работать ?
и годится ли он для радиопередачи ?

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 13:32:01

uwrtey писал(а):точно..
а где можно посмотреть "что такое UART и с чем его едят" МК ?
как в обще с ним работать ?
и годится ли он для радиопередачи ?

А эти модули тогда для чего?
uwrtey писал(а):приемо передающая часть меня не интересует - есть готовые RX TX модули, - интересуют толко шифраторы - дешифраторы.

Посмотрите даташиты на эти модули, как передавать им данные и считывать с них, может для этого UART совсем не нужен?

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 14:06:09

я имел в виду помехозащишенность UARTa.
радиомодули тут не при чем

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 14:15:42

uwrtey писал(а)::o это Вам все так просто...

Ну так спрашивайте, для этого и есть форум. Кроме того, программа для передатчика у вас есть, значит и в алгоритме PPM разбираетесь.

точно..а где можно посмотреть "что такое UART и с чем его едят" МК ?

В даташите, если английский знаете. В интернете куча примеров работы с UART на AVR.
http://easyelectronics.ru/avr-uchebnyj- ... -uart.html
http://avrlab.com/node/438

я имел в виду помехозащишенность UARTa.
радиомодули тут не при чем

У вас до радиомодуля от МК будет кабель длинной пару метров?

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 14:17:20

Чет понять не могу в чем загвоздка? какая задача стоит?

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 14:21:54

Задача стоит найти готовую программу с комментариями каждой строки.

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 14:32:40

GRAF писал(а):У вас до радиомодуля от МК будет кабель длинной пару метров?

нет! я имею в виду сам принцип кодирования. защищен ли UART от помех или им можно пользоваться только при передаче по проводам ?
видимо защищен - раз мой вопрос на столько глуп...

GRAF писал(а):Ну так спрашивайте, для этого и есть форум. Кроме того, программа для передатчика у вас есть, значит и в алгоритме PPM разбираетесь.

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

сейчас хочу посмотреть принцип передачи пропорциональных данных по одному каналу... исползуя UART или еще что нибудь - что есть в мк...
так как мои познания в мк закончилисьна том , на чем закончилась обучалка Кота

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 14:43:10

Он ничего не кодирует. Передает ровно то, что вы туда записываете + старт и стоп биты.

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 15:54:01

GRAF, я видимо не правильно выразился - опустим этот момент с защитой данных.
пойду по вашим ссылкам почитаю.

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 16:00:18

интересный у вас вопрос.

если вас интересует как устроено пропорциональное управление радиоуправляемыми моделями (RC) - то нужно смотреть про сигнал PPM..

к сожалению, как не странно, в интернете мало что про него написано, но если поискать (не найдете - напишите мне :-)...

если же вы хотите придумать свою систему - то тут все зависит от ваших желаний и возможностей..

я в свое время писал кодер для пропорционального управления моделями, исходники на СИ можно взять http://vg.ucoz.ru/ (смотреть файлы) - проект называется VCoder, там же по этой прошивке есть небольшой форум (недавно сделал)

в принципе могу пояснить что и как работает, как считается.

есть расчет значений каналов пропорционального управления на ассемблере (это проект miniCoder)

есть наработки по дешифрации полученного сигнала с приемника...

в общем конкретизируйте что именно вас интересует..

вот буквально из топа яндекса http://www.jrpropo.ru/main/ppm_ili_pcm/

осцилограмма с временем
Изображение

каждый из передаваемых каналов это импульс размером от 1000 до 2000 мкс...
в RC моделях сервы отрабатывают изменение длительности управляющего сигнала не менее 3-4 мкс (у цифровых).. чаще даже до 5-7 мкс на шаг (у аналоговых)

код который генерит все это выглядит примерно так (это я тут помогал для ардуины писать)
длительности каналов находятся в массиве packet[], длительности от 0 до 1000, код ниже сам прибавит минимум в 1000 мкс
pause = 300 мкс
msec=20000 мкс

Код:
void emitPPM_negativ() {
int tmsec = msec;
double del;

for (int i = 0 ; i < channels; i++){

digitalWrite(PPM,LOW);
del = 1000.0+((double)packet[i])*4-pause; // пауза входит в общую длительность канала !!
delayMicroseconds(del);
digitalWrite(PPM,HIGH);
delayMicroseconds(pause);
tmsec -= del+pause;
}
digitalWrite(PPM,LOW);
delayMicroseconds(tmsec-pause);
digitalWrite(PPM,HIGH);
delayMicroseconds(pause);
}


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

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 16:32:52

Миль Г.
Модели с дистанционным управлением:
Пер. с нем. -Л.: Судостроение, 1984.
https://sunduk.radiokot.ru/loadfile/?load_id=1287546973
там правда только принцип и макеты на "рассыпухе" (+премники/передатчики радиоканала и их наладка) , под МК прийдется немножко подумать :beer:

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 16:39:08

BOB51 писал(а):
Миль Г.
Модели с дистанционным управлением:
Пер. с нем. -Л.: Судостроение, 1984.

там правда только принцип и макеты на "рассыпухе" (+премники/передатчики радиоканала и их наладка) , под МК прийдется немножко подумать :beer:


нее, это не то.. если там и будет многоканальная пропорционалка - то что нить двух канальное на одновибраторах...
максимум это взять от туда описание сигнала ppm, но имхо это слишком сложный путь получения этой информации :-)

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 17:07:10

http://vg.ucoz.ru/ не вижу ссылки

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 17:26:43

гм..
там много
например http://vg.ucoz.ru/load/proekt_minicoder ... r/5-1-0-16
http://vg.ucoz.ru/load/proekt_vcoder/is ... 2/2-1-0-14

Re: Пропорциональное управление на МК (Знание=Сила)

Сб авг 18, 2012 21:04:08

Попытаюсь конкретизировать вопрос.
Хочу увидеть код с пояснениями (желательно на ассемблере) для МК (AVR) для приемника и передатчика,
для одного пропорционального канала радиопередачи с использованием встроенного в мк UART (или еще чего, что упрощает жизнь программисту)
(мк желательно тинька 2313 - с ней уже имел опыт общения)
НО так как, мне нужно в первую очередь понять принцип использования UART (или чего еще), то в первую очередь мне нужно научиться передавать 1 дискретную команду, используя UART и естественно в первую очередь хочется посмотреть коды приемника и передатчика с одной дискретной командой.

ЗЫ вот в этой ветке пытался что то сделать когда то viewtopic.php?f=20&t=51108&hilit=%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4
а вот тут (download/file.php?id=90672) самодельный код передатчика на 20 дискретных - но это бред ИМХМО
Ответить