Jump to content

martinways

Members
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

0 Обычный

About martinways

  • Rank
    Новенький
  1. Тогда прошу помочь за деньги, у меня к сожалению нет времени изучать все программирование ради единственной возможности эти знания проявить/использовать. Сколько будет стоить написание скетча по моим данным?
  2. Возникла необходимость замены родной лампы и балласта проектора Epson на мощный LED. Общение балласта и материнки происходит по 3-м оптронам (по сути двум). Аппаратная часть эмулятора реализована при помощи ардуино про мини, к ней подключены 2 оптрона. При работе с родным балластом я записал идущие данные лог анализатором и составляена таблица запросов материнки и ответов балласта. Запросы и ответы идут группами, например Мать:4D 0D Балласт: 4D 47 59 0D Мать: 4C 33 46 0D Балласт: 41 0D Обращаюсь к вам за помощью, кто и за какую сумму сможет написать для меня скетч по моим данным. Привожу запись первой минуты работы проектора, по ходу дела скорее всего надо будет добавлять некоторые комманды, просто нужно сначала запустить эмулятор, а потом уже записывать данные, которые возникают при переключении разных режимов работы (это по моему опыту с первым проектором, который удалось таким образом взломать) Определена частота 9600 EVEN Мать:4D 0D Балласт: 4D 47 59 0D Мать:53 0D Балласт: 53 30 45 0D Мать: 51 0D Балласт: 51 32 0D Мать: 4C 33 46 0D Балласт: 41 0D Мать: 51 0D Балласт: 51 32 0D Мать: 54 0D Балласт: 54 31 46 0D Потом 2 последних чередуются , идет постепенный разогрев лампы и некоторые данные ответа балласта меняются (видимо указывают матери температуру и еще что-то, но как показала практика с переделкой прошлого проектора, то можно матери выдавать одинаковые значения Ну и потом идет такое Мать: 4C 32 46 0D Балласт: 41 0D Мать: 44 0D Балласт: 44 32 45 0D Ну и снова каждую секунду чередуются Мать: 51 0D Балласт: 51 32 0D Мать: 54 0D Балласт: 54 32 33 0D
  3. Вот как пример скетча эмулятора прошлого проектора int data; void setup() { Serial.begin(4800, SERIAL_8E1); } void loop() { } void serialEvent() { data = Serial.read(); if (data == 0) Serial.write(data); if (data == 0xF2) Serial.write(0x04); if (data == 0xF4) Serial.write(0xFF); if (data == 0x40) Serial.write(0x40); if (data == 0x32) Serial.write(0x32); if (data == 0x84) Serial.write(0x02); if (data == 0x83) Serial.write(0x64); if (data == 0x81) Serial.write(0x17); } И вот другой с переключением режимов int data; int StatusLamp; #define INIT1 1 #define INIT2 2 #define WORK1 3 #define WORK2 4 void setup() { StatusLamp = INIT1; Serial.begin(4800, SERIAL_8E1); } void loop() { } void func_unique_request( int data ) { switch ( data ) { case 0xF2: Serial.write(0x04); break; default: Serial.write(0xdata); break; } } void func_INIT1( int data ) { switch ( data ) { case 0x00: Serial.write(0x00); break; case 0xF2: Serial.write(0x04); break; case 0xF4: Serial.write(0xFF); break; case 0x40: Serial.write(0x40); break; case 0x32: Serial.write(0x32); break; case 0x84: Serial.write(0x02); break; case 0x83: Serial.write(0x64); break; case 0x81: Serial.write(0x17); break; default : func_unique_request(data); break; } // code change status lamp to step2 ( example 0x81 ) if ( data == 0x81 ) StatusLamp = INIT2; } void func_INIT2( int data ) { switch ( data ) { case 0x81: Serial.write(0x97); break; case 0x84: Serial.write(0x04); break; case 0x83: Serial.write(0x64); break; default : func_unique_request(data); break; } // code change status lamp to stepX ( example 0x81 ) if ( data == 0x83 ) StatusLamp = WORK1; } void func_WORK1( int data ) { switch ( data ) { case 0x81: Serial.write(0x98); break; case 0x92: Serial.write(0x1B); break; default : func_unique_request(data); break; } // code change status lamp to stepX ( example 0x81 ) if ( data == 0x81 ) StatusLamp = WORK2; } void func_WORK2( int data ) { switch ( data ) { case 0x81: Serial.write(0x97); break; case 0x92: Serial.write(0x1B); break; default : func_unique_request(data); } if ( data == 0x81 ) StatusLamp = WORK1; } void serialEvent() { data = Serial.read(); switch ( StatusLamp ) { case INIT1: func_INIT1(data); break; case INIT2: func_INIT2(data); break; case WORK1: func_WORK1 (data); break; case WORK2: func_WORK2 (data); break; } }
  4. Возникла необходимость замены родной лампы и балласта проектора Epson на мощный LED. Общение балласта и материнки происходит по 3-м оптронам (по сути двум). Это уже второй по счету проектор, который я взламываю. Аппаратная часть эмулятора реализована при помощи ардуино про мини, к ней подключены 2 оптрона. При работе с родным балластом я записал идущие данные лог анализатором и составляена таблица запросов материнки и ответов балласта. В первом проекторе протокол был довольно простой, мне достаточно было изменить чужой скетч подставив свои данные и все работает идеально. А вот во втором проекторе, более высокого класса уже протокол более сложный, запросы и ответы идут группами, например Мать:4D 0D Балласт: 4D 47 59 0D Мать: 4C 33 46 0D Балласт: 41 0D Так вот в старый скетч я уже не мог вписать это дело, так как не знаю принципов его создания в таких случаях и синтаксиса. Обращаюсь к Вам за помощью, кто и за сколько денег сможет написать для меня скетч по моим данным. Привожу запись первой минуты работы проектора, по ходу дела скорее всего надо будет добавлять некоторые комманды, просто нужно сначала запустить эмулятор, а потом уже записывать данные, которые возникают при переключении разных режимов работы (это по моему опыту с первым проектором) Определена частота 9600 EVEN Мать:4D 0D Балласт: 4D 47 59 0D Мать:53 0D Балласт: 53 30 45 0D Мать: 51 0D Балласт: 51 32 0D Мать: 4C 33 46 0D Балласт: 41 0D Мать: 51 0D Балласт: 51 32 0D Мать: 54 0D Балласт: 54 31 46 0D Потом 2 последних чередуются , идет постепенный разогрев лампы и некоторые данные ответа балласта меняются (видимо указывают матери температуру и еще что-то, но как показала практика с переделкой прошлого проектора, то можно матери выдавать одинаковые значения Ну и потом идет такое Мать: 4C 32 46 0D Балласт: 41 0D Мать: 44 0D Балласт: 44 32 45 0D Ну и снова каждую секунду чередуются Мать: 51 0D Балласт: 51 32 0D Мать: 54 0D Балласт: 54 32 33 0D
  5. Нет слов... Может, для начала, прошариться в проганье, а потом уже писать программу ? Если Вы, конечно, не чукча, который делает всё наоборот... Буфер? Парсить? Для меня это абсолютно загадочные термины)))) Я нихрена не шарю в php и javascript , но делаю сайты, интернет-магазины и правлю php код)) C++ для меня это буква "С" и два плюса))) Но тем не менее изменил чужой скетч и запустил первый проектор. А вот в этом проекторе уже сложнее из-за общения материнки и балласта группами сигналов. Может укажите пример как прописать условие если материнка дает запрос 51 0D , а балласт ей дает ответ 51 32 0D , на основе него сделаю по другим командам и надеюсь должно получиться)) Помогите плииииз)) P.S. А пока Вы отвечаете, пойду оленей покормлю
  6. Это я делаю эмулятор балласта лампы проектора для запуска без балласта (установка мощного светодиода вместо лампы). В более простой модели проектора все получилось, там был один запрос от материнки и 1 ответ от балласта, я составил таблицу запросов и ответов и все заработало, а теперь попался более навороченный проектор, с помощью логического анализатора я определил частоту 9600 EVEN и выписал данные запросов материнки и ответ балласта и получается такая картина от момента включения проектора и где-то минута работы до полного разогрева лампы: Мать:4D 0D Балласт: 4D 47 59 0D Мать:53 0D Балласт: 53 30 45 0D Мать: 51 0D Балласт: 51 32 0D Мать: 4C 33 46 0D Балласт: 41 0D Мать: 51 0D Балласт: 51 32 0D Мать: 54 0D Балласт: 54 31 46 0D Потом 2 последних чередуются , идет постепенный разогрев лампы и некоторые данные ответа балласта меняются (видимо указывают матери температуру и еще что-то, но как показала практика с переделкой прошлого проектора, то можно матери выдавать одинаковые значения Ну и потом идет такое Мать: 4C 32 46 0D Балласт: 41 0D Мать: 44 0D Балласт: 44 32 45 0D Ну и снова каждую секунду чередуются Мать: 51 0D Балласт: 51 32 0D Мать: 54 0D Балласт: 54 32 33 0D А вот скетч от первого преоктора, правда там реализованы переключатели режимов в зависимости от запросов матери int data; int StatusLamp; #define INIT1 1 #define INIT2 2 #define WORK1 3 #define WORK2 4 void setup() { StatusLamp = INIT1; Serial.begin(9600, SERIAL_8E1); } void loop() { } void func_unique_request( int data ) { switch ( data ) { case 0x00: Serial.write(0x4E); break; default: Serial.write(0x00); break; } } void func_INIT1( int data ) { switch ( data ) { case 0x53: Serial.write(0x53); break; case 0x51: Serial.write(0x51); break; case 0x4C: Serial.write(0x41); break; case 0x32: Serial.write(0x32); break; case 0x84: Serial.write(0x02); break; case 0x83: Serial.write(0x64); break; case 0x81: Serial.write(0x17); break; default : func_unique_request(data); break; } // code change status lamp to step2 ( example 0x81 ) if ( data == 0x81 ) StatusLamp = INIT2; } void func_INIT2( int data ) { switch ( data ) { case 0x81: Serial.write(0x97); break; case 0x40: Serial.write(0x40); break; case 0x34: Serial.write(0x34); break; case 0x84: Serial.write(0x04); break; case 0x83: Serial.write(0x46); break; default : func_unique_request(data); break; } // code change status lamp to step2 ( example 0x81 ) if ( data == 0x83 ) StatusLamp = WORK1; } void func_WORK1( int data ) { switch ( data ) { case 0x81: Serial.write(0x98); break; case 0x92: Serial.write(0x1B); break; case 0x40: Serial.write(0x40); break; case 0x30: Serial.write(0x30); break; case 0x84: Serial.write(0x00); break; case 0x83: Serial.write(0x42); break; default : func_unique_request(data); break; } // code change status lamp to step2 ( example 0x81 ) if ( data == 0x83 ) StatusLamp = WORK2; } void func_WORK2( int data ) { switch ( data ) { case 0x81: Serial.write(0xB6); break; case 0x92: Serial.write(0x2A); break; case 0x40: Serial.write(0x40); break; case 0x34: Serial.write(0x34); break; case 0x84: Serial.write(0x04); break; case 0x83: Serial.write(0x46); break; default : func_unique_request(data); } if ( data == 0x83 ) StatusLamp = WORK1; } void serialEvent() { data = Serial.read(); switch ( StatusLamp ) { case INIT1: func_INIT1(data); break; case INIT2: func_INIT2(data); break; case WORK1: func_WORK1 (data); break; case WORK2: func_WORK2 (data); break; } }
  7. Друзья, помогите с проблемой. Ничего не шарю в языках программирования, пишу скетч для ардуино методом тыка (а точнее изменяю уже готовы). Вобщем есть строка case 0x81: Serial.write(0x97); break; - то есть устройство дает сигнал 0x81, а ардуино ему отвечает 0x97 , но задача усложняется тем, что устройство потом подает серию сигналов 0x4C 0x33 0x46 0x0D , а МК должен ответить ему тоже серией 0x51 0x32 0x0D, а я не знаю как добавить в case серию сигналов (какие знаки препинания ставить между сигналами), зная принцип у меня все получится, просто не знаю синтаксиса.
  8. Я думаю больше 1000, потому что это напряжение пропускается на лампу через 2 кондера включенных последовательно (1600V 6800pf). Если включать без лампы, то шьет между клеммами, так что напряж там приличное.
  9. Ну давайте не будем меня обзывать тупым америкосом, мои опасения вполне оправданы, ведь я отдал за проектор 700 баксов и получить кирпич совсем не хочется, причем на русскоязычном форуме один чувак точно таким же образом его получил (залез в балласт тоже шунт поставить и балласт - БАБАХ). Фото конечно прикрепил, но лезть туда я вряд ли рискну, единственное, что пробовал снизить яркость лампы путем установки кондеров меньшей емкости, через которые высокое напряжение идет на лампу, но это ниче не дало. А насчет "повторить условия ответа балласта материнке" - даже если б я имел на руках готовый протокол "общения" - я всеравно не могу его реализовать, знаний таких нет. На фото также видно, что я выпаивал оптроны, экспериментировал))
  10. Может и проще, но и спалить балласт еще проще - тогда уже шансов переделать на светодиод не будет. Тем более, что схем на балласт нету , а методом тыка сжечь балласт - раз плюнуть. Да и в любом случае я хотел бы сохранить балласт, если вдруг потребуется проекция с мощным световым потоком, а для большинства времени использовать светодиод.
  11. Уважаемые специалисты, прошу у вас помощи, готов оплатить услуги если кто-то возьмется за это дело. Имеется новый рабочий проектор Epson EB-W22. Задача состоит в полном отключении платы балласта лампы, который управляется сигналами с материнки проектора через 3 оптрона (см. прикрепленную картинку). Первые 2 оптрона посылают сигналы на балласт (замерив изменения напряжения на них я пришел к выводу, что первый оптрон просто включает балласт, а по второму уже идут непосредственно данные), а по третьему балласт дает ответ материнке. При отключении балласта от матери проектор, естессно, выдает ошибку. Изучив буржуйские форумы узнал, что обмен данными идет по стандарту UART или типа того, если более старые проекторы можно было запустить просто замкнув 3-й оптрон, то в новом стандарте это не катит, в моем случае нужно считывать поток данных, которые идут от балласта (или может еще и от матери тоже) и собирать эмулятор на каком-нибудь МК, на буржуском форуме ребята все это реализовывали на Ардуино и все работало. Так вот я готов заплатить кому-нибудь из вас, кто взялся бы за это дело. Конечно же пересылать проектор я не буду, но вы мне можете подсказать, как считать данные с проектора в рабочем режиме и переслал бы вам их, а вы собрали бы схему на МК с моей программой. Или может есть другой вариант. Я с паяльником с дества на "ты", так что спаять плату на МК для меня вовсе не проблема, так как уже имею опыт сборки FM-передатчика с цифровой стабилизацией частоты и прошивки его PIC16F84 по инструкции. Главное, что у меня нет знаний по вопросу МК, поэтому я и обращаюсь на этот форум. Судя по количеству подобных вопросов в интернете, очень многие в мире мечтают выкинуть стандартную лампу своего проектора и впихнуть мощный LED, но не могут этого сделать по причине нового стандарта обмена данными с балластом, соответственно, если бы у меня все получилось, то можно было бы выложить подробную инструкцию от А до Я дабы обрадовать всех жаждущих, таких как я)))
  12. Уважаемые специалисты, прошу у вас помощи, готов оплатить услуги если кто-то возьмется за это дело. Имеется новый рабочий проектор Epson EB-W22. Задача состоит в полном отключении платы балласта лампы, который управляется сигналами с материнки проектора через 3 оптрона (см. прикрепленную картинку). Первые 2 оптрона посылают сигналы на балласт (замерив изменения напряжения на них я пришел к выводу, что первый оптрон просто включает балласт, а по второму уже идут непосредственно данные), а по третьему балласт дает ответ материнке. При отключении балласта от матери проектор, естессно, выдает ошибку. Изучив буржуйские форумы узнал, что обмен данными идет по стандарту UART или типа того, если более старые проекторы можно было запустить просто замкнув 3-й оптрон, то в новом стандарте это не катит, в моем случае нужно считывать поток данных, которые идут от балласта (или может еще и от матери тоже) и собирать эмулятор на каком-нибудь МК, на буржуском форуме ребята все это реализовывали на Ардуино и все работало. Так вот я готов заплатить кому-нибудь из вас, кто взялся бы за это дело. Конечно же пересылать проектор я не буду, но вы мне можете подсказать, как считать данные с проектора в рабочем режиме и переслал бы вам их, а вы собрали бы схему на МК с моей программой. Или может есть другой вариант. Я с паяльником с дества на "ты", так что спаять плату на МК для меня вовсе не проблема, так как уже имею опыт сборки FM-передатчика с цифровой стабилизацией частоты и прошивки его PIC16F84 по инструкции. Главное, что у меня нет знаний по вопросу МК, поэтому я и обращаюсь на этот форум. Судя по количеству подобных вопросов в интернете, очень многие в мире мечтают выкинуть стандартную лампу своего проектора и впихнуть мощный LED, но не могут этого сделать по причине нового стандарта обмена данными с балластом, соответственно, если бы у меня все получилось, то можно было бы выложить подробную инструкцию от А до Я дабы обрадовать всех жаждущих, таких как я)))
  13. Знач так. Собрал генератор ШИМ на таймере 555, но он, собака, абсолютно нестабилен - частота плавает в широчайших пределах при любом изменении температуры. Такое дело мне совсем не подходит. Ребяты, подскажите, где можно достать схему или купить готовый контроллер ШИМ с возможностью установки стабильной частоты и плавной регулировкой скважности. Важнейшим критерием является частота ШИМа, надо чем повыше,может даже вплоть до 1000гц, чтоб не было видно мерцания на зеркальной камере. И опять же, не решена проблема с драйвером - если есть мощные драйверы с встроенным ШИМ, то какие именно? Может кто сталкивался? Как их распознать? Нужны конкретные названия.
  14. Продаются ли готовые генераторы с регулируемой скважностью? Или как его можно сделать максимально просто и эффективно ?
  15. Значит ни один драйвер сам по себе работать не будет и диммирование также не будет производить? Или существуют драйверы с встроенным генератором ШИМ? Если нет, то продаются ли готовые генераторы с регулируемой скважностью? Или как его можно сделать максимально просто и эффективно ? Вот есть ещё один драйвер- там вместо ОЕ ножка DIM есть ли какая-то разница http://www.radiodetali.com/td/drivers/mbi6652.htm
×
×
  • Create New...