Специальные цены   новые товары
Закрытая тема
Показано с 1 по 30 из 30

Самодельная умная подсветка на квадрик

Тема раздела Коптеры. Комплектующие, сборка, настройка. в категории Квадрокоптеры и мультироторы; Надоела статичная подсветка на квадрике. Решил немного оживить ее. Появилась идея сделать подсветку, зависимую от положения стиков пульта. На форуме ...

  1. #1

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5

    Самодельная умная подсветка на квадрик

    Надоела статичная подсветка на квадрике. Решил немного оживить ее. Появилась идея сделать подсветку, зависимую от положения стиков пульта. На форуме уже решения имеются, но хотел бы описать свой вариант и представить его с максимально понятным описанием.
    На лучи приклеены светодиодные полоски по 2шт на луч. Передние – белые, задние – красные. Делал аналогию с автомобилем, чтобы проще ориентироваться.
    Работа подсветки должна осуществляться следующим образом: при исходном положении стиков (газ на минимуме, остальные в центре) подсветка не горит, при повышении газа подсветка загорается и постоянно подсвечиваются все лучи. Далее при отклонении стика рыскания сделать имитацию кругового вращения влево и вправо соответственно. При отклонении стиков крена и тангажа мигать подсветкой лучей в соответствующем направлении, оставшиеся лучи должны подсвечиваться постоянно. При отклонении стиков по диагоналям – мигать только одним. При возврате стиков (кроме газа) в центральные положения – прекращать мигания и включить все. Необходимо учесть триммеры стиков и возможные реверсы газа и тангажа.

    Набросал картинку поведения:



    Далее собираем схему. Понадобится AVR-контроллер, способный работать на 16МГц, 4 NPN транзистора (например BC846B ), светодиодные ленты на 12Вольт, кварцевый резонатор 16МГц, два конденсатора 22пф, 5 резисторов 1кОм, кнопка без фиксатора или перемычка. Перемычка служит для включения режима настройки границ срабатывания стиков (с учетом триммеров) и настройки реверса газа и тангажа (делалось под мою аппаратуру Turnigy 9x и полетный контроллер КК; в других конфигурациях возможно придется переписывать код). Под использование других напряжений и светодиодных лент необходимо сделать выбор других транзисторов.

    Электрическая принципиальная схема:



    Использовал контроллер ATMega8A из более дешевых и доступных. Для прошивки можно использовать как и «5и контактный» программатор, так и любой другой. Я использовал USBasp, т.к. он поддерживается средой разработки Arduino. На плате сделал разъем внутрисхемного программирования. Для начала необходимо выставить фьюзы на контроллере для использования внешнего кварца на 16МГц. Выставлял программой «eXtreme Burner – AVR». Фьюзы Low EF, High C9. Конденсаторы у кварца лучше использовать 22пф, но также должно работать и от 18 до 30пф. При подключении к приемнику коптера сделал параллельные соединения проводников, которые подключил к своему устройству. Запитал устройство (+5В) от свободных контактов приемника, светодиодные ленты(+11,1) от платы разводки питания с аккумулятора на регуляторы двигателей.

    Устройство нуждается в настройке. Рекомендую производить со СНЯТЫМИ пропеллерами во избежание чего-либо ужасного, т.к. может сработать арминг во время движения стиков. Лучше даже будет откинуть проводки, идущие на полетный контроллер или обесточить его.
    Порядок настройки:
    1) Установить перемычку на устройство при отключенном питании.
    2) Включить пульт, приемник и устройство.
    3) Передние светодиоды моргнут длинным и коротким (_.) и затем все будут быстро моргать короткими (………) в течение 15 секунд.
    4) Во время моргания надо по два раза отвести стики в крайние угловые положения. Я делал вращательными движениями против часовой стрелки.
    5) При завершении моргания светодиоды погаснут и задние моргнут длинным и коротким (_.), показывая конец установки границ и запись в EEPROM. После этого перемычку снимаем.
    6) Далее отведено 5 секунд для установки реверса газа, в течение которых, по необходимости установить перемычку. Если перемычка не установлена, то реверса не будет, соответственно включится установка реверса, если перемычка установлена. По истечении 5и секунд мигнут левые передние и задние светодиоды. В этот момент опрашивается перемычка и производится запись в EEPROM. После этого перемычку снимаем.
    7) Далее отведено 5 секунд для установки реверса тангажа, в течение которых, по необходимости установить перемычку. Если перемычка не установлена, то реверса не будет, соответственно включится установка реверса, если перемычка установлена. По истечении 5и секунд мигнут правые передние и задние светодиоды. В этот момент опрашивается перемычка и производится запись в EEPROM. После этого перемычку снимаем.
    8) Отключаем устройство и включаем со снятой перемычкой.
    9) Далее необходимо проверить работу. Начинаем повышать газ и подсветка должна загореться. Если загорается при нижнем положении стика и гаснет при верхнем, то необходимо провести реверс настройки газа. Проверяем реакцию на отклонение рыскания. Подсветка должна мигать кругом в сторону отклонения. Проверяем отклонение крена и тангажа отдельно, а также вместе по диагоналям. Если при отклонении стика тангажа вверх, мигают задние светодиоды и отклонении вниз – передние, то необходимо провести реверс настройки тангажа. Для реверса необходимо опять выполнить настройку с начала(пункт 1).

    После настройки, если снимались провода или питание с полетного контроллера, вернуть все подключения. Если после настройки устройства проводилось триммирование стиков, то настройку следует сделать повторно.

    Hex файл во вложении.

    Плюсы:
    Динамичное оформление коптера.
    Настройка реверсов.

    Минусы:
    После триммирования необходимо заново выполнить настройку.

    Испытаний в полевых условиях пока не было. Будут в ближайшие дни. Может еще какие плюсы/минусы появятся. Видео немного позже.
    Если кому интересна идея – пробуем и делимся отзывами!
    Вложения

  2.  
  3. #2

    Регистрация
    23.06.2011
    Адрес
    Мурманск
    Возраст
    47
    Сообщений
    1,715
    Записей в дневнике
    4
    Если использовать в качестве подсветки, то нафик надо это мигание?
    Если создания эффектов для публики, тогда уж добавьте регистров и сделайте полноценную подсветку.
    Например при набирании высоты огоньки сбегаются создавая эффект собирания света в центр, опускаясь вниз наоборот огоньки разбегаются от центра.
    Так же при маневрировании создавать эффекты отталкивания светом.
    Представляю потом заголовки газет и новости об НЛО в вашем городе
    У нас тут на днях (видите ли у нас полярная ночь), запускали японские светильники, так все стояли с разинутыми ртами. Что будет при подсветке коптера, я промолчу

  4. #3

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Летать только учусь и визуализация думаю будет полезна. Пока просто лучи горели - ориентировался перед/зад. Теперь думаю еще и подсказки от стиков получить.
    Ну и схемотехнику затронул, упростив кому-то поиски.
    Последний раз редактировалось raefa; 30.11.2012 в 17:41. Причина: вставка

  5. #4

    Регистрация
    09.03.2010
    Адрес
    Киев - Мальта
    Возраст
    38
    Сообщений
    7,620
    Записей в дневнике
    5
    Цитата Сообщение от raefa Посмотреть сообщение
    Летать только учусь и визуализация думаю будет полезна. Пока просто лучи горели - ориентировался перед/зад. Теперь думаю еще и подсказки от стиков получить.
    Ну и схемотехнику затронул, упростив кому-то поиски.
    Чем меньше морочатся с такой подсветкой, тем быстрее научитесь летать. Мигания вредны, ибо в момент потухания лампочки можно потерять ориентацию. Лучше непрерывное свечение. Стики учитесь руками чувствовать, настройте комфортное сопротивление пружинкой.
    з.ы. Хотя за реализацию - молодец.
    з.з.ы. И пока не научитесь делать восьмерки, то далеко и высоко не отлетайте от себя.

  6.  
  7. #5

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Мигает быстро. 50мс вкл / 50мс выкл. Спасибо, надо учиться. Пока в зале тренируюсь. На улице пока не ахти с КК.

  8. #6

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    30
    Сообщений
    1,677
    Записей в дневнике
    6
    Цитата Сообщение от cylllka Посмотреть сообщение
    Мигания вредны, ибо в момент потухания лампочки можно потерять ориентацию. Лучше непрерывное свечение.
    не сказал бы... вначале пробовал статичную, потом подключил через виевский ледфлешер - большая разница, коптер намного более заметен что днем что ночью

    а за идею - молодец... очень даже интересное решение)))

  9. #7

    Регистрация
    09.03.2010
    Адрес
    Киев - Мальта
    Возраст
    38
    Сообщений
    7,620
    Записей в дневнике
    5
    Цитата Сообщение от mataor Посмотреть сообщение
    не сказал бы... вначале пробовал статичную, потом подключил через виевский ледфлешер - большая разница, коптер намного более заметен что днем что ночью
    Заметность и читаемость направления разные вещи. С постоянным свечением я в полной темноте могу 3Д покрутить и пожечь, с миганием это черевато + ночью глаза напрягает мерцание

  10.  
  11. #8

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Цитата Сообщение от mataor Посмотреть сообщение
    потом подключил через виевский ледфлешер
    Сергей, с этой платой не знаком. И что он из себя представляет? Как ведет себя подсветка? Еще лучше ссылку.

    Цитата Сообщение от cylllka Посмотреть сообщение
    Заметность и читаемость направления разные вещи
    Александр, "читаемостью" что имеется ввиду? Просто горят? Или ты бы предложил какой вариант читаемости с миганием?

    Цитата Сообщение от mataor Посмотреть сообщение
    потом подключил через виевский ледфлешер
    Сергей, с этой платой не знаком. И что он из себя представляет? Как ведет себя подсветка? Еще лучше ссылку.

    Цитата Сообщение от cylllka Посмотреть сообщение
    Заметность и читаемость направления разные вещи
    Александр, "читаемостью" что имеется ввиду? Просто горят? Или ты бы предложил какой вариант читаемости с миганием?

    Попробовал полетать. Мигание при рыскании не очень понравилось. Сделал, чтобы мигали все одинаково 10мс вкл/10мс выкл. По крену и тангажу очень даже понравилось. Во вложении добавил версию без вращения по рысканию.

    Завтра в плане полетать в зале. Видео выложу.
    Вложения

  12. #9

    Регистрация
    09.03.2010
    Адрес
    Киев - Мальта
    Возраст
    38
    Сообщений
    7,620
    Записей в дневнике
    5
    Цитата Сообщение от raefa Посмотреть сообщение
    Александр, "читаемостью" что имеется ввиду? Просто горят? Или ты бы предложил какой вариант читаемости с миганием?
    Читаемость - понимание положения в пространстве. Для себя наилучшым вариантом считаю:
    На задней части задних лучей красные светодиоды (когда смотрим сзади, не видим белых)
    На передней части передних лучей белые светодиоды (когда смотрим спереди, не видим красных)
    Можно еще боковые сделать, обхожусь без них. Комфортно летается в любое время суток



    А тут сразу 4 квадрика в ночном небе

  13. #10

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Александр, на первом видео какой контроллер?

  14. #11

    Регистрация
    09.03.2010
    Адрес
    Киев - Мальта
    Возраст
    38
    Сообщений
    7,620
    Записей в дневнике
    5
    Цитата Сообщение от raefa Посмотреть сообщение
    Александр, на первом видео какой контроллер?
    Кук родимый. Там у всех 4х КУКи. На них летать учились.

  15. #12

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    А то смотрю уж очень что-то знакомое)))

  16. #13

    Регистрация
    07.07.2011
    Адрес
    Нарткала
    Возраст
    29
    Сообщений
    220
    Прочитав первый пост чуть не подскачил травить плату а тут вы всю охоту отбили. Автор молоток! Соглашусь на коптере эти маргания всякие будут не кстати. Но всеже займу завтра себя этой платкой, как раз регуль паленый валяется без дела.

  17. #14

    Регистрация
    09.03.2010
    Адрес
    Киев - Мальта
    Возраст
    38
    Сообщений
    7,620
    Записей в дневнике
    5
    Цитата Сообщение от Zam888 Посмотреть сообщение
    Автор молоток!
    А нито и не спорит. Просто отписали мнения исходя из опыта. Но каждый для себя решает как летать

  18. #15

    Регистрация
    07.01.2010
    Адрес
    Камышлов, Свердловской обл
    Возраст
    41
    Сообщений
    3,768
    Для мигания купил на концы лучей 4 стробоскопа (2 красных и 2 зеленых)
    тут - http://www.ekits.ru/index.php?productID=2666
    Всё поставить не могу
    Но товарищ поставил уже и время вспышех у всех 4 разное чуть чуть и разбег получается...

  19. #16

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    У меня снизу тоже стоят на вид 2 одинаковых стробоскопа. Период моргания разный. Сначала хотел сделать отключаемую с аппы подсветку и спаял простенький RC-свитч (http://www.sentex.net/~mec1995/gadgets/rc-sw.htm), но то ли компоненты плыли по температуре, то ли от термоусадки что-то было не так, то ли конденсатор был древним, и из-за этого не прижилась у меня эта штука (после пропайки, и шевеления компонентов и включения сразу все работало, но стоит ночь не использовать, так больше все это дело не включается).

    НО! Стробоскопы, включенные через этот RC-свитч - мигали в такт.

    А мне все-таки больше нравится, когда есть разница, т.к. стоят не на лучах.

    Кстати, кто что скажет про влияние данного устройства на работу полетного контроллера? Думаю ничего страшного не должно быть, но есть сомнения.

  20. #17

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5

  21. #18

    Регистрация
    09.10.2010
    Адрес
    Протвино, Серпухов
    Возраст
    44
    Сообщений
    4,827
    Записей в дневнике
    25
    Ставил на Гексу вот такую фиговину http://www.hobbyking.com/hobbyking/s...dProduct=23792
    вместо RGB ленты припаял обычные одноцветные. Получилось как бы 3 канала. На гексе наклеил их на противоположные лучи. Эффекты переключаются с аппы, от строба до бегущих огней.

  22. #19

    Регистрация
    01.01.2012
    Адрес
    Миасс
    Возраст
    41
    Сообщений
    1,677
    Идея и реализация мне понравились. Пожалуйста, как будут видео полётов- покажите и сюда тоже.

  23. #20

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Все можно посмотреть тут: http://www.youtube.com/user/MrRaefa/...ow=grid&view=0

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

  24. #21

    Регистрация
    01.01.2012
    Адрес
    Миасс
    Возраст
    41
    Сообщений
    1,677
    Очень занятно вышло! А частота моргания же зависит от величины отклонения стика? то есть - чем больше отклонение тем больше интервалы?

  25. #22

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Спасибо. Зависимости нет. Специально не делал, т.к. с малой разницей особо заметно не будет, а если большую разницу, то луч будет почти гаснуть, а тут уже ИМХО непонятки читаемости могут быть.

  26. #23

    Регистрация
    09.10.2010
    Адрес
    Протвино, Серпухов
    Возраст
    44
    Сообщений
    4,827
    Записей в дневнике
    25
    лучше сделать подсветку с контролем напряжения акка. Как было на Руссокоптере. Падает напряжение до определенного значения, подсветка начинает моргать.

  27. #24

    Регистрация
    29.08.2012
    Адрес
    Калужская область
    Возраст
    40
    Сообщений
    596
    Записей в дневнике
    6
    А исходный код глянуть то можно, или тайна за печатями? )
    p/s себе решил такой огород не делать ... смысла и информативности для меня в этой ёлке маловато, разве что для зевак хорошо ) ...
    p/p/s но включение по газу и просто мигание (затухание) перед-зад сделать конечно можно будет на гексу.

  28. #25

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Вроде то ничего секретного нет.
    Если кто будет юзать код, то прошу все дополнения/изменения/предложения/улучшения/новые_идеи тоже выкладывать сюда.

    Код:
    #include <EEPROM.h> // подключить библиотеку
    int a=100, b=100, t=0, y=0, r=0, p=0; // a= время включенного, b = время выключенного, t - throttle, y - yaw, r - roll, p - pitch
    int jumper, writed=0, readed=0, temp, i; //джампер, записано в EEPROM, временная
    int Tmin=20000, Tmax=0, Ymin=20000, Ymax=0, Rmin=20000, Rmax=0, Pmin=20000, Pmax=0; //Максимальные значения сигнала
    int Tmi=0, Tma=0, Ymi=0, Yma=0, Rmi=0, Rma=0, Pmi=0, Pma=0; //Границы срабатывания
    int Tinv=0,Pinv=0; //инвертирование Throttle и Pitch
    //Tinv = 0 - газ не инвертирован; 1 - газ инвертирован
    //Tinv = 0 - тангаж не инвертирован; 1 - тангаж инвертирован
    //читается состояние перемычки после записи концов стиков
    
    ///////////////////////////////////////////////////////////////////////////
    // подпрограммы записи и чтения Integer (2 байта) - указывать четные байты
    ///////////////////////////////////////////////////////////////////////////
    void EW(int p_address, int p_value)
            {
            byte lowByte = ((p_value >> 0) & 0xFF);
            byte highByte = ((p_value >> 8) & 0xFF);
            EEPROM.write(p_address, lowByte);
            EEPROM.write(p_address + 1, highByte);
            }
    unsigned int ER(int p_address)
            {
            byte lowByte = EEPROM.read(p_address);
            byte highByte = EEPROM.read(p_address + 1);
            return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00);
            }
    ///////////////////////////////////////////////////////////////////////////
    void setup()
    {
      delay(2000);
         digitalWrite(4, 1); digitalWrite(5, 1);
         delay(700);
         digitalWrite(4, 0); digitalWrite(5, 0); 
         delay(100);
         digitalWrite(4, 1); digitalWrite(5, 1);
         delay(100);
         digitalWrite(4, 0); digitalWrite(5, 0); 
         delay(100); 
      pinMode(0, INPUT);    // вход throttle
      pinMode(1, INPUT);    // вход yaw
      pinMode(2, INPUT);    // вход roll
      pinMode(3, INPUT);    // вход pitch
      pinMode(4, OUTPUT);    // выход на подсветку FL
      pinMode(5, OUTPUT);    // выход на подсветку FR
      pinMode(6, OUTPUT);    // выход на подсветку RL
      pinMode(7, OUTPUT);    // выход на подсветку RR
      pinMode(8, INPUT);  
      jumper=0;
      
    jumper=digitalRead(8);
    if (jumper==1) //если джампер установлен, то выполнять калибровку
    {
    for (int i=0; i <= 150; i++)//150 циклов для чтения отклонения стиков (15 секунд)
      {
      digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1);
      delay(10);
      t = pulseIn(0,HIGH,20000);
      y = pulseIn(1,HIGH,20000);
      r = pulseIn(2,HIGH,20000);
      p = pulseIn(3,HIGH,20000); 
      if (t<Tmin) {Tmin=t;} //поиск минимальных/максимальных
      if (t>Tmax) {Tmax=t;}
      if (y<Ymin) {Ymin=y;}
      if (y>Ymax) {Ymax=y;}
      if (r<Rmin) {Rmin=r;}
      if (r>Rmax) {Rmax=r;}
      if (p<Pmin) {Pmin=p;}
      if (p>Pmax) {Pmax=p;}
      digitalWrite(4, 0); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 0);
      delay(10);
      }
      if (Tmin!=20000 && Tmax!=0 && Ymin!=20000 && Ymax!=0 && Rmin!=20000 && Rmax!=0 && Pmin!=20000 && Pmax!=0)
      {
      Tmi=Tmin+50; //граница начала срабатывания по газу
      Tma=Tmax-50;
      Ymi=(Ymin+Ymax)/2-40; Yma=(Ymin+Ymax)/2+40;//границы начал срабатываний
      Rmi=(Rmin+Rmax)/2-40; Rma=(Rmin+Rmax)/2+40;
      Pmi=(Pmin+Pmax)/2-40; Pma=(Pmin+Pmax)/2+40;
      if (writed==0)//если не записано, то писать
        {
          EW(0,Tmi);  delay(100); EW(2,Tma);  delay(100);
          EW(4,Ymi);  delay(100); EW(6,Yma);  delay(100);
          EW(8,Rmi);  delay(100); EW(10,Rma); delay(100);
          EW(12,Pmi); delay(100); EW(14,Pma); delay(100);
          EW(16,Tinv);delay(100); EW(18,Pinv);delay(100);
    //запись минимума максимума для проверки      
          EW(20,Tmin); delay(100); EW(22,Tmax); delay(100);
          EW(24,Ymin); delay(100); EW(26,Ymax); delay(100);
          EW(28,Rmin); delay(100); EW(30,Rmax); delay(100);
          EW(32,Pmin); delay(100); EW(34,Pmax); delay(100);
          EW(36,Tinv); delay(100); EW(38,Pinv); delay(100);     
          writed=1;
        }//конец записи
      if (writed==1)//если записано, то мигнуть длинный и короткий
       {
         digitalWrite(6, 1); digitalWrite(7, 1);
         delay(700);
         digitalWrite(6, 0); digitalWrite(7, 0); 
         delay(100);
         digitalWrite(6, 1); digitalWrite(7, 1);
         delay(100);
         digitalWrite(6, 0); digitalWrite(7, 0); 
         delay(100);
         writed=2;
         jumper=0;
        } //конец мигания подтверждения конца
        
        for (i=0; i<=5000; i++)
        {
          Tinv=digitalRead(8); //проверка и запись состояния джампера инвертора газа
          delay(1);
        }
        EW(16,Tinv);delay(100);
         digitalWrite(4, 1); digitalWrite(6, 1);
         delay(700);
         digitalWrite(4, 0); digitalWrite(6, 0); 
         delay(100);
         digitalWrite(4, 1); digitalWrite(6, 1);
         delay(100);
         digitalWrite(4, 0); digitalWrite(6, 0); 
         delay(100);    
         
        for (i=0; i<=5000; i++)
        {
          Pinv=digitalRead(8); //проверка и запись состояния джампера инвертора тангажа
          delay(1);
        }
        EW(18,Pinv);delay(100);
         digitalWrite(5, 1); digitalWrite(7, 1);
         delay(700);
         digitalWrite(5, 0); digitalWrite(7, 0); 
         delay(100);
         digitalWrite(5, 1); digitalWrite(7, 1);
         delay(100);
         digitalWrite(5, 0); digitalWrite(7, 0); 
         delay(100);    
      } // конец сравнения всех  
    }  
      
    
    }
    void loop () 
    {
    /////////////////////////////////////////////////////////////////////////////////////////
    if (jumper==0)//если джампер снят, то выполнять программу
    {
    //считать с EEPROM
    if (readed==0)//если не записано, то писать
      {
      Tmi=ER(0);   Tma=ER(2);
      Ymi=ER(4);   Yma=ER(6);
      Rmi=ER(8);   Rma=ER(10);
      Pmi=ER(12);  Pma=ER(14);
      Tinv=ER(16); Pinv=ER(18);  
      readed=1;
      }
    else if (readed==1)
    {
    //читать стики  
    t = pulseIn(0,HIGH,20000);
    y = pulseIn(1,HIGH,20000);
    r = pulseIn(2,HIGH,20000);
    p = pulseIn(3,HIGH,20000);
    if ((t<Tmi && Tinv==0) || (t>Tma && Tinv==1))    //Если газ низкий и нет инверсии, то выключить все (реверс)
      {
        digitalWrite(4, 0);
        digitalWrite(5, 0);
        digitalWrite(6, 0);
        digitalWrite(7, 0);
      }
      else 
      if ((t>=Tmi && Tinv==0) || (t<=Tma && Tinv==1))  // При увеличении газа включить все 
        {
          digitalWrite(4, 1);
          digitalWrite(5, 1);
          digitalWrite(6, 1);
          digitalWrite(7, 1);
          a=7, b=7;
          if (y<Ymi)    // YAW При развороте влево (ПРОВЕРИТЬ), иначе вправо
            {
            digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1);
            delay(a);
            digitalWrite(4, 0); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 0);
            delay(b);        
            }
            else 
            if (y>Yma)
              {
            digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1);
            delay(a);
            digitalWrite(4, 0); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 0);
            delay(b);  
              }
              else
              {
          a=20, b=20;
              digitalWrite(4, 1);
          digitalWrite(5, 1);
          digitalWrite(6, 1);
          digitalWrite(7, 1);
            if (r<Rmi && (p>Pmi && p<Pma))    // ROLL При наклоне влево мигнуть, иначе вправо мигнуть (ПРОВЕРИТЬ)
          {
                digitalWrite(4, 0);
            digitalWrite(5, 1);
            digitalWrite(6, 0);
            digitalWrite(7, 1);
            digitalWrite(4, 1); digitalWrite(6, 1); delay(a); 
            digitalWrite(4, 0); digitalWrite(6, 0); delay(a); 
          }
          else if (r>Rma && (p>Pmi && p<Pma))
          {
              digitalWrite(4, 1);
              digitalWrite(5, 0);
              digitalWrite(6, 1);
              digitalWrite(7, 0);
              digitalWrite(5, 1); digitalWrite(7, 1); delay(a); 
              digitalWrite(5, 0); digitalWrite(7, 0); delay(a); 
          }
            if (((p<Pmi && Pinv==1) && (r>Rmi && r<Rma)) || ((p>Pma && Pinv==0) && (r>Rmi && r<Rma)))    // PITCH При наклоне назад мигнуть, иначе вперед мигнуть (ПРОВЕРИТЬ)
          {
            digitalWrite(4, 0);
            digitalWrite(5, 0);
            digitalWrite(6, 1);
            digitalWrite(7, 1);
            digitalWrite(4, 1); digitalWrite(5, 1); delay(a); 
            digitalWrite(4, 0); digitalWrite(5, 0); delay(a); 
          }
          else if (((p>Pma && Pinv==1) && (r>Rmi && r<Rma)) || ((p<Pmi && Pinv==0) && (r>Rmi && r<Rma)))
          {
              digitalWrite(4, 1);
              digitalWrite(5, 1);
              digitalWrite(6, 0);
              digitalWrite(7, 0);
              digitalWrite(6, 1); digitalWrite(7, 1); delay(a); 
              digitalWrite(6, 0); digitalWrite(7, 0); delay(a); 
          }
          if ((r<Rmi && (p<Pmi && Pinv==0)) || (r<Rmi && (p>Pma && Pinv==1))) //диагональ1, < - влево назад, > вправо вперед
            {
              digitalWrite(4, 1);
          digitalWrite(5, 1);
          digitalWrite(6, 0);
          digitalWrite(7, 1);
          digitalWrite(6, 1); delay(a);
          digitalWrite(6, 0); delay(a);
            }
            else if ((r>Rma && (p>Pma && Pinv==0)) || (r>Rma && (p<Pmi && Pinv==1)))
            {
              digitalWrite(4, 1);
          digitalWrite(5, 0);
          digitalWrite(6, 1);
          digitalWrite(7, 1);
          digitalWrite(5, 1); delay(a);
          digitalWrite(5, 0); delay(a);
            }
          if ((r<Rmi && (p>Pma && Pinv==0)) || (r<Rmi && (p<Pmi && Pinv==1)))//диагональ2, < - влево вперед, > вправо назад
            {
              digitalWrite(4, 0);
          digitalWrite(5, 1);
          digitalWrite(6, 1);
          digitalWrite(7, 1);
          digitalWrite(4, 1); delay(a);
          digitalWrite(4, 0); delay(a);          
            }
            else if ((r>Rma && (p<Pmi && Pinv==0)) || (r>Rma && (p>Pma && Pinv==1)))
            {
              digitalWrite(4, 1);
          digitalWrite(5, 1);
          digitalWrite(6, 1);
          digitalWrite(7, 0);
          digitalWrite(7, 1); delay(a);
          digitalWrite(7, 0); delay(a);              
            }
          } //YAW end
        } //throttle end
      } //readed end
    } //jumper end
    }

  29. #26

    Регистрация
    30.04.2006
    Адрес
    Ленинградская область
    Возраст
    46
    Сообщений
    534
    Записей в дневнике
    6
    Цитата Сообщение от shura2000 Посмотреть сообщение
    лучше сделать подсветку с контролем напряжения акка. Как было на Руссокоптере. Падает напряжение до определенного значения, подсветка начинает моргать.
    и на платке подсветки повесить 3 джампера - типа на 2 банки, на три и на четыре, и три режима работы подсветки - типа все нормально - просто светится, первый порог - редкие погасания подсветки и типа " бегом на посадку!" частые моргания

  30. #27

    Регистрация
    24.09.2012
    Адрес
    Жигулевск
    Возраст
    32
    Сообщений
    1,137
    Записей в дневнике
    5
    Можно и так. Надо только добраться. Пока куча других проектов в процессе.

  31. #28

    Регистрация
    01.01.2012
    Адрес
    Миасс
    Возраст
    41
    Сообщений
    1,677
    Цитата Сообщение от druksel Посмотреть сообщение
    редкие погасания подсветки и типа " бегом на посадку!"
    У назы контроль напряжения как-то так же показывает. Правда одним светодиодом.

  32. #29

    Регистрация
    09.10.2010
    Адрес
    Протвино, Серпухов
    Возраст
    44
    Сообщений
    4,827
    Записей в дневнике
    25
    У Назы почти все в конце концов отключают контроль напряжения, и полагаются на внешние пищалки и тп.

  33. #30

    Регистрация
    01.01.2012
    Адрес
    Миасс
    Возраст
    41
    Сообщений
    1,677
    Цитата Сообщение от shura2000 Посмотреть сообщение
    У Назы почти все в конце концов отключают
    Да, солидарен.Я тоже отключил. Потому что они чтото с ним перемудрили. Почему-то глупая пищалка на 3.3 В на банку эффективнее. Что мешало сделать такое решение внутри назы?
    Я , собственно , по теме подсветки, скажу : сама идея о том, что подсветка может показывать больше, чем просто зад-перед коптера- очень хороша. Даже моргание при падении напруги на батарее - очень было бы полезно.

Закрытая тема

Похожие темы

  1. Подсветка LCD в аппаратуре Turnigy 9x
    от MrHot в разделе Самодельная электроника, компьютерные программы
    Ответов: 63
    Последнее сообщение: 07.01.2013, 16:32
  2. Продам раму для квадрика
    от carbik в разделе Барахолка. Квадрокоптеры и другие многороторные системы
    Ответов: 3
    Последнее сообщение: 20.10.2012, 04:06
  3. Продам продам для квадрика пропеллеров кучу.
    от omegapraim в разделе Барахолка. Квадрокоптеры и другие многороторные системы
    Ответов: 3
    Последнее сообщение: 29.07.2012, 23:42
  4. Светодиодная подсветка на коптере
    от DVE в разделе Коптеры. Комплектующие, сборка, настройка.
    Ответов: 1
    Последнее сообщение: 22.07.2012, 08:31
  5. Продам Прицел оптический 3-9х32 с подсветкой
    от ahern в разделе Барахолка. Разное
    Ответов: 0
    Последнее сообщение: 16.12.2011, 21:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения