AFON // радиотехник affonya@mail.ru
← Все проекты для дронов

Микшер элевонов

Смешивание крена и тангажа в два элевона для крыла/самолётного дрона.

DMC.25 · Приём управления · ATmega328P

Задача

Из каналов крена и тангажа получить сигналы двух рулевых поверхностей крыла.

Алгоритм

left = pitch + roll, right = pitch - roll, с центрированием 1500 мкс и ограничением 1000..2000.

Исходный код (C, avr-gcc)

⇩ Скачать 25-elevon-mixer.c

#ifndef F_CPU
#define F_CPU 16000000UL
#endif

#include <avr/io.h>

static uint16_t clampus(int16_t v){ if(v<1000)v=1000; if(v>2000)v=2000; return v; }

void elevon(uint16_t roll,uint16_t pitch,uint16_t *left,uint16_t *right){
  int16_t r=(int16_t)roll-1500, p=(int16_t)pitch-1500;
  *left =clampus(1500 + p + r);
  *right=clampus(1500 + p - r);
}
int main(void){
  uint16_t l,rr;
  elevon(1600,1450,&l,&rr);
  (void)l;(void)rr;
  for(;;){}
}

Сборка: avr-gcc -mmcu=atmega328p -DF_CPU=16000000UL -Os файл.c -o файл.elf

Пояснения

Знаки подбирают по реакции поверхностей. База для летающего крыла и дельты.

Смотрите также

Мультикоптер, самолёт или VTOL