roboforum.ru

Технический форум по робототехнике.
Текущее время: 16 мар 2025, 18:05

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 1911 ]  На страницу Пред.  1 ... 57, 58, 59, 60, 61, 62, 63 ... 128  След.
Автор Сообщение
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 16:31 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2683
Откуда: Где-то в Латинской Америке
Это верно подмечено. Правильный подход - это описать кинематику манипулятора математической функцией, а дальше все пойдет как по маслу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 16:49 
Не в сети
Аватара пользователя

Зарегистрирован: 03 янв 2013, 16:27
Сообщения: 1386
Madf писал(а):
Какой нафиг рисовать без отрыва, у него сервы не умеют двигаться одновременно, от сюда рваные полосы и нет прямых линий.)

Хотелось бы взглянуть на такой код в рамках библиотеки servo :D Функция наверное такая:servo1,2,3.write(A)(B)(C)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 17:46 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Madf писал(а):
Какой нафиг рисовать без отрыва, у него сервы не умеют двигаться одновременно

На видео много моментов, когда прямую можно дальше вести без отрыва, даже если поправить эти места, то уже будет значительно лучше.
dimamichev писал(а):
Хотелось бы взглянуть на такой код в рамках библиотеки servo

Уходить от сторонних библиотек. Они в ардуино решают только одну задачу - научить/показать, что можно мигать светодиодом и двигать сервой. В твоем случае, ты попал в ловушку :) Вся концепция программы была построена вокруг "servo". Теперь надо: Пришел дворник, все подмел, поставил стол, стул, начал писать: Дорогие сервы, запятая, скобочка, точка... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 18:11 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2683
Откуда: Где-то в Латинской Америке
Библиотека servo выполняет важную функцию: аппаратное управление ножками pwm с помощью 16-разрядного таймера. Остальные задачи, такие как фоновый поворот сервы с определенной скоростью, прохождение участка пути за определенное время, динамические ускорение и торможение,приходится решать пользователю. В сети наверняка множество примеров. Но принцип понятен: не использовать delay при работе с сервой, а крутить функцию типа stepServo(Servo servo). Объект Servo лучше ререопределить, дополнить его свойствами: текущее положение, текущая скорость, счетчик временных интервалов и т.д.
Или,вместо крутежа в loop(), использовать прерывания по таймеру, с учетом того, что один таймер уже занят библиотекой servo.
Для начала можно поставить себе простую задачу: мигать светодиодом в процессе рисования. Уже будет понятно что к чему


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 18:20 
Не в сети
Аватара пользователя

Зарегистрирован: 03 янв 2013, 16:27
Сообщения: 1386
"Жездь! из всего сказанного" Получается так: сделал очередную игрушку-рисовалку= выкинь (коническую координатную сетку , сегментное рисование, библиотеку servo, переключение серв с шагом в 1 градус, математику построения сегментов).
А сделай: 1 Узнай математику - как на таком манипуляторе рисовать отрезок (прямой) в "нормальных координатах".
2 Научись двигать несколько серв "одновременно" без использования библиотеки.
3 Опиши новый алгоритм работы "буквостроителя",рисующего букву без отрыва по индивидуальным данным, сделай скетч.
4 Ну и т.д.
Пупок развяжется в одно табло у меня :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 18:24 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2683
Откуда: Где-то в Латинской Америке
Игрушка не самоцель. Наша цель самосовершенствование! А математика там на уровне геометрии древних египтян.
Даю задание нарисовать правильную окружность :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 18:37 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
dimamichev писал(а):
"Жездь! из всего сказанного" Получается так: сделал очередную игрушку-рисовалку= выкинь

Я, каждый раз когда вижу твою новую игрушку, дико жалею твое потраченное время. Осознавая сколько тебе лет и как падает производительность человека от возраста (по себе сужу), мне становится очень грустно. То что ты сейчас делаешь, надо было начинать в 16 лет, тогда бы ты к 46 годам (своим) давал советы как я :)
Это без наездов :)
По "servo", можно еще помучиться со штатной библой. Надо ввести таймер (около 10мс), по которому будешь обновлять данные всех серв. Прямые линии рисовать просто без всякой математики: По таймеру инкрементируешь данные для одной сервы, а для 2-й делаешь приращение только при переполнении регистра, в который при каждом шаге таймера добавляешь константу. Константа определяет угол линии. При нуле будет горизонт. При значении константы равной размерности этого регистра (например 256 для byte) budet ugol 45 grad.

Добавлено спустя 2 минуты 33 секунды:
Зацени как в конце моего текста, после англ. "byte" я не переключил раскладку клавиатуры (случайно) :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 18:42 
Не в сети
Аватара пользователя

Зарегистрирован: 03 янв 2013, 16:27
Сообщения: 1386
В общем мозг пока в раскоряку. Насчёт "делаев". Если их убрать - манипулятор станет паралитиком. Понимаю, что пока рисуется буква ничего с процессом (в таких вариантах скетча) сделать нельзя (а что там можно делать? хлопнуть в ладоши или сказать "Остановить моторику!" - интересный сериал кстати). Такое можно сделать, превратив "делай" в отдельную функцию, где "слушается микрофон" пока идёт задержка поворотов серв.

Добавлено спустя 3 минуты 41 секунду:
Дима, ядрён-батон, я год как в Ардуино, программирование (закрываем на школьный Бейсик глазки)для меня чёрная бездна. Ты сейчас предлагаешь совершенно иной подход о котором от тебя впервые и слышу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 06 июл 2018, 18:50 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
dimamichev писал(а):
Дима, ядрён-батон, я год как в Ардуино

Я знаю. Что тебя смутило? Год в ардуино - ниачом. На работу берут со знанием язука не менее 3-х - 5-ти лет :)

А да, уточнение про "servo". Тебе нужна только "analogwrite" или как она там в дуино? Надо правильно настроить ШИМ для серв (может и не получиться из-за специфичности, там не ШИМ, а PPM). А дальше все делать по таймеру, как я описал выше. Ждешь флаг от time_out (10 мс), регенеришь данные для всех серв и опять уходишь в ожидание time_out. Просто твои delay в настоящих программах не используют. Это как копать яму лопатой, а когда надо скорректировать яму, дизайнер думает, а лопатчик копает рядом яму, а не спит :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 07 июл 2018, 02:55 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2683
Откуда: Где-то в Латинской Америке
А какая дуня с каким МК используется?

Добавлено спустя 32 минуты 6 секунд:
Советую попробовать библиотеку SlowMotionServo.
Вроде позволяет двигать сервы одновременно, и задавать скорость движения. Раз самому думать лень :)

Добавлено спустя 1 час 24 минуты 53 секунды:
Dmitry__ писал(а):
Зацени как в конце моего текста, после англ. "byte" я не переключил раскладку клавиатуры (случайно) :)

Давно хотел спросить..а кто тебе буковки на кнопочках русские стирает, или ты пользуешься чисто буржуйской клавой без национализации?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 07 июл 2018, 05:23 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Scorpio писал(а):
Давно хотел спросить..а кто тебе буковки на кнопочках русские стирает

:)
Я на русские буквы не обращаю внимание :). Для меня их нет, но от этого есть мелкие проблемы, часто в русском тексте "ы" меняю "у", а где на клаве "твердый знак", вообще хз, поэтому в моих текстах твердый знак всегда "ь" :)

Добавлено спустя 1 минуту 38 секунд:
Во:
Цитата:
со знанием язука

Это и есть проблема русской "ы" с раскладкой программиста :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 07 июл 2018, 07:49 
Не в сети
Аватара пользователя

Зарегистрирован: 03 янв 2013, 16:27
Сообщения: 1386
Использую Ардуино УНО (с чего начал изучение - на Атмега 328), если конструкция остаётся, не идёт в лом - переписываю на про мини.
Библиотека Servo одновременно позволяет двигать 12 сервами, переход на новую в моём случае :D , вряд ли улучшит расклад.
Замена delay на millis (с подмигиванием светодиодом между движениями серв) мне по силам.
С прямой линией не ясно хоть стреляйте. Если двигать одну серву и приращать в шаге другую - не будет прямой. По моим не египетским теоретическим расчётам величина приращения зависит от значений текущих углов поворота серв. А там комбинации синусов, косинусов и самих углов. Как это всё "округлить" по аналогии с конической системой хрен знает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 07 июл 2018, 10:42 
Не в сети
Аватара пользователя

Зарегистрирован: 24 окт 2011, 23:32
Сообщения: 803
Откуда: Севастополь
прог. языки: асм
Тогда поступай так же, как и 100500 других, не начинающих, а уже продвинутых ардуинщиков : они просто берут еще одну ардуину (или две, три... в общем, насколько совести хватит) и распараллеливают задачу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 07 июл 2018, 11:42 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
ALS писал(а):
они просто берут еще одну ардуину (или две, три... в общем, насколько совести хватит) и распараллеливают задачу.

Ему это не поможет, всё так же обе дуни будут дергаться. :D Можно предложить многоканальные чипы с программируемым PWM...

Я в своё время, ещё в школе поражался, как это на ZX-Spectrum-е ухитрялись рисовать много точек и они все двигались одновременно, при том, что если использовать простые инструменты бэйсика такое не получалось. Поразмыслив у меня начало это получаться на бэйсике (при том, что ЦПУ всего лишь около 4МГц (3,5) и каждая команда минимум 4 такта, т.е. по существу 1МГц проц), затем поняв принцип, начал уходить на ассемблер и уже через время мог одного цаета на знакоместа получать 8 линий/точек и т.д... Это я всё к чему, надо набраться опыта и понимания правильного построения процессов, а потом уже можно "творить чудеса".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы новичка.
СообщениеДобавлено: 07 июл 2018, 12:49 
Не в сети
Аватара пользователя

Зарегистрирован: 03 янв 2013, 16:27
Сообщения: 1386
Оформил сделанное,отбросил предрассудки - не надо ничего лишнего, Дмитрий прав, двигаем одну серву маленькими шажочками (две и более одновременно никогда поворачиваться не будут в Servo) и на каждом шаге проверяем условие прямолинейности в рамках указанных нами же погрешностей. Если условие нарушено, двигаем вторую, вновь до нарушения и так поочерёдно в цикле...
Нарисую "тертёж" попробую объяснить ход своих мыслей.

Добавлено спустя 48 минут 35 секунд:
Прямая, параллельная оси х. Идея новая такая (поправьте если ошибаюсь)поворачиваем серву А на например на 1 градус, проверяем истинность условия (красным) в границах плюс минус заданного допуска - вышли "за",поворачиваем серву В, вновь проверяем условие и так до границ значений "углов конца отрезка". Система координат привязана к центру вала сервы-подъёмника, плечо l=65mm. Для моего манипулятора k в границах 1,2-2. Допуск сколько? 0,1*k, 0,01*k.
Теперь такой момент- градусы не прокатят, нужны радианы с одной стороны в вычислениях. С другой servo.writeMicroseconds(); в исполнении. Тут затык.


Вложения:
прямая .jpg
прямая .jpg [ 24.42 КиБ | Просмотров: 1412 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1911 ]  На страницу Пред.  1 ... 57, 58, 59, 60, 61, 62, 63 ... 128  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO