Независимые автоматические складные ноги для коптера

Compage

Некоторое время назад мне потребовалось освободить один канал приемника FRSKY-D8X для управления наклоном подвеса. До этого канал управлял складыванием ног. Наза подключена по PPM-sum, занято было 7 каналов из 8.
Пришлось придумать нехитрое устройство для автоматизации складывания ног.

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

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

Код простейший, без изысков.
Сонар подключен к 8 и 9 ноге ардуины, сервы висят на 10й.
в коде максимально все раскоментировано.
Если кто то может что то улучшить в коде - флаг вам в руки.

Надеюсь, кому то будет полезно.

#include "Servo.h" //библеотека серво
Servo myservo;
const int Trig = 8; //подключаем вход Триггер сонара к 8 цифровому пину ардуины
const int Echo = 9; //подключаем выход Эхо сонара к 9 цифровому пину ардуины
const int ledPin = 13;  // 13 – если будете использовать встроенный в Arduino светодиод


void setup()
{
myservo.attach(10); // Servo присоединен к 10 выводу
myservo.writeMicroseconds(700); // устанавливаем ноги в положиние для старта при подачи питания, если они уже в нем не стоят
delay(5000); //ждем 5 с после подачи питания(все равно, пока инициализируются гиры, компас жпс итд.)
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(ledPin, OUTPUT);
 Serial.begin(9600);

}

unsigned int time_us=0;

unsigned int distance_sm=0;

void loop()
{


digitalWrite(Trig, HIGH); // Подаем сигнал на выход микроконтроллера
delayMicroseconds(10); // Удерживаем 10 микросекунд
digitalWrite(Trig, LOW); // Затем убираем
time_us=pulseIn(Echo, HIGH); // Замеряем длину импульса
distance_sm=time_us/58; // Пересчитываем в сантиметры
Serial.println(distance_sm); // Выводим на порт для проверки сонара и расстояния

if (distance_sm<200) // Если расстояние до земли менее 200 сантиметром(расстояние можно менять в пределах характеристик сонара HC-SR04 )
{
   digitalWrite(ledPin, 1);

myservo.writeMicroseconds(700);  // то складываем ноги
  delay(500); // ждем 0,5с для защиты от дребезга и ложных сработок
}
else
{
   digitalWrite(ledPin, 0);
  myservo.writeMicroseconds(2300); //если меньше 200 см, то раскладываем для посадки
  delay(500);
}

delay(100);

}
denis51

Супер! какие компоненты нужны и если можно фото монтажа их ?

dilkins

блин, хорошая идея… респект вам.

Compage
denis51:

Супер! какие компоненты нужны и если можно фото монтажа их ?

В конечном итоге я использовал дешевый сонар hc-sr04 и Arduino Mini

Фото

denis51
Compage:

В конечном итоге я использовал дешевый сонар hc-sr04 и Arduino Mini

Фото

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

Alexan

У меня был АрДрон 2. Там стояли примерно такие же сонары, для определения высоты. Так вот, над зеленой густой высокой травой он очень сильно врал высоту. Насколько я понимаю, отражения не было. Так что есть выроятность, что шасси Ваш коптер может отказаться выпускать.

Compage
Alexan:

У меня был АрДрон 2. Там стояли примерно такие же сонары, для определения высоты. Так вот, над зеленой густой высокой травой он очень сильно врал высоту. Насколько я понимаю, отражения не было. Так что есть выроятность, что шасси Ваш коптер может отказаться выпускать.

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