Независимые автоматические складные ноги для коптера
Некоторое время назад мне потребовалось освободить один канал приемника 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);
}
Супер! какие компоненты нужны и если можно фото монтажа их ?
блин, хорошая идея… респект вам.
Афигенно !
Супер! какие компоненты нужны и если можно фото монтажа их ?
В конечном итоге я использовал дешевый сонар hc-sr04 и Arduino Mini
Фото
В конечном итоге я использовал дешевый сонар hc-sr04 и Arduino Mini
Фото
К сожалению на фотки не понять что куда припаять, было бы здорово сделать схему что и куда
У меня был АрДрон 2. Там стояли примерно такие же сонары, для определения высоты. Так вот, над зеленой густой высокой травой он очень сильно врал высоту. Насколько я понимаю, отражения не было. Так что есть выроятность, что шасси Ваш коптер может отказаться выпускать.
У меня был АрДрон 2. Там стояли примерно такие же сонары, для определения высоты. Так вот, над зеленой густой высокой травой он очень сильно врал высоту. Насколько я понимаю, отражения не было. Так что есть выроятность, что шасси Ваш коптер может отказаться выпускать.
все правильно.
но я и не собирался садится над травой
даже на рыхлом снеге сработка есть,пусть и меньше чем задано в программе.