Мотор постоянного тока и usb
- Сообщения: 84
- Зарегистрирован: Пн фев 22, 2010 00:09:50
Здравствуйте коты, передо мной стоит задача сделать устройство, которое будет через usb порт управлять моторчиком, запускать его, регулировать скорость вращения и останавливать его, через программу на компьютере. Двигатель пятивольтовый. В интернете поискал, но что-то не нашел ничего хорошего. Может быть здесь мне помогут и подскажут схемку или статью где обсуждался такой вопрос. Я думаю что такое уже кто-то делал раньше.
- Реклама
- Сообщения: 331
- Зарегистрирован: Вс мар 30, 2008 14:31:51
В двух словах.
Создаёте USB HID устройство на микроконтроллере. МК будет с помощью ШИМ регулировать скорость вращения моторчика.
А прога на компе, будет передавать данные о скорости микроконтроллеру.
PS.
Умеете писать проги для компа и контроллера с поддержкой USB?
Создаёте USB HID устройство на микроконтроллере. МК будет с помощью ШИМ регулировать скорость вращения моторчика.
А прога на компе, будет передавать данные о скорости микроконтроллеру.
PS.
Умеете писать проги для компа и контроллера с поддержкой USB?
- Сообщения: 84
- Зарегистрирован: Пн фев 22, 2010 00:09:50
Для комьютера смогу написать смогу, а вот для МК нет, программатора нету.
P.S. А какие контроллеры поддерживают USB?
На каком именно? Я в МК не сильно разбираюсь, поэтому и обратился сюда.Создаёте USB HID устройство на микроконтроллере
P.S. А какие контроллеры поддерживают USB?
- Сообщения: 331
- Зарегистрирован: Вс мар 30, 2008 14:31:51
Не обязательно чтобы контроллер имел "железную" поддержку USB.
Можно обойтись чисто программными средствами. Вот пример
Можно обойтись чисто программными средствами. Вот пример
- Сообщения: 84
- Зарегистрирован: Пн фев 22, 2010 00:09:50
Для регулировки скорости вращения двигателя необходимо изменять напряжение на двигателе. Значит я думаю что устройство должно работать так: компьютер подает сигнал на МК, посредством ШИМ открываем или закрываем транзистор через который идет питание на моторчик. В теории вроде все понятно, но вот реализовать это - для меня сложновато.
- Реклама
- Сообщения: 98
- Зарегистрирован: Сб сен 05, 2009 08:29:53
Вам верно советуют - следует разделить задачи. Часть (умное управление в целом) - свесить на комп, а часть (непосредственное управление мотором и слежение за ним) - навесить на МК.
Самый простой и дешевый способ, это скачать с микрочиповского сайта библиотеку для работы со всякими современными устройствами. В том числе и с USB. Для работы с мотором особо грандиозная скорость не нужна, так что тех возможностей, что спрятаны в микрочиповской библиотеке хватит с головой. Реальные цифры: Generic Device дает скорость MK->PC порядка 256К/сек. Мне этого хватило с головой, потому дальше копать не стал.
Собирается все это лиминтарно, кнопочки-лампочки делаются на ура, софт, прошивки - все имеется, разобраться можно вполне. Если какие вопросы возникнут - всегда велкам
Сделал на макетке "типа запоминающий осциллограф" за 3 дня, большая часть времени ушла на разбирательство с билдером сишным. Кнопочки и лампочки (первый проект) - тоже за неделю замутил, копался в прошивке. Следующая затея - CNC, посмотреть что получится. Сча делаю друзьям такие поделки очень шустро, все нравится, кроме базы - микрочиповский микроконтроллер 
Зы.Сы. Будучи всеже приверженцем Atmel, мечтаю найти подобное для AVR. Если у кого есть инфа - прошу поделиться
Самый простой и дешевый способ, это скачать с микрочиповского сайта библиотеку для работы со всякими современными устройствами. В том числе и с USB. Для работы с мотором особо грандиозная скорость не нужна, так что тех возможностей, что спрятаны в микрочиповской библиотеке хватит с головой. Реальные цифры: Generic Device дает скорость MK->PC порядка 256К/сек. Мне этого хватило с головой, потому дальше копать не стал.
Собирается все это лиминтарно, кнопочки-лампочки делаются на ура, софт, прошивки - все имеется, разобраться можно вполне. Если какие вопросы возникнут - всегда велкам
Зы.Сы. Будучи всеже приверженцем Atmel, мечтаю найти подобное для AVR. Если у кого есть инфа - прошу поделиться
Все будет хорошо, я узнавал!
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Зачем USB-HID? Имхо сие избыточно. Как бы сделал я:
1. К компу подключаем переходник USB-UART. Я бы не изобретал велосипед, и сделал бы переходник на FT232R. Кстати, на ней же можно собрать (почти по той же схеме, просто вывести несколько дополнительных линий) и программатор для AVR, и убить двух зайцев сразу.
2. UART и ШИМ есть почти у всех контроллеров. Ну... Я бы взял что-нибудь из семейства ATtiny, ну, скажем, хрестоматийный ATtiny2313. У него есть UART и четыре канала ШИМ.
3. Полевик, по мощности подходящий к мотору. Возможно, для него понадобится драйвер (в смысле, не .dll или .vxd, а микросхема такая
)
Далее прикручиваем первое и третье ко второму, и пишем программу для МК, которая принимает с UART'а байт и запихивает его в соответствующий регистр таймера, генерирующего ШИМ.
Вот и все.
1. К компу подключаем переходник USB-UART. Я бы не изобретал велосипед, и сделал бы переходник на FT232R. Кстати, на ней же можно собрать (почти по той же схеме, просто вывести несколько дополнительных линий) и программатор для AVR, и убить двух зайцев сразу.
2. UART и ШИМ есть почти у всех контроллеров. Ну... Я бы взял что-нибудь из семейства ATtiny, ну, скажем, хрестоматийный ATtiny2313. У него есть UART и четыре канала ШИМ.
3. Полевик, по мощности подходящий к мотору. Возможно, для него понадобится драйвер (в смысле, не .dll или .vxd, а микросхема такая
Далее прикручиваем первое и третье ко второму, и пишем программу для МК, которая принимает с UART'а байт и запихивает его в соответствующий регистр таймера, генерирующего ШИМ.
Вот и все.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 331
- Зарегистрирован: Вс мар 30, 2008 14:31:51
Почему?YS писал(а):Зачем USB-HID? Имхо сие избыточно.
Да и зачем в этом случае вообще переходник, если расшифровку данных USB, вполе можно возложить на контроллер? Дешевле будет!
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Я за простоту, в данном случае программную.Дешевле будет!
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 331
- Зарегистрирован: Вс мар 30, 2008 14:31:51
Но ведь никто же не просит изобретать велосипед - писать свою библиотеку для USB.YS писал(а):Я за простоту, в данном случае программную.Дешевле будет!
А работать с теми что есть, не сложнее чем с UART'ом.
- Сообщения: 98
- Зарегистрирован: Сб сен 05, 2009 08:29:53
Не знаю еще, как в других микроконтроллерах, а в микрочиповском стеке - даже клоссическое блондинко настрочит необходимо девайсо
И ПКшную часть тоже прикрутиь не проблема. Делай копи-пасте, и вся наука 
Все будет хорошо, я узнавал!
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Просто я еще хочу понимать то, что подвергаю копипасте... А с USB это сложновато...Делай копи-пасте, и вся наука
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 98
- Зарегистрирован: Сб сен 05, 2009 08:29:53
А Вы попробуйте сперва. Я тоже не сразу разобрался с этим проектом - уж больно он закручен, причем зачастую неорпавдано и безосновательно. И тоже плевался и ругался, что ничего не работает, или работает не так, как хочется мне.
На самом деле я никоим образом не призываю к необдуманному копипастенью, ни в коем случае! Вспоините лбой первый проект, не важно с чем и на чем. В любом случае, это было копипасте
Не думаю, что Вы сперва изобрели паяльник, затем текстолит потом и микросхему
Всегда с чего-то приходится начинать, и обычно это что-то делать лучше на примере, который работает. А копипасте... Этот метод я упомянул лишь с тем, что там действительно нет ничего сложного, в переделке (!) какого-то примера под свои нужды. В общем, решать в любом случае Вам.
На самом деле я никоим образом не призываю к необдуманному копипастенью, ни в коем случае! Вспоините лбой первый проект, не важно с чем и на чем. В любом случае, это было копипасте
Все будет хорошо, я узнавал!
Вам сюда: http://www.obdev.at/products/vusb/prjcontrol.html
Примерно то что вам нужно: http://www.schatenseite.de/usb-servo_en.html
Примерно то что вам нужно: http://www.schatenseite.de/usb-servo_en.html
Нельзя всё знать, достаточно понимать.
- Сообщения: 84
- Зарегистрирован: Пн фев 22, 2010 00:09:50
Я уже знаю как подключается МК к ЮСБ, догадываюсь как подсоединить моторчик. Заказал себе атмегу48.
Ну весь интернет перекопал, везде есть какието примеры устройств от юсб, в исходниках куча файлов кроме самой прошивки, например Const_swusb-includes.bas swusb-includes.bas USB_Init.bas USB_Utils.bas. Как вы уже поняли выбрал я Баском.
Может кто нибудь объяснить: за что отвечают эти файлы. Как вызвать какой существует стандартный набор процедур для работы с этим v-usb. Мне нужно понимать как это работает, бессмысленное копирование не для меня. Может я слеп, но ткните меня туда где это можно изучить нормально, а не отрывками собирать, пожалуйста!!!
Ну весь интернет перекопал, везде есть какието примеры устройств от юсб, в исходниках куча файлов кроме самой прошивки, например Const_swusb-includes.bas swusb-includes.bas USB_Init.bas USB_Utils.bas. Как вы уже поняли выбрал я Баском.
Может кто нибудь объяснить: за что отвечают эти файлы. Как вызвать какой существует стандартный набор процедур для работы с этим v-usb. Мне нужно понимать как это работает, бессмысленное копирование не для меня. Может я слеп, но ткните меня туда где это можно изучить нормально, а не отрывками собирать, пожалуйста!!!
- Сообщения: 331
- Зарегистрирован: Вс мар 30, 2008 14:31:51
В первую очередь, прочитайте эту тему от начала и до конца http://bascomavr.3bb.ru/viewtopic.php?id=254pitbullko писал(а):например Const_swusb-includes.bas swusb-includes.bas USB_Init.bas USB_Utils.bas. Как вы уже поняли выбрал я Баском
Const_swusb-includes.bas - файл с обявлением пременных, констант, массивов. Его модифицировать не надо.
Остальные файлы, хз, надо смотреть их содержимое.
- Сообщения: 98
- Зарегистрирован: Сб сен 05, 2009 08:29:53
Мега 48 не содержит в себе аппаратной поддержки USB. Это значит, что весьма значительную часть времени МК придется заниматься программной обработкой сигналов на шине, их анализу и всему прочему. Более того, в этом случае Вам придется досконально изучить, то же там происходит, на шине, а копипастить Вы не желаете
Мне пришлось изучать данный вопрос, не могу сказать, что это легко и непринужденно понимаетс. Тем более с моим английским. А на русском я не нашел инфы. Мой вывод - все-таки предпочтительнее использовать МК с аппаратной поддержкой USB.
Далее, неплохо бы узнать, что может предложить интернет на предмет программной поддержки выбранного диапазона МК. Увы, мне так же не попадалось ничего для AVRов. Зато микрочип просто сияет свой бесплатной поделкой. В корой очень много чего интересного уже написано. Худо-бедно, но это работает. Вполне доступно для понимания (после пары недель вкуривания) и все такое. Мой вывод - берем то, что имеет программную поддержку нашей задумки.
Опять же, вопрос о программной подержке со стороны ПК. Если Вы сможете написать драйвер и все прочее, да чтоб оно еще и работало как надо - респект. Я не способен на такой подвиг. Поэтому выбрал уже готовенькое
Далее смотрим, как все это соотносится с нашими задумками. Если нужно просто управлять мотором (включени/выключение, реверс, скорость вращения, нагрузка на двигатель), то вполне можно реализовать на микрочиповском PIC18F4550. Из обвязки кварц на 20 мегагерц, 1 резистор и 3 конденсатора. Платка уместится под ногами у проца, если это DIP, если TQFP - то на обратной стороне.
Итого. Никого ни к чему не собираюсь призывать, ибо неблагоданое сие есть занятие
Могу лишь дать некоторые практические рекомендации. И поделиться готовыми наработками, если кого заинтересует.
Зы.Сы. Делал на этом девайсе некий аналог USB-осциллографа. Фиговый, надо сказать,вышел осциллограф, потому как программер я фиговый
Но для моих целей он вполне подошел. Делал еще девайс для управления нагрузкой - управляет. Сча вот обдумываю CNC на его базе, тока не приду к выводу, а надо ли оно мне?
В общем, дерзайте, и все у Вас получится 
Далее, неплохо бы узнать, что может предложить интернет на предмет программной поддержки выбранного диапазона МК. Увы, мне так же не попадалось ничего для AVRов. Зато микрочип просто сияет свой бесплатной поделкой. В корой очень много чего интересного уже написано. Худо-бедно, но это работает. Вполне доступно для понимания (после пары недель вкуривания) и все такое. Мой вывод - берем то, что имеет программную поддержку нашей задумки.
Опять же, вопрос о программной подержке со стороны ПК. Если Вы сможете написать драйвер и все прочее, да чтоб оно еще и работало как надо - респект. Я не способен на такой подвиг. Поэтому выбрал уже готовенькое
Далее смотрим, как все это соотносится с нашими задумками. Если нужно просто управлять мотором (включени/выключение, реверс, скорость вращения, нагрузка на двигатель), то вполне можно реализовать на микрочиповском PIC18F4550. Из обвязки кварц на 20 мегагерц, 1 резистор и 3 конденсатора. Платка уместится под ногами у проца, если это DIP, если TQFP - то на обратной стороне.
Итого. Никого ни к чему не собираюсь призывать, ибо неблагоданое сие есть занятие
Зы.Сы. Делал на этом девайсе некий аналог USB-осциллографа. Фиговый, надо сказать,вышел осциллограф, потому как программер я фиговый
Все будет хорошо, я узнавал!
- Сообщения: 331
- Зарегистрирован: Вс мар 30, 2008 14:31:51
Ну и что?Abadonna писал(а):Мега 48 не содержит в себе аппаратной поддержки USB. Это значит, что весьма значительную часть времени МК придется заниматься программной обработкой сигналов на шине, их анализу и всему прочему.
Ведь обороты моторчика будут именяться с помощью аппаратного ШИМа, а контроллер будет большую часть времени "спать". Вот пусть он не спит, а обрабатывает данные шины USB.
Выйдет дороше и достать контроллер с аппаратным модулем USB, сложнее чем обычный, без этого модуля.Abadonna писал(а):Мой вывод - все-таки предпочтительнее использовать МК с аппаратной поддержкой USB.
Для USB устрйств, классов CDC и HID не нужно писать дрова. Без этого все отлично работает.Abadonna писал(а):Опять же, вопрос о программной подержке со стороны ПК. Если Вы сможете написать драйвер и все прочее, да чтоб оно еще и работало как надо - респект.
А УСБ влезет в 4кб атмеги48? Я бы поставил усб-уарт все таки.
У меня проект на М48 - программный ЮСБ, 6 каналов ШИМ и 12 логических выходов. И ещё место остаётся! И это всё на бейсике.BCluster писал(а):А УСБ влезет в 4кб атмеги48? Я бы поставил усб-уарт все таки.


