roboforum.ru

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

шестиног на меге

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

шестиног на меге

Сообщение Piter Pen » 27 окт 2017, 17:04

Доброго времени. Собираю шестинога, прожект не мой, за основу взят DIY Arduino Hexapod (прям по этим словам можно погуглить). если кратко - 18 серв, ардуино мега, блютуз HС-05 для управления с телефона. Отличие только в сервах. у автора цифровые, металлические, у меня стоят дешевые китайские MG90. Собрал стало быть я его, а он чего то капризничает. спустя несколько дней понимаю, что без помощи знающих и опытных не справлюсь. Посему хотелось бы получить ответы людей более сведущих.
1. при подачи напряжения сервы рывками движутся. вопрос - почему? сомнения были что они аналоговые... но пока так и остались сомнениями. на счет кода - ничего не скажу, код скетча с того же проекта. Сложность добавляет еще то что он даже не на английском (кипрский кажется)
2. модуль блютуз (HС-05) работает. ну как работает - с телефоном конектится, а команды не принимает/передает... тоже пока не могу понять почему... с подключением модуля вроде нет хитростей... правда китайские братья прислали его без адаптера, пришлось пропаиваться самостоятельно...
про остальное пока не буду спрашивать. думаю ,что если разберусь с этими двумя вопросами - остальные решу сам :) по крайней мере буду пытаться. уделившим моей теме внимание - огромная благодарность и + к карме :)
Piter Pen
 
Сообщения: 27
Зарегистрирован: 08 окт 2016, 01:46

Re: шестиног на меге

Сообщение Angel71 » 27 окт 2017, 17:57

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

Re: шестиног на меге

Сообщение Piter Pen » 27 окт 2017, 22:18

Да это было самое первое включение. Сервы градуса на 3(визуально) проворачивались. Если не было команды с джойстика двигаться то как тогда контроллер ими командовал? И как он (контроллер) понимает какое есть сейчас положение и к какому положению нужно привести сервы?
Piter Pen
 
Сообщения: 27
Зарегистрирован: 08 окт 2016, 01:46

Re: шестиног на меге

Сообщение Angel71 » 27 окт 2017, 22:30

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

Re: шестиног на меге

Сообщение Piter Pen » 28 окт 2017, 23:11

для отработки собрал пример... ардуино уно и на ней сенсор шилд 5.0. на шилде группа серв которая циклично повторяет вращение (все одинаково)... с этим как бы понятно... сейчас пытаюсь этой группой управлять с джойстика... только как на шилду его подсоединить - никак не дойдет... не хотелось бы связываться со сдвиговыми регистрами... что то мне подсказывает что можно и без них обойтись....
Piter Pen
 
Сообщения: 27
Зарегистрирован: 08 окт 2016, 01:46

Re: шестиног на меге

Сообщение Angel71 » 29 окт 2017, 08:31

на уно или про мини пинов хватает, ещё и большая часть незанятыми останутся. а тут мега... к этой меге ещё какой-то шилд прилепили, от чего более пол сотни гпио бесполезными стали. к некому шилду надумали прикрутить какой-то джойстик (что бы под этим не подразумевалось) и не можете решить, а как же без сдвиговых регистров джойстик подключить. т.е. почти полностью "угадайте, что и как сделано" (туда же с поиском по "DIY Arduino Hexapod" - к гадалке не ходи, будет далеко не один вариант). и с таким отношениме хотите что бы с вами возились?
есть куча разных плат/шилдов драйверов серв. есть на микроконтроллерах, простенькие и с различными наворотами. не нужны навороты, есть простенькие недорогие на микросхемах светодиодных драйверов (одна из очень популярных pca9685). управление по i2c, spi, uart, может ещё по какому интерфейсу. т.е. от основного контроллера нужно всего несколько пинов. +разружает основной мк не только по пинам.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: шестиног на меге

Сообщение Piter Pen » 29 окт 2017, 20:15

ну к меге я шилд не лепил. шилд прилеплен на ардуино уно. без шилда к примеру повесьте 18 серв на уно. по поводу джойстика - вот такой http://greenchip.com.ua/images/product/100/146/big.jpg к меге можно и без шилда 18 подцепить.
по поводу DIY Arduino Hexapod - первая ссылка в поисковике гугл. я сюда обратился за советом (личное дело каждого и добровольное), а не за тем что бы со мной возились... для меня это разные вещи...
за ваш совет - спасибо. пойду изучать матчасть.
пы.сы.: язык на котором вы "говорите" - для меня нов и сложен (я про "управление по i2c, spi, uart", к примеру) поэтому не стоит от меня ждать более менее правильно поставленных вопросов. ждите нубских по большей части, на которые я не смог/смогу найти ответы в других источниках. так что извиняйте.
Piter Pen
 
Сообщения: 27
Зарегистрирован: 08 окт 2016, 01:46

Re: шестиног на меге

Сообщение Angel71 » 30 окт 2017, 05:42

вот и последствия описания "угадай что и как делаю" - даже внимательно в каждую буковку нет желания вчитываться.
без шилда? можно
1.jpg
1.jpg (10.49 КиБ) Просмотров: 2451

какая первая ссылка? на разных серверах и даже на одном (как минимум подстройка под пользователя) легко может выдавать сильно разные результаты. и почему именно первая? на "за основу взят DIY Arduino Hexapod (прям по этим словам можно погуглить)" реакция была такой "там в выдаче будет куча ссылок и он хочет, что бы угадывали, какой из проектов взят за основу? дануна". эта "первую ссылку" думаешь сильно что-то меняет? врядли. хорошо, эксперимент. открываю по первой ссылке. :pardon: нет никаких блютузов и управления со смартфона. открываю вторую. и в ней нет.
:) за советом/повозиться разные вещи? так меняй своё отношение. за пару дней на форуме было прилично людей, которые или хексов собирали или у них есть более чем достаточно знаний и опыта возни со всем нужным. фиолетово, знаешь или не знаешь, что такое i2c/spi/uart, как работают сервы,... это всё поправимо. дело в описании. сложно при описании сразу давать ссылки, показать фото/код/..., как что подключено, если нужно, уточнить ещё что (за основу чего взял, но внёс какие изменения, так и описать изменения - ссылки, фото или ещё что, что бы не гадали, что и как сделано и в чём можт быть проблема)? иногда стоит в первом сообщении держать всю информацию, достаточную для понимания текущего состояния.
двухосевой джойстик с кнопкой, т.е. два потенциометра (переменное сопротивление) и кнопка. потенциометры можно на прямую на аналоговые пины. можно на один аналоговый пин через аналоговый мультиплексор. опять угадывать, заняты все аналоговые пины шилдом или есть свободные и проброшены они или нет? чудно, только надоедает быстро. есть и другие варианты, допустим на цифровой пин и измерять время разряда ёмкости или через компаратор(ы).
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: шестиног на меге

Сообщение Piter Pen » 30 окт 2017, 11:18

Вы правы! слишком мало информации с моей стороны. Приношу извинения. Основа вот этот проект
Автор использовал ардуино мега, 18 серв (mg995), блутуз модуль HC-06, источник питания, провода, телефон. у меня сервы sg90, модуль блютуз HC-05, остальное все так же. управляющие пины для серв с 22 по 39
вот скетч автора
Код: Выделить всёРазвернуть
#include <Servo.h>
Servo servo_Lijevi_Gornji_Zglob_1;        // LEFT UP JOINT
Servo servo_Lijevi_Gornji_Zglob_2;        //                      ________________________________________
Servo servo_Lijevi_Gornji_Zglob_3;       // Pin- 22,23,24    |                                        |   25,26,27
                                          //                     |                                        |
Servo servo_Desni_Gornji_Zglob_1;         // RIGHT UP  JOINT                  |                                        |
Servo servo_Desni_Gornji_Zglob_2;         //                     |                                        |
Servo servo_Desni_Gornji_Zglob_3;         //                     |                                        |
                                          //                     |                                        |
Servo servo_Lijevi_Srednji_Zglob_1;       //  LEFT MIDDLE  JOINT                   |                                        |
Servo servo_Lijevi_Srednji_Zglob_2;       //                     |                                        |
Servo servo_Lijevi_Srednji_Zglob_3;      // Pin - 28,29,30    |                HEXAPOD                 |   31,32,33
                                          //                     |                                        |
Servo servo_Desni_Srednji_Zglob_1;        // RIGHT MIDDLE JOINT                    |                                        |
Servo servo_Desni_Srednji_Zglob_2;        //                     |                                        |
Servo servo_Desni_Srednji_Zglob_3;        //                     |                                        |
                                          //                     |                                        |
Servo servo_Lijevi_Donji_Zglob_1;         //  LEFT DOWN JOINT                  |                                        |
Servo servo_Lijevi_Donji_Zglob_2;         //                     |                                        |
Servo servo_Lijevi_Donji_Zglob_3;        // Pin - 34,35,36    |                                        |   37,38,39
                                          //                     |________________________________________|
Servo servo_Desni_Donji_Zglob_1;          // RIGHT DOWN JOINT
Servo servo_Desni_Donji_Zglob_2;          //
Servo servo_Desni_Donji_Zglob_3;




int val;

int svijetla1 = 11;


int rasvjeta = 0;
int brightness = 0;

int Sklop = 11;

void setup()
{
  pinMode(svijetla1, OUTPUT);
 
  servo_Lijevi_Gornji_Zglob_1.attach(39);
  servo_Lijevi_Gornji_Zglob_2.attach(38);
  servo_Lijevi_Gornji_Zglob_3.attach(37);
  servo_Desni_Gornji_Zglob_1.attach(36);
  servo_Desni_Gornji_Zglob_2.attach(35);
  servo_Desni_Gornji_Zglob_3.attach(34);
  servo_Lijevi_Srednji_Zglob_1.attach(33);
  servo_Lijevi_Srednji_Zglob_2.attach(32);
  servo_Lijevi_Srednji_Zglob_3.attach(31);
  servo_Desni_Srednji_Zglob_1.attach(30);
  servo_Desni_Srednji_Zglob_2.attach(29);
  servo_Desni_Srednji_Zglob_3.attach(28); 
  servo_Lijevi_Donji_Zglob_1.attach(27);
  servo_Lijevi_Donji_Zglob_2.attach(26);
  servo_Lijevi_Donji_Zglob_3.attach(25);
  servo_Desni_Donji_Zglob_1.attach(24);
  servo_Desni_Donji_Zglob_2.attach(23);
  servo_Desni_Donji_Zglob_3.attach(22);


  servo_Lijevi_Gornji_Zglob_1.write(78);
  servo_Desni_Gornji_Zglob_1.write(77);
  servo_Lijevi_Srednji_Zglob_1.write(108);
  servo_Desni_Srednji_Zglob_1.write(76);
  servo_Lijevi_Donji_Zglob_1.write(75);
  servo_Desni_Donji_Zglob_1.write(83);

  servo_Lijevi_Gornji_Zglob_2.write(120);
  servo_Desni_Gornji_Zglob_2.write(62);
  servo_Lijevi_Srednji_Zglob_2.write(116);
  servo_Desni_Srednji_Zglob_2.write(35);
  servo_Lijevi_Donji_Zglob_2.write(62);
  servo_Desni_Donji_Zglob_2.write(132);

  servo_Lijevi_Gornji_Zglob_3.write(41);
  servo_Desni_Gornji_Zglob_3.write(32);
  servo_Lijevi_Srednji_Zglob_3.write(178);
  servo_Desni_Srednji_Zglob_3.write(6);
  servo_Lijevi_Donji_Zglob_3.write(34);
  servo_Desni_Donji_Zglob_3.write(15);


  delay(1000);
  servo_Lijevi_Gornji_Zglob_3.write(45);
  servo_Desni_Gornji_Zglob_3.write(35);
  servo_Lijevi_Srednji_Zglob_3.write(178);
  servo_Desni_Srednji_Zglob_3.write(10);
  servo_Lijevi_Donji_Zglob_3.write(40);
  servo_Desni_Donji_Zglob_3.write(20);


  Serial.begin(9600); 

  delay(5000);
}
int stanje = 0;

void loop()
{
 
  if (Serial.available())
  {
   
    char val = Serial.read();
    switch(val)
    {
    case 'F':
      {
        if(stanje = 1)
        {
        Naprijed();
        }
        break;
      }
    case 'W':
      {
         stanje = 1;
        USTANI();
       
        break;
      }
    case 'w':
      {
        stanje = 0;
        SJEDNI();
       
        break;
      }
    case 'B':
      {
        if(stanje = 1)
        {
        Nazad();
        }
        break;
      }
    case 'L':
      {
        if(stanje = 1)
        {
        Lijevo();
        }
        break;
      }
    case 'R':
      {
        if(stanje = 1)
        {
        Desno();
        }
        break;
      }
      case 'U':
      {
       
      RasvjetaON();
        break;
      }
      case 'u':
      {
      RasvjetaOFF();
        break;
      }
    }

  }
}
void RasvjetaON()
{

    digitalWrite(svijetla1, HIGH);

}
void RasvjetaOFF()
{
   digitalWrite(svijetla1, LOW); 
}

void USTANI()
{
   servo_Lijevi_Gornji_Zglob_1.write(78);
  servo_Desni_Gornji_Zglob_1.write(77);
  servo_Lijevi_Srednji_Zglob_1.write(108);
  servo_Desni_Srednji_Zglob_1.write(76);
  servo_Lijevi_Donji_Zglob_1.write(75);
  servo_Desni_Donji_Zglob_1.write(83);

  delay(1000);
  servo_Lijevi_Gornji_Zglob_3.write(45);
  servo_Desni_Gornji_Zglob_3.write(35);
  servo_Lijevi_Srednji_Zglob_3.write(178);
  servo_Desni_Srednji_Zglob_3.write(10);
  servo_Lijevi_Donji_Zglob_3.write(40);
  servo_Desni_Donji_Zglob_3.write(20);

  delay(400);
  servo_Lijevi_Gornji_Zglob_2.write(179);
  servo_Desni_Gornji_Zglob_2.write(114);
  servo_Lijevi_Srednji_Zglob_2.write(51);
  servo_Desni_Srednji_Zglob_2.write(88);
  servo_Lijevi_Donji_Zglob_2.write(121);
  servo_Desni_Donji_Zglob_2.write(76);
  delay(500);
  servo_Lijevi_Gornji_Zglob_3.write(61);
  servo_Desni_Gornji_Zglob_3.write(52);
  servo_Lijevi_Srednji_Zglob_3.write(160);
  servo_Desni_Srednji_Zglob_3.write(26);
  servo_Lijevi_Donji_Zglob_3.write(54);
  servo_Desni_Donji_Zglob_3.write(35);
stanje = 1;
}



void SJEDNI()
{
  delay(1000);
  servo_Lijevi_Gornji_Zglob_1.write(78);
  servo_Desni_Gornji_Zglob_1.write(77);
  servo_Lijevi_Srednji_Zglob_1.write(108);
  servo_Desni_Srednji_Zglob_1.write(76);
  servo_Lijevi_Donji_Zglob_1.write(75);
  servo_Desni_Donji_Zglob_1.write(83);
 
  servo_Lijevi_Gornji_Zglob_2.write(90); //Povecati
  servo_Desni_Gornji_Zglob_2.write(95);   // Smanjiti
  servo_Lijevi_Srednji_Zglob_2.write(75);  // Povecati
  servo_Desni_Srednji_Zglob_2.write(65);   // Smanjiti
  servo_Lijevi_Donji_Zglob_2.write(85);    // Smanjiti
  servo_Desni_Donji_Zglob_2.write(100);    // Povecati
  delay(100);
  servo_Lijevi_Gornji_Zglob_2.write(95); //Povecati
  servo_Desni_Gornji_Zglob_2.write(90);   // Smanjiti
  servo_Lijevi_Srednji_Zglob_2.write(80);  // Povecati
  servo_Desni_Srednji_Zglob_2.write(60);   // Smanjiti
  servo_Lijevi_Donji_Zglob_2.write(80);    // Smanjiti
  servo_Desni_Donji_Zglob_2.write(105);    // Povecati
  delay(100);
  servo_Lijevi_Gornji_Zglob_2.write(107); //Povecati
  servo_Desni_Gornji_Zglob_2.write(82);   // Smanjiti
  servo_Lijevi_Srednji_Zglob_2.write(87);  // Povecati
  servo_Desni_Srednji_Zglob_2.write(52);   // Smanjiti
  servo_Lijevi_Donji_Zglob_2.write(72);    // Smanjiti
  servo_Desni_Donji_Zglob_2.write(117);    // Povecati
  delay(100);
  servo_Lijevi_Gornji_Zglob_2.write(115); //Povecati
  servo_Desni_Gornji_Zglob_2.write(75);   // Smanjiti
  servo_Lijevi_Srednji_Zglob_2.write(95);  // Povecati
  servo_Desni_Srednji_Zglob_2.write(45);   // Smanjiti
  servo_Lijevi_Donji_Zglob_2.write(65);    // Smanjiti
  servo_Desni_Donji_Zglob_2.write(125);    // Povecati
  delay(500);

  servo_Lijevi_Gornji_Zglob_2.write(120);
  servo_Desni_Gornji_Zglob_2.write(50);
  servo_Lijevi_Srednji_Zglob_2.write(108);
  servo_Desni_Srednji_Zglob_2.write(30);
  servo_Lijevi_Donji_Zglob_2.write(60);
  servo_Desni_Donji_Zglob_2.write(133);

  servo_Lijevi_Gornji_Zglob_3.write(51);
  servo_Desni_Gornji_Zglob_3.write(37);
  servo_Lijevi_Srednji_Zglob_3.write(165);
  servo_Desni_Srednji_Zglob_3.write(19);
  servo_Lijevi_Donji_Zglob_3.write(53);
  servo_Desni_Donji_Zglob_3.write(35);

stanje = 0;
}



void Naprijed()
{
  servo_Lijevi_Gornji_Zglob_2.write(152);
  servo_Desni_Srednji_Zglob_2.write(42); 
  servo_Lijevi_Donji_Zglob_2.write(93);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(98); 
  servo_Desni_Srednji_Zglob_1.write(56);
  servo_Lijevi_Donji_Zglob_1.write(54);
  delay(100);
  servo_Lijevi_Gornji_Zglob_2.write(179);
  servo_Desni_Srednji_Zglob_2.write(88); 
  servo_Lijevi_Donji_Zglob_2.write(122);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(78);
  servo_Desni_Srednji_Zglob_1.write(76);
  servo_Lijevi_Donji_Zglob_1.write(75);
  delay(100);
 
  servo_Desni_Gornji_Zglob_2.write(70);
  servo_Lijevi_Srednji_Zglob_2.write(88);
  servo_Desni_Donji_Zglob_2.write(110);
  delay(100);
  servo_Desni_Gornji_Zglob_1.write(63);
  servo_Lijevi_Srednji_Zglob_1.write(123);
  servo_Desni_Donji_Zglob_1.write(95);
  delay(100);
  servo_Desni_Gornji_Zglob_2.write(114);
  servo_Lijevi_Srednji_Zglob_2.write(51);
  servo_Desni_Donji_Zglob_2.write(76);
  delay(100);
  servo_Desni_Gornji_Zglob_1.write(77);
  servo_Lijevi_Srednji_Zglob_1.write(108);
  servo_Desni_Donji_Zglob_1.write(83);
  delay(100);

}


void Nazad()
{
servo_Lijevi_Gornji_Zglob_2.write(152);
  servo_Desni_Srednji_Zglob_2.write(42); 
  servo_Lijevi_Donji_Zglob_2.write(93);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(63); 
  servo_Desni_Srednji_Zglob_1.write(91);
  servo_Lijevi_Donji_Zglob_1.write(89);
  delay(100);
  servo_Lijevi_Gornji_Zglob_2.write(179);
  servo_Desni_Srednji_Zglob_2.write(88); 
  servo_Lijevi_Donji_Zglob_2.write(122);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(78);
  servo_Desni_Srednji_Zglob_1.write(76);
  servo_Lijevi_Donji_Zglob_1.write(75);
  delay(100);

  servo_Desni_Gornji_Zglob_2.write(70);
  servo_Lijevi_Srednji_Zglob_2.write(88);
  servo_Desni_Donji_Zglob_2.write(110);
  delay(100);
  servo_Desni_Gornji_Zglob_1.write(97);
  servo_Lijevi_Srednji_Zglob_1.write(95);
  servo_Desni_Donji_Zglob_1.write(67);
  delay(100);
  servo_Desni_Gornji_Zglob_2.write(112);
  servo_Lijevi_Srednji_Zglob_2.write(56);
  servo_Desni_Donji_Zglob_2.write(80);
  delay(100);
   servo_Desni_Gornji_Zglob_1.write(77);
  servo_Lijevi_Srednji_Zglob_1.write(108);
  servo_Desni_Donji_Zglob_1.write(83);
  delay(100);
}




void Lijevo()
{
   servo_Lijevi_Gornji_Zglob_2.write(150);
  servo_Desni_Srednji_Zglob_2.write(37); 
  servo_Lijevi_Donji_Zglob_2.write(85);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(66); 
  servo_Desni_Srednji_Zglob_1.write(51);
  servo_Lijevi_Donji_Zglob_1.write(88);
  delay(100);
  servo_Lijevi_Gornji_Zglob_2.write(178);
  servo_Desni_Srednji_Zglob_2.write(85); 
  servo_Lijevi_Donji_Zglob_2.write(125);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(78);
  servo_Desni_Srednji_Zglob_1.write(76);
  servo_Lijevi_Donji_Zglob_1.write(75);
  delay(100);

  servo_Desni_Gornji_Zglob_2.write(70);
  servo_Lijevi_Srednji_Zglob_2.write(88);
  servo_Desni_Donji_Zglob_2.write(113);
  delay(100);
  servo_Desni_Gornji_Zglob_1.write(56);
  servo_Lijevi_Srednji_Zglob_1.write(95);
  servo_Desni_Donji_Zglob_1.write(100);
  delay(100);
  servo_Desni_Gornji_Zglob_2.write(114);
  servo_Lijevi_Srednji_Zglob_2.write(51);
  servo_Desni_Donji_Zglob_2.write(76);
  delay(100);
   servo_Desni_Gornji_Zglob_1.write(77);
  servo_Lijevi_Srednji_Zglob_1.write(108);
  servo_Desni_Donji_Zglob_1.write(83);
  delay(100);

}




void Desno()
{

  servo_Lijevi_Gornji_Zglob_2.write(150);
  servo_Desni_Srednji_Zglob_2.write(37); 
  servo_Lijevi_Donji_Zglob_2.write(85);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(95);
  servo_Desni_Srednji_Zglob_1.write(91); 
  servo_Lijevi_Donji_Zglob_1.write(63);
  delay(100);
  servo_Lijevi_Gornji_Zglob_2.write(178);
  servo_Desni_Srednji_Zglob_2.write(85); 
  servo_Lijevi_Donji_Zglob_2.write(125);
  delay(100);
  servo_Lijevi_Gornji_Zglob_1.write(78);
  servo_Desni_Srednji_Zglob_1.write(76);
  servo_Lijevi_Donji_Zglob_1.write(75);
  delay(100);


  servo_Desni_Gornji_Zglob_2.write(70);
  servo_Lijevi_Srednji_Zglob_2.write(88);
  servo_Desni_Donji_Zglob_2.write(113);
  delay(100);
  servo_Desni_Gornji_Zglob_1.write(98);
  servo_Lijevi_Srednji_Zglob_1.write(122);
  servo_Desni_Donji_Zglob_1.write(64);
  delay(100);
  servo_Desni_Gornji_Zglob_2.write(112);
  servo_Lijevi_Srednji_Zglob_2.write(56);
  servo_Desni_Donji_Zglob_2.write(78);
  delay(100);   
   servo_Desni_Gornji_Zglob_1.write(77);
  servo_Lijevi_Srednji_Zglob_1.write(108);
  servo_Desni_Donji_Zglob_1.write(83);
  delay(100);

}





почему именно этот проект? мне он показался относительно не сложным, все было в наличии, да и повторяемость вроде простая

Добавлено спустя 4 минуты 12 секунд:
фото у автора не разборчивые. как и что подключать разбирался по скетчу (автор указывает на это). блютуз подключал вот так http://cxem.net/arduino/arduino63-4.jpg

Добавлено спустя 39 секунд:
единственное что нога LED не задействована
Piter Pen
 
Сообщения: 27
Зарегистрирован: 08 окт 2016, 01:46

Re: шестиног на меге

Сообщение Angel71 » 30 окт 2017, 13:32

перерисовывать со стандартных серв на микро, жестяк. в сети же хватает мест, где взять чертежи для паучков на микросервах.
у него ардуино мега без внешнего сервоконтроллера. библиотека servo на ней вроде до 48 серв поддерживает. на уно вроде до 12, можно ли переделать её, что бы 18 поддерживало... лениво глубже копать, что бы выяснить, что можно ли на уно больше выжать и есть ли другие готовые библиотеки, в которых это уже сделано. тем более у вас какой-то шилд непонятный, свободных пинов [почти] не останется + в пень все эти извраты, когда для уно можно использовать один или несколько внешних сервоконтроллеров, которые упростят не только с пинами.
"остальное все так же. управляющие пины для серв с 22 по 39" :) не, тот код даже откомпилирует, но как бы так помягче? есть пины 0-13, ещё есть a0-a5 (вроде числом это 14-19) и всё. что за пины будут после 19 и будет ли вообще какие-то пины задействовать, что будет при работе библиотеки servo при попытке работы за пределами массива, хз. хотя раз не упоминали, значит всё нормально. момент с шилодом и джойстиками туда же.
код у него ужас, ужас. для "о!!! оно шевелитсо" сойдёт, а так это... это демонстрационное чудо "как не надо делать" только стирать. хочется джойстик, для начала хоть просто с ацп данные получать и хоть в уарт на компьютер отправлять. хекса можно пузом на книжки, коробку или ещё на что, что бы лапы в воздухе болтались. можно для начала и одну лапу взять и к чему прикрутить. и начинать разбираться с сервами - управляющие импульсы, их диапазон, калибровка и т.д. как лапами управлять... хоть так по дурацки, как в том проекте. можно секвенсор, хотя это и не особо лучше. есть намного более хорошие варианты, но пока об это немного рановато.
стабилизатор ардуино даже парочку таких серв при нагрузке не должен выдержать, т.е. питать их от аккумулятора или внешнего блока питания. им примерно 5в нужно. земдя с ардуиновской должна быть соединена. одной лапы достаточно что бы прорабатывать, как управлять + пока не определился, с этим непонятным шилдом работать или другой взять, будут свободные пины для джойстика или ещё чего.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1


Вернуться в Arduino и другие Xduino

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

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