Хотелось бы собрать это чудо для подключения через USB 2.0 или 3.0

Совершенно не разбираюсь в том как оно работает, может кто подскажет что почитать? Желательно не "Войну и мир", а что нибудь покороче, но не менее содержательное, возможно видео-уроки или статьи с примерами.

задан 5 Сен '11 4:31

добавил в ответ - комменты закончились

(9 Сен '11 3:34) Алексей Сонькин

Если он подключается к компу не только для питания, но и для управления, то в оном приборе можно выделить несколько частей:

Светодиодная часть - каждый этаж имеет свою землю, которую можно выбирать открытием связанного с ней транзистора, каждый светодиод в матрице (и, соответствующие ему на иных этажах) подключён к выводу сдвигового регистра (или чему-то аналогичному) для независимого управления ими. У контроллеров так как столько свободных ног обычно не имеется.

В принципе, можно все светодиоды подключить к сдвиговому регистру независимо, но стоит учитывать, что потребляемый ток будет большой, ежели их будет много (из расчёта 20 мА на светодиод) - комп может столько и не дать (ограничение на порт в USB 2.0 - 500 мА).

Управление светодиодами будет происходить по следующему принципу: загрузим данные этажа в сдвиговый регистр, включим транзистор нужной земли (нужного этажа), подождём, и так для всех этажей по очереди очень быстро - это называется "динамическая индикация". Если сдвиговый регистр один и очень длинный, то нужно просто обновлять в нём содержимое всего куба. Если частота обновления достаточно высока (контроллер шустр), то можно даже делать полутона - пропускать периоды свечения отдельных светодиодов (горит, допустим, 1 период из 4 - 25% яркости).

Программа контроллера всё это и определяет - как кому и когда светиться, переключать этажи и пытаться сделать это красиво - если она независима от компьютера.

Так вот, "динамическая индикация" требует всех ресурсов процессорного времени контроллера USB-стек вещь непростая и программная его реализация тут поможет мало - ей тоже ресурсы процессора нужны и возможность ответить компьютеру вовремя (иначе Unknown Device будет). Нужен контроллер с железным USB. Такие есть и у Atmel'a, и ARMов дофига.

Ну и третий компонент - драйвер и программа управления. Можно написать свой протокол и драйвер. Можно использовать стандартный HID (с его ограничениями по скорости, разумеется), или libusb - тут драйвер позволяет передавать запросы устройству непосредственно из программы. Обычно, это самый простой способ связать комп и устройство.

Вот, но это надо определяться, когда вы решите, нужно ли вам USB, какой это будет контроллер и какой способ для компьютера вам подходит больше.

Ссылки на проекты:

Конкретных книг предложить не могу - т.к. это сильно зависит от того, что будет выбрано для построения. Да и я не сильно много книг читал, так что у меня чересчур ограниченная выборка. Но могу посоветовать вот этот торрент с кучей литературы: Микроконтроллеры (AVR, ARM, MCS51, PIC, ПЛИС и т.д.). Сборка книг - (256 книг+ 27 CD c примерами из книг). Ещё хочу заметить, что существуют отладочные комплекты, когда микроконтроллер уже на схеме распаян, там имеется программатор и всё необходимое. Ну и на сайте производителя куча примеров и введений в программирование оной штуки. Расчёт аналоговой части (потребляемый ток, какие транзисторы ставить по частоте, току и т.д.) - это уже отдельный вопрос =) Для понимания просто работы электрических схем, можно почитать учебник Сворень "Электроника - шаг за шагом". Как-то так. Там очень популярно все основы описаны, и мне понравилась книга.

отвечен 5 Сен '11 12:11

изменен 8 Сен '11 22:01

А есть что нибудь о USB 3.0 насколько я помню у него скорость намного выше?

(5 Сен '11 22:08) Сергей

Да, но я пока не встречал контроллеров, в которых он был бы реализован =) Я даже сомневаюсь, что у вас получится выжать с ARMом, например, седьмым, даже всю скорость USB2.0. Хотя, если вы будете использовать программируемую логику - то вполне может быть =)

Хотя я не думаю, что это имеет смысл. Лед-куб - это не монитор же, там даже если 30-60 fps, то много ли данных нужно передать о состоянии всех светодиодов?

(5 Сен '11 23:08) Алексей Сонькин

Ну да для маленьких наверное так и есть. А что если он цветной? Там же по идее передается координата и яркость? Если смотреть куб с ребром 10, получается 3000 значений. Если прикинуть на 60 fps получится 180 000 значений в секунду. Т.е. это число надо домножить на размер одного значения. Не забыв про то, что если куб 3х-цветный то 3 яркости. USB 2.0 тянет? Я шарю в программировании, но не в таких подробностях)

(7 Сен '11 7:25) Сергей

Ну, медленный контроллер большое количество точек просто не потянет - не успеет сосчитать/отправить... Да и памяти не хватит (3000 лишних байт не у каждого есть) Но тут вопрос, как управлять такой оравой светодиодов, чтоб обеспечить достаточное кол-во полутонов =) Надо ж переключать этажи - хотя бы по разу на фрейм, да ещё каждый этаж проморгать как следует (без моргания не будет полутонов) - наверное, с помощью BAM (Binary angle modulation).

Про канал. 3000 значений, 8 бит значение, 60 fps, 1,4 мбит. На грани USB 2 LS, но у Full-Speed 12 МБит. Hi-Speed - и того больше. USB-вебки ж существуют

(7 Сен '11 9:54) Алексей Сонькин

А можно как то распределить нагрузку по включению LED'ов на несколько контроллеров?

(7 Сен '11 20:27) Сергей

Да можно... Только цена и сложность схемы соответственно возрастёт .з. В конце-концов, во всех нормальных контроллерах есть DMA для быстрой передачи данных от интерфейса к интерфейсу (или памяти).

(7 Сен '11 21:38) Алексей Сонькин

А, единичное. Для начала попробуйте собрать маленький куб 4х4, например, одноцветный по статье. А литература. Во-первых, даташиты (там про устройства контроллера написано. DMA - прямой доступ к памяти, когда контроллер без участия ядра и программы копирует память откуда-то куда-то) и программинг мануалы по выбранному контроллеру. По языку. Если писать С, то вы знаете его, но просто уточнить тонкости и директивы компилятора, ежели они есть, если HDL какой-нибудь, то вот по нему (язык описания программируемой логики). Ну и основы цифровой/силовой схемотехники? И про протоколы. SPI, например.

(8 Сен '11 15:47) Алексей Сонькин

А можно конкретные книги?

(8 Сен '11 21:36) Сергей

Смотря какой куб, и какие эффекты. Могу посоветовать например Тини2313, по ножкам должно совпасть. А вообще желательно конечно такие вещи спрашивать на специализированных форумах. Например easyelectronics.ru

отвечен 17 Сен '11 9:35

1

Каким местом и с чем он может совпасть? =) Даже USB 2.0 там не запилишь, памяти там кот наплакал - что такое 128 байт срама? Флеша 2 кб - большая программа не залезет, скорость убогая - 20 МГц (и столько же мипсов).

3000 светодиодов он даже близко не сможет осилить. (10х10х10х3 )

(17 Сен '11 14:38) Алексей Сонькин

Здравствуйте

БитКод - это совместно редактируемый форум вопросов и ответов для продвинутых пользователей компьютерной техники.

Присоединяйтесь!

отмечен:

×3
×1

задан
5 Сен '11 4:31

показан
4321 раз

обновлен
17 Сен '11 14:38

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru