Мотор постоянного тока и usb

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Пн фев 22, 2010 00:09:50

Сообщение pitbullko »

Здравствуйте коты, передо мной стоит задача сделать устройство, которое будет через usb порт управлять моторчиком, запускать его, регулировать скорость вращения и останавливать его, через программу на компьютере. Двигатель пятивольтовый. В интернете поискал, но что-то не нашел ничего хорошего. Может быть здесь мне помогут и подскажут схемку или статью где обсуждался такой вопрос. Я думаю что такое уже кто-то делал раньше.
Контактная информация:
Реклама
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

В двух словах.
Создаёте USB HID устройство на микроконтроллере. МК будет с помощью ШИМ регулировать скорость вращения моторчика.
А прога на компе, будет передавать данные о скорости микроконтроллеру.

PS.
Умеете писать проги для компа и контроллера с поддержкой USB?
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Пн фев 22, 2010 00:09:50

Сообщение pitbullko »

Для комьютера смогу написать смогу, а вот для МК нет, программатора нету.
Создаёте USB HID устройство на микроконтроллере
На каком именно? Я в МК не сильно разбираюсь, поэтому и обратился сюда.

P.S. А какие контроллеры поддерживают USB?
Контактная информация:
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Не обязательно чтобы контроллер имел "железную" поддержку USB.
Можно обойтись чисто программными средствами. Вот пример
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Пн фев 22, 2010 00:09:50

Сообщение pitbullko »

Для регулировки скорости вращения двигателя необходимо изменять напряжение на двигателе. Значит я думаю что устройство должно работать так: компьютер подает сигнал на МК, посредством ШИМ открываем или закрываем транзистор через который идет питание на моторчик. В теории вроде все понятно, но вот реализовать это - для меня сложновато.
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Сообщение Abadonna »

Вам верно советуют - следует разделить задачи. Часть (умное управление в целом) - свесить на комп, а часть (непосредственное управление мотором и слежение за ним) - навесить на МК.
Самый простой и дешевый способ, это скачать с микрочиповского сайта библиотеку для работы со всякими современными устройствами. В том числе и с USB. Для работы с мотором особо грандиозная скорость не нужна, так что тех возможностей, что спрятаны в микрочиповской библиотеке хватит с головой. Реальные цифры: Generic Device дает скорость MK->PC порядка 256К/сек. Мне этого хватило с головой, потому дальше копать не стал.

Собирается все это лиминтарно, кнопочки-лампочки делаются на ура, софт, прошивки - все имеется, разобраться можно вполне. Если какие вопросы возникнут - всегда велкам :) Сделал на макетке "типа запоминающий осциллограф" за 3 дня, большая часть времени ушла на разбирательство с билдером сишным. Кнопочки и лампочки (первый проект) - тоже за неделю замутил, копался в прошивке. Следующая затея - CNC, посмотреть что получится. Сча делаю друзьям такие поделки очень шустро, все нравится, кроме базы - микрочиповский микроконтроллер :)

Зы.Сы. Будучи всеже приверженцем Atmel, мечтаю найти подобное для AVR. Если у кого есть инфа - прошу поделиться :)
Все будет хорошо, я узнавал!
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Зачем USB-HID? Имхо сие избыточно. Как бы сделал я:

1. К компу подключаем переходник USB-UART. Я бы не изобретал велосипед, и сделал бы переходник на FT232R. Кстати, на ней же можно собрать (почти по той же схеме, просто вывести несколько дополнительных линий) и программатор для AVR, и убить двух зайцев сразу.

2. UART и ШИМ есть почти у всех контроллеров. Ну... Я бы взял что-нибудь из семейства ATtiny, ну, скажем, хрестоматийный ATtiny2313. У него есть UART и четыре канала ШИМ.

3. Полевик, по мощности подходящий к мотору. Возможно, для него понадобится драйвер (в смысле, не .dll или .vxd, а микросхема такая :) )

Далее прикручиваем первое и третье ко второму, и пишем программу для МК, которая принимает с UART'а байт и запихивает его в соответствующий регистр таймера, генерирующего ШИМ.

Вот и все.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

YS писал(а):Зачем USB-HID? Имхо сие избыточно.
Почему?
Да и зачем в этом случае вообще переходник, если расшифровку данных USB, вполе можно возложить на контроллер? Дешевле будет!
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Дешевле будет!
Я за простоту, в данном случае программную.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

YS писал(а):
Дешевле будет!
Я за простоту, в данном случае программную.
Но ведь никто же не просит изобретать велосипед - писать свою библиотеку для USB. :)))
А работать с теми что есть, не сложнее чем с UART'ом. :)
Встал на лапы
Аватара пользователя
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Сообщение Abadonna »

Не знаю еще, как в других микроконтроллерах, а в микрочиповском стеке - даже клоссическое блондинко настрочит необходимо девайсо :kiss: И ПКшную часть тоже прикрутиь не проблема. Делай копи-пасте, и вся наука :)
Все будет хорошо, я узнавал!
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Делай копи-пасте, и вся наука
Просто я еще хочу понимать то, что подвергаю копипасте... А с USB это сложновато...
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Сообщение Abadonna »

А Вы попробуйте сперва. Я тоже не сразу разобрался с этим проектом - уж больно он закручен, причем зачастую неорпавдано и безосновательно. И тоже плевался и ругался, что ничего не работает, или работает не так, как хочется мне.

На самом деле я никоим образом не призываю к необдуманному копипастенью, ни в коем случае! Вспоините лбой первый проект, не важно с чем и на чем. В любом случае, это было копипасте :) Не думаю, что Вы сперва изобрели паяльник, затем текстолит потом и микросхему :) Всегда с чего-то приходится начинать, и обычно это что-то делать лучше на примере, который работает. А копипасте... Этот метод я упомянул лишь с тем, что там действительно нет ничего сложного, в переделке (!) какого-то примера под свои нужды. В общем, решать в любом случае Вам.
Все будет хорошо, я узнавал!
Вымогатель припоя
Аватара пользователя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Сообщение mr_smit »

Вам сюда: http://www.obdev.at/products/vusb/prjcontrol.html

Примерно то что вам нужно: http://www.schatenseite.de/usb-servo_en.html
Нельзя всё знать, достаточно понимать.
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Пн фев 22, 2010 00:09:50

Сообщение pitbullko »

Я уже знаю как подключается МК к ЮСБ, догадываюсь как подсоединить моторчик. Заказал себе атмегу48.
Ну весь интернет перекопал, везде есть какието примеры устройств от юсб, в исходниках куча файлов кроме самой прошивки, например Const_swusb-includes.bas swusb-includes.bas USB_Init.bas USB_Utils.bas. Как вы уже поняли выбрал я Баском.
Может кто нибудь объяснить: за что отвечают эти файлы. Как вызвать какой существует стандартный набор процедур для работы с этим v-usb. Мне нужно понимать как это работает, бессмысленное копирование не для меня. Может я слеп, но ткните меня туда где это можно изучить нормально, а не отрывками собирать, пожалуйста!!! :cry:
Контактная информация:
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

pitbullko писал(а):например Const_swusb-includes.bas swusb-includes.bas USB_Init.bas USB_Utils.bas. Как вы уже поняли выбрал я Баском
В первую очередь, прочитайте эту тему от начала и до конца http://bascomavr.3bb.ru/viewtopic.php?id=254
Const_swusb-includes.bas - файл с обявлением пременных, констант, массивов. Его модифицировать не надо.
Остальные файлы, хз, надо смотреть их содержимое.
Встал на лапы
Аватара пользователя
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Сообщение Abadonna »

Мега 48 не содержит в себе аппаратной поддержки USB. Это значит, что весьма значительную часть времени МК придется заниматься программной обработкой сигналов на шине, их анализу и всему прочему. Более того, в этом случае Вам придется досконально изучить, то же там происходит, на шине, а копипастить Вы не желаете :) Мне пришлось изучать данный вопрос, не могу сказать, что это легко и непринужденно понимаетс. Тем более с моим английским. А на русском я не нашел инфы. Мой вывод - все-таки предпочтительнее использовать МК с аппаратной поддержкой USB.
Далее, неплохо бы узнать, что может предложить интернет на предмет программной поддержки выбранного диапазона МК. Увы, мне так же не попадалось ничего для AVRов. Зато микрочип просто сияет свой бесплатной поделкой. В корой очень много чего интересного уже написано. Худо-бедно, но это работает. Вполне доступно для понимания (после пары недель вкуривания) и все такое. Мой вывод - берем то, что имеет программную поддержку нашей задумки.
Опять же, вопрос о программной подержке со стороны ПК. Если Вы сможете написать драйвер и все прочее, да чтоб оно еще и работало как надо - респект. Я не способен на такой подвиг. Поэтому выбрал уже готовенькое :)
Далее смотрим, как все это соотносится с нашими задумками. Если нужно просто управлять мотором (включени/выключение, реверс, скорость вращения, нагрузка на двигатель), то вполне можно реализовать на микрочиповском PIC18F4550. Из обвязки кварц на 20 мегагерц, 1 резистор и 3 конденсатора. Платка уместится под ногами у проца, если это DIP, если TQFP - то на обратной стороне.

Итого. Никого ни к чему не собираюсь призывать, ибо неблагоданое сие есть занятие :) Могу лишь дать некоторые практические рекомендации. И поделиться готовыми наработками, если кого заинтересует.

Зы.Сы. Делал на этом девайсе некий аналог USB-осциллографа. Фиговый, надо сказать,вышел осциллограф, потому как программер я фиговый :) Но для моих целей он вполне подошел. Делал еще девайс для управления нагрузкой - управляет. Сча вот обдумываю CNC на его базе, тока не приду к выводу, а надо ли оно мне? :) В общем, дерзайте, и все у Вас получится :)
Все будет хорошо, я узнавал!
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Abadonna писал(а):Мега 48 не содержит в себе аппаратной поддержки USB. Это значит, что весьма значительную часть времени МК придется заниматься программной обработкой сигналов на шине, их анализу и всему прочему.
Ну и что?
Ведь обороты моторчика будут именяться с помощью аппаратного ШИМа, а контроллер будет большую часть времени "спать". Вот пусть он не спит, а обрабатывает данные шины USB.
Abadonna писал(а):Мой вывод - все-таки предпочтительнее использовать МК с аппаратной поддержкой USB.
Выйдет дороше и достать контроллер с аппаратным модулем USB, сложнее чем обычный, без этого модуля.
Abadonna писал(а):Опять же, вопрос о программной подержке со стороны ПК. Если Вы сможете написать драйвер и все прочее, да чтоб оно еще и работало как надо - респект.
Для USB устрйств, классов CDC и HID не нужно писать дрова. Без этого все отлично работает.
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

А УСБ влезет в 4кб атмеги48? Я бы поставил усб-уарт все таки.
Контактная информация:
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск

Сообщение Radan »

BCluster писал(а):А УСБ влезет в 4кб атмеги48? Я бы поставил усб-уарт все таки.
У меня проект на М48 - программный ЮСБ, 6 каналов ШИМ и 12 логических выходов. И ещё место остаётся! И это всё на бейсике. :))
Контактная информация:
Ответить

Вернуться в «Интеграция с ПК»