Специалист
Регистрация: 24.06.2012
Адрес: Сочи
Сообщений: 1,586
Репутация: 343
![]() ![]() ![]() ![]() |
![]()
Последний раз редактировалось SHUR66; 16.03.2014 в 00:43.
|
||
Оценка
|
Новичок
Регистрация: 12.03.2014
Сообщений: 11
Репутация: 10
![]() |
Цитата:
Полагаю что не так уж всё сложно.
Думается, у топикстартера есть опыт программирования под Windows. Delphi, Visual Studio? И видимо затруднения с железом. Иначе с чего бы делать ударение на светодиодах. Тогда поступайте как рекомендуют выше: аппаратно ставьте USB-UART преобразователь -> МК -> цепочку сдвиговых регистров -> светодиоды. Программа под МК строчек на 30-40 (на Си). С освоением помогут на форуме. В конце концов есть учебники. Стоить железо будет 10-20$. Со стороны ПК это выглядит так: если выбрали что-то из FTDI, например, устанавливаете драйвер на микросхему USB-UART преобразователя и далее общаетесь из привычной среды с внешним МК как с COM портом (в дистпетчере задач появится виртуальный COM порт). Шлёте из основной программы на ПК в этот COM порт 1-байтовые переменные, где всё что не "горит" нули, остальное единицы. МК их принимает и простой проверкой нулей и единиц "выгоняет" эти переменные одна за другой в сдвиговые регистры. Например, самые любимые среди радиолюбителей 74HC595. Но хоть делается это, в принципе, за пару часов, если опыта нет вообще, то как и говорили старейшины выше, нахрапом не взять. Примерный набросок ПО: с достаточно хорошей частотой (30-50fps) происходит сканирование 88 зон дисплея с распознавание 3 типов данных: зелёного спектра, синего и зоны, где нет данных спектров. Для одного полного цикла программа сканирует 88 зон дважды: 1 раз,- под правую руку, т.е. когда активны последние 11 сдвиговых регистров,- зелёный цвет означает логическую 1-цу, синий и "пустые" зоны - логический ноль. Второй раз,- под левую руку,- синий - 1, зелёный и "пусто" - ноль. Решил, что легче будет выполнить последовательное подключение всех 22 регистров, потому что аппаратно, мне показалось, сложно выполнить селектирование сигналов на две линии. С каким содержанием следует написать программу для мк (ATmega48p_32pin)? Приложение, что бы лучше понимать, о чём идёт речь: |
||
Оценка
|
Специалист
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 873
Репутация: 381
![]() ![]() ![]() ![]() |
Ух-ты, становится всё интереснее.
Даже не знаю что сказать. Ну, например, С# на платформе .NET http://msdn.microsoft.com/ru-ru/library/z1zx9t92.aspx С++ под .NET http://msdn.microsoft.com/ru-ru/library/60k1461a.aspx C++ c MFC, в этом случае с интерфейсом по сложнее будет http://msdn.microsoft.com/ru-ru/library/hh967573.aspx ну и десятки других «взаимопроникающих» вариаций. Очень сложно что-либо рекомендовать. Ведь у Вас, по сути, лишь «наклёвывается» задание. Угадывается виртуальное пианино http://www.virtualpiano.net/, но с «тактильным» продолжением в виде светодиодов. Сколько планируете потратить времени на разработку и... изучение? Сразу заgoogleте open source проекты по типу «MIDI applications С# , C++, virtual piano, .NET framework» – думаю найдётся не один десяток «почти готовых» проектов на том же http://sourceforge.net/ Во всяком случае, посмотрите как делается. C МК, как раз, всё просто. На этом, судя по постановке вопросе, пока и заморачиваться не стоит. Где-то в программе откроете порт, настроите DataBits, BaudRate, DataParity, TimeoutTx и прочие параметры. Т.е. «общение» с COM портом особых сложностей почти никогда не вызывает. Может, пока отложите железо в сторону и вернётесь к блок-схеме программы МК после? Ограничьтесь виртуальным COM портом, программ сотни. В большинстве эмуляторов, кроме того, есть терминалы, сможете наблюдать, что Ваша программа отсылает. А потом уже, после отладки потока данных, «прикрутите» к приложению светодиодные линейки. Лучше на два фронта не воевать :-), учитывая объём предстоящих работ.
Последний раз редактировалось antonydublin; 22.03.2014 в 02:35.
|
||
Оценка
|
Паятель
Сообщений: n/a
|
Можно исключить конвертер USB to COM подключив МК предложенный ТС (ATmega48p_32pin) непосредственно к USB порту компьютера.
За основу можно взять это устройство немного изменив схему и программу. |
||
Специалист
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 873
Репутация: 381
![]() ![]() ![]() ![]() |
Да, можно обойтись без преобразователя. Но на сколько реализация хоть и не полноценного HID устройства (для новичка) проще общения с COM портом? Тем не менее, стоит напомнить про AVR309 appnote и много других тематических доков. А также МК Atmel серий Atmega8/16/32_U (с буквой U, например Atmega8U), AT90USB, ATUC64/256, ATxmega64/256, AT32UC3, МК ST серии STM32 и на 99% все другие МК на ядре ARM со встроенным аппаратным USB.
А также вот эта книга может пригодиться: Агуров. Интерфейс USB. Практика использования и программирования.
Последний раз редактировалось antonydublin; 23.03.2014 в 20:25.
|
||
Оценка
|
Паятель
Сообщений: n/a
|
Цитата:
Но на сколько реализация хоть и не полноценного HID устройства (для новичка) проще общения с COM портом?
Цитата:
А также МК Atmel серий Atmega8/16/32_U (с буквой U, например Atmega8U), AT90USB, ATUC64/256, ATxmega64/256, AT32UC3, МК ST серии STM32 и на 99% все другие МК на ядре ARM со встроенным аппаратным USB.
|
||
Гуру
Регистрация: 08.05.2006
Адрес: москва
Сообщений: 8,301
Репутация: 2223
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Пожалуй следует ознакомиться с "бегущей строкой". http://radiokot.ru/circuit/light/run/44/
|
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |