Servo Recorder, Sequencer

NVN_Plus

Есть в природе такой за 50 долларов и в принципе устроило бы, но во-первых, память всего на 20 секунд (хотелось бы побольше) и во-вторых, нужны ячейки памяти, чтобы можно было запоминать несколько пресетов и использовать их совместно. К примеру один за другим, или вперемешку собирая из этого цепочку последовательностей (секвенций, Sequencer) . Можно ли сварганить самому что-либо подобное? Может имеются готовые решения, или можно собрать нужное из нескольких готовых компонентов? Буду рад любым идеям.

Vovets
NVN_Plus:

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

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

NVN_Plus:

Можно ли сварганить самому что-либо подобное?

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

Собрать - это как раз самое простое. Это просто подсоединить провода к плате. Написать программу будет гораздо сложнее.

NVN_Plus

Есть готовое решение с заявленными требованиями, но одно но, это устройство автономное. Мне надо чтобы оно могло сопрягаться с аппаратурой управления моделями, не важно Футаба, фрискай. Важно, чтобы могла запоминать манипуляции основных каналов управления и в последствии их воспроизводить. Как это осуществить - вопрос не праздный.

Vovets
NVN_Plus:

Как это осуществить - вопрос не праздный.

Более правильный вопрос - сколько вы готовы в это вложить времени и денег.

appolinari
NVN_Plus:

Как это осуществить - вопрос не праздный.

Если не секрет, для чего вам оно?

Dinotron

А в чём проблема в реализации? Если я правильно понял на одном канале ловишь больше 1500 и тупо включаешь последовательность по нужным сервам +1, если меньше то -1.
#include <Servo.h>

Servo retract;
Servo bomb;

int pos1 = 0;
int pos2 = 0;
int pwm = 7;
unsigned long duration;

void setup() {
retract.attach(9);
bomb.attach(10);
pinMode(pwm, INPUT);
}

void loop() {
duration = pulseIn(pwm, HIGH);
if (duration > 1500){
pos1 = 0;
pos2 = 180;
retract.write(pos1);
bomb.write(pos2);
}else{
pos1 = 180;
pos2 = 0;
retract.write(pos1);
bomb.write(pos2);
}
delay(15); // waits 15ms for the servo to reach the position
}

Ну так на вскидку.

Vovets
Dinotron:

Если я правильно понял

Я так понял, что нужно всё-таки записывать-воспроизводить анимацию позиций 2-х или более севр.