Помогите новичку)

burno
Offline
Зарегистрирован: 15.04.2015

Здравствуйте, появилась идея сделать домашнюю АС 5.1 с использованием Arduino.

Опыта в таких проэктах очень мало, с Arduino вообще нет.

По задумке контроллер должен:

1) Управлять передней панелью (кнопки регулировки звука и тд, дисплей или 7ми сегментный индикатор)

2) Обеспечить устройству функцию "bluetooth гарнитура", т.е. возможность подключится к АС с телефона или ноута чтобы слушать музыку без проводов...

Какой Arduino выбрать для этих целей? Может быть какие нибудь советы по реализации. Спасибо.

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Как вы думаете, через 3-4 дня легко будет отыскать тему с таким названием? Поэтому с ответами большинство забьет.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

burno, тут в первую очередь важно звуковой процессор выбрать, блютус аудио модуль с поддержкой 5.1. Когда всё это подберёте может выяснится что арудина и не нужна..

burno
Offline
Зарегистрирован: 15.04.2015

контроллер должен осуществлять "сопряжение" устройств и передачи цифрового потока на внешний ЦАП

5.1 не нужен, стерео более чем

inspiritus
Offline
Зарегистрирован: 17.12.2012

Вы знаете протоколы этого аудиопотока ?

так нужен 5.1 или нет ?

купите таки ресивер и не морочьте голову, разрабатывать имеет смысл то, чего не бывает готового

burno
Offline
Зарегистрирован: 15.04.2015

5.1 здесь непричем, bluetooth-гарнитура поддерживает 5.1?

мне нужно чтобы любое bluetooth устройство (например телефон на Android) могло определить АС как гарнитуру и подключится к нему не используя никакого дополнительного ПО.

Denis_1704
Offline
Зарегистрирован: 28.05.2014

burno пишет:

5.1 здесь непричем, bluetooth-гарнитура поддерживает 5.1?

мне нужно чтобы любое bluetooth устройство (например телефон на Android) могло определить АС как гарнитуру и подключится к нему не используя никакого дополнительного ПО.

Купи нормальную гарнитуру и дошамань, впаяй ее в ресивер на какой нибудь аналоговый  вход 

burno
Offline
Зарегистрирован: 15.04.2015

Denis_1704 пишет:

burno пишет:

5.1 здесь непричем, bluetooth-гарнитура поддерживает 5.1?

мне нужно чтобы любое bluetooth устройство (например телефон на Android) могло определить АС как гарнитуру и подключится к нему не используя никакого дополнительного ПО.

Купи нормальную гарнитуру и дошамань, впаяй ее в ресивер на какой нибудь аналоговый  вход 

согласен, тоже сначала посетила такая мысль, но это как то слишком просто...

Denis_1704
Offline
Зарегистрирован: 28.05.2014

burno пишет:

Denis_1704 пишет:

burno пишет:

5.1 здесь непричем, bluetooth-гарнитура поддерживает 5.1?

мне нужно чтобы любое bluetooth устройство (например телефон на Android) могло определить АС как гарнитуру и подключится к нему не используя никакого дополнительного ПО.

Купи нормальную гарнитуру и дошамань, впаяй ее в ресивер на какой нибудь аналоговый  вход 

согласен, тоже сначала посетила такая мысль, но это как то слишком просто...

Все гениальное просто. Сделай кстати будет удобно и без гемороя. 

inspiritus
Offline
Зарегистрирован: 17.12.2012

http://www.ebay.com/sch/sis.html?_kw=XS3868+Bluetooth+Stereo+Audio+Module+OVC3860+Supports+A2DP+AVRCP+OVC+3860+XS3868&_id=251513055565

и для него

http://www.ebay.com/sch/sis.html?_kw=Wireless+Bluetooth+Shield+for+XS3868+Module+NEW&_id=331354956559

я пробовал, одно к другому припаивается, добавляется липолька и наступает щастье. 

На шильде встроена зарядка для липольки от юсб. Заряжал один раз акк 1700 ма/ч пол-года назад, включена в машине на AUX тонким джек - джек переходником. Звук устраивает.

Кстати во второй ссылке есть дваводном уже запаянная.

 
burno
Offline
Зарегистрирован: 15.04.2015

Заказал себе здесь.

А что на счет первого пункта? Как я понимаю подойдет любая?

inspiritus
Offline
Зарегистрирован: 17.12.2012

Вы купили сам модуль, к нему лучше докупить платку из второй ссылки, с кнопками управления, разьемами, заряжалкой .

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

OVC3860 уж очень древний модуль...  Сейчас есть более современные  с поддержкой Bluetooth® 4.0, вот например или вот распаянный  на плате  Я как-то сам собирался купить, но так и увяз в муках выбора :))

burno
Offline
Зарегистрирован: 15.04.2015

inspiritus пишет:

Вы купили сам модуль, к нему лучше докупить платку из второй ссылки, с кнопками управления, разьемами, заряжалкой .

я понимаю, щилд мне не нужен

Sem81
Offline
Зарегистрирован: 22.09.2016

Скажите а 2 таких модуля можно связать в режим Интерком и один из них связать еще и с телефоном? Хочу сделать что-то по типу мотогарнитуры-связь пилота с пасажиром. Спасибо

Waleryth
Offline
Зарегистрирован: 28.12.2015

Всем привет! У меня появилась идея реализовать чтото подобное Yatour который будет общатся со штатной магнитолой в авто, посути дела у меня практически все есть. Но я новичек в работе с Arduino. Имеется уже готовая схемка , на которой все завязано на Mega 2560, но у меня имеется Uno (досталась от знакомого). И собственно вопрос, вожно ли это все дело завязать на Uno, дабы не заказывать Мегу. Спасибо!

 

 

James
Offline
Зарегистрирован: 26.02.2016

а код есть? посмотри кол-во ног, и интерфейсов которые задействуешь, если хватает и код влезает, то меняй

Waleryth
Offline
Зарегистрирован: 28.12.2015

James пишет:

а код есть? посмотри кол-во ног, и интерфейсов которые задействуешь, если хватает и код влезает, то меняй

Да, код есть. 

Количество ног и интерфейсов я думаю видно из схемы. Меня смущает то что в меге куча интерфейсов последовательной шины rx tx, а в Uno только 1 интерфейс. Можно ли использовать другие ноги вместо rx tx 

Вот листинг кода

#include <LiquidCrystal.h>
#include <util/delay.h>
#include <TimerOne.h>
#include <TimerThree.h>

typedef unsigned char u08;
typedef unsigned short u16;
typedef unsigned long  u32;

#ifndef cbi // "clear bit"
 #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi // "set bit"
 #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
#define outp(VAL,ADRESS) ((ADRESS) = (VAL))
#define inp(VAL) (VAL)

#define ACP_UART_BAUD_RATE 	9600
#define ACP_UART_BAUD_SELECT ((u32)((u32)16000000/(ACP_UART_BAUD_RATE*16L)-1))
#define AT_UART_BAUD_RATE 	115200
#define AT_UART_BAUD_SELECT ((u32)((u32)16000000/(AT_UART_BAUD_RATE*8L)-1))
#define ACP_LISTEN 0
#define ACP_SENDACK 1
#define ACP_MSGREADY 2
#define ACP_WAITACK 3
#define ACP_SENDING 4 
#define HU_EV_STOP 1
#define HU_EV_CANCEL_VOICE_CALL 9

const int switchPin = 28; // Pin 28 connected to pins 2 & 3 (RE/DE) on MAX485
const int audioOnPin = 29; // Pin 29 connected to "Audio On" pin from head unit
const int wakePin = 8; // pin 8 connected to MFB pin of OVC
int audioOnState = 0;
int lastAudioPinState = 2;

LiquidCrystal lcd(2, 3, 4, 9, 10, 11, 12);
int c = 0; // used for lcd debug

uint8_t acp_rx[12];
uint8_t acp_tx[12];
uint8_t acp_rxindex;
uint8_t acp_txindex;
u08 acp_status;
u08 acp_txsize;
u08 acp_timeout;
u08 acp_checksum;
u08 acp_retries;
u08 acp_mode;
uint16_t acp_ltimeout;
boolean vCall = false;
boolean rewindState = false;
boolean ffState = false;
boolean callStatus = false;
boolean wPlayTime = false;
int currentTrack = 1;
boolean reset_timer = false;

uint8_t at_tx[8];
uint8_t at_rx[9];
uint8_t at_rxindex = 0;
u08 at_checksum;
u08 at_txsize = 8;
u08 at_rxsize = 9;

void setup(){
  
  lcd.begin(16,2);//specify screen dimensions
  lcd.clear();//clear the screen
  lcd.setCursor(0,0); // set cursor to col 0 row 0
  lcd.print("OVC3868");// print from cursor location TODO: get name of blutooth module (see above)
  
  pinMode(wakePin, OUTPUT);
  digitalWrite(wakePin, LOW);
  pinMode(audioOnPin, INPUT);
  outp(0xff, PORTD);
  outp(0xC0, DDRD);
  pinMode(switchPin, OUTPUT);
  digitalWrite(switchPin, LOW);
  delay(500);
  acp_uart_init(ACP_UART_BAUD_SELECT); // Initialize the ACP USART
  at_uart_init(AT_UART_BAUD_SELECT); // Initialize the AT USART
  delay(1);
}

void disconnectBluetooth() { // messages required to disconnect the OVC
     at_process(16); // Disconnect Audio Source
     at_process(3);  // Disconnect hshf
     at_process(6);  // Enter Pairing
}

void wakeOVC() // 16.5ms pulse required to wake the OVC
{
  digitalWrite(wakePin, HIGH); 
  delay(1100);
  digitalWrite(wakePin, LOW);
}

void loop()
{
  audioOnState = digitalRead(audioOnPin); // monitor the "Audio On" signal
  if(audioOnState != lastAudioPinState){
   if (audioOnState == 0) {
     Timer1.detachInterrupt(); // stop sending ACP messages
     Timer3.initialize(3000000); // start sending disconnect messages to OVC
     Timer3.attachInterrupt(disconnectBluetooth);
   }
   if (audioOnState == 1) {
    Timer3.detachInterrupt(); // stop sending disconnect messages to OVC
   }
  } 
  lastAudioPinState = audioOnState; 
  acp_handler();  
}

Представленный код из Ford_Bluetooth.ino. Вообще в папке с кодом лежат 4 *.ino файла (Ford_Bluetooth.ino, ACP.ino, AT.ino, CD.ino). И вопрос, Как правильно заливать код, только этот, основной или их нодо каждый, поотдельности? Спасибо!