该程序应该控制 com 端口上的 arduino。下拉列表中显示可用 com 端口列表,但该端口不想打开。如果您手动指定comport,一切都会正常。
import controlP5.*;
ControlP5 cp5;
import processing.serial.*;
Serial serial;
int speed = 9600;
String portName;
void setup () {
size (400, 400);
cp5 = new ControlP5(this);
cp5.setFont(createFont("Ubuntu", 20));
serial = new Serial(this, "COM3", speed); //только если в ручную указать порт программа связывается с ардуино
String str[] = Serial.list();
println(str);
// кнопки для работы с выпадающим листом
cp5.addButton("Refresh").setPosition(228, 108).setWidth(100).setHeight(25);
cp5.addButton("OpenPORT").setPosition(8, 91).setWidth(200).setHeight(25);
cp5.addButton("ClosePort").setPosition(7, 125).setWidth(200).setHeight(25);
cp5.addScrollableList("ComList").close()
.setWidth(199)
.setBarHeight(40)
.setPosition(10, 10)
.setItemHeight(35)
.linebreak();
cp5.addButton("ledOn").setPosition(8, 180).setWidth(200).setHeight(25);
cp5.addButton("ledOff").setPosition(8, 220).setWidth(200).setHeight(25);
}
void draw() {
background(120);
}
void OpenPORT(){
serial = new Serial(this, portName, speed);
println(portName);
}
void Refresh() {
String list [] = Serial.list();
cp5.get(ScrollableList.class, "ComList").addItems(list);//получаем COM порты
}
void Comlist (int n) {
portName = Serial.list()[n];
}
void ledOn(){
serial.write('n');
delay(1000);
}
void ledOff(){
serial.write('f');
delay(1000);
}
void ClosePort() {
serial.stop();
}