Монстр шилд

Автор Deny, 22:05:34

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Deny

Доброго времени суток!
Рабочая библиотека по считыванию PPM  сигнала с приемников, на ФлайСкай работает отлично!
​Не говорите, если это не изменит тишину к лучшему.

Deny

Мой  ответ на вопрос с московского форума. Использование двух модулей mp3 плеера, позволяют проигрывать два звука одновременно! Можно так же использовать обычный картридер подключенный к ардуино и модуль указанный выше! Иногда можно встретить столкновение библиотек, но все решается! Как показывает практика, проигрывание двух звуков одновременно вполне достаточно.
​Не говорите, если это не изменит тишину к лучшему.

Sergevk

Надо будет собрать Proof-of-concept данной системы, погонять ее.

Deny

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

1. аппаратура Fly Sky 10 ch (работа по IBUS)
2. регуляторы хода HobbyKing X-Car 45A Brushed Car ESC

*
   Test FlySky IBus interface on an Arduino Mega.
    Connect FS-iA6B receiver to Serial1.
*/


#include "FlySkyIBus.h"
#include <Servo.h>//Using servo library to control ESC
Servo esc; //Creating a servo class with name as esc
Servo esc1;
int ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10; //каналы

void setup()
{
  Serial.begin(115200);
  IBus.begin(Serial1);
  esc.attach(23); //Specify the esc signal pin,Here as D8
  esc.writeMicroseconds(1000); //initialize the signal to 1000
  esc1.attach(22);
  esc1.writeMicroseconds(1000); //initialize the signal to 1000
}


void loop()
{
  IBus.loop();


  ch1 = IBus.readChannel(0);
  ch2 = IBus.readChannel(1);
  ch3 = IBus.readChannel(2);
  ch4 = IBus.readChannel(3);
  ch5 = IBus.readChannel(4);
  ch6 = IBus.readChannel(5);
  ch7 = IBus.readChannel(6);
  ch8 = IBus.readChannel(7);
  ch9 = IBus.readChannel(8);
  ch10 = IBus.readChannel(9);

  int  x1 = 1500;
  int  x2 = 1500;

// вперед
  if (ch2 >= 1600 && ch1 >= 1400 && ch1 <= 1550)
  {
    x1 = ch2;
    x2 = ch2;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }
  //назад
  else if (ch2 <= 1350 && ch1 >= 1400 && ch1 <= 1550)
  {
    x1 = ch2;
    x2 = ch2;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }
  //вперед направо
  else if (ch2 >= 1600 && ch1 >= 1600)
  {
    x1 = ch1;
    x2 = 1500;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }
  //вперед налево
  else if (ch2 >= 1600 && ch1 <= 1300)
  {
    x1 = 1500;
    x2 = ch2;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }
  // назад налево
  else if (ch2 <= 1350 && ch1 <= 1350)
  {
    x1 = 1500;
    x2 = ch1;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }
  //назад направо
  else if (ch2 <= 1350 && ch1 >= 1600)
  {
    x1 = ch2;
    x2 = 1500;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
    // раздрай вперед
  }
  else if (ch1 >= 1600 && ch2 >= 1400 && ch2 <= 1550)
  {
    x1 = 1700;
    x2 = 1250;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }
  // раздрай назад
  else if (ch1 <= 1350 && ch2 >= 1400 && ch2 <= 1550)
  {
    x1 = 1250;
    x2 = 1700;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }
  else
  {
    x1 = 1500;
    x2 = 1500;
    esc1.writeMicroseconds(x1);
    esc.writeMicroseconds(x2);
  }

Serial.print("ch1 - ");
  Serial.print(ch1);
  Serial.print("  ");
  Serial.print("ch2 - ");
  Serial.print( ch2);
  Serial.print("  ");
  Serial.print("ch3 - ");
  Serial.print(ch3);
  Serial.print("  ");
  Serial.print("ch4 - ");
  Serial.println(ch4);
  //Serial.print("  ");
  //Serial.print("ch5 - ");
  //Serial.print(ch5);
  //Serial.print("  ");
  //Serial.print("ch6 - ");
  //Serial.print(ch6);
  //Serial.print("  ");
  //Serial.print("ch7 - ");
  //Serial.print(ch6);
  //Serial.print("  ");
  //Serial.print("ch8 - ");
  //Serial.print(ch8);
  //Serial.print("  ");
  //Serial.print("ch9 - ");
  //Serial.print(ch9);
  //Serial.print("  ");
  //Serial.print("ch10 - ");
  //Serial.println(ch10);
}



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

Sergevk

Отлично!