расслабление сервы

SLOM
Offline
Зарегистрирован: 06.11.2014

trembo пишет:

jeka_tm пишет:

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

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

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

 

а когда ее снова включаете она уходит в какоето другое положение или остаеться где включили? 

можно ваш код позаимствовать? :)

Logik
Offline
Зарегистрирован: 05.08.2014

SLOM пишет:

а когда ее снова включаете она уходит в какоето другое положение или остаеться где включили? 

можно ваш код позаимствовать? :)

Так нельзя её просто "включить"! Вы при этом на неё ШИМ подадите, она и начнет его отрабатывать. И поедет или нет - зависит от установленого значения, ну и особенности библиотеки причудливо могут наложится. Я не использую стандартные либы, точно не скажу.  А руками выключеная серва очень даже проворачивается. Код и не просите,  он слишком тривиален, ни кто не станет так опускатся :)

SLOM
Offline
Зарегистрирован: 06.11.2014

Logik пишет:

  А руками выключеная серва очень даже проворачивается. Код и не просите,  он слишком тривиален, ни кто не станет так опускатся :)

поворачиваеться, но при хорошем усилии! само по себе не сдвиниться! 

 

SLOM
Offline
Зарегистрирован: 06.11.2014
bwn
Offline
Зарегистрирован: 25.08.2014

О, третья серия))). А что, Дон Карлос уже узнал когда серву пора останавливать? И уже вплотную подошел к вопросу, как останавливать?

bwn
Offline
Зарегистрирован: 25.08.2014

SLOM пишет:

новое видео

https://www.youtube.com/watch?v=hddHKgop9aY&feature=youtu.be

А машинка прикольная. Рывки так и не победили?

SLOM
Offline
Зарегистрирован: 06.11.2014

bwn пишет:

SLOM пишет:

новое видео

https://www.youtube.com/watch?v=hddHKgop9aY&feature=youtu.be

А машинка прикольная. Рывки так и не победили?

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

 

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

баги скетча)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Logik пишет:

SLOM пишет:

а когда ее снова включаете она уходит в какоето другое положение или остаеться где включили? 

можно ваш код позаимствовать? :)

Так нельзя её просто "включить"! Вы при этом на неё ШИМ подадите, она и начнет его отрабатывать. И поедет или нет - зависит от установленого значения, ну и особенности библиотеки причудливо могут наложится. Я не использую стандартные либы, точно не скажу.  А руками выключеная серва очень даже проворачивается. Код и не просите,  он слишком тривиален, ни кто не станет так опускатся :)

Положение сервы до detach запоминается в библиотеке.  если вы ничего с сервой не делали то после attach  она просто останется дёргаться на том-же месте(положении)

SLOM
Offline
Зарегистрирован: 06.11.2014

trembo пишет:

Положение сервы до detach запоминается в библиотеке.  если вы ничего с сервой не делали то после attach  она просто останется дёргаться на том-же месте(положении)

тоесть будет так? 

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

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

 

визуально для человека это будет выглядеть так? 

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

нажал кнопку разжать, серва разжалась, предмет выпал... 

 

все правильно? 

SLOM
Offline
Зарегистрирован: 06.11.2014

добавил на машину старый водомет,

и сделал клешню на отдельные кнопки. 

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

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

захватом управляет серва Z 

 

// Скетч для управления через блютус, Wild Thumper 6WD, на ардуино совместимом контролере TREX controller. реализовано движение и стрельба с водомета. 


#include <BTCA2ALite.h>// Добавляем библиотеку блютус программы
#include <Servo.h> // Добавляем библиотеку серво

Servo myservoH; // Горизонтальная серва водомета углы от 0 до 180 (центровка 89)
Servo myservoV; // Вертикальная серва водомета углы от 120 до 180
Servo myservoZ; // Cерва захвата манипулятора углы от 45 до 116



// ======================
const int Z_SERVO_PIN = 5; //  серва захвата манипулятора подключена к пину 7
const int H_SERVO_PIN = 7; // Горизонтальная серва подключена к пину 7
const int V_SERVO_PIN = 8; //Пин вертикального сервопривода 8
const float H_L_ANGLE = 180; // Максимальные угл поворота башни налево
const float H_R_ANGLE = 0; // Максимальные угл поворота башни направо
const float H_DEF_ANGLE = 84; // Дефолтный угол (центровка)
const float V_U_ANGLE = 180; // Максимальные угл поворота башни вверх
const float V_D_ANGLE = 150; // Максимальные угл поворота башни вниз
const float V_DEF_ANGLE = 160; // Дефолтный угол (центровка)
const float Z_L_ANGLE = 116; // Максимальные угл поворота башни налево
const float Z_R_ANGLE = 45; // Максимальные угл поворота башни направо
const float Z_DEF_ANGLE = 50; // Дефолтный угол (центровка)

//Размер шага V_STEP и H_STEP побираем экспериментально для достижения нужной скорости поворота серв
const float V_STEP = 0.012; // Шаг - знаение отвечающее за скорость вращения по вертикали.
const float H_STEP = 0.012; // Шаг - знаение отвечающее за скорость вращения по горизонтали
const float Z_STEP = 0.012; // Шаг - знаение отвечающее за скорость вращения захвата манипулятора
float curVAngle = V_DEF_ANGLE; //Переменная текущего угла верт. сервы
float curHAngle = H_DEF_ANGLE; //Переменная текущего угла гор. сервы
float curZAngle = Z_DEF_ANGLE; //Переменная текущего угла гор. сервы


bool moveServoVUp = false; //Флаг движения верт. сервы вверх
bool moveServoVDown = false; //Флаг движения верт. сервы вниз
bool moveServoHLeft = false; //Флаг движения гор. сервы влево
bool moveServoHRight = false; //Флаг движения гор. сервы вправо
bool moveServoZLeft = false; //Флаг движения гор. сервы влево
bool moveServoZRight = false; //Флаг движения гор. сервы вправо

btca2aLite btca2aLite; // Конструктор btca2aLite


// задаем пины для левого мотора
#define Dir_L 2
#define Pwm_L 3
#define Brake_L 4
// задаем пины для правого мотора
#define Dir_R 10
#define Pwm_R 11
#define Brake_R 9

// Задаем скорости для движения
byte MaxSpeed = 250; // Максимальная скорость
byte MinSpeed = 85;  // Минимальная скорость

int forw_back = 0;
int righ_left = 0;

byte step_fb = 5;     // Шаг изменения скорости движения вперед - назад
byte step_stop = 10;  // Шаг изменения скорости остановки
byte step_rl =  10;    // Шаг изменения скорости движения вправо - влево
byte step_dir = 10;   // Шаг изменения скорости выравнивания



#define SHOT  12 // пин для водомета

enum States
{
    WAITING,
    READING,
    RUNNING,
    ERROR,
    TIMEOUT
};

States state;
States onWait();
States onRead();
States onRun();
States onError();

States onTimeout();

void performServo(); // добовляем сервы


void setup(){
    Serial.begin(9600); // Скорость BT и порта должна быть 9600
    //Моторы
    pinMode (Pwm_L, OUTPUT);
    pinMode (Dir_L, OUTPUT);
    pinMode (Brake_L, OUTPUT);
    
    pinMode (Pwm_R, OUTPUT);
    pinMode (Dir_R, OUTPUT);
    pinMode (Brake_R, OUTPUT);
    
    digitalWrite (Pwm_L, LOW);
    digitalWrite (Pwm_R, LOW);
    
    digitalWrite (Brake_L, LOW);
    digitalWrite (Brake_R, LOW);
  
 pinMode(SHOT, OUTPUT); // задаем выход для стрельбы водой
    
    // устанавливаем пин как вывод управления сервой
    myservoZ.attach(Z_SERVO_PIN);
    myservoH.attach(H_SERVO_PIN);
    myservoV.attach(V_SERVO_PIN);
    
    myservoZ.write(curZAngle);
    myservoH.write(curHAngle);
    myservoV.write(curVAngle);
    
    
    //Светодиод
    pinMode(13, OUTPUT); // Инициализируем пин светодиода
    digitalWrite(13, HIGH); // Светодиод выключен
}

void loop(){
    
    btca2aLite.ReadCommand(); // Считывание принятых команд (кодов кнопок)
    //Вызываем функцию управление сервами
    performServo();
    
 //код моторов с плавным старт\стопом
 
  static unsigned long pre_millis = 0;
  if(millis()-pre_millis > 50)
  {
    pre_millis = millis();
    
    if(btca2aLite.ButtonPressed(KEYCODE_DPAD_UP)) 
    {
      forw_back += step_fb;
      if(forw_back > 0 && forw_back < MinSpeed) forw_back = MinSpeed;
    }
    else if(btca2aLite.ButtonPressed(KEYCODE_DPAD_DOWN)) 
    {
      forw_back -= step_fb;
      if(forw_back < 0 && forw_back > MinSpeed*-1) forw_back = MinSpeed*-1;
    }
    else 
    {
      if(forw_back < 0) forw_back += step_stop;
      else if(forw_back > 0) forw_back -= step_stop;
      if(abs(forw_back) < MinSpeed) forw_back = 0;
    }
    forw_back = constrain(forw_back, MaxSpeed*-1, MaxSpeed);


    if(btca2aLite.ButtonPressed(KEYCODE_DPAD_RIGHT)) 
    {
      righ_left += step_rl;
      if(righ_left > 0 && righ_left < MinSpeed) righ_left = MinSpeed;
    }
    else if(btca2aLite.ButtonPressed(KEYCODE_DPAD_LEFT)) 
    {
      righ_left -= step_rl;
      if(righ_left < 0 && righ_left > MinSpeed*-1) righ_left = MinSpeed*-1;
    }
    else 
    {
      if(righ_left < 0) righ_left += step_dir;
      else if(righ_left > 0) righ_left -= step_dir;
      if(abs(righ_left) < MinSpeed) righ_left = 0;
    }
    righ_left = constrain(righ_left, MaxSpeed*-1, MaxSpeed);


    int pwm_l = forw_back + righ_left;
    int pwm_r = forw_back - righ_left;
    pwm_l = constrain(pwm_l, MaxSpeed*-1, MaxSpeed);
    pwm_r = constrain(pwm_r, MaxSpeed*-1, MaxSpeed);

    digitalWrite(Dir_L, (pwm_l<0)?0:1);
    digitalWrite(Dir_R, (pwm_r<0)?0:1);
    analogWrite(Pwm_L, abs(pwm_l));
    analogWrite(Pwm_R, abs(pwm_r));
  }
        
  
    
    //-------— включение насоса —-------------
   if (btca2aLite.ButtonPressed(KEYCODE_BUTTON_SELECT))
    { 
     digitalWrite (SHOT, HIGH);
     }
    //-------— выключение насоса происходит автоматически после отпускания кнопки—------------- 
   if(btca2aLite.ButtonReleased(KEYCODE_BUTTON_SELECT))
    {
   digitalWrite (SHOT, LOW);
    } 
    
    
    //--------— Повороты серв при нажатии кнопок —-------------
    
    if(btca2aLite.Button(KEYCODE_BUTTON_X)) // servoV вниз
    {
        moveServoVDown = true;
              
    }
    if(btca2aLite.Button(KEYCODE_BUTTON_A)) // servoH движется к 0
    {
        moveServoHRight = true;
    }
    if(btca2aLite.Button(KEYCODE_BUTTON_B)) // servoV вверх
    {
        moveServoVUp = true;
              
    }
    
    if(btca2aLite.Button(KEYCODE_BUTTON_Y)) // servoH движется к 180
    {
        moveServoHLeft = true;
    }
    
    
 //--------— серва захвата манипулятора —-------------       
    if(btca2aLite.Button(KEYCODE_BUTTON_R1)) // servoH движется к 180
    {
        moveServoZLeft = true;
    }
    
    if(btca2aLite.Button(KEYCODE_BUTTON_R2)) // servoH движется к 180
    {
        moveServoZRight = true;
    }
    
       
    
    
//--------— чтобы сервы не продолжали движения при отжатых кнопках —-------------    
if(btca2aLite.ButtonReleased(KEYCODE_BUTTON_X))
{
moveServoVDown = false;
}
if(btca2aLite.ButtonReleased(KEYCODE_BUTTON_B))
{
moveServoVUp = false;
}

if(btca2aLite.ButtonReleased(KEYCODE_BUTTON_A))
{
moveServoHRight = false;
}
if(btca2aLite.ButtonReleased(KEYCODE_BUTTON_Y))
{
moveServoHLeft = false;
}

if(btca2aLite.ButtonReleased(KEYCODE_BUTTON_R1))
{
moveServoZRight = false;
}
if(btca2aLite.ButtonReleased(KEYCODE_BUTTON_R2))
{
moveServoZLeft = false;
}    
        
    
    
    
    
    
    //----------------— Стоп —---------------------
    
    // Если не нажата ни одна кнопка курсора происходит остановка, скорость 0 для каждого мотора
    if (btca2aLite.ButtonReleased(KEYCODE_DPAD_UP) && btca2aLite.ButtonReleased(KEYCODE_DPAD_DOWN) && btca2aLite.ButtonReleased(KEYCODE_DPAD_LEFT) && btca2aLite.ButtonReleased(KEYCODE_DPAD_RIGHT)){
        analogWrite (Pwm_L, 0);
        analogWrite (Pwm_R, 0);
    }
}



//Функция управления сервоприводами (вызывается в теле loop на каждой итерации)
//Выполняет изменения положения серв на подобранный шаг согласно установленным флагам движения
//Флаги устанавливаются согласно поступившим символам управления сервами
void performServo()
{
    //Установлен флаг движения вверх и текущий угол не максимальный
    if (moveServoVUp && curVAngle + V_STEP <= V_U_ANGLE)
    {
        //К текущему верт. углу прибавляем шаг
        curVAngle += V_STEP;
    }
    //Установлен флаг движения вниз и текущий угол не минимален
    else if (moveServoVDown && curVAngle - V_STEP >= V_D_ANGLE)
    {
        //От текущего верт. угла отнимаем шаг
        curVAngle -= V_STEP;
  
  }
    //Установлен флаг движения влево и текущий угол не максимален
    if (moveServoHLeft && curHAngle + H_STEP <= H_L_ANGLE)
    {
        //К текущему гор. углу прибавляем гор. шаг
        curHAngle += H_STEP;
    }
    //Установлен флаг движения вправо и текущий угол не минимален
    else if (moveServoHRight && curHAngle - H_STEP >= H_R_ANGLE)
    {
        //От текущего угла отнимаем гор. шаг
        curHAngle -= H_STEP;
    }
    
    
    
        //Установлен флаг движения влево и текущий угол не максимален
    if (moveServoZLeft && curZAngle + Z_STEP <= Z_L_ANGLE)
    {
        //К текущему гор. углу прибавляем гор. шаг
        curHAngle += Z_STEP;
    }
    //Установлен флаг движения вправо и текущий угол не минимален
    else if (moveServoZRight && curHAngle - Z_STEP >= Z_R_ANGLE)
    {
        //От текущего угла отнимаем гор. шаг
        curZAngle -= Z_STEP;
    }
    
        
    //Если было движние по вертикали
    if (moveServoVUp || moveServoVDown)
    {
        myservoV.write(curVAngle);
    }
    //Если было движение по горизонтали
    if (moveServoHLeft || moveServoHRight)
    {
        myservoH.write(curHAngle);
    }
    
    
     //Если было движение по горизонтали
    if (moveServoZLeft || moveServoZRight)
    {
        myservoZ.write(curZAngle);
    }
    
    
    
}

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

а где перёд ? где зад ?

если водомёт - голова , то вам нужно переобуть резину ! коврозацепы не так будут работать :( , можно поймать аквапланирование....

 

по коду : вернитесь к старым кнопкам на клешню и и попробуйде ещё раз переделать ( НО НУЖНО ЗАБЫТЬ КАК ДО ЭТОГО ПЕРЕДЕЛЫВАЛИ ) , мало кто полезет за вас искать вашу ошибку :(

SLOM
Offline
Зарегистрирован: 06.11.2014

SU-27-16 пишет:

а где перёд ? где зад ?

если водомёт - голова , то вам нужно переобуть резину ! коврозацепы не так будут работать :( , можно поймать аквапланирование....

 

по коду : вернитесь к старым кнопкам на клешню и и попробуйде ещё раз переделать ( НО НУЖНО ЗАБЫТЬ КАК ДО ЭТОГО ПЕРЕДЕЛЫВАЛИ ) , мало кто полезет за вас искать вашу ошибку :(

 

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

 

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

SLOM
Offline
Зарегистрирован: 06.11.2014

SU-27-16  Вы были правы, просто еще раз переделал скетч, причем действовал точно так же как в прошлый раз, ничего нового, и все заработало. даже незнаю в чем причина была, вчера бился 3 часа, а сегодня за 20 мин все заработало. 

 

правда пока как сделать расслабон серве так и не решил. хочу всетаки 4й провод в серву внедрить. но как это дело приписать к уже существаующему скетчу, пока опыта не хватает (

Sanchogus
Offline
Зарегистрирован: 02.01.2015

SLOM пишет:

SU-27-16  Вы были правы, просто еще раз переделал скетч, причем действовал точно так же как в прошлый раз, ничего нового, и все заработало. даже незнаю в чем причина была, вчера бился 3 часа, а сегодня за 20 мин все заработало. 

 

правда пока как сделать расслабон серве так и не решил. хочу всетаки 4й провод в серву внедрить. но как это дело приписать к уже существаующему скетчу, пока опыта не хватает (

Посмотрел  цены на датчики давления... от 400р. Печаль. Видимо не пойдет приделать его к клешне. :)

А насколько сильно серва греется? Может к ней дешевый термистор и как только превышение температуры - хватит жать.

Прям только серва выше 35 градусов - значит зажато до кондиции. :D

_____________________________________

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

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

)))) тема продолжается

bwn
Offline
Зарегистрирован: 25.08.2014

jeka_tm пишет:

)))) тема продолжается

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

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

нет его

SLOM
Offline
Зарегистрирован: 06.11.2014

Sanchogus пишет:

Посмотрел  цены на датчики давления... от 400р. Печаль. Видимо не пойдет приделать его к клешне. :)

А насколько сильно серва греется? Может к ней дешевый термистор и как только превышение температуры - хватит жать.

Прям только серва выше 35 градусов - значит зажато до кондиции. :D

_____________________________________

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

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

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

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

 

 

https://vk.com/video_ext.php?oid=8503257&id=171269871&hash=80a5ed04254c3...

bwn
Offline
Зарегистрирован: 25.08.2014

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

Эт еще один способ отключить серву, не дающий ответа на вопрос "когда?"

Sanchogus
Offline
Зарегистрирован: 02.01.2015

Про полевик - у нас есть 3 провода к серве: земля, управляющий и питание. (коричневый, желтый и красный)

Смысл в том, что провод питания (красный) мы подключаем через полевой транзистор.

Когда напряжение на затворе транзистора есть и транзистор открыт - серва работает, иначе она будет обесточена.

Нужно лишь предусмотреть подачу питания непосредственно перед началом обращения к серве (посредством отпирания транзистора) и отключение питания сразу же после выполнения необходимых действий. Нужен будет +1 пин для управления транзистором.

Есть правда проблема - серва в этот момент может дергаться.

 

SLOM
Offline
Зарегистрирован: 06.11.2014

Sanchogus пишет:

Про полевик - у нас есть 3 провода к серве: земля, управляющий и питание. (коричневый, желтый и красный)

Смысл в том, что провод питания (красный) мы подключаем через полевой транзистор.

Когда напряжение на затворе транзистора есть и транзистор открыт - серва работает, иначе она будет обесточена.

Нужно лишь предусмотреть подачу питания непосредственно перед началом обращения к серве (посредством отпирания транзистора) и отключение питания сразу же после выполнения необходимых действий. Нужен будет +1 пин для управления транзистором.

Есть правда проблема - серва в этот момент может дергаться.

 

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

имхо лучше этот 1 пин пожертвовать на сигнал с резистора сервы...

 

кстати о пинах он реально только 1 остался! :)

а я еще хотел 2 уз датчика, а там на каждый 2 пина надо )))

подумываю о приобретении платы расширения. аля: 

http://zelectro.cc/Z-PCF8574T_I2C_module

bwn
Offline
Зарегистрирован: 25.08.2014

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

Sanchogus
Offline
Зарегистрирован: 02.01.2015

SLOM пишет:

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

имхо лучше этот 1 пин пожертвовать на сигнал с резистора сервы...

А действительно ли нам важно настолько точно знать когда ее выключить?)

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

 

Для расширения - как вариант если много пинов используются в режиме цифровых выходов использовать микросхемку типо http://amperka.ru/product/74hc595-shift-out-register

Только прогу надо будет перелопатить.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Sanchogus пишет:

Когда напряжение на затворе транзистора есть и транзистор открыт - серва работает, иначе она будет обесточена.

Нужно лишь предусмотреть подачу питания непосредственно перед началом обращения к серве (посредством отпирания транзистора) и отключение питания сразу же после выполнения необходимых действий. Нужен будет +1 пин для управления транзистором.

Есть правда проблема - серва в этот момент может дергаться.

detach сделает с сервой то-же самое, только программно, без транзистора и лишнего пина  на управление транзистором

SLOM
Offline
Зарегистрирован: 06.11.2014

bwn пишет:

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

почему?

 

как еще добавить пинов? сделать больше портов? 

bwn
Offline
Зарегистрирован: 25.08.2014

SLOM пишет:

bwn пишет:

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

почему?

 

как еще добавить пинов? сделать больше портов? 

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

Так что если требуется увеличение под п.2, лучше смотрите в сторну MEGi.

SLOM
Offline
Зарегистрирован: 06.11.2014

bwn пишет:

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

Так что если требуется увеличение под п.2, лучше смотрите в сторну MEGi.

спасибо что предупредили, а то я уже думал что мне это поможет. 

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

 

bwn
Offline
Зарегистрирован: 25.08.2014
bwn
Offline
Зарегистрирован: 25.08.2014

Как дешевый вариант, выбрать все что у вас управляется установкой пинов в HIGH,LOW и попробовать их навесить на I2C, посмотреть что в итоге освободится.

SLOM
Offline
Зарегистрирован: 06.11.2014

bwn пишет:

Как дешевый вариант, выбрать все что у вас управляется установкой пинов в HIGH,LOW и попробовать их навесить на I2C, посмотреть что в итоге освободится.

это вы про ту плану расширения? 

у меня кстати есть еще шина I2C на плате. 

вот такая плата у меня https://www.sparkfun.com/products/12075

 

bwn
Offline
Зарегистрирован: 25.08.2014

Я совсем забыл, что у вас не обычная дуина. Тогда только пляски с бубном. У вас даже не понятно, из чего экономить.

SLOM
Offline
Зарегистрирован: 06.11.2014

bwn пишет:

Я совсем забыл, что у вас не обычная дуина. Тогда только пляски с бубном. У вас даже не понятно, из чего экономить.

 

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

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

тема про "расслабление" закончилась ? решение приняли ?

....тогда откройте новую тему про увеличение псевдоПинов ! 

SLOM
Offline
Зарегистрирован: 06.11.2014

SU-27-16 пишет:

тема про "расслабление" закончилась ? решение приняли ?

....тогда откройте новую тему про увеличение псевдоПинов ! 

неа пока не решил(

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

разделяйте темы.... трудно в одной ветке следить за вашими желаниями... вернее - не трудно, а на..нано.... :(

про расслабление - всё уже предложено - закрывайте тему - ".... сами решайте ... решайте сами ... иметь или не иметь .... "

SLOM
Offline
Зарегистрирован: 06.11.2014

наверно вы правы, создам в разде проекты, может там кто посожет

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

да ! создайте ! подскажут.... а вы услышите ?

SLOM
Offline
Зарегистрирован: 06.11.2014

SU-27-16 пишет:

да ! создайте ! подскажут.... а вы услышите ?

а вы прочли что я просил? 

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

но народ предпочел более 50 сообщений настрочить нежели реально помочь...

уже и решение нашли, припаять дополнительный провод к серве...  

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

да потому что твоя идея оторвана от реальности, а тебе предлагали реальные

если ты уперся на своем это не значит что тебе помогут в этом