Cовместимость библиотеки servo и Adafruit_NeoPixel

leks
Offline
Зарегистрирован: 22.10.2017

Возник вопрос по совместному использованию двух библиотек. Нашёл такую грустную ссылку. Пробовал кто нибудь совместную работу этих библиотек в скетче или бесполезно?..

Замысел прост-есть ходилка на 8 сервоприводах, УЗ датчик и блютуз управление через самодельное приложение. Хочется из ходилки сделать танцульку, умные светодиоды (глазки вместо УЗд ) вроде как усиление восприятия ритма на фоне унылых дёрганий конечностями.

https://lednews.lighting/topic/1243-servoprivod-svetodiodnaya-lenta-upravlenie-svetom/

b707
Offline
Зарегистрирован: 26.05.2017

А чем ссылка-то грустная? Если б она заканчивалась тем, что заставить работать вместе сервопривод и НеоПиксель нельзя - было бы грустно, но ведь статья на этом не заканчивается, там дальше и решение проблемы имеется.

leks
Offline
Зарегистрирован: 22.10.2017

b707 пишет:

А чем ссылка-то грустная? Если б она заканчивалась тем, что заставить работать вместе сервопривод и НеоПиксель нельзя - было бы грустно, но ведь статья на этом не заканчивается, там дальше и решение проблемы имеется.

Библиотека новая, вдруг чего не так... всё ведь работает со старой, а тут заново мудрить. От добра добра не ищут, а придётся ;)

b707
Offline
Зарегистрирован: 26.05.2017

leks пишет:

Библиотека новая, вдруг чего не так... всё ведь работает со старой, а тут заново мудрить. От добра добра не ищут, а придётся ;)

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

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

leks
Offline
Зарегистрирован: 22.10.2017

Да, я тоже дочитался до конца, для УНО (статья явно переводная ?) речь идёт о двух выводах под сервы. Может и правда подумать о про мини на борт ходуна.

sadman41
Offline
Зарегистрирован: 19.10.2016
leks
Offline
Зарегистрирован: 22.10.2017

Недельки две назад читал про такие платки, у китайцев вроде 100-200р. ШИМ управление  на 4000 с копейками шагов. Вроде библиотека под плату есть, даже одну статейку читал про управления сервами с её помощью. Я так понимаю и светодиоды можно трёхцветные, неумные на каналы посадить вдобавок? Но есть ли доходчивая информация в примерах  на применение библиотеки?

sadman41
Offline
Зарегистрирован: 19.10.2016

Посадить светодиоды можно, все ли будут ли работать... у выходов ток совсем небольшой - 25мА. Это больше генератор ШИМ-а, чем LED-драйвер (хотя из даташита можно такой вывод сделать).

Доходчивая - это какая? 

leks
Offline
Зарегистрирован: 22.10.2017

sadman41 пишет:

Посадить светодиоды можно, все ли будут ли работать... у выходов ток совсем небольшой - 25мА. Это больше генератор ШИМ-а, чем LED-драйвер (хотя из даташита можно такой вывод сделать).

Доходчивая - это какая? 

Доходчивая - это статейка обзорная про функции библиотеки модуля. Пока нашёл только косвенную информацию, что только малая часть из вариантов ШИМа (4096 ступенек) участвует в регулировке угла поворота сервы, вроде можно шаг меньше градуса, но не намного.

sadman41
Offline
Зарегистрирован: 19.10.2016

Такое чуство, как будто я тут гуглом работаю... https://learn.adafruit.com/16-channel-pwm-servo-driver/overview

leks
Offline
Зарегистрирован: 22.10.2017

sadman41 пишет:

Такое чуство, как будто я тут гуглом работаю... https://learn.adafruit.com/16-channel-pwm-servo-driver/overview

Спасибо, ;) буду вождение сервомоторов вникать...довольно легко.

sadman41
Offline
Зарегистрирован: 19.10.2016

Там суть-то простая на уровне МС. Есть условный таймслот, который делится на 4096 отсчетов. Задаете отсчет, когда нужно сделать на пине ON и еще один - когда OFF. Разница между этими двумя отсчетами есть ширина импульса, подаваемого на серву. Достаточно расчитать его так, чтобы он соотносился с желаемым углом поворота и установить два параметра на нужном канале. Дальше он сам будет пульсировать, пока не сменятся настройки. Есть еще функция такая - подать на все каналы одно и то же. Это чтобы самому циклом не бегать по каналам, а все сервы на ноль вывести в начале процедур.

leks
Offline
Зарегистрирован: 22.10.2017

Вроде всё ясно, переводить "тики" в градусы задачка  не сложная - 1мс (0 градусов), 2мс (180 градусов) на 20мс (50 Гц). Грубо 200 "тиков" на 180 градусов - грубовато, но для хождения на сервах пойдёть. 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Потом покажите хотя бы своего танцора.

leks
Offline
Зарегистрирован: 22.10.2017

sadman41 пишет:

Потом покажите хотя бы своего танцора.

Такой ходун, пока. Конструкция сопливая, против всех правил, но ходит не один месяц.