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

Сделал рабочий прототип в макетном исполнении.
Все работает так, как и задумывалось.
Осталось теперь водрузить это на коптер.
В итоговом варианте будет стоять ардуина мини и сонар HC-SR04. места не занимает, весит ничего.

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


#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);

}
  • 1483
Comments
c3c

А если дистанция равна 200?

else надо писать!

Compage
c3c;bt131621

А если дистанция равна 200?

else надо писать!

в данном случае это не так принципиально, тк высота плавает, и ровно 200 никогда долго не будет.
кстати в моем коде на компьютере, написано именно елсе.

c3c

Да, в этом простом случае некритично, но некультурно так писать. Успехов!

Hyperion

у сонара еще какой то глюк был на шум от винтов. надо с работающими двигателями проверить. А так круто!

Compage
Hyperion;bt131688

у сонара еще какой то глюк был на шум от винтов. надо с работающими двигателями проверить. А так круто!

Про глюк не знал!
соберу все, и проверю.
А вообще, идея не нова. Уже позже нашел в сети еще несколько вариантов, втч и на этом форуме.

shura2000

А предусмотрен канал управления с пульта для принудительного поднятия опускания ног?

Compage
shura2000;bt131712

А предусмотрен канал управления с пульта для принудительного поднятия опускания ног?

На данный момент нет, но можно либо дописать код, либо просто вывести провод к приемнику с выхода сигнала на ретракты - тоже будет работать

starfair

А сервы любые?

Hyperion
Compage;bt131710

Про глюк не знал!
соберу все, и проверю.
А вообще, идея не нова. Уже позже нашел в сети еще несколько вариантов, втч и на этом форуме.

Sonar is susceptible to “noise” from a variety of sources and several “fixes” may be required to achieve adequate performance.

Electrical noise caused by ESCs, Servos, or switching BEC’s on the same circuit as the Sonar.
The RC filter and use of shielded cable as described above are usually sufficient.
EMF radiation from motors, motor wires, ESC’s or Xbee.
Sonar is especially susceptible to AC EMF noise generated by the ESCs and ESC to motor wiring.
This can be greatly reduced by wrapping the nearby ESCs and their motor wiring in aluminum (gutter) tape.
Acoustic noise from propellers, prop wash and turbulence.
It is very important to keep the Sonar out of direct prop wash or turbulence.
Balancing propellers (and motors) can help.
Mounting the sonar sensor inside a small can or tube thinly lined with foam can greatly reduce unwanted exterior acoustic noise.
Wrap Sonar module board and components in rubber or foam tape to reduce transferred acoustic noise.
Vibration from motors, props, etc.
Sonar is very subject to frame transmitted vibration.
Mounting the Sonar module on double sided foam or Gel tape will pretty much eliminate this noise source.
The MB 1240 series is the only Sonar considered suitable for multicopter use by the manufacturer – Maxbotix.

copter.ardupilot.com/wiki/sonar/
Хотя может для ног такой шум будет и не критичен

Compage
starfair:

А сервы любые?

Да, работают любые стандартные сервы.