А можно "тыкнуть" хотя бы на том же "чип и дип'е" какие по маркировке транзисторы подойдут. Если они там есть конечно же.
Вид для печати
спасибо участникам данного форума. Особенно Sergey L (Сергею Лебедеву ):) )
я сделал для dvi, hdmi, display port
На этом сайте нет конкретной информации - есть поддержка HDCP? Какие пространства цветов поддерживаются? Какая версия hdmi? Что с 3D?
HDCP поддержки нет.
по поводу хдми - максимальная допустимая частота 165 МГц. То есть, насколько я правильно понял, (http://ru.wikipedia.org/wiki/HDMI)
хдми до версии 1.3 аптилайт держит
Никто не подскажет протокол обмена, используемый в программе Eraser?
Протокол описан в первом посту
skilful, поскольку тут форум "сделай сам", рассказывай как анализировать hdmi на предмет цветов.
Chip в первом посту вижу только скетч для ардуино. Стартовый 0xFF и далее N-байт, по количеству каналов. Порядок - RGB.
У меня софт выдает новогоднюю елку. При статичном изображении (причем однотонном фоне) все моргает почти без закономерности.
Своим софтом отправляю 0xFF + 30 байт - все ловится и отображается на ура.
В начале каждого кадра идет 0xFF потом каналы RGB по порядку как в конфиге , количество каналов может меняться в зависимости от того сколько каналов в указано в конфиге.
Чудеса.. записал на устройстве лог полученных данных - все выглядит нормально. Вернул основную прошивку - тоже все работает.
Где был косяк - не понятно.
Теперь осталось сделать корректировку цвета и плавность перехода.
Eraser, спасибо за софт, действительно удобно все сделано.
Из улучшений, помимо отключения от устройтсва при неактивности, могу посоветовать сделать программное сглаживание перехода цвета. Опционально, конечно.
Часто задержка в 0,2-0,5 секунды не так критична. Зачем понапрасну гонять компьютер для постоянного рассчета цвета, когда можно снизить частоту до 2-5 Гц, а пробелы заполнять программно? Задержка будет равна периоду. За этот период и выдавать 10-40 промежуточных цветов, рассчет которых будет куда менее затратен.
Здравствуйте!!! Я в электронике - новичок! Но появилось дикое желание собрать данное устройство. Пересмотрел весь форум, перечитал про Carduino NanoV.4. Есть несколько вопросов. Может глупых... Carduino Nano V.4 она с интерфейсом USB, а в программе используется COM порт. В чем я не прав?
И что на данный момент самое свеженькое из разработок (схемно и программно)? Я так понял, что первый пост содержит не последние версии.
Я совсем не знаком с программированием, только представления имею. Но есть дикое желание всему научиться. Заранее спасибо. С наступающим Новым годом! =)
в Кардуине стоит мост USB Serial , в диспечере устройств можно увидеть виртуальный ком порт устройства.Цитата:
Здравствуйте!!! Я в электронике - новичок! Но появилось дикое желание собрать данное устройство. Пересмотрел весь форум, перечитал про Carduino NanoV.4. Есть несколько вопросов. Может глупых... Carduino Nano V.4 она с интерфейсом USB, а в программе используется COM порт. В чем я не прав?
Что значит как декодировать цвета hdmi ? "картинка" прет по кабелю, а мы считаем среднее в нужных нам областях и изменяем цвет светодиодной подсветки
в hdmi идет очень большой поток данных на достаточно высокой частоте. Кроме того, насколько я помню, там используется еще и избыточное кодирование. Соответственно, нужен блок, который позволит перевести в цифру поток данных и второй блок, который сможет обработать, пусть даже частично, поток под 5 гигабит в секунду.
Интересно как тебе это удалось реализовать за разумные деньги.
Все остальное в этой ветке есть
Чтобы с ПЛИС научиться работать, надо купить что-то вроде Cyclone II Starter Board?
Я предпочитаю Альтеру (так исторически сложилось) и поэтому себе взял http://www.terasic.com.tw/cgi-bin/pa...o=364&PartNo=1
Очень неплохое соотношение цены и возможностей. Там есть и с большими возможностями, но и с более высокими ценами.
Для тех, кто предпочитает Xilinx, есть неплохой набор разных плат другого производителя: http://www.digilentinc.com/Products/...h=2,400&Cat=10
У меня оттуда есть http://www.digilentinc.com/Products/...9&Prod=S3BOARD
А вообще, для начала можно просто скачать софт от Altera или Xilinx и modelsim (бесплатная версия есть для обоих производителей) и начать с того, чтобы написать дизайн на Верилоге и просимулировать. Симулировать придётся много (не протестили на симуляции - работать не будет, проверено), так что лучше сразу этому научиться.
я так устроен, что пробовать как работает железка без железки не могу :-). В удовольствие, по крайней мере. А есть малоногие микрухи программируемой логики? Паяемое без фена, типа TQFP64, не больше. А еще лучше с большим шагом, типа SO
Это проходит ;)
Да, конечно. Но там мало регистров. MAX3000Цитата:
В удовольствие, по крайней мере. А есть малоногие микрухи программируемой логики? Паяемое без фена, типа TQFP64, не больше.
http://www.altera.com/products/devic...-overview.html
Или MaxII (интереснее, в нём есть внутренний генератор и небольшая EEPROM)
http://www.altera.com/products/devic...-overview.html
Но минимум 100 ножек.
Единственно, что для них ещё надо будет делать самому программатор через параллельный порт или покупать готовый для USB баксов за 40-50. И получается, что проще потратить $120 и иметь гораздо более мощный чип с кучкой периферии, чем собирать самому.
Собрал на 24 каналана макетке, все работает отлично, иногда при динамичных сценах наблюдается легкое оставание подсветки...
и, кстати бок с просвечиванием некоторых диодов проявился только на 1 канале, тоесть проблема в качестве УЛН-ок
Уважаемый SBorovkov, а не могли бы Вы выложить платку на 42 канала в лайауте? а то не хочется что-то руками перерисовывать... :)
IgorSokol, я выложил в том, что было - eagle, в этом http://www.compcar.ru/forum/showpost...&postcount=315 сообщении. Как преобразовать в spring layout - не знаю. И даже не знаю существует ли такая операция.
Eagle - более продвинутая программа, чем spring layout и позволяет сначала нарисовать схему, а потом по ней рисовать плату. И даже более того, любое изменение в схеме сразу отражается на плате. Поэтому более-менее сложные схемы, в которых легко ошибиться, я предпочитаю рисовать в eagle.
Честно говоря не знаю, удастся ли загрузить эту плату в бесплатную версию eagle (у бесплатной версии ограничения - размер платы и только два слоя, верхний и нижний).
это оно по SPI ?????PHP код:
#define TCNT2_Const 250 //256-9
#define BrightnessSize 24 //число каналов
unsigned long blank=0; //таймер простоя
uint8_t volatile PWM_Counter=0;
uint8_t Brightness[BrightnessSize];
void setup()
{
pinMode(10, OUTPUT); //SS SPI вывод для управления защелкой
pinMode(11, OUTPUT); // SPI DATA
pinMode(13, OUTPUT); // SPI Clock
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(13,LOW);
SPSR = (1<<SPI2X); // SPI set clock rate fck/2
SPCR = (1<<SPE)|(1<<MSTR); // Enable SPI, Master
for (int i=0;i<BrightnessSize;i++) //обнулить массив
{
Brightness[i]=0;
}
Serial.begin(115200);
TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика
TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика
TCCR2B |= (1<<CS22); //установка предделителя 64
ASSR &= ~(1<<AS2); //Выбор источника синхронизации таймера если AS2=0 от системного генератора
TCNT2 = TCNT2_Const; // 16000000/256/100/64=8 tcnt2=256-8=248.
TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2.
sei();
}
void loop()
{
if (Serial.available() > BrightnessSize)
{
if (Serial.read() == 255) //проверка прификса
{
for (int i = 0; i < BrightnessSize; i++)
{
Brightness[i] = Serial.read(); // прочитать данные о цветах из порта в массив
}
blank=0;
}
} else {
if(blank>100000) { blank=0; for (byte i = 0; i < BrightnessSize; i++) Brightness[i] = 15;}
blank++;
}
}
SIGNAL(TIMER2_OVF_vect)
{
uint8_t PWM_Counter_v=PWM_Counter; // поскольку PWM_Counter объявлена как valotile, обращение к ней - всегда обращение в память. Поэтому создаем локальную копию, она будет храниться в регистре.
TCNT2 = TCNT2_Const;
uint8_t i = 0;
uint8_t byte_shift;
uint8_t nbit; // делаем переменную для хранения сдвинутого бита, чтобы у компилятора не возникало желания каждый раз в цикле сдвигать 1 на bt бит влево
byte_shift = 0;
for (uint8_t bt=0; bt<8; bt++)
{
byte_shift = byte_shift<<1;
if(Brightness[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit
i++;
}
SPDR = byte_shift; //отправляем в шину SPI
//**************************************
byte_shift = 0;
for (uint8_t bt=0; bt<8; bt++)
{
byte_shift = byte_shift<<1;
if(Brightness[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit
i++;
}
SPDR = byte_shift; //отправляем в шину SPI
//**************************************
byte_shift = 0;
for (uint8_t bt=0; bt<8; bt++)
{
byte_shift = byte_shift<<1;
if(Brightness[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit
i++;
}
SPDR = byte_shift; //отправляем в шину SPI
PORTB |= (1<<PIN2); //формируем положительный импульс защелки
PWM_Counter++;
while(!(SPSR & (1<<SPIF))); // Ожидание завершения передачи данных
PORTB &= ~(1<<PIN2);
}
да, в сдвиговые регистры грузятся данные по SPI
:confused:
v.1.0.7
+ горячие клавиши вкл/выкл
v1.0.8
fix: пересчет размеров зон при смене разрешения
ps исходники для linux можно взять здесь
v1.1.1
+ режимы работы:
эмбилайт,
подсветка,
лампа настроения :)
А что за лампа настроения?
Лампа настроения (mood lamp) является RGB лампой, которая меняет цвет в случайном порядке.
http://habrahabr.ru/blogs/DIY/65616/
Примерно так и предполагал :)
Полезная вещь
v.1.1.2
+ горячие клавиши переключения режима
+ выбор режима запускаемого по-умолчанию
Eraser частота обновления от чего зависит и как её повысить?
Для повышения частоты обновления можно уменьшить скорость обновления, количество каналов и размеры зон.
Но как показала практика, число каналов не сильно влияет на частоту обновления(если не использовать зоны с большим размером).Уменьшение скорости обновления повышает частоту обновления, но не сильно.
Если же частоты обновления не достаточно, то попробуйте отключить Aero в Windows 7 (у меня частота увеличилась в 2 раза) или установить классическую тему.
Под linux (у меня Ubuntu) проблем с частотой обновления я не испытываю, стабильно выше 30Гц. А если учесть, что частота смены кадров обычно не более 25 в сек, думаю этого достаточно.
ЗЫ и не забывайте закрывать окно с настройками при работе эмбилайта, т.к. отрисовка превьюшки довольно сильно притормаживает работу программы
ЗЫЫ Если и после описанных действий частоты обновления не достаточно, остается только upgrade железа системы или попробовать linux. :)
зыыы v.1.1.3
Вы случайно не дримовод?
Если да - мож прикрутите ардуину к рессиверу (DM800) и плагинчик для управления - было бы шикарно!
У немцев есть плагин для их приблуды - atmolight, но наверное с ардуиной он работать не будет.
Сорри за офтоп
Подправить скетчь и все заработаетЦитата:
У немцев есть плагин для их приблуды - atmolight, но наверное с ардуиной он работать не будет.
Проблема еще в том что не могу прикрутить пока ардуину к дриму
если у кого здесь есть DM800 - может попробуете прикрутить
(у меня походу что-то с юсб случилось - щас даже флешку не видит)