Объявление

Свернуть
Пока нет объявлений.

Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • #16
    Re: Arduino Board (3d IR / RF Sync)

    итак на выходных потратил всё свое свободное время на эксперименты со считыванием инфракрасных сигналов и попытке их повторить.
    но чтото нихера у мнея не вышло.

    играюсь с пультом от мака IRrecvDump выдает RAW
    77E1D09A
    Decoded NEC: 77E1D09A (32 bits)
    Raw (6: -24188 9050 -4550 550 -600 600 -1700 600 -1650 600 -1700 600 -550 600 -1700 600 -1700 600 -1650 600 -1700 600 -1700 600 -1650 600 -600 600 -550 600 -550 600 -600 600 -1700 550 -1700 600 -1700 600 -550 600 -1700 600 -550 600 -600 600 -550 600 -550 600 -1700 600 -550 600 -550 600 -1700 600 -1700 600 -550 600 -1700 600 -550 600
    убрав минусы и подставив запятые, посылаю сигнал как описано здесь
    http://dduino.blogspot.com/2011/11/u...ontrol-tv.html
    Код:
    irsend.sendRaw(powerOn,68,38);
    на данный момент как я понимаю проблем несколько.
    1.может я путаю LOW/HIGHT при попытке послать RAW сигнал при помощи готовой библиотеки, или сколько раз нужно послать код, к примеру для сони нужно послать 3 раза
    2.важна и частота тоесть 38 это не для всех
    к примеру у сони 40герц, как узнать какая частота идет с телика на очки пока непонятно. но мнебы хоть с пультом разобраться
    Код:
    void IRsend::sendRaw(unsigned int buf[], int len, int hz)
    но прога распознала стандарт посылаемого сигнала как NEC значит герзовка у меня правильная
    3.не пойму, где указывать порт, на котором висит мой передатчик
    на шилде у меня он висит на 4м конткте, ну и я еще могу подрубить дополнительный на любой контакт кроме 4го и 11(ир приемник)
    IRsendDemo
    Код:
    /*
     * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
     * An IR LED must be connected to Arduino PWM pin 3.
     * Version 0.1 July, 2009
     * Copyright 2009 Ken Shirriff
     * http://arcfn.com
     */
    
    #include <IRremote.h>
    
    IRsend irsend;
    
    void setup()
    {
     Serial.begin(9600);
    }
    
    void loop() {
     if (Serial.read() != -1) {
      for (int i = 0; i < 3; i++) {
       irsend.sendNEC(0x77E1D09A, 68); // Sony TV power code
       delay(100);
      }
     }
    }
    вобщем систему я вроде как вкурил, вечером буду копать дальше

    -----------
    http://luckylarry.co.uk/arduino-proj...the-tv-remote/

    такс, вроде всё делаю правильно, только нужно внешний к 3му контакту

    http://www.arcfn.com/2009/08/multi-p...e-library.html

    * An IR LED must be connected to Arduino PWM pin 3.
    угу, тупо комменты читать я не в состоянии

    IRremote.cpp
    TCCR2A |= _BV(COM2B1); // Enable pin 3 PWM output
    тут еще матчасть, которую мне не помешалобы вкурить
    http://arduino.cc/en/Tutorial/SecretsOfArduinoPWM

    еще матчасть, для изучения портов и работы с ними
    http://arduino.cc/en/Hacking/PinMapping168
    http://www.arduino.cc/en/Reference/PortManipulation

    тут описана переделка класса под АТмега1280 с третьего для уно на 7й для 1280
    #if defined (__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    TCCR4A |= _BV(COM4B1); // Enable Mega Pin 7 PWM output
    #else
    TCCR2A |= _BV(COM2B1); // Enable Duelimanove/UNO PWM Pin 3 output
    #endif
    http://www.arduino.cc/cgi-bin/yabb2/...num=1295194600
    Обсуждение всех нюансов развода в Германии. www.razvod.net

    Комментарий


    • #17
      Re: Arduino Board (3d IR / RF Sync)

      посмотрел схему моего шильда
      http://www.linksprite.com/upload/file/1294287647.pdf
      передатчик висит на 3м пине, значит в библиотеке ничего менять не нужно и я сигналы посылал кудато при помощи воего кода
      аля
      http://www.ladyada.net/learn/sensors/ir.html
      Код:
      int IRledPin = 13;  // LED connected to digital pin 13
      я вроде посылал на 4й и у меня ЛЕД светился, смотрел при помощи видеокамеры....

      вобщем я вижу два различных метода считывания и анализирования сигнала.
      1й при помощи библиотеки и работы с PWM 3,11(IRremote class)
      2й при помощи пинов без PWM 2, 13(ladyada)
      а я пробовал 2й способ с моим шильдом, что вероятно и приводило к ошибке

      Arduino Pins - Analog style output - Pulse Width Modulation (PWM)
      http://arduino-for-beginners.blogspo...put-pulse.html

      еще один метод посылки сигнала
      http://www.zovirl.com/2008/11/12/bui...th-an-arduino/
      и еще
      http://www.gumbolabs.org/2010/05/29/...eiver-arduino/

      arduino Nikon IR remote в двух исполнениях
      http://ilpleut.be/code-nikonremote
      http://luckylarry.co.uk/arduino-proj...ography-yarrr/

      Really simple Arduino IR receiver
      http://blog.lucaseckels.com/2009/05/...o-ir-receiver/
      Обсуждение всех нюансов развода в Германии. www.razvod.net

      Комментарий


      • #18
        Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

        итак первый шажек наконецто был сделан
        я смог послать увеличение громкости на мой мак мини
        Код:
        /*
         * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
         * An IR LED must be connected to Arduino PWM pin 3.
         * Version 0.1 July, 2009
         * Copyright 2009 Ken Shirriff
         * http://arcfn.com
         */
         /*
         77E1D09A
        Decoded NEC: 77E1D09A (32 bits)
        Raw (68): 15986 9050 -4500 600 -550 600 -1700 600 -1650 600 -1700 600 -550 600 -1700 600 -1700 600 -1650 600 -1700 600 -1700 550 -1700 600 -550 600 -600 600 -550 600 -550 600 -1700 600 -1700 600 -1650 600 -600 600 -1650 600 -600 600 -550 600 -550 600 -550 600 -1700 600 -550 600 -550 600 -1700 600 -1700 600 -550 600 -1700 600 -550 600 
        */
        
        #include <IRremote.h>
        
        IRsend irsend;
        unsigned int volUp[68] ={9050,4550,550,600,600,1700,600,1650,600,1700,600,550,600,1700,600,1700,600,1650,600,1700,600,1700,600,1650,600,600,600,550,600,550,600,600,600,1700,550,1700,600,1700,600,550,600,1700,600,550,600,600,600,550,600,550,600,1700,600,550,600,550,600,1700,600,1700,600,550,600,1700,600,550,600};
        void setup()
        {
         Serial.begin(9600);
        }
        
        void loop() {
        
           //irsend.sendNEC(0x77e1d09a, 32);
           irsend.sendRaw(volUp, 68, 38);
           delay(2000);
        
        }
        оба способа RAW и NEC IRremote класса заработали на 3м пине моего инфракрасного шильда.
        в посыле RAW нужно было тупо удалить первый мусорный сигнал 15986 который никак не относится к коду. эту мелочь я совсем упустил из виду.
        а когда посылал NEC код то забыл убрать 3х разовое посылание кода аля сони, который был в примере кода.
        Обсуждение всех нюансов развода в Германии. www.razvod.net

        Комментарий


        • #19
          Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

          теперь тупо используя этот класс врубил на телике 3д
          получаю молчанку и через какоето время 1й код.
          потом тупо махаю бумажкой перед приемником и получаю дальнейшие отрывки.
          поидее сигнал всегда один сигнал пауза и так бесконечно

          Spoiler
          0
          Could not decode message
          Raw (6): -6250 100 -3950 200 -4050 200
          0
          Could not decode message
          Raw (6): -8250 50 -3950 200 -4050 50
          0
          Could not decode message
          Raw (6): -24750 250 -3800 250 -4000 200
          0
          Could not decode message
          Raw (6): -6750 250 -3400 200 -4450 200
          0
          Could not decode message
          Raw (: 18236 250 -1700 200 -4800 200 -1100 250
          0
          Could not decode message
          Raw (10): -6750 250 -1100 200 -2100 250 -4400 200 -1100 200
          0
          Could not decode message
          Raw (6): -6750 250 -1050 250 -2100 200
          0
          Could not decode message
          Raw (6): -6750 200 -3400 250 -4400 250
          0
          Could not decode message
          Raw (: -6800 200 -1100 200 -2100 250 -4400 200
          0
          Could not decode message
          Raw (: -6750 250 -3400 200 -4450 200 -1100 200
          0
          Could not decode message
          Raw (6): -6750 250 -3400 250 -4400 250
          0
          Could not decode message
          Raw (14): -6750 200 -1100 200 -1800 250 -4750 250 -3000 250 -4750 250 -1100 200
          0
          Could not decode message
          Raw (6): -6750 250 -3400 200 -4450 200

          наверное 200 - 4000
          но это ниразу не напоминает картинку с цифрами 17 и 31 тк ниразу не пропорционально
          Обсуждение всех нюансов развода в Германии. www.razvod.net

          Комментарий


          • #20
            Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

            http://www.ladyada.net/learn/sensors/ir.html
            если беру код с линка сверху и считываю сигнал при помощи 2го пина, то вижу это
            Spoiler
            Код:
            Received: 
            
            OFF 	ON
            64960 usec, 180 usec
            64960 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 180 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64980 usec, 160 usec
            65000 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            65000 usec, 160 usec
            64604 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 180 usec
            64584 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            65000 usec, 160 usec
            64980 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64980 usec, 160 usec
            65000 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64960 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64960 usec, 180 usec
            64980 usec, 160 usec
            65000 usec, 160 usec
            64980 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 180 usec
            63416 usec, 160 usec
            64604 usec, 220 usec
            64940 usec, 160 usec
            65000 usec, 160 usec
            64980 usec, 220 usec
            64920 usec, 180 usec
            62288 usec, 160 usec
            65000 usec, 160 usec
            64980 usec, 200 usec
            64940 usec, 220 usec
            64920 usec, 180 usec
            64980 usec, 160 usec
            64980 usec, 160 usec
            64960 usec, 220 usec
            int IRsignal[] = {
            // ON, OFF (in 10's of microseconds)
            	18, 6496,
            	18, 6498,
            	16, 6498,
            	18, 6498,
            	18, 6498,
            	18, 6498,
            	16, 6498,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6498,
            	16, 6500,
            	16, 6498,
            	18, 6498,
            	16, 6500,
            	16, 6460,
            	16, 6498,
            	16, 6498,
            	16, 6498,
            	16, 6498,
            	16, 6498,
            	16, 6498,
            	18, 6498,
            	18, 6498,
            	16, 6498,
            	18, 6498,
            	18, 6458,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6498,
            	16, 6498,
            	18, 6498,
            	18, 6498,
            	16, 6500,
            	16, 6498,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6498,
            	16, 6500,
            	16, 6498,
            	18, 6498,
            	18, 6498,
            	16, 6498,
            	18, 6496,
            	18, 6498,
            	16, 6498,
            	16, 6498,
            	16, 6498,
            	16, 6498,
            	18, 6498,
            	16, 6498,
            	18, 6498,
            	18, 6498,
            	16, 6498,
            	16, 6498,
            	18, 6496,
            	18, 6496,
            	18, 6496,
            	18, 6498,
            	16, 6500,
            	16, 6498,
            	18, 6498,
            	16, 6498,
            	18, 6341,
            	16, 6460,
            	22, 6494,
            	16, 6500,
            	16, 6498,
            	22, 6492,
            	18, 6228,
            	16, 6500,
            	16, 6498,
            	20, 6494,
            	22, 6492,
            	18, 6498,
            	16, 6498,
            	16, 6496,
            	22, 0};

            большая пауза и маленький сигнал, походу этот тип получения данных не подходит
            тк пульт от мака считывается как надо
            Spoiler
            Received:

            OFF ON
            60804 usec, 8920 usec
            4340 usec, 680 usec
            520 usec, 620 usec
            1620 usec, 620 usec
            1620 usec, 620 usec
            1620 usec, 740 usec
            400 usec, 620 usec
            1620 usec, 620 usec
            1620 usec, 620 usec
            1620 usec, 620 usec
            1620 usec, 600 usec
            1640 usec, 620 usec
            1620 usec, 620 usec
            520 usec, 620 usec
            520 usec, 600 usec
            540 usec, 600 usec
            540 usec, 600 usec
            1640 usec, 620 usec
            1620 usec, 620 usec
            1620 usec, 620 usec
            520 usec, 600 usec
            1640 usec, 600 usec
            540 usec, 600 usec
            540 usec, 600 usec
            540 usec, 600 usec
            540 usec, 600 usec
            1640 usec, 600 usec
            540 usec, 600 usec
            540 usec, 600 usec


            OFF ON
            60804 usec, 8920 usec
            4340 usec, 680 usec
            520 usec, 620 usec
            [s]1620[/s] usec, 620 usec
            -->

            Raw (6: 15986 9050 -4500 600 -550 600 [s]-1700[/s] 600
            Обсуждение всех нюансов развода в Германии. www.razvod.net

            Комментарий


            • #21
              Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

              IRremoteInt.h
              #define _GAP 5000 // Minimum map between transmissions
              ->8000
              и тут уже не приходится махать бумажкой перед сенсором
              Spoiler
              0
              Could not decode message
              Raw (: -8100 200 -8050 250 -8050 250 -8050 200
              0
              Could not decode message
              Raw (20): -8100 250 -8000 200 -8050 250 -7950 250 -8050 200 -8000 250 -8000 250 -8000 200 -8050 200 -8050 250
              0
              Could not decode message
              Raw (20): -8100 250 -8000 200 -8050 200 -8000 250 -8050 200 -8000 200 -8050 250 -8000 200 -8050 250 -8050 200
              0
              Could not decode message
              Raw (20): -8100 200 -8000 250 -8050 200 -8000 250 -8050 200 -8000 200 -8050 250 -8000 200 -8050 250 -8050 200

              ставлю на 40000
              результат впринцыпе не меняется, просто увеличивается количество.
              так и остается 8000 и 200
              Spoiler
              Could not decode message
              Raw (10): -8100 200 -8050 250 -8050 250 -2000 250 -5800 200
              0
              Could not decode message
              Raw (22): -8100 200 -8000 250 -8000 250 -2000 250 -5750 200 -8050 250 -7950 250 -8050 200 -8000 250 -8050 250 -8050 200
              0
              Could not decode message
              Raw (20): -8050 250 -8000 250 -8000 200 -8050 250 -8000 200 -8050 200 -2050 250 -5700 250 -8050 200 -8000 250
              0
              Could not decode message
              Raw (22): -8100 200 -8000 250 -8000 250 -2000 200 -5800 200 -8050 200 -8000 200 -8050 250 -8000 200 -8050 250 -8050 200
              0
              Could not decode message
              Raw (6): -8050 250 -8000 250 -7950 250
              0
              Could not decode message
              Raw (16): -24500 250 -8000 250 -8000 250 -8000 250 -2000 250 -5700 250 -8050 200 -8000 200
              0


              unsigned int samsung[68] ={250,8000,200,8050,250,8000,200,....
              пытаюсь посылать, да чтото не вижу мигания передатчика ну и очки естественно не активируются

              если поменять 8000 с 250 то сигнал видно, ровно как и в телике его видно, значит не может быть комбинации 8000-25[s]0, слишком короткий сигнал со светом[/s]
              мобила такой сигнал тоже видит, а вот хд камера для скайпа нет. на телике я мобилой проверял сигнал
              Обсуждение всех нюансов развода в Германии. www.razvod.net

              Комментарий


              • #22
                Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

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

                http://www.mtbs3d.com/phpBB/viewtopi...26&t=12596
                .equ IR_ON_LEN = (255-17) ; 17 ticks
                .equ IR_OFF_LEN = (255-16) ; 16 ticks
                .equ IR_LOOPCOUNT = 15 ; 15 loops
                ну этот код асамблеровский показывает работу с мутсубиси/самсунг протоколом

                The additions for the Samsung IR code is very simple now...

                #define ssg_lh 30 //17µs (changed slightly to compensate timing)

                case 4 : //Samsung / Mitsubishi
                switch (next_sync)
                {
                case 0 :
                ir_tx[0]= ssg_lh - t_comp;
                nbr_pulses= 1;
                break;

                case 1 :
                ir_tx[0]= ssg_lh - t_comp;
                nbr_pulses= 1;
                break;
                }
                http://www.mtbs3d.com/phpBB/viewtopi...3&start=45

                надо еще эту тему проштудировать

                ----
                открыл тему в немецком разделе на форуме ардуино
                http://arduino.cc/forum/index.php/topic,89660.0.html

                To maintain glasses in the working condition is sufficient to send 400 microseconds pulses (carrier frequency 36-38 kHz) with frequency 120 Hz
                http://www.mtbs3d.com/phpBB/viewtopi...p=51723#p51723
                Обсуждение всех нюансов развода в Германии. www.razvod.net

                Комментарий


                • #23
                  Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

                  мля уже столько инфы перечитал, что можно доку писать
                  а оно сука всё никак не пашет
                  Код:
                  // This sketch will send out a Nikon D50 trigger signal (probably works with most Nikons)
                  // See the full tutorial at http://www.ladyada.net/learn/sensors/ir.html
                  // this code is public domain, please enjoy!
                  
                  int IRledPin = 2;  // LED connected to digital pin 13
                   
                  // The setup() method runs once, when the sketch starts
                   
                  void setup()  {        
                   // initialize the IR digital pin as an output:
                   pinMode(IRledPin, OUTPUT);   
                   
                   Serial.begin(9600);
                  }
                   
                  void loop()           
                  {
                   Serial.println("Sending IR signal");
                   SendCode();
                  }
                   
                  void pulseIR(int cycles) {
                   
                   cli(); // this turns off any background interrupts
                   
                   while (cycles > 0) {
                    // 38 kHz is about 13 microseconds high and 13 microseconds low
                    digitalWrite(IRledPin, HIGH); // this takes about 3 microseconds to happen
                    delayMicroseconds(14);     // hang out for 17 microseconds
                    digitalWrite(IRledPin, LOW);  // this also takes about 3 microseconds
                    delayMicroseconds(13);     // hang out for 16 microseconds
                   
                    // so 26 microseconds altogether
                    cycles -= 1;
                   }
                   
                   sei(); // this turns them back on
                  }
                   
                  void SendCode() {
                  pulseIR(15);
                  delayMicroseconds(505);//10000 - (17+16)*15
                  }
                  //.equ  IR_ON_LEN = (255-17)  ; 17 ticks
                  //.equ  IR_OFF_LEN = (255-16) ; 16 ticks
                  //.equ  IR_LOOPCOUNT = 15   ; 15 loops
                  снизу комменты из кода на ассамблере, поидее всё верно.
                  посылаем 15 импульсов, в котором горит 17микросекунд и не горит 16.
                  в итоге имеем один длинный импульс > 400микросекунд(µs)
                  теперь вопрос. немец писал про 17 сигналов в секунду.
                  как это реализовать?
                  если я не совсем запарился с миллисекундами и микросекундами то
                  то я нынче посылаю в одну миллисекунду один сигнал длинной 495µs а в секунде 1000 миллисекунд и того вместо 17 я посылаю 1000? или я совсем уже запарился....

                  ----
                  http://www.avsforum.com/avs-vb/showt...3#post19963053

                  The glasses work great with one 17us pulse at 400us after sync.
                  нихера не понимаю, типо 400мс пустота, а потом один импульт на 17мс и всё?
                  It appears to only need one 17us pulse. Actually I've tried modifying the length in 1us increments up to about 90us and that doesn't seem to matter either, at least with these glasses.

                  I added an initial delay after the sync pulse that I could adjust up in 10us increments with a button push. And I think I settled on about 1041us, but I didn't try below 400us. 1041us is about 1/8 of the full 8333us for a single 120hz frame. It seemed to get rid of most of the banding I had been seeing issuing the pulse right at the sync mark (or with the 400us pattern).
                  To maintain the blink enough to send pulses 180-400 µs with a period about 8 ms.
                  это с другого форума.
                  итак что имеем.
                  то, что я уже видел у себя в логах -8000 200
                  тоесть 8миллисекунд пауза, потом хоть 400, хоть 200 миллисекунд сигнал и в нем импульсы по 17 микросекунд...
                  Обсуждение всех нюансов развода в Германии. www.razvod.net

                  Комментарий


                  • #24
                    Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

                    нужно еще посмотреть и переделать класс или спользовать функции из ир класса
                    Код:
                    void IRsend::enableIROut(int khz) {
                     // Enables IR output. The khz value controls the modulation frequency in kilohertz.
                     // The IR output will be on pin 3 (OC2B).
                     // This routine is designed for 36-40KHz; if you use it for other values, it's up to you
                     // to make sure it gives reasonable results. (Watch out for overflow / underflow / rounding.)
                     // TIMER2 is used in phase-correct PWM mode, with OCR2A controlling the frequency and OCR2B
                     // controlling the duty cycle.
                     // There is no prescaling, so the output frequency is 16MHz / (2 * OCR2A)
                     // To turn the output on and off, we leave the PWM running, but connect and disconnect the output pin.
                     // A few hours staring at the ATmega documentation and this will all make sense.
                     // See my Secrets of Arduino PWM at http://arcfn.com/2009/07/secrets-of-arduino-pwm.html for details.
                    
                     
                     // Disable the Timer2 Interrupt (which is used for receiving IR)
                     TIMSK2 &= ~_BV(TOIE2); //Timer2 Overflow Interrupt
                     
                     pinMode(3, OUTPUT);
                     digitalWrite(3, LOW); // When not sending PWM, we want it low
                     
                     // COM2A = 00: disconnect OC2A
                     // COM2B = 00: disconnect OC2B; to send signal set to 10: OC2B non-inverted
                     // WGM2 = 101: phase-correct PWM with OCRA as top
                     // CS2 = 000: no prescaling
                     TCCR2A = _BV(WGM20);
                     TCCR2B = _BV(WGM22) | _BV(CS20);
                    
                     // The top value for the timer. The modulation frequency will be SYSCLOCK / 2 / OCR2A.
                     OCR2A = SYSCLOCK / 2 / khz / 1000;
                     OCR2B = OCR2A / 3; // 33% duty cycle
                    }
                    
                    void IRsend::mark(int time) {
                     // Sends an IR mark for the specified number of microseconds.
                     // The mark output is modulated at the PWM frequency.
                     TCCR2A |= _BV(COM2B1); // Enable pin 3 PWM output
                     delayMicroseconds(time);
                    }
                    
                    /* Leave pin off for time (given in microseconds) */
                    void IRsend::space(int time) {
                     // Sends an IR space for the specified number of microseconds.
                     // A space is no output, so the PWM output is disabled.
                     TCCR2A &= ~(_BV(COM2B1)); // Disable pin 3 PWM output
                     delayMicroseconds(time);
                    }
                    тк тут нету тормазов как в скрипте сверху
                    digitalWrite(IRledPin, HIGH); // this takes about 3 microseconds to happen
                    или заставить его работать с частотой 34-khz типо 17on 17off
                    OCR2A = SYSCLOCK / 2 / khz / 1000;
                    только в этом я както неверен, надо еще поштудировать частоты и как оно пашет. тк мне главное добится 17us импульса

                    или сказать мол давай 25, как написано здесь
                    Each pulse is modulated by 25kHz carrier
                    http://forums.cnet.com/7723-13973_10...ier-frequency/
                    Обсуждение всех нюансов развода в Германии. www.razvod.net

                    Комментарий


                    • #25
                      Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

                      итак наконецто первый шаг
                      Код:
                      #include <IRremote.h>
                      
                      IRsend irsend;
                      unsigned int volUp[9] ={250,8000,17,15,17,14,200,8000,250}; 
                      
                      void setup()
                      {
                       Serial.begin(9600);
                      }
                      
                      void loop() {
                         irsend.sendRaw(volUp, 9, 34);
                      }
                      с такой хренью очки активировались и я смотрю на телик сверху на котором показывается 3д картинка. так вот изза смещенной синхронизации правая картинка переходит плавно в левую.
                      ну и активируются очки еще както непонятно, то сразу, то через секунд 10.
                      теперь тупо подбирать нужные циферки и цикл

                      http://www.youtube.com/watch?v=Xy1kNO1ZnnY#
                      Обсуждение всех нюансов развода в Германии. www.razvod.net

                      Комментарий


                      • #26
                        Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

                        Привет Нитроген, получил личку от вас на mtbs3d. Скорее всего проблема с передачей сигнала связана с тем что вы не модулируете сигнал несущей частотой. Поясню на всякий пожарный, каждый импульс, по сути представляет собой пачку состоящую из импульсов с постоянной длительностью и периодом, для упрощения повторяющихся с постоянной частотой, эта частота называется несущей. Для разных ИК-приемников она разная, для тех, что у вас 38 КГц, какая она у Самсунговских теликов я не знаю. Встроенный в 2100 очки приемник принимает сигналы с несущей 20-40 КГц (примерно, выяснял экспериментально). Все интегрированные ИК-приемники имеют фильтр несущей частоты, поэтому на их выходе вы ведите не совсем реальный сигнал, а импульсы длительность которых соответствует длительности пачки, если посылать такой сигнал без модуляции несущей на светодиод вы нечего не получите.
                        ПДФ с протоколами выложенный на mtbs3d содержит содержит реально рабочие протоколы, только про несущую там нет ни слова. Для Самсунговских очков можете взять значение несущей нечто среднее из указанного выше диапазона.
                        С кодом я к сожалению не помогу, никогда не имел дела с Адрено.

                        Комментарий


                        • #27
                          Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

                          привет, спасибо за ответ
                          с кодом и посылами я разберусь сам, если мне будет известен протокол

                          к примеру, как активировать очки?
                          и потом их синхронизировать

                          250,8000,17,15,17,14,200,8000,250

                          это on,off,on,off,on,off поочередно в микросекундах

                          вот когда я так посылаю и этот сигнал идет по кругу, то вижу то, что видим мы на видео на ютубе. очки активируются через раз и мне не понятно, как это сделать.
                          посылать пачки 400микросекунд отрывками 17,15 и тп это не проблема
                          Обсуждение всех нюансов развода в Германии. www.razvod.net

                          Комментарий


                          • #28
                            Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

                            Нужно посылать один раз в начале каждой второй пары фреймов
                            Импульс 17,2 мкс, пауза 31,4 мкс, импульс 17,2 мкс, пауза 31,4 мкс, импульс 17,2 мкс промодулированные несущей 20-40 КГц.
                            Я глянул ваш код, модуляция у вас уже реализована, мкс в попугаи Адрено просчитайте сами. 8000 похоже это пауза между парами фреймов, остальное переделайте с формулой выше. Ну и без синхронизации с телеком, тоесть просто заставив очки мигать нормальной картинки не будет

                            Комментарий


                            • #29
                              Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

                              спасибо за ответ, но я не совсем в теме.
                              попытаюсь описать то что я понял

                              имеем цикл импульсов
                              простой пример: идет импульс 400мкс потом пауза 8000 мкс потом с активасией потом опять 400мкс и пауза 8000 верно? ну и так до бесконечности
                              первая параактивациявторая пара
                              250,8000,17,31,17,31,17,[s]6[/s],250,8000
                              какая пауза(для примера поставил 6) после активациии 17, перед 2м фреймом?
                              пока такой код вбил, чтото очки не отвечают

                              синхронизировать буду по IR и блюту, но это только в планах.
                              покамесь охото "завести" очки с активацией и постоянной синхронизацией, чтобы в каждом глазу была постоянная картинка
                              Обсуждение всех нюансов развода в Германии. www.razvod.net

                              Комментарий


                              • #30
                                Re: Active 3D Glasses Sync (Part1: IR Sync with Arduino Board )

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

                                {180,8000,17,15,17,14,180,8000,180};
                                к примету эта комбинция кажет одну картинку на глазе гдето 3сек. потом за секунду идет преобращение правой картинки в левую и потом снова 3 сек. стабильная картинка в одном глазу.

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

                                ps
                                @evgen_ln
                                а нельзя ли перейти на ты, выкать в инете не люблю.
                                Обсуждение всех нюансов развода в Германии. www.razvod.net

                                Комментарий

                                Обработка...
                                X