У меня есть рабочая установка, в которой малиновый пи запускает эскиз загрузки без головы при загрузке. Этот эскиз соединяет встроенный Bluetooth Pi с H C -06. Pi также устанавливает последовательное соединение с Arduino Nano через USB-кабель. Эскиз обработки действует как реле. Он передает байты от Arduino к H c -06 и наоборот.
Устройство с H C -06 - это Arduino Nano. Это устройство отправляет сигнал квитирования, поэтому arduino на стороне Pi знает, что он подключен, и отправляет ответ.
Все это работает как брелок, но при одном условии. H c -06 должен быть включен перед загрузкой эскиза обработки. Если я включаю H C -06 слишком поздно или если я включаю / выключаю его, я не могу повторно подключиться, и эскиз обработки должен быть перезагружен.
Я хочу запрограммировать более продвинутый протокол дрожания рук с помощью функция тайм-аута. Таким образом, оба устройства будут знать, что соединение разорвано.
Я запускаю эскиз обработки с помощью сценария оболочки
sudo rfcomm bind hci0 20:14:04:15:23:75
sudo killall java
xvfb-run processing-java --sketch=/home/pi/Documents/bluetooth --run # runs headless
Команда rfcomm bind запускается только один раз при загрузке.
И скрипт Bluetooth:
import processing.serial.*;
Serial handController;
Serial central;
byte mode;
void setup()
{
printArray(Serial.list());
size(200,200);
background(0); // black
central = new Serial( this, Serial.list()[3], 115200);
handController = new Serial( this , Serial.list()[0] , 115200 );
}
long prev;
byte tgl = 0;
void draw()
{
if(handController.available() > 0) {
int c = handController.read();
println(" handcontroller:\t" + (char) c + "\t" + c); // as well char as dec value
central.write(c);
}
....
Возможно ли, что на этом эскизе я разрываю последовательное соединение с rfcomm0, а затем перезапускаю его?
Кажется, что это линия устанавливает соединение Bluetooth.
handController = new Serial( this , Serial.list()[0] , 115200 ); // rfcomm0
Я не очень знаком с java. Как я могу уничтожить серийный объект? И могу ли я сделать «новый» во второй раз из функции?
С уважением,
Bas