Светодиодный куб (LedCube 5x5x5) - первые наброски
Добавлено: Чт апр 09, 2009 21:58:30
Вообщем решил сделать себе кубик развлечения ради, пересмотрел кучу роликов и решил что мне нужен кубик 5х5х5
светодиодов и возможно не с одним цветом свечения.
Зачем мне это вообще надо?
На это есть несколько причин:
1) Хочу освоить микроконтроллеры (знаю язык С++, но охото попробовать себя в новом направлении), а тренироваться по
стандартным задачам с мигающим светодиодом не хочу. Здесь практически та же мигалка - но немного сложнее.
2) Хочу использовать этот кубик как визуализацию для винампа.
... есть конечно и другие причины, иначе я бы не стал этим заниматься.
Вообщем начал я с принципа потроения изображения. Прямая индикация мне не годилась, так как количество ножек у МК
ограничено. Решил подумать что же можно сделать, и решил использовать динамическую индикацию по строкам. Тоесть в
один момент времени горит только одна строка. В пересчёте на 30 кадров в секунду и 25 строк в кубике, на 1 строку
выйдет около 1 миллисекунды. Для 10 мегагерцового контроллёра работать на такой скорости это раз плюнуть, светодиоды
тоже поидее должны выдержать такой ритм работы.
Вообщем накидал я небольшую программу и схему. Ну и конечно же прогнал это дело в протеусе. Он естественно руганулся
что не может симулировать работу в реальном времени, но даже при такой скорости смотрится вполне прилично. И вот тут
меня начали мучать подозрения, я же ещё не разобрался с работой UART. Смогу ли я прилепить его к своей программе?
Или может кто посоветует другой принцип организации вывода графики?
PS Небольшое пояснение по схеме: В ней будут использоваться двухцветные светодиоды, и есть желание получить ещё и
жёлтый цвет (путём одновременного зажигания зелёного и красного), поэтому использованно именно такое включение
матриц. Микроконтроллер взят с запасом по памяти в виду того что устройство сможет работать и без компьютера, выводя
пару-тройку динамичных эффектов.
Небольшое пояснение по программе: Большой трёхмерный массив описывает данные, 25 строк описывают кадр, последняя 26
описывает {число повторений кадра,конец программы (если 255)}. Учтите, кадр отрисовывается за 25 миллисекунд!
Вот вроде и все наброски по теме, жду предложений
светодиодов и возможно не с одним цветом свечения.
Зачем мне это вообще надо?
На это есть несколько причин:
1) Хочу освоить микроконтроллеры (знаю язык С++, но охото попробовать себя в новом направлении), а тренироваться по
стандартным задачам с мигающим светодиодом не хочу. Здесь практически та же мигалка - но немного сложнее.
2) Хочу использовать этот кубик как визуализацию для винампа.
... есть конечно и другие причины, иначе я бы не стал этим заниматься.
Вообщем начал я с принципа потроения изображения. Прямая индикация мне не годилась, так как количество ножек у МК
ограничено. Решил подумать что же можно сделать, и решил использовать динамическую индикацию по строкам. Тоесть в
один момент времени горит только одна строка. В пересчёте на 30 кадров в секунду и 25 строк в кубике, на 1 строку
выйдет около 1 миллисекунды. Для 10 мегагерцового контроллёра работать на такой скорости это раз плюнуть, светодиоды
тоже поидее должны выдержать такой ритм работы.
Вообщем накидал я небольшую программу и схему. Ну и конечно же прогнал это дело в протеусе. Он естественно руганулся
что не может симулировать работу в реальном времени, но даже при такой скорости смотрится вполне прилично. И вот тут
меня начали мучать подозрения, я же ещё не разобрался с работой UART. Смогу ли я прилепить его к своей программе?
Или может кто посоветует другой принцип организации вывода графики?
PS Небольшое пояснение по схеме: В ней будут использоваться двухцветные светодиоды, и есть желание получить ещё и
жёлтый цвет (путём одновременного зажигания зелёного и красного), поэтому использованно именно такое включение
матриц. Микроконтроллер взят с запасом по памяти в виду того что устройство сможет работать и без компьютера, выводя
пару-тройку динамичных эффектов.
Небольшое пояснение по программе: Большой трёхмерный массив описывает данные, 25 строк описывают кадр, последняя 26
описывает {число повторений кадра,конец программы (если 255)}. Учтите, кадр отрисовывается за 25 миллисекунд!
Вот вроде и все наброски по теме, жду предложений