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

СВЕТОВОЕ ОБОРУДОВАНИЕ ДЛЯ ДИСКОТЕК

Совсем недавно были популярны схемы цветомузыкальных устройств с использованием частотных разделительных фильтров (НЧ, СЧ и ВЧ) и с выходными каскадами на транзисторах и тиристорах. Современные световые приборы оттеснили эти схемы своими новыми техническими решениями. А новая элементная база позволила намного упростить схемы этих устройств. Отпала необходимость коммутации таких приборов с усилителями, потому что в них используется схема аудиоконтроля (встроенный микрофон). Прибор начинает работать во время звучания музыки и останавливается в паузах между песнями. А мощности светового потока достаточно для того, чтобы перекрыть площадь станцпола или сцены. Наибольшего эффекта работы приборов этой группы можно добиться при использовании их совместно с генераторами дыма (дыммашинами). Один из таких приборов мне удалось сделать и сегодня я подробно расскажу о том, как можно его изготовить самому.
Прикрепления:
Вложение1

41 комментарий к “Световой прибор для дискотек с аудиоконтролем”

  1. Видео работы светового прибора как и другие файлы могут качать только зарегистрированные пользователи.

  2. Санделло

    Samopalkin, как приобрести у Вас приборчик???

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

  4. Rrediska, Я зеркала клеил на силиконовый прозрачный герметик, желательно автомобильный. Он выдерживает достаточно высокие температуры (около 150 градусов) – такая будет примерная температура без кулера. Говорю, опираясь на собственный опыт. А ты какой контроллер будешь использовать? PIC12C508? У меня есть исправленная прошивка, если что на PIC12F508. Готовая прошивка (HEX) для PIC12C508 по проверенным данным не рабочая, там стоит галочка в бите CP (бит защиты).

  5. Цитата (flash)
    Готовая прошивка (HEX) для PIC12C508 по проверенным данным не рабочая, там стоит галочка в бите CP (бит защиты).

    Вот вот можно по подробнее про эту галочку, где увидеть этот бит

  6. Romick_Калуга

    Кто сказал, что если стоит галочка в бите CP, то это не рабочая прошивка? Скорее всего вас пугает, что при проверке после прошивки программа пишет ошибку. Так вот, если установлен бит CP (защита от считывания при копировании), контроллер нормально функционирует, просто нельзя скопировать прошивку. Этот бит ставят всегда в коммерческих продуктах. Сами понимаете, зачем. Вот и все. Если вам не нужна такая защита, то просто в программе снимите эту галочку, прошивайте контроллер, и тогда никакой ошибки программа выдавать не будет.

    Добавлено (26.03.2012, 12:42)
    ———————————————

    Цитата (-igRoman-)
    где увидеть этот бит

    В программе, в которой ты прошиваешь контроллер. Например для PIC программа ICProg.

  7. -igRoman-, Этот бит (CP) сейчас на вскидку, какой его номер не скажу – нужно смотреть datasheet. Находится в битах конфигурации (CONFIG__'здесь 11цифр'). Прийду домой отпишусь где точно.

    Добавлено (26.03.2012, 14:15)
    ———————————————
    Romick_Калуга, Речь идет о файлах HEX и ASM. Так вот этот HEX-файл имеет защиту от копирования. А если смотреть ASM (саму прогу) то в ASM все в порядке за исключением того что при компиляции будут предупреждения (WARNING) на команду RETURN. Ее нужно менять на RETLW, тк RETURN идет для более сложных контроллеров, например для PIC16f и др.

    Добавлено (26.03.2012, 14:17)
    ———————————————
    Romick_Калуга, Снять галочку в CP возможно только в исходнике, или прийдется шерстить весь 16ричный код – искать в какой строке требуется внести исправление… По-моему так.

  8. Romick_Калуга

    Конечно, я тоже могу ошибаться, но в данном случаем, мне кажется вы слишком глубоко копаете с этим битом. Зачем куда-то лезть в исходник?
    Когда вы в ICProg открываете hex файл, то у вас в правом поле, где осциллятор и биты конфигурации, высвечивается все, что было заложено в исходнике. И тут-же вы можете оперативно снять этот бит или наоборот, поставить, поменять тип осциллятора. И эти изменения вы прошьете, и они вступят в силу.
    Если кто не верит, попробуйте и все вопросы отпадут. Я этот процесс выполнил раз 30 в выходные, пока пробовал разные прошивки к световому прибору. все работает так, как я тут описал.

  9. Дело в том, что я пытался изменить данные биты и в PONY PROG и в IC Prog – бесполезно! Прогамма возвращала все на прежнее место. Поэтому пришлось брать исходник asm и компилировать его заново, а после успешной компиляции уже программировать. В PIC12C508 12-разрядное слово конфигурации предназначено для указания режима работы микроконтроллера: два бита – выбор режима работы тактового генератора; один бит – разрешение работы сторожевого таймера; один бит – режим работы вывода -MCLR.

    Добавлено (26.03.2012, 19:24)
    ———————————————
    Смотрим исходник (asm) – прошивку “Световой еж”. Здесь прописаны эти биты так: __CONFIG b'111111101110'. Под этим бинарным кодом понимают (см. datasheet PIC12C508 – стр.36) биты с 11-5 нереализованы: читаются как '1'. Далее бит 4: MCLRE – бит выбор режима работы вывода -MCLR (у нас он включен, те ='1'). Бит 3: CP – бит защиты памяти программ (у нас он должен быть выключен, а значит значение ='1'. Далее идет 2 бит WDTE: бит разрешения работы сторожевого таймера (по программе он включен, те значение ='1'. И последние два бита (биты 1-0): биты, которые отвечают за режим работы тактового генератора. Тактовый генератор у на работает по внутренней RC цепочке – то есть 10. Ну вот как-то так. Соответственно при желании эту прошивку можно прописать практический под любой PIC со схожей архитектурой. Я, например, заменил этот контроллер PIC12C508 на PIC12F508 (F-многоразовый).

  10. Romick_Калуга

    Я не понял, что значит, программа возвращает биты на прежнее место? Конечно, если в прошивке был установлен бит CP, а ты в ICProg снял эту галку, то в файл hex это изменение не запишется. Но ты же шьешь код не из самого файла. Сначала ты открываешь файл и весь код из него загружается в оперативную память, тут ты можешь снять или установить биты (возможно не все), и в таком виде код зашьется в контроллер. Понятно, что если ты в другой раз захочешь прошить другой контроллер, то отроешь hex файл, там опять установлен бит CP, и опять вручную нужно его снимать. Поэтому и удобно прописывать все эти биты сразу в исходнике в файле конфигурации. Удобно, но совсем не обязательно.

  11. Romick_Калуга, Речь идет именно о скаченном HEX-файле, который непосредственно зашивается в контроллер. Делаю это так:
    В ic-prog я устанавливаю нужные мне значения бита конфигурации. Сохраняю изменения. Далее перед заливкой в контроллер еще раз открываю это окно, для того, чтобы убедиться, что сохранения приняты в силу. И тут система почему то их сама меняет на те, которые были изначально, то есть галочка стоит в CP. А вот сам файл asm – в нем все в порядке. Поэтому, если asm откомпилировать и родить после этого откомпилированный HEX, то другое дело. Все будет ок!

  12. Romick_Калуга

    Все правильно. Поставить галочку CP и чтобы эти изменения сохранились в hex файле, так не получится. Если ты хочешь сохранить изменения, то нужно этот бит прописать в исходнике и компилировать.
    Только зачем тебе сохранять эти изменения? Открыл hex файл, отключил бит CP и шей на здоровье. И все будет работать. Если же тебе для удобства нужно ,чтобы каждый раз не выставлять вручную, тогда этот бит нужно прописать.
    Наверное, теперь мы поняли друг друга?

  13. Romick_Калуга, видимо не совсем. Пытаюсь объяснить, что бит СP при отключении вручную (в hex-исходнике, котрый скачен для “светового ежа”) опять ставится в исходное положение, что не дает прошить и выдается програмная ошибка. А по началу я тоже так думал, что сниму сейчас галочку да и прошью!

  14. Romick_Калуга

    Теперь я тебя не понял. Что за чудеса? Ты открыл hex файл в ICProg. В правом поле высвечиваются биты, изменения которых возможно для данного контроллера. К примеру, установлена галка на бите CP. Ты кликаешь мышкой и снимаешь эту галку. И что, эта галка тут-же появляется вновь? И ты даже не успеваешь прошить контроллер? Никогда таких чудес не видел. Или как-то по другому она появляется? Можно подробнее?

  15. flash, не пинать больно

    Если контроллер одноразовый прошивы “С” и бит СР не установлен ОФФ, то можно посмотреть содержимое контроллера???

    Сейчас по этому поводу собираю программатор Extra-pic, в списке поддерживаемых контроллеров только 12с508, F идентично будет там щится. ICProg поддерживает 12Ф508?.

    Цитата (flash)
    Здесь прописаны эти биты так: __CONFIG b'111111101110'.

    я так понимаю прога автоматом фьюзы выставляет??

  16. для начала давайте определимся,что речь идет о IC PROG 10.0.5. Да, в действительности у этой версии не предусмотрен выбор PIC12F508, тк контроллер этой версии появился позже,чем сама программа. Однако народные умельцы смогли все-таки адаптировать эту версию под F. О чём есть статья. Извините ссылку чуть позже дам. Ну а вообще,чтоб не заморачиваться,то лучше использовать mpasm8.6. Что касается моего ответа на другие вопросы,то дам чуть позже-давно уже не открывал эту программу. Нужно вспомнить

  17. Romick_Калуга

    Если в ICProg нет F508, запусти WinPic, там он есть

    Добавлено (28.03.2012, 21:35)
    ———————————————

    Цитата (-igRoman-)
    Если контроллер одноразовый прошивы “С” и бит СР не установлен ОФФ, то можно посмотреть содержимое контроллера???

    Если бит CP не был установлен, то прошивку можно и посмотреть и скопировать

  18. Для PIC12F508 есть хитрый способ прошивки (использование IC-Prog). Вот ссылка: http://feng3.cool.ne.jp/en/howto12f509.html Смысл в том, что шьется как 12С508, а стирается, как 12F84А. Я не пробовал

  19. flash, на этом пока все, возьму два контроллера, попробую.

  20. Вот пара вопросов
    Прошивка под 12с508а

    Специально показал строчку с конфигом, а ниже я так понимаю строка где автоматом выставляются фьюзы??
    Но птица на бите СР поставилась сама, убираю орет не совпадает с буфером, оставляю как есть все шьет. Это глюк??

    Цитата (flash)
    Бит 3: CP – бит защиты памяти программ (у нас он должен быть выключен, а значит значение ='1'.

    И в строке СР=ОФФ, а он сам стал и не хотит убегать

    Но собственно это не вопрос,
    существуют ли программы чтоб смотреть сам “хекс” как там поставлены сами биты (на уникальность самой прошивки) чтоб не делать лишней работы, выдирать микруху вставлять в программатор итд. Исходник мне никто не даст посмотреть

    И вот, заметил адресные строки не все заполнены, это свободная незадейств. память. Как не дописаная болванка??

    Прикрепления:
    Вложение1
    Вложение2

  21. Romick_Калуга
    Цитата (Romick_Калуга)
    существуют ли программы чтоб смотреть сам “хекс” как там поставлены сами биты

    Не понял, зачем тебе специальная программа? Ведь в ICProg ты как раз и видишь справа по галкам, какие биты поставлены.

    Цитата (-igRoman-)
    И в строке СР=ОФФ, а он сам стал и не хотит убегать

    Это ведь только комментарий, это не исполняемая строка. Ты там хоть ругательное слово напиши, ничего в коде программы не изменится.
    По поводу, что если галку снять, то должна быть 1. В разных программах по разному. В один считается установленный бит, если галка не стоит (в том-же PonyProg). Может быть для разных контроллеров по-разному? Я с этим сталкивался для ATTiny2313. Попробуй поменять значение в конфиге и скомпилировать. Загрузишь в ICProg и увидишь.

    Добавлено (01.04.2012, 18:26)
    ———————————————

    Цитата (-igRoman-)
    а ниже я так понимаю строка где автоматом выставляются фьюзы??

    Еще раз нет. Это только комментарий к конфигурации.

    Добавлено (01.04.2012, 18:28)
    ———————————————

    Цитата (-igRoman-)
    Но птица на бите СР поставилась сама, убираю орет не совпадает с буфером

    Никак не пойму. Напиши подробнее, что ты делаешь пошагово. Кто орет, что не совпадает с буфером? Это после прошивки, когда идет проверка?

  22. -igRoman-, Во-во – аналогичная ситуация!!! Также ставится эта галка. Это говорит о том, что Hex, который ты скачал, в нем стоит (CP) включенный. Для его выключения потребуется открыть исходник и скомпилировать прогу заново, а далее, после успешной компиляции потребуется родить от нее HEX. И этот готовый HEX будет тот, что надо. Сразу хотел предустеречь: сторка : LIST = PIC12C508 означает, что эта прошивка идет только для PIC12C508, но никак не для PIC12C508A. Потребуется подкорректировать шапку… В любом случае, чтоб не париться – купи PIC12F508 и на ней можешь поэкспериментировать. По-крайней мере я так и сделал. А по поводу ФУЗОВ, как ты сказал, то это не фузы, а как правильно подметил Romick_Калуга – это комментарии, они отделены знаком точка с запятой – ; И здесь можешь писать в одну строку, все , что захочешь.

    Добавлено (02.04.2012, 11:16)
    ———————————————
    -igRoman-, И вот, заметил адресные строки не все заполнены, это свободная незадейств. память. Как не дописаная болванка?? ——-Да, все верно. Но в любом случае, в последней строке должна быть указана калибровочная константа. Значение никак не ноль.

  23. flash, просто по роду деятельности 99,9% работаю с аналогом, и особо не парился с прошивками, дал денег – получил готовые и прошитые.
    А в плане уникальности, чел который мне шьет, не захочет (я так думаю) просто отдать готовые файлы прошивы (Это его бабки) а прочитать готовые шитые смысла нет. А как выдурить не соображу, убил сразу два зайца, с экономил себе, и Romick_Калуга, готовую на любой прибор.

    Комп где инет – это одна машина, где программирую другая – вот и возникает казус, потыкал, а не фига. Мало того, что контроллер не тот подставил, там еще и порт (с какого то переляку) не отвечал. Заново переставил прогу, – залетело как себе домой.

  24. Romick_Калуга
    Цитата (flash)
    Во-во – аналогичная ситуация!!! Также ставится эта галка. Это говорит о том, что Hex, который ты скачал, в нем стоит (CP) включенный.

    Честно говоря, давно шил эти контроллеры, года 2 назад, тонкостей не помню. ейчас каждый день шью PIC16F73 (эксперименты с колорГобоЧенжером). Открываю прошивку – стоит галка CP. Я ее снимаю и шью. И заново она сама не выставляется, и проверяется код после прошивки и не ругается. Почему так?

    Помню, что были какие-то проблемы с прошивкой, пока не нашел калибровочную константу. Я ее запомнил. И потом вставлял вручную в конец программы, прошивал и все работает по сей день. Собрал штук 5 таких световых Ежиков.

  25. Romick_Калуга
    Цитата (-igRoman-)
    а прочитать готовые шитые смысла нет

    Почему нет смысла? Если галка CP не стоит, то считывай код в той же ICProg, сохраняй его, как hex файл и пользуйся. Конечно, исходника не будет, но сможешь шить сам сколько хочешь.

  26. Romick_Калуга

    Решил поэкспериментировать. Запустил ICProg, открыл файл HEDGEHOG.HEX – это прошивка для светового ежа на PIC12C508. Стоят галки на битах WDT и CP. Щелкнул и убрал галку CP. Жду… ничего на место не становится (как описывали выше полтергейтс). Жду еще… Ничего не происходит – галка не летит в свое гнездо. Лишнего контроллера нет, поэтому без него запускаю “программировать” и жду, что вот тут-то галка станет на место. Нет, не встает. При программировании, спрашивает, тот ли я осциллятор выставил (а он стоит IntRC, т.е. без кварца, от внутреннего генератора). Соглашаюсь. Идет процесс прошивки. После виртуальной прошивки начинается проверка соответствия кода. Выдает ошибку. Еще бы, ведь контроллера в постельке не было. Жму ОК, и опять смотрю на биты. Как снял я галку CP, так она и снята.
    Ребята, объясните, где эта галка сама собой становится в этом окне CP? А то у меня уже крыша едет. Опишите, как вы это делаете, что ее невозможно снять? У меня на всех контроллерах она снимается без исходника.
    Кстати, вот прошивка и исходник на всякий случай.
    Прикрепления:
    Вложение1
    Вложение2

  27. Romick_Калуга
    Цитата (flash)
    Сразу хотел предустеречь: строка : LIST = PIC12C508 означает, что эта прошивка идет только для PIC12C508, но никак не для PIC12C508A.

    У меня есть определенные сомнения на этот счет. Собирал я Светового Ежа (5 или 6 штук) по схеме:

    и применял прошивку (выкладываю ниже с исходником).
    Так вот в исходнике написано, что прошивка для PIC12C508. Я пробовал разные контроллеры, в том числе PIC12C509A. Вот фото:

    Шил на ICProg 1.05D в окне контроллера выставлял именно PIC12C509A. Все прошилось без проблем и работает по сей день.
    Прикрепления:
    Вложение1
    Вложение2
    Вложение3
    Вложение4

  28. Romick_Калуга, В таком случае у меня остаются догадки по поводу того программатора, который использую. Наверняка прога у меня ругается из-за неправильных настроек. Но это лишь предположение. Скажи пожалуйста: изменений ты никаких не вносил, я так понимаю и брал файл hex готовый и прошивал другие контроллеры, указав в проге тот контроллер, который требуется прошить? Все верно? Скажи пожалуйста, а прошитый контроолер при этом работает корректно в режиме музыка и в режиме программа? Мне не совсем понятно как он должен правильно работать в режиме музыка? Дело в том, что у меня он работает одинаково, что в режиме “музыка” что по “программе”, те при переключении изменений не наблюдается, хотя осцилографом проверял и изменения там есть в соответсвии с описанием.

  29. Romick_Калуга

    Я не буду точно утверждать, что использовал контроллер PIC12C508, не вспомню уже, но что использовал PIC12C508A и PIC12C509A – это 100%. Использовал программатор EXTRA PIC по этой схеме http://miliamper.narod.ru/Extra-PIC/Extra-PIC.htm Шил не тов WinPic, не то в ICProg (скорее второе). Никаких изменений в исходник не вносил, т.к. я и сей1час не силен в программировании, а тогда только начинал общаться с микроконтроллерами. Указывал в проге именно тот контроллер, который стоит в постельке.
    Приборы работают в обоих режимах. От встроенной программы – отрабатывают прошитую программу. А от музыки – просто без музыки останавливается, а при музыке запускается та-же встроенная программа.

  30. Поутихли немного страсти wink не хватало из за кривых моих рук психику нарушить

    Цитата (Romick_Калуга)
    А то у меня уже крыша едет.

    Может не правильно выразился, изначально при открытии файла прошивки возле бита СР автоматом поставилась галка, я ее снял, жму прогр вываливается ошибка на англицком языке, и все. Вернул на место (но на второй день, после бубна с переустановкой) жму программировать, пролетает полоса, – вываливается ошибка по 0000h, все пик зашит.
    Еще раз не пинать, луна растущая, эмоции берегем

    Сейчас контроллеров нет, возьму попробую, ошибки сфоткаю.
    Может у меня не правильные действия касательно самого программирования?
    Открываю прогу (IC-PROG), выбираю тип, открываю hex, поля заполнены. Жму программировать, появляется вкладка “Чтение кода” бумс пробежала, появилось окно с калибровочной константой OSCCAL, и значение самой константы. Ниже предлагает “Вы настаиваете на использование установок из файла”, жму “НЕТ” и начинается сам процесс, далее проверка, и все wink

  31. Romick_Калуга
    Цитата (-igRoman-)
    жму прогр вываливается ошибка на англицком языке,

    А какая ошибка? Сфоткай или напиши на английском.

  32. Цитата (-igRoman-)
    Комп где инет – это одна машина, где программирую другая
    Цитата (-igRoman-)
    Сейчас контроллеров нет, возьму попробую, ошибки сфоткаю.
  33. Romick_Калуга

    Хотя бы перепиши текст ошибки на английском.

  34. Romick_Калуга, Уточни пожалуйста, какой файл HEX ты зашиваешь в контроллер, тот который скачал? Или же сначала комилируешь asm, а потом прошиваешь полученным HEX?

  35. Цитата (Romick_Калуга)
    Я пробовал разные контроллеры, в том числе PIC12C509A.

    508 не было, заказал 509 без А, приедут попробуем. Собственно и вопросы потом. взял кучу 628А, и один 509, так что попытка будет одна smile

  36. Romick_Калуга
    Цитата (flash)
    Уточни пожалуйста, какой файл HEX ты зашиваешь в контроллер, тот который скачал? Или же сначала комилируешь asm, а потом прошиваешь полученным HEX?

    Ничего я не компилировал. Скачал готовый hex фай, открыл его и зашил. Хочу – снимаю галку CP, не хочу, не снимаю ее. Тогда при проверке кода после прошивки он выдает ошибку, но я не обращаю внимания, ставлю прошитый контроллер в устройство и оно работает без проблем.

  37. Romick_Калуга, Благодарю за подробное разъяснение.

Комментарии закрыты.