roboforum.ru

Технический форум по робототехнике.

Экзоскелет "Крок"

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Re: Экзоскелет "кРок"

Сообщение robovan » 20 июл 2015, 18:13

Нашел такой пример
Код: Выделить всёРазвернуть
#include <Servo.h> 

Servo myservo;  // создаём объект для контроля сервы

int pos = 0;    // переменная для хранения позиции сервы

void setup()
{
  myservo.attach(9);  // серва подключена к 9-му пину
}


void loop()
{
  for(pos = 0; pos < 180; pos += 1)  // от 0 до 180 градусов
  {                                  // с шагом в 1 градус
    myservo.write(pos);              //
    delay(15);                       // ждём 15ms пока серва займёт новое положение
  }
  for(pos = 180; pos>=1; pos-=1)     // от 180 до 0 градусов
  {                               
    myservo.write(pos);               
    delay(15);                       
  }
}
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение Angel71 » 20 июл 2015, 18:53

а читать внимательней не пробовал? http://roboforum.ru/forum10/topic15622-15.html#p332347.
это
Код: Выделить всёРазвернуть
void loop(){
for (pos=20; pos<=160; pos=pos+1) {
  servo.write(pos);
  delay(servoDelay);
}
for (pos=160; pos>=20; pos=pos-1) {
  myPointer.write(pos);
  delay(servoDelay);
}

блин что? только myPointer не заменил на servo.

Добавлено спустя 4 минуты 33 секунды:
robovan писал(а):...
я так понял, что этот кусок кода описывает время которое нужно что бы повернутся серве на какой то угол?

http://roboforum.ru/forum10/topic15622-15.html#p332360
нет. там обьявление переменных и простенький цикл, в котором тебе нужно посмотреть сколько прошло времени и вычислить, на какой угол в этот момент должна быть повёрнута серва.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Экзоскелет "кРок"

Сообщение robovan » 20 июл 2015, 19:54

что что? Я вообще мало что понимаю из того что вы мне пишете. Не нужно так бурно реагировать))
Последний раз редактировалось robovan 17 авг 2015, 01:19, всего редактировалось 2 раз(а).
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение Angel71 » 20 июл 2015, 21:21

так пытайся вникать в написаное. нету у таких серв "плавно перемещайся туда-то", вот нет и всё. получает она управляющие импульсы и если условно и не вникать в тараканы электроники сервы, вращает она почти с одинаковой скоростью. плавно сам делай. твоя задача сводится к примитивнейшим математическим вычислениям и про то, что есть сервы, ардуины, программирование, можно особо не думать. абстрагируйся. у тебя есть числа - начальное, текущее и конечное положения. ещё есть текущее значение времени или время, прошедшее с какого-то момента, допустим с начала вращения сервы. ещё есть значение времени, за которое текущее положение должно изменяться от начального до конечного. вот смотришь сколько времени прошло и вычисляешь, чему должно равняться это текущее значение. хочешь, делай как в примере с millis. хочешь делай через цикл for. давай второй вариант разжую.
начальное положение 20, конечное 80. должно провернуться за одну секунду. допустим текущее значение должно меняться за 10 итераций. значит делишь 60 градусов и 1000 миллисекунд на 10. тогда будет примерно так
Код: Выделить всёРазвернуть
for(i=1; i<=10; i++)
{
  servo.write (20 + i * 6);
  delay(100);
}

за 20 итераций
Код: Выделить всёРазвернуть
for(i=1; i<=20; i++)
{
  servo.write (20 + i * 3);
  delay(50);
}

за 60 итераций
Код: Выделить всёРазвернуть
for(i=1; i<=60; i++)
{
  servo.write (20 + i);
  delay(17);
}

вот для своего кода примерно так и делаешь для каждой сервы. у тебя в последнем коде задаётся 4 положения, вот для нужных серв все 4 раза и делай такие циклы. примитивно, много кода, но для развития понимания нормально.
с millis всё тоже самое, просто смотришь сколько времени прошло и вычисляешь, в каком положении должна быть серва. с for ты просто сразу посчитал нужную задержку и на сколько положение должно было измениться на каждой итерации.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Экзоскелет "кРок"

Сообщение robovan » 20 июл 2015, 22:35

СПАСИБО!! завтра обязательно попробую:)

Добавлено спустя 2 минуты:
только код же исполняется последовательно, а мне нужно двигать сервами паралельно минимум 2 мя

Добавлено спустя 42 секунды:
и получается что оно пока одну серву не доведет до нужного угла другую не трогает

Добавлено спустя 3 минуты 21 секунду:
ну как то так
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение Angel71 » 20 июл 2015, 22:52

на одной сделай сначала двумя этими вариантами - с for и с while, в котором позиция на основе millis вычисляется. потом за две берись. если у тебя время, за которое должны несколько серв провернуться одинаково, значит вычисляешь на какой коофициент умножать и будет как-то так
for(i=1; i<=60; i++)
{
servo.write(20 + i);
servo2.write(20 + i * 1.05);
delay(17);
}
или пробуй придумать как ещё, вариантов много. сначала простые варианты, хоть в лоб и коряво. потом пробовать улучшать и усложнять.
код последовательно и что с того? перечитай предыдущую страницу. процессов несколько (движение сервы, прерывание таймера,...), они дискретны по времени и у каждого свой шаг времени. в прерывании управляющий сигнал 50 раз в секунду формируется. и т.д. времени на вычисления и вызов servo.write вагон и маленькая тележка. чуть позже в любом случае придешь к тому, что нужно будет не такой корявенький for делать и заранее вычислять, а на ходу определять, в какое положение должна стремиться серва и вычислять положение, допустим через тот же millis.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Экзоскелет "кРок"

Сообщение robovan » 20 июл 2015, 23:56

хм, интересный вариант

Добавлено спустя 7 минут 5 секунд:
Последний раз редактировалось robovan 17 авг 2015, 01:20, всего редактировалось 1 раз.
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение Angel71 » 20 июл 2015, 23:57

коряво-дубовый вариант. вникай и тренируйся с различными вариантами. потом еще кучу раз всё с нуля переписывать. если сразу делать сложней, так совсем ничего не поймешь. :D ты же не хочешь перестрелять всех со седей от злости? ружьишко вон какое грозное (ещё хоть не отобрали?).
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Экзоскелет "кРок"

Сообщение robovan » 21 июл 2015, 00:06

не, не отобрали)))
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение Angel71 » 21 июл 2015, 00:15

вот ты и спалился. стало быть делаешь шагающего робота с ружьишком. :crazy: :D
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Экзоскелет "кРок"

Сообщение robovan » 21 июл 2015, 01:10

)))) ага проект "железный инвалид")))
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение dccharacter » 21 июл 2015, 02:39

Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Экзоскелет "кРок"

Сообщение robovan » 21 июл 2015, 11:58

знакомое видио)))

Добавлено спустя 2 минуты 19 секунд:
если бы задача кзоскелета только шагать то можно и так))) :D но нужны действия сесть, встать, шагагать, поворот при остановке. 8)

Добавлено спустя 22 минуты 44 секунды:
посмотрите внимательно это видео
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение robovan » 22 июл 2015, 15:29

решил использовать двигатели от стеклоподьемников.
Последний раз редактировалось robovan 28 ноя 2015, 01:52, всего редактировалось 1 раз.
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Re: Экзоскелет "кРок"

Сообщение robovan » 25 июл 2015, 22:04

кто нибудь пробровал такую систему? А то всвязи с фин. трудностями изготовление редуктора из покупных шестерней откладывается в дооолгий ящик :(

Добавлено спустя 33 секунды:
я думаю не будет ли сильно проскальзывать трос
Вложения
2015713205437.jpg
Самое важное в жизни- найти человека , который смотрит на мир, так же как и ты:)
Аватара пользователя
robovan
 
Сообщения: 1536
Зарегистрирован: 04 сен 2012, 00:39
Откуда: Украина
ФИО: Владимир

Пред.След.

Вернуться в Наши проекты

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

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