Озвучивании моделей.

Автор Deny, 18:18:02

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

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

Deny

Доброго дня.

Давно не выкладывал ничего интересного. Исправим эту ошибку.

Сегодня поговорим об озвучивании моделей.

Нам понадобится:

1. Два Mini MP3 Проигрыватель  для ардуино
2. RC Аппаратура (Я использую [FONT=&]Flysky fs-i6s 2.4 г 10ch AFHDS )[/FONT]
3. Ардуино Нано (См. тут)
4. Динамик

Ардуино можете использовать любую: Мини, Нано, Уно, Леонардо, Мега

Но помните, что на  Мини, Нано, Уно всего один порт Serial, а для подключения IBUS  для FLysky, в этом примере  использован именно данный вариант, а так же для Mp3  модулей понадобится три Serial  порта. Для увеличения числа портов используется библиотека  SoftwareSerial.h

Два mp3  модуля обеспечивают двух канальный  режим. Например с одного идет  управление звуками двигателя. А  другого звуки выстрела, попадания и т.д. Именно данный вариант реализован здесь.

Файлы на флешке можно сохранять как в формате mp, так и формате wav/ Что интересно  файлы в формате  wav проигрываются практически без пауз и не слышны переходы с одного трека на другой, а вот в формате  mp эти переходы очень хорошо слышны.
Далее Ваш файл может иметь любое название, но заканчиваться на четыре цифры. Пример: GUN0001.wav, последняя цифра является ориентиром для плеера mp3_play(1);
файлы на флешке должны быть помещены в папку - mp3!

Tеперь подключение:

[attach=1,msg6544]

[TABLE=width: 637, align: center]

[TD=align: center]Pin Number
[TD=align: center]Pin Description
[TD=align: center]Description
[TD=align: center]Note


[TD=align: center]1
[TD=align: center]VCC
[TD=align: center]Питание
[TD=align: center]Питание постоянного тока от 3 до 5 Вольт


[TD=align: center]2
[TD=align: center]RX
[TD=align: center]UART serial input
[TD=align: center]


[TD=align: center]3
[TD=align: center]TX
[TD=align: center]UART serial output
[TD=align: center]


[TD=align: center]4
[TD=align: center]DAC_R
[TD=align: center]Audio output right channel
[TD=align: center]Выход на усилитель, правый канал


[TD=align: center]5
[TD=align: center]DAC_L
[TD=align: center]Audio output left channel
[TD=align: center]Выход на динамик, со встроенного усилителя до 3W


[TD=align: center]9
[TD=align: center]IO1
[TD=align: center]Trigger port 1
[TD=align: center]Короткое нажатие ||◄ (длительное нажатие - уменьшение громкости)


[TD=align: center]10
[TD=align: center]GND
[TD=align: center]Ground
[TD=align: center]Выход на динамик, со встроенного усилителя до 3W


[TD=align: center]11
[TD=align: center]IO2
[TD=align: center]Trigger port 2
[TD=align: center]Короткое нажатие ►|| (длительное нажатие - увеличение громкости)


[TD=align: center]12
[TD=align: center]ADKEY1
[TD=align: center]AD port 1
[TD=align: center]Trigger play first segment


[TD=align: center]13
[TD=align: center]ADKEY2
[TD=align: center]AD port 2
[TD=align: center]Trigger play fifth segment


[TD=align: center]14
[TD=align: center]USB
[TD=align: center]USB DP
[TD=align: center]USB Port


[TD=align: center]15
[TD=align: center]USB-
[TD=align: center]USB- DM
[TD=align: center]USB Port

[TR=bgcolor: #F0F2DE]
[TD=align: center]16
[TD=align: center]Busy
[TD=align: center]Playing Status
[TD=align: center]Low means playingHigh means no


/*
*/#include "FlySkyIBus.h" // Подключаем библиотеку для работы  IBus#include <SoftwareSerial.h> //Библиотека для подключения доп. портов  Serial#include <DFPlayer_Mini_Mp3.h> // Библиотека для работы MP3
//  переменные приемника#define THROTTLE_MAX 2000      // max value of throttle pulse length#define THROTTLE_MIN 950      // max value of throttle pulse length#define NEUTRAL_THROTTLE 1500  // this is the duration in microseconds of neutral throttle#define THROTTLE_IDDLE 150      // (1100 - 950) above this value engine breaks from idle to run mode

// булевые переменные плеера
boolean wlaczony1 = false;boolean wlaczony2 = false;boolean wlaczony3 = false;boolean wlaczony4 = false;boolean wlaczony5 = false;boolean wlaczony6 = false;boolean wlaczony7 = false;
boolean flagzony1 = false;boolean flagzony2 = false;boolean flagzony3 = false;boolean flagzony4 = false;boolean flagzony5 = false;boolean flagzony6 = false;boolean flagzony7 = false;


volatile int nThrottleIn = NEUTRAL_THROTTLE; // volatile,мы устанавливаем это в прерывании и читаем его в цикле, таким образом, это должно быть объявлено volatilevolatile unsigned long ulStartPeriod = 0; // устанавлеваем переменную прерыванияvolatile boolean bNewThrottleSignal = false; // устанавливаем прерывание и читаем его в циклеvolatile int nThrottleIn_1 = NEUTRAL_THROTTLE;volatile boolean bNewThrottleSignal_1 = false; // устанавливаем прерывание и читаем его в циклеSoftwareSerial mySerial_0(4, 5); // RX, TX пины приема и передачи библиотеки SoftwareSerialSoftwareSerial mySerial_1(6, 7); // RX, TX пины приема и передачи библиотеки SoftwareSerialSoftwareSerial mySerial_2(8, 9);// RX, TX пины приема и передачи библиотеки SoftwareSerial
void setup() {
  Serial.begin(115200);  IBus.begin(Serial);  mySerial_1.begin (9600);  mySerial_2.begin (9600);    mp3_set_serial (mySerial_1);  //set softwareSerial for DFPlayer-mini mp3 - 1 module  mp3_set_serial (mySerial_2);  //set softwareSerial for DFPlayer-mini mp3 - 2 module  mp3_set_volume (20); //Громкость работы звукового модуля от 0 до 30

}
void loop() {
  IBus.loop();
    if (IBus.readChannel(1) && IBus.readChannel(4) && (bNewThrottleSignal == false))    {      nThrottleIn = (int)(IBus.readChannel(1));      nThrottleIn_1 = (int)(IBus.readChannel(4));      bNewThrottleSignal = true;   
      if (bNewThrottleSignal)  {
    Serial.println(nThrottleIn);    //====================================================================================================    if (nThrottleIn < 990) {      mp3_stop();      wlaczony2 = false;    }
    else  if (nThrottleIn > 1000 && nThrottleIn < 1400 && wlaczony7 == false) {
      mp3_play(7);
      wlaczony7 = true;      wlaczony1 = false;      wlaczony3 = false;      wlaczony4 = false;      wlaczony5 = false;      wlaczony6 = false;      wlaczony2 = false;    }    //=====================================================================================================    else if (nThrottleIn > 1400 && nThrottleIn < 1600 && wlaczony1 == false) {    mp3_single_loop (1); mp3_set_volume (25);      wlaczony1 = true;      wlaczony2 = false;      wlaczony3 = false;      wlaczony4 = false;      wlaczony5 = false;      wlaczony6 = false;      wlaczony7 = false;    }    // else    //    {    //      mp3_play(3);    //    }    //====================================================================================================
    if (nThrottleIn > 1800 && wlaczony3 == false) {
      mp3_play(3);
      wlaczony3 = true;      wlaczony2 = false;      wlaczony1 = false;      wlaczony4 = false;      wlaczony5 = false;      wlaczony6 = false;      wlaczony7 = false;    }
    if (nThrottleIn > 1600  && nThrottleIn < 1800 && wlaczony5 == false)    {
      mp3_play(5);
      wlaczony5 = true;      wlaczony2 = false;      wlaczony1 = false;      wlaczony4 = false;      wlaczony3 = false;      wlaczony6 = false;      wlaczony7 = false;    }
  }    }
bNewThrottleSignal = false;
if (nThrottleIn_1 == 2000 && wlaczony6 == false)    {      mp3_play(4); //звук выстрела подается с другого mp3  модуля
      wlaczony6 = true;      wlaczony2 = false;      wlaczony1 = false;      wlaczony4 = false;      wlaczony3 = false;      wlaczony5 = false;      wlaczony7 = false;    }      Serial.print(IBus.readChannel(0));  Serial.print(" - ");  Serial.print(IBus.readChannel(1));  Serial.print(" - ");  Serial.print(IBus.readChannel(2));  Serial.print(" - ");  Serial.print(IBus.readChannel(3));  Serial.print(" - ");  Serial.print(IBus.readChannel(4));  Serial.print(" - ");  Serial.print(IBus.readChannel(5));  Serial.print(" - ");  Serial.println(nThrottleIn);}


прорр
​Не говорите, если это не изменит тишину к лучшему.

Юрий_1

Добрый вечер,
Если я правильно понимаю, это п -опытка реализации звука для плат TCB?
С реализацией платы от тов. Люка пока все подвисло - и данная реализация - один из путей решения проблемы.
Вопросы:
- есть работающая реализация
- где брать конкретные версии звуков
- что делать новичку с приведенным кодом HTML
- ну купил я детали и что дальше

Спасибо.
p.s.
8-го на встречу кроме инструментов м.б. заказать пироги от Штолле?
Кто какие предпочитает?

Deny

Ну. мне пироги с рыбой! А по поводу реализации  звукового модуля для платы  Люка, пока еще рано говорить, это пока  попытка создания многоканального  звука. 8-го поговорим.
​Не говорите, если это не изменит тишину к лучшему.