{imgicourl}{zamok}
<< предыдущая заметкаследующая заметка >>
29 июля 2018
ServoLLeo для ESP8266/Arduino

Довел до ума стандартную библиотеку Servo.h, которая управляет сервоприводами, она не умела регулировать скорость движения сервомоторов. От того Женечка паниковала, махала руками и раскачивалась.

Там сложный балдеж с двумя таймерами, библиотека генерирует импульсы по таймерам сама. Это мне не очень нравилось — в ESP8266 есть и свой генератор импульсов — AnalogWrite() для цифровых пинов генерирует ШИМ-подобный сигнал определенной частоты (сервоприводам нужно обычно 60Гц) с указанной скважностью импульса. Я поиграл с ним, но там другая проблема — все равно надо какие-то таймеры заводить, но даже с ними сложно плавно регулировать, серва движется скачками.

Поэтому я переписал имеющуюся библиотеку, добавив новых функций и проапгрейдив старые (сохранив совместимость, понятное дело). Заодно часть процедур вывел из класса, заведя им нормальные человеческие вызовы. Чтобы можно было по номеру сервы обращаться.

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

Меня просили завести Гитхаб. Я не понимаю, зачем, но завел. И выложил. Так что это мой первый проект на Гитхабе: https://github.com/lleokaganov/ServoLLeo

Как встроить библиотеку в папку со своим скетчем в Ардуине я не придумал — не понимаю этих заморочек ардуиновского фреймворка, поэтому у себя сложил ее в системные папки ~/.arduino, заведя /ServoLLeo рядом с /Servo, и вызываю просто как include В общем, вчерашний вечер прошел не зря, хоть и закончился утром. Женечка через API Яндекс-Алисы заведена как «навык», отлично отвечает на вопросы голосом, выполняет простейшие команды, умеет даже молиться и материться. Но это мы ее отучим. И то тоже.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Linux Safari Chrome
 Германия
3
0
nero_schwarz
Дык Леонид Линух ненавидит всеми фибрами души! Ничего он не врал:
https://lleo.me/dnevnik/2008/05/31.html
Windows Safari Chrome
 Донецк
3
0
vova-vt (31355079)
"А была бы дырка шире,
Я б на хуй его надел!"
Windows Safari Chrome
 Челябинск
1
1
vinny-the-poo
Я железячник и знаю разве что, что оверклокинг и троттлинг являют собой диалектически антагонистичную пару, поэтому ничего не понял. Но звучит очень красиво, да.
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Леонид выдернул чужую библиотеку, выпотрошил ее (сохранил только малую часть),

Вот тут вы не правы. Ничего я оттуда не выкидывал, только дополнил.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Да? Глянул по ссылке. Не, во-первых, там еще меньше файлов, чем у меня. Во-вторых, это вообще какая-то левая ссылка, я не из этой версии переделывал. В общем, не обращайте внимания. А мне разбираться с этим совсем лень - какие там верные ссылки, да как их правильно прописать. Пусть будет как будет, я не думаю вообще, что кому-то это интересно, кроме меня, чего стараться. А если кому-то будет очень надо, он разберется. Я для себя делал, у меня все работает.
Linux Ubuntu Firefox
 Греция
1
0
Azimut
(с) Казаков: Я старый солдат и не знаю слов любви...
Linux Safari Chrome
 Москва
0
0
sir66
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А как у стандартной сервы скорость регулировать? Там вроде только ШИМ, регулирование скорости не предусмотрено. Или ты скваженость плавно меняешь?
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Меняю скважность плавно.
Windows Safari Chrome
 Австрия
1
0
bwhale (#7306893)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Если не трудно, где Женечку добыл?

На гитхаб вроде по понятной причине - сейчас всё там. Если хочешь поделиться кодом с людьми, то это вариант по умолчанию...
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Женечку привез из Минска!
Windows Safari Chrome
 Австрия
0
0
bwhale (#7306893)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А в Минске у них гнездо, или она просто одна скучала?
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
В Минске меня консультировала Галя Прохорова, она занимается дизайном одежды из шерсти и хорошо ориентируется в манекенах. Мне далеко не любой подходил.
Linux Safari Chrome
 Москва
0
0
vctor
Разве нельзя прописать критерии, когда Женя вправе взмолиться или выматериться, а когда нет?
Windows
 Киев
5
0
antiblogger
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
"Это к поведенщикам" © Westworld
Windows Firefox
 Гатчина
1
0
Akvilon (#5450599)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вас просили по сути работать с системой контроля версий GIT через github. Чтобы было всем видно, как развивался проект и вы сами и ваши последователи могли его развивать в разных ветках.

Кстати, комментарии к коммитам можно делать на русском.
Linux Safari Chrome
 Чехия
1
0
atheist
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Но не нужно
Windows Firefox
 Москва
0
0
Johny
Не по теме.
"Это всё придумал Черчель в 18 году"

Оказывается история про одичавших на планете с недостатком нужных веществ в пище и вынужденных прибегать к канибализму уже была....
аж в 1968 году :-)

http://lib.ru/ANDERSON/chelowech.txt

хоть они были и не жуками.
Windows Safari Chrome
 Москва
0
0
Reist
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
ICO когда?
Linux Safari Chrome
 Москва
7
0
Leonid Kaganov
Конечно. Вот только открою фирму по разработке роботов "Хьюстон Проблемам" - и сразу ICO. И немножко ICQ и IQ.
Linux Firefox
 Оренбург
0
2
h3r31am
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Автору бы почитать пару учебников: "Электрические машины" и "Системы управления электроприводом". Ну или техдокументацию на существующие готовые СУЭП. Чтобы хотя бы понимание возникло, чем управление электродвигателем отличается от управления светодиодом
Linux Ubuntu Firefox
 Греция
0
0
Azimut
самое сложное там - это "векторное управление ассинхронным", а lleo уже адаптивные алгоритмы пишет. уже всё рядом
p.s."через тернии к звёздам"
Linux Safari Chrome
 Новосибирск
3
0
Корнелий-3 (#6597954)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
(читает заметку про волшебный лес) у-у, сколько букв, цифр, картинок и суровой аналитики... Леонид Александрович, лучше б сиськи показали... (читает следующую заметку) О, спасибо, Леонид Александрович!
Windows Firefox
 Москва
0
0
Игорь
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Все таки, Леонид, может Вам поставить шаговики ?
Потому что в современных сервах все равно стоят шаговики или просто электромоторы и у Вас происходит двойное преобразование - сначала нужный угол Вы преобразуете в длительность импульса, а потом по неизвестному Вам закону производится вращение двигателя до достижения угла, соответствующего заданному интервалу и создающему определенный угол.
Linux Safari Chrome
 Москва
1
0
Leonid Kaganov
Может быть, но меня смущает размер драйвера и дикое количество проводов вместо одного.



На фотке снизу - чип ESP8266 за 2$, к которому можно подсоединить до 12 серв (у меня 5 например).

Сверху для сравнения - 5 контроллеров шаговых двигателей, каждый на 1 двигатель, ещё и с радиатором. Как их все подлючить к чипу, и какую городить электронику, чтобы калибровать достижение мотором какой-то точки отсчёта - загадка. Загадка, решения которой не то, чтобы нету, но поневоле подумаешь - а надо ли?
Windows Firefox
 Москва
0
0
Игорь
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ну управление там несложное - от контроллера идут направление (его можно сделать 1 на все движки) и шаг, а все остальные провода (4 или 5) идут к шаговику.
Linux Safari Chrome
 Москва
1
0
Leonid Kaganov
Ну умножьте количество проводов, которое потребуется, чтобы двигать 5 моторов. И добавьте количество проводов и электроники, необходимой, чтобы каждый из моторов при включении калибровать до точки отсчёта.

Запихнуть получившееся в куклу Барби я даже не предлагаю.
Windows Safari Chrome
 Москва
0
0
Toxa
провода - это, в данном случае, даже не самая большая засада.
Windows Firefox
 Щелково
0
0
Heisenberg2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Контроллер обычно ставится рядом с мотором. Например, в той же серве он стоит в одном корпусе с мотором.

PS
Необходимость перехода с сервы на шаговики на мой взгляд не очевидна. У шаговиков при перегрузке образуются пропуски, которые надо будет дополнительно контролировать. Кроме того шаговику надо установить ноль. Плюс шаговику нужен будет внешний редуктор. Серва всё же это готовое решение. От нечего делать можно взять цифровую серву, срисовать схему и написать под нее свою прошивку с более правильным интерфейсом.

PPS
В хоббийных сервах PDM а не PWM.
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Насчёт редуктора не уверен. Удивился недавно, узнав, что в колесах всевозможных самокатов, электровелосипедов и моноколес нет редуктора, а просто шаговый движок они из себя представляют. И тянут же.
Windows Firefox
 Щелково
0
0
Heisenberg2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Моментные характеристики шаговиков не секрет, можете прикинуть подойдет вам или нет. Но вангую, что шаговик с потребным моментом не подойдет по габаритам. В принципе, есть шаговики со встроенным редуктором.

Мотор-колёса имеют большой радиус и малый осевой размер. У них есть своя собственная "электронная редукция" которая определяется количеством полюсов ротора и статора. Момент у мотор колёс одного порядка с сервой размером со спичечный коробок или даже меньше.
Windows Safari Chrome
 Одинцово
0
0
Toxa
не "электронная", а магнитная редукция.
Windows Safari Chrome
 Одинцово
0
0
Toxa
нет, Лео, это не вполне "шаговик". это т.н. "бесколлекторный мотор".

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

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

от шаговика все это отличается тем, что время, когда в обмотке течет ток, определяется обратной связью, а в шаговике обратной связи нет (сложные варианты управления шаговиками при помощи микрошагов мы для простоты не рассматриваем, но и там обратной связи тоже нет)
Windows Firefox
 Щелково
0
0
Heisenberg2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
"обычный мотор" это как "обычный стиральный порошок"? :)

"шаговик" и "бесколлекторный мотор" на самокатах (который с магнитами) это один и тот же тип электродвигателя - вентильный синхронный. Только в колёсах как правило 3 фазы, а у шаговика 2. И не то чтобы это важное отличие, просто так исторически сложилось по ряду объективных причин.

Еще есть асинхронный (тоже бесколлекторный). Вот он работает немного по другому.
Windows Safari Chrome
 Москва
0
0
Toxa
мы говорим о двигателях постоянного тока. "обычный" = коллектроный электродвигатель, как, например, в шуруповерте.

шаговик от мотор-колеса отличается способом управления. не в том смысле, на какие обмотки когда подавать ток, чтобы ротор повернулся, а есть обратная связь (самосинхронизация) или нет.
Windows Firefox
 Щелково
0
0
Heisenberg2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
т.е. если поставить энкодер на шаговик, то он перестанет быть шаговиком? или наоборот станет?
Windows Safari Chrome
 Одинцово
0
0
Toxa
в хоббийных сервах PWM, серва управляется шириной импульса.
Windows Firefox
 Щелково
0
0
Heisenberg2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Для pwm определяющим является отношение длины импульса к скважности или к периоду.

Для сервы актуальна только длина импульса.

В терминологии присутствует путаница, иногда это считают разновидностью шим, хотя чаще разделяют понятия. Но разницу понимать надо в любом случае.
Windows Safari Chrome
 Москва
0
0
Toxa
да, период следования импульсов не так важен, на первый взгляд. но, тем не менее, для АНАЛОГОВЫХ серв, момент прихода импульса - является моментом расчета ошибки положения сервы, после чего она выдает импульс нужной длительности на свой мотор (длительность и полярность зависит от величины ошибки). другими словами, если выдать всего один импульс, то серва дернется в нужном направлении, после чего она перестанет удерживать свое положение. таким образом, чем чаще мы подаем управляющие импульсы, тем лучше серва удерживает положение. ЦИФРОВЫЕ сервы при этом могут вести себя по-другому.

по-этому имеет смысл использовать именно ШИМ, с постоянной частотой и переменной шириной импульса.
Windows Firefox
 Щелково
0
0
Heisenberg2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
«по-этому имеет смысл использовать именно ШИМ»

Не всегда. Если нет избытка рязрядности таймеров, то лучше не тратить их на измерение промежутка между импульсами.
Windows Safari Chrome
 Москва
1
0
Toxa
ага, а еще, если подумать, чтобы сделать более-менее естественное движение, нужно плавно разгонять двигатель и плавно останавливать, для этого нужно управлять частотой шагов, что есть абсолютно та же самая задача, что и управление сервами, в смысле жонглирования таймерами и все такое. кроме того, у сервы есть преимущество: мы управляем абсолютным положением сервы, а в случае шаговика, нужно как-то определять положение.
Windows Firefox
 Москва
1
0
Johny
А вы теперь к каждой своей серве воткните заодно по энкодеру ( для точного контроля за выставленным углом ) и количество проводов станет равным.
Windows Safari Chrome
 Краснодар
0
0
барисыч
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
1. А что делать, если привод не устроил по размеруусилиюскороститочности? В случае с сервой - выкинул и поставил другую. Причем серва легко меняется на лебёдку или другой девайс (см.п3)
2. Сервы бывают оооочень маленькие и оооочень шустрые. На шаговиках такое хрен родишь.
3. Вы даже не представляете, сколько под сервовый ШИМ заточено разных девайсов! Причем девайсов проверенных на воде, суше и в воздухе моделистами в суровых условиях. Не переделывая никак электронику, Женечку можно научить летать по небу (флайт-контроллер, регули и моторы), видеть в обычном (подвесы+камеры для дронов) и ИК-диапазоне (Flir или аналоги для дрона), управлять фотокамерой (переходник с али), разбрасывать удобрения на полях, просто включать реле и т.д. И все это легкое, маленькое и вполне доступно по деньгам (кроме тепловизора :)).
4. Сервы бывают с управлением по цифровой шине (типа S.bus от Futaba). Их тогда можно цеплять последовательно 16 пропорциональных и две дискретных сервы одним проводом.
Windows Safari Chrome
 Москва
0
0
Toxa
да, s.bus отличный, но сервы очень дорогие
Windows Safari Chrome
 Краснодар
0
0
барисыч
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ну это я для примеру. На али есть сервы с can-шиной, с последовательным портом. Цены вполне демократичные.
Windows Firefox
 Щелково
0
0
Heisenberg2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Если уж повторять кинематику человека, то надо сразу линейный привод ставить. И с компоновкой должно хорошо получиться.
Linux Ubuntu Safari Chrome
 Fremont
1
1
popkin-zhopkin (#7372061)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Это объективизация женщин!11 :| Постыдились бы в 2k18 такое творить.
Mac Firefox
 San Jose
0
1
ввeсти имя (#6609755)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Жопкин... До 2k18 больше ста шестидесяти лет. Ты не доживёшь.
Windows Safari Chrome
 Киев
0
0
Serj K.
Вангую, шо uncanny valley если не всё, то много чего испортит.

всего комментариев: 53

<< предыдущая заметка следующая заметка >>