vasia
Управление через один канал несколькими нагрузками (да и вообще самолетом)

Сама идея и код стырен hobby.msdatabase.ru/project-updates/…/modesw, :
передатчик инплантируется Arduino , один из выходов которой , генерирующий ШИМ (0-255) подключается вместо переменного резистора (крутилки) на передатчике, получается этакий импульсный преобразователь . Чем “выше” ШИМ тем больше напряжение подаваемое на вход АЦП передатчика. К Arduino подключаются в свою очередь, кнопки, переключатели, переменные резисторы значения которых и определяют частоту ШИМ на выходе платы.
На принимающей стороне Ardu подключается к соответствующему каналу приемника, задача платы определить ширину входящего импулса и в зависимости от его значения подключить соответсвующую нагрузку, а использовани функции myservo ,
позволяет управлять сервоприводами.
Исходный код, в части измерения длины импульсов, я до конца так и не постиг.
Но переделать автоматы преключения if () {} под свои хотелки получилось.
Кроме этого хотелось получить на принимающей стороне индикацию режимов работы посредством мигающих светодиодов. Чтобы не подвешивать контроллер вместо delay() были использованы прерывания по совпадению на таймере Т2. Код был как обычно стырен arduino.ru/forum/…/preryvaniya-po-taimeru?page=1
Целью проекта является полной переход на управление моделью по одному каналу, однако для начала я перевел на один канал управление полетными режимами автопилота FY -41dev.rcopen.com/forum/f90/topic316066
На Тх скетч:
#define AnalogOut 3// PWM out, с этого пина снимаем ШИМ 0- //255 т.е напряжение
#define AP_RC_ABM_BUTTON_PIN 7
#define AP_LRP_BUTTON_PIN 6
#define AP_NAV_BUTTON_PIN 5
#define LED_PIN_1 10 //red
#define LED_PIN_2 9 //Blye
#define LED_PIN_3 13 // Green
int SelBtn = 1; // default
int BtnLevels[5]; //обьявляем массив
boolean RCABM;
boolean LRP;
boolean NAV;
volatile int cntr;
volatile int cntr2;
int LEDBLINK;
void setup()
{
cntr=0;
TIMSK2 &= ~(1<<OCIE2A); // запрещение прерывания по совпадению таймера/счетчика Т2
TCCR2B = (1<<CS22)|(1<<CS21)|(0<<CS20); // прескалер на 256
TCCR2A &= ~((1<<WGM22) | (1<<WGM20)); // Режим работы таймера/счетчика устанавливаю в
TCCR2B |= (1<<WGM22); // Режим работы таймера/счетчика
ASSR &= ~(1<<AS2); // Выбор источника синхронизации таймера если
// AS2=0 от системного генератора
OCR2A = 250; // срабатывание таймера 16000000/256/250=250 раз в секунду
TIMSK2 |= (1<<OCIE2A); //Разрешение прерывания по совпадению.
// Serial.begin(9600);
BtnLevels[1] = 0; //RC 1000
BtnLevels[2] = 40; // ABC 1250
BtnLevels[3] = 80;// NAV 1500
BtnLevels[4] = 255;// LRP 1750

kx-201

Есть настройки для нее, Вова такие ставит:

Код:
Exposure: AWB Sharpness ++ Exposure: Lower 1/3 (this will help fix the dark ground problem) Meter mode: Foreground Dynamic range bias ++ (this will help fix the dark ground problem) Dynamic range limit +++++
Вот все хорошо, но “+” это сколько? Может сообразит кто… 😃

го-про

andriver - расскажи про подлючение камеры (те где разъем брал, как усб воткнул и вообще фотку бы установи) и какой там майджик нужно делать каждый раз что бы лайф видео шло?
Сложного ничего нет. Главное найти разьемчик мини джек 2.5 мм на четыре контакта буквой Г. Что-то типа этого.

Второй шнурочек я взял обычный мини ЮСБ. Сразу где кончаеться сам разьем я снял обплетку с него и обрезал сигнальных два провода. Оставил только питание ЮСБ +5 вольт. Обычно это красный и черный. Вот их я подключил к беку приемника.

Мини джек соответсвеноо провода идут на телеметрию или на видео передатчик сразу.

Включение видео выхода можно делать двумя способами:

Первый На выключенной камере вынимаем карту памяти.
Включаем камеру, вставляем видео кабель.
Через 3-5сек вставляем шнурочек ЮСБ с питанием +5в.
Через 3-5сек вставляем карту памяти.

Второй На включенной камере вставляем шнурочек видео.
И на раз два три вставляем ЮСБ шнурок питания.

This site will not work without javascript!
This site will not work if cookies are completely disabled.
Site is offline