Tarot FY680 HexaCopter

svir

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

hard

А управление - просто воткнуть в приемник и выбрать 2 канала ?

kassir

AvxMx,svir - спасибо Вам конечно, но карбон от вспышки бликует…

svir
hard:

А управление - просто воткнуть в приемник и выбрать 2 канала ?

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

kassir:

AvxMx,svir - спасибо Вам конечно, но карбон от вспышки бликует…

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

kassir
svir:

это не карбон а китайский обман типа бутерброда

Да ладно Вам, там бутерброда только две центральные пластины.
И когда у меня была эта гекса , меня этот бутерброд даже спас. После краша карбон потрескался, а центральная фигня осталась целой и я смог продолжить полет.
Сейчас этой рамы у меня нет, но помогаю другу модернизировать такую же квадру. 3х подвесу нужны убирающиеся ноги…

shalex
svir:

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

Подскажите ссылку на Ваш подвес, пожалуйста?

svir
kassir:

Да ладно Вам, там бутерброда только две центральные пластины.
И когда у меня была эта гекса , меня этот бутерброд даже спас. После краша карбон потрескался, а центральная фигня осталась целой и я смог продолжить полет.
Сейчас этой рамы у меня нет, но помогаю другу модернизировать такую же квадру. 3х подвесу нужны убирающиеся ноги…

вот, видите вы уже избавились от этой рамы 😁

devv:

плата виброразвязки очень похожа на этот подвес - www.rctimer.com/product_950.html
Но переделанный на 3 оси

да, это этот подвес, тоже собираюсь переделывать под 3 ось, нужно вырезать новую пластину виброразвязки, как у гудлякобаевского подвеса, он уже сразу под 3 ось заточен с моторкой goodluckbuy.com/dys-brushless-three-axis-gimbal-ki…

vtoryh
kassir:

Да ладно Вам, там бутерброда только две центральные пластины.

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

sulaex
AvxMx:

По просьбам выкладываю ещё фото по креплению ретрактов.

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

kassir
svir:

вот, видите вы уже избавились от этой рамы

Потому что для FPV она мало подходит )

vtoryh:

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

Да, у Тарот какие то странные отношения к материалам ) В начале этой темы я писал про запчасти , с одного магазина пришли лучи из разного карбона и в разных упаковках.
То же самое могу сказать и про защелки.
rcopen.com/forum/f123/topic307322/425

sulaex:

дайте пожалуйста линк на ретрактор

www.rctimer.com/product_718.html
Есть левые и правые. Как я понял, в нашем случае без разницы.

sulaex
kassir:

www.rctimer.com/product_718.html
Есть левые и правые. Как я понял, в нашем случае без разницы.

осталось теперь поставить сонар, атмегу и написать скетч на полтора метра реагирования и будет шасси за 400 баксов 😃

kassir
sulaex:

и будет шасси за 400 баксов

)))

shalex
sulaex:

осталось теперь поставить сонар, атмегу и написать скетч на полтора метра реагирования и будет шасси за 400 баксов 😃

в качестве автономного модуля? или с подключением к контроллеру?
как вариант добавить светодиод для освещения площадки приземления. лазерную указку - крест ))

сонар 5$
ардуино нано 14$
ретрактор 18$(2шт)
лазер-крест 2.5$
светодиод освещения 4.5$

вроде доступно получается

sulaex
shalex:

в качестве автономного модуля? или с подключением к контроллеру?
как вариант добавить светодиод для освещения площадки приземления. лазерную указку - крест ))

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

shalex
sulaex:

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

понравилась идея с подъемными ногами. заказал оборудование для шасси + лазер-крест и светодиод

случайно не смотрели уже в инете - есть ли готовый код для ардуины?

есть готовые примеры работы Арду с RC-приемником и сонаром, черновой вариант программы сделать достаточно просто, но возможны нюансы, да и зачем велосипед изобретать ))

websid

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

shalex
websid:

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

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

websid
shalex:

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

у ретрактора только 2 позиции (0 и 90 градусов). Подал сигнал - он переходит крайнюю позицию. По крайней мере так обстоят дела у этого www.rctimer.com/product_716.html

shalex
websid:

у ретрактора только 2 позиции (0 и 90 градусов). Подал сигнал - он переходит крайнюю позицию. По крайней мере так обстоят дела у этого www.rctimer.com/product_716.html

спасибо за инфу!

представляю черновой код для управления шасси на сервах/ретракторах с помощью сонара SRF05, Arduino Nano.
протестировано на обычной серве

Подключение:
- сонара

перед использованием выставить:
 SERVO_LEGS_ARMED - угод сервы для положения “ноги выпущены”
SERVO_LEGS_DISARMED - угод сервы для положения “ноги убраны”
ALT_ARMED_TRIGGER - высота для срабатывания “ноги выпустить”, сантиметры
JUST_ARMED_DELAY - задержка после которой ноги могут быть переведены из “выпущено” в “убраны” в милисекундах
SERVO_EXEC_DELAY - задержка для отрабатывания сервы в милисекундах. подбирается экспериментально, зависит от типа сервы

для развития:
 усреднить показания сонара для исключения скачков и пролетающих мух ))
добавить включение светодиода(+лазер-крест) в положении “ноги выпущены”
добавить управление морганием навигационных огней
управление шасси с аппы

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

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

#include <Servo.h>

//servo
#define SERVO_LEGS_ARMED 0          //servo agnle for arm legs mode
#define SERVO_LEGS_DISARMED 90      //servo agnle for disarm legs mode

//modes
#define MODE_ARMED 1      //legs armed mode
#define MODE_JUST_ARMED 2 //legs just armed mode
#define MODE_DISARMED 3   //legs disarmed mode
#define MODE_SERVO_EXEC 4   //legs disarmed mode


//alt trigger
#define ALT_ARMED_TRIGGER 50         //in cm

//modes details
#define JUST_ARMED_DELAY 3000        //delay after legs arm in millisec
#define SERVO_EXEC_DELAY 1000        //delay for servo executing in millisec

//pins
#define PIN_SERVO 9                    //pin to arm/disarm legs servo
#define PIN_SONAR_ECHO 2               // Pin to receive echo pulse
#define PIN_SONAR_TRIG 3               // Pin to send trigger pulse

//vars
Servo myservo;                         // create servo object to control a servo
byte CurrentMode;                      //current legs mode
byte AfterExecMode;
unsigned long JustArmedStart;          //just armed mode start time
unsigned long ServoExecStart;          //servo start time

void ServoStart(byte AfterMode, int Angle)
{
  myservo.write(Angle);
  ServoExecStart = millis();
  AfterExecMode = AfterMode;
}


void setup()
{
  myservo.attach(PIN_SERVO);  // attaches the servo on pin 9 to the servo object
  Serial.begin(9600);
  pinMode(PIN_SONAR_ECHO, INPUT);
  pinMode(PIN_SONAR_TRIG, OUTPUT);
  JustArmedStart = millis();
  ServoStart(MODE_ARMED, SERVO_LEGS_ARMED);
  CurrentMode = MODE_SERVO_EXEC;
}

void loop()
{
  int distance;
  byte newMode;                          //calculated legs mode

  digitalWrite(PIN_SONAR_TRIG, LOW);                   // Set the trigger pin to low for 2uS
  delayMicroseconds(2);
  digitalWrite(PIN_SONAR_TRIG, HIGH);                  // Send a 10uS high to trigger ranging
  delayMicroseconds(10);
  digitalWrite(PIN_SONAR_TRIG, LOW);                   // Send pin low again
  distance = pulseIn(PIN_SONAR_ECHO, HIGH);            // Read in times pulse
  distance= distance/58;                               // Calculate distance from time of pulse

  Serial.println(distance);

  newMode = CurrentMode;

  switch (CurrentMode) {
    case MODE_ARMED:
      if (distance > ALT_ARMED_TRIGGER) newMode = MODE_DISARMED;
      break;
    case MODE_JUST_ARMED:
      if ((millis()-JustArmedStart) > JUST_ARMED_DELAY) newMode = MODE_ARMED;
      break;
    case MODE_DISARMED:
      if (distance < ALT_ARMED_TRIGGER) {
        newMode = MODE_JUST_ARMED;
        JustArmedStart = millis();
      }
      break;
    case MODE_SERVO_EXEC:
      if ((millis()-ServoExecStart) > SERVO_EXEC_DELAY) newMode = AfterExecMode;
      break;
  }
  if ((newMode == MODE_JUST_ARMED) & (CurrentMode==MODE_DISARMED)) {
    ServoStart(newMode, SERVO_LEGS_ARMED);
    newMode =MODE_SERVO_EXEC;
  }
  if ((newMode == MODE_DISARMED) & (CurrentMode==MODE_ARMED)) {
    ServoStart(newMode, SERVO_LEGS_DISARMED);
    newMode =MODE_SERVO_EXEC;
  }
  CurrentMode = newMode;
  delay(50);
}
Aviamodelist
shalex:

спасибо за инфу!

представляю черновой код для управления шасси на сервах/ретракторах с помощью сонара SRF05, Arduino Nano.
протестировано на обычной серве

Подключение:
- сонара

перед использованием выставить:
 SERVO_LEGS_ARMED - угод сервы для положения “ноги выпущены”
SERVO_LEGS_DISARMED - угод сервы для положения “ноги убраны”
ALT_ARMED_TRIGGER - высота для срабатывания “ноги выпустить”, сантиметры
JUST_ARMED_DELAY - задержка после которой ноги могут быть переведены из “выпущено” в “убраны” в милисекундах
SERVO_EXEC_DELAY - задержка для отрабатывания сервы в милисекундах. подбирается экспериментально, зависит от типа сервы

для развития:
 усреднить показания сонара для исключения скачков и пролетающих мух ))
добавить включение светодиода(+лазер-крест) в положении “ноги выпущены”
добавить управление морганием навигационных огней
управление шасси с аппы

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

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


#include <Servo.h>

//servo
#define SERVO_LEGS_ARMED 0          //servo agnle for arm legs mode
#define SERVO_LEGS_DISARMED 90      //servo agnle for disarm legs mode

//modes
#define MODE_ARMED 1      //legs armed mode
#define MODE_JUST_ARMED 2 //legs just armed mode
#define MODE_DISARMED 3   //legs disarmed mode
#define MODE_SERVO_EXEC 4   //legs disarmed mode


//alt trigger
#define ALT_ARMED_TRIGGER 50         //in cm

//modes details
#define JUST_ARMED_DELAY 3000        //delay after legs arm in millisec
#define SERVO_EXEC_DELAY 1000        //delay for servo executing in millisec

//pins
#define PIN_SERVO 9                    //pin to arm/disarm legs servo
#define PIN_SONAR_ECHO 2               // Pin to receive echo pulse
#define PIN_SONAR_TRIG 3               // Pin to send trigger pulse

//vars
Servo myservo;                         // create servo object to control a servo
byte CurrentMode;                      //current legs mode
byte AfterExecMode;
unsigned long JustArmedStart;          //just armed mode start time
unsigned long ServoExecStart;          //servo start time

void ServoStart(byte AfterMode, int Angle)
{
 myservo.write(Angle);
 ServoExecStart = millis();
 AfterExecMode = AfterMode;
}


void setup()
{
 myservo.attach(PIN_SERVO);  // attaches the servo on pin 9 to the servo object
 Serial.begin(9600);
 pinMode(PIN_SONAR_ECHO, INPUT);
 pinMode(PIN_SONAR_TRIG, OUTPUT);
 JustArmedStart = millis();
 ServoStart(MODE_ARMED, SERVO_LEGS_ARMED);
 CurrentMode = MODE_SERVO_EXEC;
}

void loop()
{
 int distance;
 byte newMode;                          //calculated legs mode

 digitalWrite(PIN_SONAR_TRIG, LOW);                   // Set the trigger pin to low for 2uS
 delayMicroseconds(2);
 digitalWrite(PIN_SONAR_TRIG, HIGH);                  // Send a 10uS high to trigger ranging
 delayMicroseconds(10);
 digitalWrite(PIN_SONAR_TRIG, LOW);                   // Send pin low again
 distance = pulseIn(PIN_SONAR_ECHO, HIGH);            // Read in times pulse
 distance= distance/58;                               // Calculate distance from time of pulse

 Serial.println(distance);

 newMode = CurrentMode;

 switch (CurrentMode) {
   case MODE_ARMED:
     if (distance > ALT_ARMED_TRIGGER) newMode = MODE_DISARMED;
     break;
   case MODE_JUST_ARMED:
     if ((millis()-JustArmedStart) > JUST_ARMED_DELAY) newMode = MODE_ARMED;
     break;
   case MODE_DISARMED:
     if (distance < ALT_ARMED_TRIGGER) {
       newMode = MODE_JUST_ARMED;
       JustArmedStart = millis();
     }
     break;
   case MODE_SERVO_EXEC:
     if ((millis()-ServoExecStart) > SERVO_EXEC_DELAY) newMode = AfterExecMode;
     break;
 }
 if ((newMode == MODE_JUST_ARMED) & (CurrentMode==MODE_DISARMED)) {
   ServoStart(newMode, SERVO_LEGS_ARMED);
   newMode =MODE_SERVO_EXEC;
 }
 if ((newMode == MODE_DISARMED) & (CurrentMode==MODE_ARMED)) {
   ServoStart(newMode, SERVO_LEGS_DISARMED);
   newMode =MODE_SERVO_EXEC;
 }
 CurrentMode = newMode;
 delay(50);
}

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