Электропилотажка для души.

ДАВ

Дорогие коллеги, все напишу, обязательно.
Впрочем, все, что было надо, нашел здесь, на форуме, именно в этой теме.
Прикупил “Arduino Nano”, стоит сущие копейки (рублей 500), в инете их продают все, кому не лень.
Я ни разу не программист, но опять же, сейчас в инете полно инфолрмации и хватило 3-х вечеров, чтобы немного разобраться, как и что надо делать.
Как программировать: найдите в инете тему, которая называется “Уроки Ардуино”. Там есть две темы: “подключение серво” и “подключение бк мотора”.
Программу “Ардуино” можно скачать с их официального сайта. Нужны буду еще программы Jaba и драйвер под Ардуино.
Скетч программы такой:

#include <Servo.h>
// create servo object to control a servo
Servo esc;

int maxThrottle = 120;

int curThrottle = 0;

// will store last time
unsigned long previousMillis = 0;

unsigned long currentInterval = 0;

// time to prepare (milliseconds)
const long prepareTime = 30000;
// time to fly (milliseconds)
const long flyingTime = 90000;

/*
Current state
0 - prepare to fly
1 - fly
2 - landing
*/
int currentState = 0;

void setup() {
// attaches the servo on pin 9 to the servo object
esc.attach(9, 1000, 2000);
esc.write(curThrottle);
currentInterval = prepareTime;

}

void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= currentInterval) {
if (currentState == 0) {
// we are ready to fly, throttle max!
for (curThrottle = 0; curThrottle <= maxThrottle; curThrottle += 1) {
esc.write(curThrottle);
delay(20); // Throlle up delay
}
if (curThrottle < maxThrottle) {
curThrottle = maxThrottle;
}
esc.write(curThrottle);
currentInterval = flyingTime;
previousMillis = millis();
currentState = 1;
} else if (currentState == 1) {
// flying time is gone, time to landing
for (curThrottle = maxThrottle; curThrottle > 0; curThrottle -= 1) {
esc.write(curThrottle);
delay(100);// Throlle down delay
}
if (curThrottle < 0) {
curThrottle = 0;
}
esc.write(curThrottle);
currentState = 2;
} else {
// done
}
}
}

Обратите внимание.
prepareTime = 30000 - это время подготовки, т.е. двигатель начнет работать через 30 сек от момента подключения питания. Оно указано в милисекундах. Цифру можно поставить такую. как вам надо.
flyingTime = 90000- полетное время. Можно изменять аналогично описанному выше (например - 180000)
esc.attach(9, 1000, 2000) - подключение двигателя и диапазон оборотов. Можно вместо 1000,2000 установить 800,2400 (это будут минимальные и максимальные обороты).

Это программа для начала работы. Никакого аксельрометра нет. Его надо дополнительно подключать к Ардуино (может быть обычный гироскоп) и прописать алгоритм его работы в скетч. Пока этим не занимался, успеется. 😃

VitalikV

На форуме был скетч, с кнопкой , акселерометром, убирающимися шасси. Автор Геннадий Тагильцев, поищите.
У себя пока найти архив не могу,чтобы выложить.

Pucmanrus
VitalikV:

На форуме был скетч, с кнопкой , акселерометром, убирающимися шасси. Автор Геннадий Тагильцев, поищите.
У себя пока найти архив не могу,чтобы выложить.

поробывал сделать по теме с радиуправлением по вай фай на ардуино, к сожалению ловит только 5-6 метров…

VitalikV

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

ALEX77NEW
Pucmanrus:

поробывал сделать по теме с радиуправлением по вай фай на ардуино, к сожалению ловит только 5-6 метров…

Можно уточнить, какой модуль Вы использовали. Если nRF 24L01, то заявленная дальность в помещении 30 метров, на улице 100 метров. Конечно в прямой видимости. Если у этого модуля перекрыть антенну, даже пальцами прикрыть, то связь пропадает. Поэтому устанавливать модуль надо правильно, не перекрывать его. Ну а если нужна связь до 1 км, то можно применить модуль nRF с антенной-сосиской. Так же в скетче есть уровень мощности передатчика, где выбирается параметр: radio.setPALevel (RF24_PA_HIGH). Вариант запуска двигателя по радиоканалу намного выгоднее, так как можно включить и выключить мотор когда нужно. А если добавить каналы, то выпуск щасси, закрылки и пр. тоже без таймера выгоднее.

И ещё вопрос по теме, кто пользуется кордовыми таймерами… Если модель воткнётся, у мотора есть защита на отключение? В простых ардуино-таймерах этого нет, а значит минус регулятор, т.е. он сгорит. А если не сгорит, то придётся бежать ловить модель, потому что в отличие от ДВС электродвигатель будет молотить пока его не остановят. Для опытных пилотов может это и не столь важно, но для новичков, не умеющих управлять кордовым самолётом, будут проблемы.

Вячеслав_Михеев
ALEX77NEW:

Если модель воткнётся, у мотора есть защита на отключение?

в регуляторе это есть

ALEX77NEW
Вячеслав_Михеев:

в регуляторе это есть

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

VitalikV

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

ALEX77NEW
VitalikV:

Ну во-первых, управление по радиоканалу запрещено в кордовых

исключение составляет дистанционное выключение двигателя

VitalikV
ALEX77NEW:

исключение составляет дистанционное выключение двигателя

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

ALEX77NEW
VitalikV:

Радиоканал был всегда запрещен

Для электропилотажки, которая “для души”, думаю не запрещено )

Pavlin2000

Я б из своего опыта советовал для начинающих и любителей пассивный таймер с встроенным говернером KR-2 к нему нужно купить ещё программатор. Достаточно гуманная цена, простая настройка, возможность использовать бюджетные регуляторы оборотов, при настройке максимальной мощности говернера создаётся впечатление что летаешь на активном таймере с перегазовками, так же с этим таймером модель отлично держит горизонтальный полет без плавания. Вообщем это лучшее что я встречал из бюджетных кордовых систем.
Больше информации здесь, не реклама!!! www.keithrenecle.co.za/Electric CL.htm

анатолиевич
Pavlin2000:

Вообщем это лучшее что я встречал из бюджетных кордовых систем.

Полностью поддерживаю и подтверждаю.

pv11
VitalikV:

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

Цена вопроса всего этого “магнитик” на качалке, датчик Холла и отдельный вход контролера. И остановка резким рывком ручки (например вверх-вниз).

Pucmanrus

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

VitalikV
pv11:

Цена вопроса всего этого “магнитик” на качалке, датчик Холла и отдельный вход контролера. И остановка резким рывком ручки (например вверх-вниз).

Для чего? Когда самолет падает, вы не успеете выключить мотор, тем более если корды провиснут. А для остановки по времени и есть таймер. Магнитик на качалке врятле спасет, есть вероятность заглохнуть на фигуре. Вобщем сделайте, попробуйте, потом покажете.

Почему интересна Ардуина? Потому что, сама плата есть в продаже везде, программатор можно сделать тоже из Ардуины. Для всего этого нужен только правильный скетч, или два. Один таймер, второй программатор.
На Ардуино можно реализовать весь функционал, и гувернер и гироскоп и все что душе угодно.
Но нет ни одного программиста пилотажника, который допилил бы и облетал бы скетч.
Да и продажа таймера была бы проще, выслал скетч на электронную почту и не надо мучится ждать посылку из-за границы.

ALEX77NEW
VitalikV:

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

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

pv11
VitalikV:

Для чего? Когда самолет падает, вы не успеете выключить мотор, тем более если корды провиснут. А для остановки по времени и есть таймер. Магнитик на качалке врятле спасет, есть вероятность заглохнуть на фигуре. Вобщем сделайте, попробуйте, потом покажете.

Смотря что подразумевать под словом “падает”, если мотор работает то самолет все равно летит, в том направлении куда им управляет пилот. Падают самолеты с ДВС когда мотор заглохнет например когда летишь на спине на небольшой высоте, а в топливо попала какая-нибудь хрень, но тут уж сам виноват. Электромотор перестает работать по разряду АКБ, других случаев там просто нет, опять же исключая “удар об планету”. Выключить мотор в результате аварии когда он упал и винт заблокировался можно “по-току”. Остановить мотор иногда бывает необходимо когда просто не хочешь летать дальше и хочешь сделать посадку, а не вырабатывать АКБ по таймеру в горизонте.
Насчет магнитика на качалке, в микропроцессоре можно реализовать любой алгоритм, например дернул раз за ручку, потом чз 30 сек, еще. Здесь главное чтобы команда не совпадала по времени и по длительности с пилотажными фигурами…
А дальше каждый сам за себя решит, что ему нужно, а что нет.

ALEX77NEW:

Я бы ещё на таймер поставил предупреждающий звуковой или др. индикатор о включении мотора.

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

Pucmanrus
ALEX77NEW:

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

у меня в разработке с кнопки запуск с таймером с диодом мигающим при 30сек и 15 сек более быстрое моргание при остановке мотора, плавным пуском и плавным набором бля пилотажек.

Митричь

Для принудительной остановки двигателя на ардуине можно подключить датчик расстояния. Допустим при снижении до 0,5 метра двигатель вырубается. Разумеется при взлете должна быть реализована задержка.