Это и есть контроллер, просто люблю умно выражатья...
На самом деле процедура, допустим, прорисовки текста энным шрифтом тоже называется "рендеринг".
мда.... век живи век учыс....
яркость светодиода зависит от тока по логарифму (с кучей коэффициентов - но главное что абсолютно нелинейно). Поэтому все цапы - вон. Яркостью управлять только ШИМом (временем включения точки).
Думал я об этом давно ишо... Пришел к выводу, что нельзя. Причина - (по моему) в след.:
Если ШИМ не сглаживать кондером - точка будет дробиться (конечно, можно частоту повыше, но на столько каналов на такой частоте у меня никаких ресурсов не хватит, а ПЛИСину не хочу, имхо не умею я... пока). А если сглаживать - фронты мазаться будут
10-20 оборотов в секунду, 100 точек на оборот (пи*дэ - чтоб пиксел был 1х1 - если 30 светодиодов по высоте, то 30*3,14)
итого частота обновления по вертикали 20*100=2000 Гц или 0,5 мс - не понял, неужели нельзя организовать 5 циклов (каждая точка по 5 раз обновляется) по 0-0,1 мс ШИМ с 10% градацией, т.е. 10 мкс? Шим будет ОДИН, синхронизирован по всем выходам, просто загрузки много - всего 12 байт переслать раз в 500 мкс, 1 раз в 100 мкс организовать ОДИН отсчет от 0 до 10 и один раз в 10 мкс наложить на 12 (3 цвета по 32 светодииода) байт маску????
ИМХО очень не сложно....
кондеры - вон, бо светодиод светится от ТОКА, если надо чего сглаживать, тебе нужны ДРОССЕЛИ..... и еще.... дрожание точки по развертке будет 360/(5*100)=чуть больше полуградуса дуги.... ты уверен, что механические биения от вращения будут меньше???
Я в курсе про нелинейности, но пришел к выводу, что проще сделать табличку, и, соответственно хар-ку "залинеить", пусть даже свою под каждый вид светодиодов.
и как тебе будет раз в 100 мкс выбирать из таблицы для КАЖДОГО светодиода по байту (итого 96 шт) и ещё это в ЦАП совать? и где тебе этих 96 цапов (или УВХ) иметь и питать придется?
А зачем несущая при модуляции питания? Да еще столько килогерц.... там дистанция в 10 см, затухания не будет.... Если для питания использовать напряжение заведомо большее (например вольт 20-30), и модулировать его просто нулем/единичкой с уровнями "0"=20В "1"=30В. Ток при этом будет пропорционально ниже - 50-70ма....
Про это поподробнее...
представь мощный RS232 у которого уровень "1" не -12, а +30В, "0" - +20В. А ток в 100 ма
Неужели сложно реализовать? будешь одновременно от него и питаться и инфу снимать....
Понимаешь, я до сих пор не знаю, понадобится ли мне обратный канал, но такой возможности пока исключить нельзя по крайней мере в перспективе. А с модуляцией питания разделение каналов можно только временное, которое реализуется не в пример сложнее - арбитраж, синхронизация, фреймы - бяка всякая. А тут - частоту пододвинул, и вперед, с песней...
зачем? арбитраж чего? и обратный канал? не доезжаю.... если сия штука стоит и крутится, что она должна сообщать? только если аварию.... т.е. большого массива данных в обратном канале не предвидится.... поступай просто, - ставь обратный датчик синхронизации, который смотрит, что она крутится.... а если надо еще что передать - сразу после момента синхронизации (который знают обе части схемы внутренняя и наружная) дергай ток потребления. Т.е. связь внутрь по напряжению, наружу - по току.... и всё.
контроллер интерфейса неподвижной части - вообще не нужет
А кнопочки-пимпочки куда??? На диск??? (О, можно ОДНУ. В ЦЕНТЕР!!!:lol
. Хотелось бы иногда сей девайс отправлять в автономный полет, без PC.
так памяти внутрь побольше.... загрузил ея разок в внутреннюю EEPROM и всё.... Зачем кнопки кроме питания?
На выходы контроллера - светодиоды.
Хм... 3 канала, по 64 (пусть даже 32) светодиода в каждом... Многовато ног получается для одного контроллера. (Про ПЛИС я уже говорил).Вот для этого я придумал каналы. Мое упущение, что не пояснил сразу. Канал - по сути громко сказано - ето просто устройство, которое по синхроимпульсу вытаскивает из памяти следующий столбец и защелкивает на регистрах ЦАПов.
Контроллеры разные бывают..... просто городить внешнюю шину - это усложнение программы (лишненее время на передачу). ПЛИС.... я бы связывался, только если б сие в серию шло.... а так гибше получится...
Думал я объединить эти функции с основным контроллером, но потом пришел к выводу, что проще засунуть один раз данные в память, и забыть, а простенькие каналы "железные - пущай считают".
аппаратно?????
мда... а вес вращающейся части не пугает???? цена? и ея потребления? 192 цапа.... они ж аналоговые, значит КПД связки ЦАПА-УСИЛИТЕЛЬ ТОКА - СВЕТОДИОД меньше 50% - почти гравицапа получяется.... не боишься погореть? 
Дело в том, что работа этого блока очень критична по времени, и поэтому его намного проще реализовать в маленьком хиленьком 12F629, но отдельно, чем в составе большой программы, где и так не знаешь, где бы ишо пару мелкосекунд лишних выковырять.
именно поэтому его и надо вводить по приоритетному прерыванию в ОСНОВНОЙ цикл, т.е. эта первая функция основного контроллера, иначе тебе придется городить фапч синхронизации маленького пика и того, что строит картинку... если конечно не хочешь, чтоб она (картинка) дергалась....