Манипулятор

zlokorj
Offline
Зарегистрирован: 22.11.2014

Доброго времени суток!

Ситуация такая, необходимо сделать портативный манипулятор, управляемый с одной руки. Приводить в движение конструкцию будут 4 сервопривода, каждый из которых управляется двумя тактовыми кнопками и отдельно подключен к питанию (5V). Все это будет подключено к CraftDuino, питающемуся от 9v кроны. Вероятно вас смущает путь, которым я пошла, особенно если сначала вы решили изучить схему или код перед прочтением текста, но я постараюсь сейчас объяснить причину выбранной мной стратегии.



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

Управляться система будет 8-ю тактовыми кнопками с панели, закрепленной на ладони. Каждый палец, кроме большого, будет приводить в движение определенный сервопривод через две кнопки - пока зажата верхняя кнопка, серва движется в одну сторону, отпустили и конструкция застыла, зажали нижнюю кнопку и серва крутит обратно. Может система кажется слишком замысловато, но так процесс управления, на мой взгляд, будет менее заметным.

Вот схема подключения:

 
В конструкции будут использоваться:

- crafduino

- 4 сервопривода (Servo MG-90S, Servo SG-5010 - 2шт, Servo MG-995)

- резисторы 10к

- конденсаторы 100мкФ

- стабилизатор 7800

- тактовые кнопки

- питание 5 вольт от 4-х батареек ААА

Код управления (точные углы поворота еще не известны):

01#include <Servo.h>
02Servo servo1;
03Servo servo2;
04Servo servo3;
05Servo servo4;
06byte pos1 = 10;
07byte pos2 = 20;
08byte pos3 = 30;
09byte pos4 = 40;
10int sensePin1 = 0;
11int sensePin2 = 1;
12int sensePin3 = 2;
13int sensePin4 = 3;
14 
15void setup()
16{
17  analogReference(DEFAULT);
18  servo1.attach(6);
19  servo2.attach(9);
20  servo3.attach(10);
21  servo4.attach(11);
22}
23 
24void loop()
25{
26  // Кнопка 1.1
27  if (analogRead(sensePin1) > 1020) {
28      pos1 = pos1 +1;
29  }
30  // Кнопка 1.2
31  if (analogRead(sensePin1) > 500 && analogRead(sensePin1) < 520 ){
32      pos1 = pos1 -1;
33  }
34 
35  // Кнопка 2.1
36  if (analogRead(sensePin2) > 1020) {
37      pos2 = pos2 +1;
38  }
39  // Кнопка 2.2
40  if (analogRead(sensePin2) > 500 && analogRead(sensePin2) < 520 ){
41      pos2 = pos2 -1;
42  }
43 
44  // Кнопка 3.1
45  if (analogRead(sensePin3) > 1020) {
46      pos3 = pos3 +1;
47  }
48  // Кнопка 1.2
49  if (analogRead(sensePin3) > 500 && analogRead(sensePin3) < 520 ){
50      pos3 = pos3 -1;
51  }
52 
53  // Кнопка 4.1
54  if (analogRead(sensePin4) > 1020) {
55      pos4 = pos4 +1;
56  }
57  // Кнопка 4.2
58  if (analogRead(sensePin4) > 500 && analogRead(sensePin4) < 520 ){
59      pos4 = pos4 -1;
60  }
61 
62  pos1 = constrain(pos1, 10, 170);
63  servo1.write(pos1);
64 
65  pos2 = constrain(pos2, 20, 170);
66  servo2.write(pos2);
67 
68  pos3 = constrain(pos3, 30, 170);
69  servo3.write(pos3);
70 
71  pos4 = constrain(pos4, 40, 170);
72  servo4.write(pos4);
73 
74  delay(50);
75}

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

заменить батарейки на аккумуляторы желательно

аналоговый стабилизатор на импульсный

кнопки можно считывать динамически, без аналогов, но можно и так

после стабилизатора поставить крупный конденсатор для защиты от бросков

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

 

vvadim
Offline
Зарегистрирован: 23.05.2012

C питанием и вправду неутык.  Для стабильной работы на серву нужно подать порядка 6 вольт. У вас батарейки (непродолжительная работа с сервой - плохой вариант) дают 6 вольт и стабилизатор ещё скушает 1.5 вольта - серва будет работать плохо. Если поставить 4 ак-ра, то 4.8 вольта тоже мало. Вдали от цивилизации возьмите ак-р типа такого

 http://www.ebay.com/itm/New-Dual-12V-6800mAh-Rechargeable-Li-battery-/151490399364?pt=US_Rechargeable_Batteries&hash=item2345880c84

или 

http://www.ebay.com/itm/12-v-7-ah-Lead-Rechargeable-Battery-/23140751113...

и подключите сервы от него через стабилизатор 6 вольт каждую - будет стабильное напряжение без просадок по питанию. И поставьте на 7806 ещё керамический кондёр 0.1 мкф. От ак-ра запитаете и дуню. Кстати на вашей схеме питание на неё не идёт.

axill
Offline
Зарегистрирован: 05.09.2011

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

есть одна явная ошибка. У вас при питании от 4-х алкалиновых батареек применены стабилизаторы 7805 (у вас написано 7800, но судя по всему имелись в виду именно 7805 так как именно 5В стандартное питание сервомоторов). Здесь есть проблема - 7805 дает падение 1.7В,  а ваши 4-ре батарейки дают когда новые под нагрузкой порядка 6В, а когда разряжены около 4-4.5В. Что это значит? Это значит что стабилизаторы не только не помогают стабилизировать напряжение, а наоборот усугубляют ситуацию.

В целом я бы схему питания сделал по другому. Применение несколких независимых наборов батареек приведет к тому, что вы замучаетесь менять батарейки потому, что у вас будет неравномерный разряд. И стоит одной батарейке из 16 разрядится - ваш манипулятор перестанет полноценно работать. Лучше взять батарею литиевых акуумуляторов или батарею 6-12В свинцовую (залитую как для бесперебойных компьютерных блоков). Далее из батареи надо применяя импульсный преобразователь (step-down) с низким минимальным падением напряжения сделать 5В. Посчитайте максимальный сумарный ток по вашим сервам и поймете какой преобразователь вам нужен. Можно купить готовый модуль, лучше с современными микросхемами типа MP1584 - она до 3А. Если 3А мало можно несколько преобразователей поставить, но сохранить общую батарею аккумуляторов.

с крафдуиной вашей ничего не случчится, но ее надо обезопасить от помех которые создают сервы, для этого для крафдуины лучше сделать отдельный стабилизатор либо импульсный step-down либо на базе LDO с низким падением напряжения (увы ни 7805 не подойдет ни популярные 1117).

axill
Offline
Зарегистрирован: 05.09.2011

jeka_tm пишет:

после стабилизатора поставить крупный конденсатор для защиты от бросков

плохому научите)) если почитать даташит на нормальный современный step-down (на микросхему) то поймете почему не надо никакой дополнительный конденсатор цеплять

jeka_tm пишет:

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

я не знаток библиотеки Servo. На других пинах она генерит ШИМ програмно?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

какой еще шим)))

а насчет плохому как скажешь) тебе виднее

axill
Offline
Зарегистрирован: 05.09.2011

ну так серва же управляется сигналом который удобно генерить ШИМом

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

тогда твои мысли как в ардуино уно 6 хардварных шимов, а серв можно подключить 12шт

axill
Offline
Зарегистрирован: 05.09.2011

Если так, значит генерится програмно

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

они все генерятся программно. изза этого на 9 и 10 не работает шим

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

вот кстати стоит почитать про потребляемый ток, броски и тд

http://www.customelectronics.ru/proverka-usiliya-servoprivodov/

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

axill
Offline
Зарегистрирован: 05.09.2011

Вы опять про свое) взялись за паяльник - привыкайте читать больше даташитов, меньше частное мнение. Ибо самое полезное частное мнение это собственное, сформированное на правильном понимании

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну когда начнутся просадки питания тогда и будет понятно. что спорить

 

axill
Offline
Зарегистрирован: 05.09.2011

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

по MG-90S и MG995 ток был выше в ссылке

первый с бросками до 580 ма, второй до 2А. уже в пике чуть больше 2.5А возможно

и по SG-5010 не нашел пиковый ток. по разной инфе около 0,7-1А. а их 2 штуки

даже если взять 0,7А то получаем 0,58+0,7+0,7+2=3,98А. импульсные стабилизаторы обычно до 3А

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

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

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

можно пару таких поставить и тогда уже можно не боятся бросков

http://ru.aliexpress.com/item/Free-Shipping-1PCS-XM1584-Ultra-small-size...

один для MG995, и один для остальных

axill
Offline
Зарегистрирован: 05.09.2011

все верно, но вы все равно не читаете даташиты )) По вашим расчетам подола бы такая микросхема

почитайте http://www.ti.com/product/tps5430, особенно раздел Capacitor selection на странице 13. Там указаны ограничения на выбор конденсатора. Чип на 3А, но - Up to 3-A Continuous (4-A Peak) Output Current. 4А в пике не проблема

А если готовый модуль брать то на базе MP1584 типа http://www.buyincoins.com/item/45333.html#.VH2Bo3tUIv4

У нее тоже 4А в пике

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я не говорю чтобы подохла, не факт чтобы вытянула без просадки

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

 

axill
Offline
Зарегистрирован: 05.09.2011

jeka_tm пишет:

я не говорю чтобы подохла, не факт чтобы вытянула без просадки

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

все эти вещи поддаются точной оценке, не нужно гадать. Запас прочности тоже прогнозируется. Я не хочу за ТС делать расчет, наша задача дать ему направление мысли. Если его сервы в нормальном режиме потребляют более 2.4А (запас 20%) то конечно разумнее поставить два step-down.  А может нужно и по одному на каждую серву. Пик на то и пик, что это кратковременная вещь. Но нельзя путать ПИК с током в заторможеным мотором - такой ток надо учитывать как нормальный, т.е. закладываться на него в расчете

Мы кстати дали ссылки на одинаковые модули. Вот тут почитайте http://www.monolithicpower.com/Products/Product-Detail?ProductID=101, страница 12, там тоже есть ограничения на выбор выходного конденсатора

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

а самый распрастраненный (по крайней мере недавно) LM2596. к нему и нужен конденсатор

11страница и далее

http://www.ti.com/lit/ds/symlink/lm2596.pdf

 

axill
Offline
Зарегистрирован: 05.09.2011

LM2596 низкочастотный с низким быстродействием. К нему да, можно цеплять ведрами конденсаторы. Так это как раз и есть ньюансы.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну а я о чем говорил))) просто не писал про LM2596, который в основном пихают

axill
Offline
Зарегистрирован: 05.09.2011

вы предлагали цеплять конденсатор везде без разбору))

но мы так увлеклись, что наверно запутали ТС))

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

конденсатор это хорошо)))

а вообще просто не указал про 2596

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

axill
Offline
Зарегистрирован: 05.09.2011

идея зачетная ) правда совершенно бесполезная

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

axill пишет:

идея зачетная ) правда совершенно бесполезная

Фигасе, бесполезная! Это айфон - бесполезная вещь, а такую штуку каждый должен иметь!

axill
Offline
Зарегистрирован: 05.09.2011

и что с ней делать?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

с кофе/пивом бегать по дому или работе. Ценный напиток не пропадет. И жена ругать не станет :)

zlokorj
Offline
Зарегистрирован: 22.11.2014
Наконец-то появилось время переварить все ранее сказанное ))
Спор о том, к каким пинам можно подключать сервоприводы, напомнил мне о том, что при покупке крафтдуины продавец сказал, что можно подключить до 12 серв, так что вероятно jeka_tm все же прав.
 
Если я правильно все поняла, для начала необходимо определиться с аккумулятором и посчитать суммарный ток выдаваемый сервоприводами, и уже на основании всего этого подбирать преобразователь. По ходу дела модели сервоприводов могут измениться, так как каркас манипулятора еще в процессе и итоговый вес деталей еще точно не известен, но принцип расчетов я поняла, спасибо. 
Так что пока начну считать, а там буду дальше думать над стабилизаторами и конденсаторами, обмозговывать дискуссии axill и jeka_tm.
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а что думать. уже не надо. 2 импульстных стабилизатора по полтиннику. аккумулятор расчитать из необходимого времени работы

http://ru.aliexpress.com/item/Free-Shipping-1PCS-XM1584-Ultra-small-size...

zlokorj
Offline
Зарегистрирован: 22.11.2014

а одного стабилизатора хватит для MG90S и двух SG5010?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да

Тима
Тима аватар
Offline
Зарегистрирован: 11.04.2013

Tomasina пишет:

Встроить в авто под седенье, чтоб разбитые дороги не чувствовались...