Очень нужна помощь!

anfilive
Offline
Зарегистрирован: 29.01.2015

Всем привет. Я новенький. 
Вот есть такой скетч. Сейчас он для приёма/получения данных по Ethernet. 
У меня не получается изменить его, заменив Ethernet на блютух модуль? Кто-нибудь сможет мне помочь?

Всё, что должен делать этот скетч, это получать по протоколу UDP строку из десяти нулей и единиц и соответствующим образом зажигать светодиоды. Для этого я подключу плагин к аимп плееру и получу цветомузыку. Надеюсь, что получу




#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include <Udp.h>         // UDP library from: bjoern@cs.stanford.edu 12/30/2008
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,177 }; //IP ардуины
 
unsigned int localPort = 53412;      // локальный порт
 
byte remoteIp[4];
unsigned int remotePort;
 
// буфер для приёма/отправки данных
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //буфер для получения данных по сети
 
void setup() {
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
 
  for (int i=0; i<10; i++)
  {
    pinMode(i,OUTPUT);
    digitalWrite(i, LOW);
  }
}
 
void loop() {
  // читаем пакеты данных при наличии
  int packetSize = Udp.available();
  if(packetSize)
  {
    memset(packetBuffer, 0, sizeof(packetBuffer)); //обнуляем буфер
    packetSize = packetSize - 8;      // subtract the 8 byte header
 
    Udp.readPacket(packetBuffer,UDP_TX_PACKET_MAX_SIZE, remoteIp, remotePort);
 
    for (int i=0; i<10; i++)
    {
      if (packetBuffer[i]=='1')
      {
        digitalWrite(i,HIGH);
      }
      else
      {
        digitalWrite(i,LOW);
      }
    }
  } //if(packetSize)
}
magi
Offline
Зарегистрирован: 30.01.2015

Так просто изменить не получиться. Ethernet и Bluetooth работают несколько различно.

см. http://cxem.net/arduino/arduino63.php

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Глаза вытекли...

Блютуз на ардуино - это просто удлиннитель для UART.

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

anfilive
Offline
Зарегистрирован: 29.01.2015

у вас глаза вытекают, а у меня мозг. казалось бы, что сложного может быть в цветомузыке? Мне ведь всего лишь нужно сделать её беспроводной. а не тут-то было. 

Найти скетч в интернете невозможно, авторы готовых проектов не отвечают. а если ты никогда не программировал ничего, то уже и руки опускаются.
Я нашёл этот скетч с ethernet в надежде, что смогу его переделать под бт

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

anfilive, вы сами-то можете прочитать, что написано у вас в первом сообщении? Я бы с радостью помог, но глаза вытекают...

anfilive
Offline
Зарегистрирован: 29.01.2015

Вы простите меня за всю неадекватность первого поста. Это можно вовсе и не читать) Всё что я знаю - итоговый результат, а именно цветомузыка, управляемая с плеера (винамп, аимп). Всё что у меня есть для этого-ардуино нано, 5 диодов на плате и блютуз модуль HC-06.

Единственная толковая статья, которая получает в итоге результат, который мне подходит http://student-proger.ru/2012/04/arduino-led-cvetomuzyka/

Но она обходит момент с беспроводной передачей данных, однако она использует плеер, а не как мне советуют - микрофоны и т.д, с которыми качество будет абсолютно неприемлемым.

Цветомузыка это основная часть проекта. Я рассчитываю подвести пучки оптоволокна к диодам и вывести их в картину, которая по моей влажной мечте должна будет вспыхивать под музыку, находясь в соседней комнате

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

А есть плагин который будет с Аимпа транслировать в блютуз? Тот что в статье по сети транслирует. Если нет такого плагина, то всё остальное бессмысленно. Сначало надо плагин переписать.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014
NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Начать нужно с того в каком формате можно передать данные из плеера в блютуз модуль HC-06 для зажигания светодиодов. Данные будут передавать по COM порту. Выложите сюда результаты: для того чтобы зажечь диод №1 плагин винампа шлет в ком порт "E1\n" - заглавная буква, далее цифра и перевод строки бинарное значение 0x0d. Для того чтобы погасить диод №1 плагин отправляет "D1\n".

Так вот вам нужно найти такой плагин который работает по RS-232 или написать доподнительную программу которая слушает порт UDP(локальная сеть) и транслирует данные а COM порт(RS-232) - которая будет работать на компе как сервис. Главная задача обеспечить передачу данных из плеера по блютус. Только потом можно заниматься аппаратной часть на Ардуино.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

NeiroN пишет:

Начать нужно с того в каком формате можно передать данные из плеера в блютуз модуль HC-06 для зажигания светодиодов. Данные будут передавать по COM порту. Выложите сюда результаты: для того чтобы зажечь диод №1 плагин винампа шлет в ком порт "E1\n" - заглавная буква, далее цифра и перевод строки бинарное значение 0x0d. Для того чтобы погасить диод №1 плагин отправляет "D1\n".

Так вот вам нужно найти такой плагин который работает по RS-232 или написать доподнительную программу которая слушает порт UDP(локальная сеть) и транслирует данные а COM порт(RS-232) - которая будет работать на компе как сервис. Главная задача обеспечить передачу данных из плеера по блютус. Только потом можно заниматься аппаратной часть на Ардуино.

Плагин к плагину?