Обработка> Arduino> Ошибки подключения модуля Bluetooth - PullRequest
0 голосов
/ 14 мая 2019

У меня есть экран Bluetooth. (https://www.hackerstore.nl/PDFs/BTShield.pdf) Подключен к источнику питания (5 В) Подключил Bluetooth к моему Mac OSX (отображается как HC-05 в настройках Bluetooth)

В программе Arduino порт подключен. Мое первое предположение состоит в том, что мой код должен работать, но я получаю эту ошибку при попытке:

avrdude: ser_open(): can't open device "/dev/cu.HC-05-DevB": Resource busy. 

Может я что-то упустил? до сих пор я не изменил ни один из моих кодов обработки или Arduino, я должен? или здесь что-то не так?

Вот код Arduino:


#include <FastLED.h>

#define LED_PIN     13
#define NUM_LEDS    36

CRGB leds[NUM_LEDS];

void setup()
{
  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
  Serial.begin(9600);

  FastLED.clear();
  FastLED.show();
}

void loop()
{

  if (Serial.available() > 0)
  {
    int incomingByte = Serial.read();

    if (incomingByte > '0' && incomingByte < '7')
    {
      FastLED.clear();   //  <-----<<<<    USE clear
    }


    if (incomingByte == '1')
    {
      leds[0] = CRGB(255, 0, 0);
      leds[6] = CRGB(255, 0, 0);
      leds[12] = CRGB(255, 0, 0);
      leds[18] = CRGB(255, 0, 0);
      leds[24] = CRGB(255, 0, 0);
      leds[30] = CRGB(255, 0, 0);
    }
    else if (incomingByte == '2')
    {
      leds[1] = CRGB(255, 0, 0);
      leds[7] = CRGB(255, 0, 0);
      leds[13] = CRGB(255, 0, 0);
      leds[19] = CRGB(255, 0, 0);
      leds[25] = CRGB(255, 0, 0);
      leds[31] = CRGB(255, 0, 0);
    }
    else if (incomingByte == '3')
    {
      leds[2] = CRGB(255, 0, 0);
      leds[8] = CRGB(255, 0, 0);
      leds[14] = CRGB(255, 0, 0);
      leds[20] = CRGB(255, 0, 0);
      leds[26] = CRGB(255, 0, 0);
      leds[32] = CRGB(255, 0, 0);

    }
    else if (incomingByte == '4')
    {
      leds[3] = CRGB(255, 0, 0);
      leds[9] = CRGB(255, 0, 0);
      leds[15] = CRGB(255, 0, 0);
      leds[21] = CRGB(255, 0, 0);
      leds[27] = CRGB(255, 0, 0);
      leds[33] = CRGB(255, 0, 0);
    }
    else if (incomingByte == '5')
    {
      leds[4] = CRGB(255, 0, 0);
      leds[10] = CRGB(255, 0, 0);
      leds[16] = CRGB(255, 0, 0);
      leds[22] = CRGB(255, 0, 0);
      leds[28] = CRGB(255, 0, 0);
      leds[34] = CRGB(255, 0, 0);
    }
    else if (incomingByte == '6')
    {
      leds[5] = CRGB(255, 0, 0);
      leds[11] = CRGB(255, 0, 0);
      leds[17] = CRGB(255, 0, 0);
      leds[23] = CRGB(255, 0, 0);
      leds[29] = CRGB(255, 0, 0);
      leds[35] = CRGB(255, 0, 0);
    }

    FastLED.show();
  }
}

Спасибо за вашу помощь, ребята!

ОБНОВЛЕНИЕ:

Хорошо, я обнаружил, что выполнение эскиза обработки влияет на модуль Bluetooth. У меня были некоторые проблемы с отключением HC-05 ранее, но при сохранении работающего эскиза обработки Bluetooth был подключен.

Вот код обработки:


float x = 100;
float y = 50;
float w = 150;
float h = 80;

import org.openkinect.freenect.*;
import org.openkinect.processing.*;
import processing.serial.*;


// The kinect stuff is happening in another class
KinectTracker tracker;
Kinect kinect;
Serial myPort;

void setup() {
  size(512, 424);
  kinect = new Kinect(this);
  tracker = new KinectTracker();
  String portName = Serial.list()[3]; //change the 0 to a 1 or 2 etc. to match your port
  myPort = new Serial(this, portName, 9600);
}

void draw() {

  tracker.track();
  tracker.display();

  PVector v1 = tracker.getPos();
  fill(50, 100, 250, 200);
  noStroke();
  ellipse(v1.x, v1.y, 50, 50);




   //1
    if (v1.x > 0 && v1.x < 50 ){
    println('1');
    //rect(0,200,200,200);
    myPort.write('1'); }
    //println('0'); }

    //2
  if (v1.x > 50 && v1.x < 100){
    println('2');
    myPort.write('2'); }   
 //3
   if (v1.x > 100 && v1.x < 150 ){
    println('3');
    myPort.write('3'); }

    //4
   if (v1.x > 150 && v1.x < 200 ){
    println('4');
   myPort.write('4'); }

    //5
   if (v1.x > 200 && v1.x < 250 ){
    println('5');
    myPort.write('5'); }

    //6
   if (v1.x > 250 && v1.x < 300 ){
    println('6');
    myPort.write('6'); }

}

Так что теперь я думаю, что arduino может подумать, что HC05 занят, так как он получает сигналы от обработки? Я думаю, может быть, ставка BAUD как-то связана с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...