0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103

STM32F4 как крутить сервопривод?

02.03.2013, 08:23. Показов 18887. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Взял пример работы с шимом, вроде лампочки моргают... так как лампочки находятся на портах PD 12-15
Я переконфегурировал порты на 1-2, подключил серву к PD1, но не какой реакций =(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2013, 08:23
Ответы с готовыми решениями:

STM32F4+сервопривод+ШИМ
Начал разбираться с таймерами и шим. Диоды плавно зажигал и гасил без проблем. Решил завести под это дело сервопривод. Во-первых я не...

stm32f4-discovery - не двигается сервопривод
Долго мучаюсь не могу двинуть серву. подскажите пожалуйста что не так.(серва подключена к ножке PB11) #include "stm32f4xx.h"...

как крутить двигатель туда и сюда микроконтроллером
вытащил я моторчик из детской игрушки, довольно резво крутиться от батарейки и при смене полярности меняет направление. можно ли...

24
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
02.03.2013, 08:50
Сервоприводы MG995
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
02.03.2013, 10:29
Подцепил на таймер 1, и ножку PB0, в даташите указана именно эта ножка
но рякций нет =(
0
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 45
02.03.2013, 21:07
может частота ШИМа не та (в коде не смотрел)? если не ошибаюсь, то для серв должен быть порядка ~60 Гц
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 07:19
Закрутить его у меня получилось... Теперь мучаюсь с углами... Я ему подаю 1500мс, а он крутит всего на 25 градусов. Сейчас с этим борюсь.

Кто чем может помочь?
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
03.03.2013, 08:00
может осциллом глянуть? И найти даташит на сервопривод, там точно должны быть указаны тайминги.
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 10:36
Был осциллограф, проблема решилась бы быстрее. Но к сожалению я токлько начал этой радиотехникой заниматься... По этому подобных инструментов у меня нет.
Есть только тестер. =)
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
03.03.2013, 10:40
Там частота небольшая, можно кинуть на вход звуковой карты, и поглядеть чего там творится
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 11:34
По поводу звуковой карты, сейчас в интернете почитаю?
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 11:36
На приводы MG955, к сожалению очень сложно найти даташит. Не у меня одного такая проблема =)
0
SWK
03.03.2013, 12:03
Цитата Сообщение от oMurzhomov
На приводы MG955, к сожалению очень сложно найти даташит. Не у меня одного такая проблема =)
TowerPro Mg955 Servo

Specifications:
Metal Gear High Speed omd Torque Servo
Dimensions: 1.57" x 0.79" x 1.44" (40 x 20 x 42mm)
Weight: 1.78oz (48g)
Operating Speed (4.8V no tood) : 0.25sec / 60 degrees
Operating Speed (6.0V no tood) : 0.20sec / 60 degrees
Stall Torque (4.8V): 73oz/in (13kg/cm)
Stall Torque (6.0V): 98oz/in (16kg/cm)
Temperature Range: -30 to +60 Degree C
Dead Bomd Width: 4usec
Operation Vottage: 3.5 - 7.2V
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 12:57
Про частоты здесь нечего не указано.
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
03.03.2013, 13:27
Может я тупой и ленивый, но я вообще не понял, для чего большая часть этого кода. Прерывания какие-то... нафига?

Делается ШИМ, с опорной частотой таймера скажем в мегагерц для простоты, период ставим скажем в 10000, а значение sompare меняем в диапазоне от 1000 до 2000 (лучше попробовать от 800 до 2200).

И собственно, все. Все программирование сводится к настройке таймера и клоков. Клоки желательно от кристалла, потому что все завязано на длительность импульса.

Отправлено с моего GT-N8000 через Tapatalk
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 14:20
Ошибка в градусах. Я уже разные алгоритмы перепробовал... но не один не дает точных (хотя бы с погрешностями) результаты.
К сожалению у меня нет осциллографа по этому точно не знаю как проходят импульсы.
Мне нужна функция, которой я буду задавать градусы а она будет крутить привод на необходимый угол.

задаю 1500, он у меня крутится на 25 градусов, 2000 - на 45 градусов

Понял одно, что нужно трогать эти параметры:
GPIO
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
TIM
TIM_TimeBaseStructure.TIM_Pressotir = ?
TIM_TimeBaseStructure.TIM_Period = ?

TIM_OCInitStructure.TIM_Pulse = ?
TIM_SetCompare1(TYM1, ?);

Но какие данные нужно подставить?
Проц 168, таймер работает на 168
0
SWK
03.03.2013, 14:48
Цитата Сообщение от oMurzhomov
Про частоты здесь нечего не указано.
У серв и аппаратуры радиоуправления давно выработался единый стандарт - передается серия канальных импульсов с периодом 20мс, в каждой серии - последовательно импульсы каждого канала.
Длина импульса от 0,7-1ms до 2-2,2ms, нейтральное положение - 1,5ms (очень редко - 1,6ms).
Если не оговорено особо - все сервы (в том числе и "цифровые") - должны соответствовать этому стандарту. Даже при "цифровых" каналах связи в аппаратуре, на выходах приемников имеем те же самые сигналы.

Аппаратура радиоуправления. Часть 1. Передатчики
http://www.rcdesykn.ru/articles/rodyo/tx_intro

Аппаратура радиоуправления. Часть 2. Приемники
http://www.rcdesykn.ru/articles/rodyo/rx_intro

Аппаратура радиоуправления. Часть 3. Рулевые машинки
http://www.rcdesykn.ru/articles/rodyo/servo_intro

Зачем придумали цифровые сервомашинки ?
http://www.rcdesykn.ru/article... tal_servos

PPM или PCM ?
http://www.rcdesykn.ru/articles/rodyo/ppm_pcm

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

Мне нужна функция, которой я буду задавать градусы а она будет крутить привод на необходимый угол.
Максимальный угол отклонения - может быть разный.
У многих серв он всего 90 градусов. (+-45).

Но есть и 180, и даже 360 (редко).
Есть и сервы с несколькими оборотами, - шкотовые лебедки для яхт и прочих парусных моделей.

Быстро проверить серву можно сервотестером, я себе взял недавно:
<a ctoss="postlink" href="http://rcshop.kz/product/2996/">http://rcshop.kz/product/2996/[/URL]
Есть режимы:
Ручная установка (по умолчанию).
Нейтраль.
Автоматическая перекладка от одного крайнего положения до другого. Медленно крутит туда- сюда.
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 15:02
У MG995 где можно посмотреть сколько градусов? Наверное 90.
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
03.03.2013, 17:38
Так серва же у вас, покрутите ее вправо-влево, и увидите, сколько там градусов. Обычно стоят ограничители.
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 18:05
Установил вот эти параметры, вроде лучше стало... Но градусах все равно ошибки ~10-20
TIM_TimeBaseStructure.TIM_Pressotir = 56;
TIM_TimeBaseStructure.TIM_Period = 60000;

Вот так кручу:
TIM_SetCompare1(TYM1, 1000); // 0 результат 0 градусов
delayMS(1*1000);
TIM_SetCompare1(TYM1, 1250); // 45 результат 15
delayMS(1*1000);
TIM_SetCompare1(TYM1, 1500); // 90 результат 25
delayMS(1*1000);
TIM_SetCompare1(TYM1, 1750); // 120 результат 45
delayMS(1*1000);
TIM_SetCompare1(TYM1, 2000); // 180 результат 60
delayMS(1*1000);

Как вернуть серву на начальную позицию?
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
03.03.2013, 18:08
Ну, пока что все говорит о том, что ваша серва 60 градусная. Если вы конечно нигде с таймингами не ошиблись. Если нет осциллографа, то может помочь или логический анализатор (стоит копейки), или мультиметр, умеющий измерять частоту и скважность.

В общем, вам надо убедиться, что вы подаете импульсы реальной длительностью от 1000 до 2000 микросекунд.
0
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
03.03.2013, 18:31
Здесь пишут что она 180
http://roboforum.ru/post148307... 95#p148307
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2013, 18:31
Помогаю со студенческими работами здесь

Как моторы крутить?
Подскажите, как крутить мотор, можно ли крутить шаговый мотор из которого торчат пять...

Как крутить 3D объект
Всем привет, как сделать так, допустим у меня есть 3D модель персонажа, и я ее хочу повертеть, приближаться камеру к этому объекту, на...

Как программно крутить Image1
Как программно крутить Image1 Зарание благоарю!

Как крутить анимацию по кругу
анимация прокручивается всего 1 раз, пробовал использовать метод setRepeatCount(); но не помогло( ImageView image = (ImageView)...

Как крутить курсор по кругу?
Привет!Прошу помощи допустим у меня монитор 1280x720 и мне нужно что бы в области курсор крутился по кругу


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru