Я новичок в программировании и ищу решение для пользовательского интерфейса Windows для изменения параметров на плате Arduino.
Вся цель — блок управления камерой, вспышкой и клапанами для фотографирования капель воды. Аппаратное обеспечение и IDE Arduino уже запущены, но изменение времени в эскизе Arduino IDE не очень удобно.
Поэтому я провел свои первые тесты последовательной передачи данных на основе ответа пользователя apodidae в разделе «Как я могу использовать обработку для создания графического интерфейса, который отправляет данные в Arduino и получает данные обратно для отображения в графическом интерфейсе?»
Теперь у меня возникла следующая проблема:
Когда я использую его без изменений, он отправит данные 2 набора данных. Второе перезапишет первое значением 0. Перезапись серийного номера изображения
За исключением строк 120–122 будет отправлен только один набор данных, но есть сдвиг и первое значение отсутствует.import controlP5.*;
import java.util.*;
import processing.serial.*;
ControlP5 cp5;
Serial myPort;
PFont font;
PFont fontB;
PFont fontT;
int ypos_event_1 = 50;
int ypos_event_step = 50;
int xpos_event_A = 80;
int xpos_event_S = 180;
int xpos_event_D = 320;
int[] sliderVal = {0, 10, 20, 0, 30, 40};
int slider0Value = sliderVal[0];
int slider1Value = sliderVal[1];
int slider2Value = sliderVal[2];
int slider3Value = sliderVal[3];
int slider4Value = sliderVal[4];
int slider5Value = sliderVal[5];
void setup() {
size(600, 1000);
surface.setTitle("ValveTime");
cp5 = new ControlP5(this);
font = createFont("calibri bold", 8); // custom fonts for
fontB = createFont("calibri bold", 12); // custom fonts for buttons
fontT = createFont("calibri bold", 20); // custom fonts for title
//* add a ScrollableList
List l = Arrays.asList("Leer","Kamera", "Blitz_1", "Blitz_2", "Blitz_3", "Vent_1", "Vent_2", "Vent_3", "Vent_4");
// slider value linked to variable 'sliderNumValue'
cp5.addScrollableList("slider0Value")
.setPosition( xpos_event_A, ypos_event_1)
.setSize(80, 50)
.setBarHeight(20)
.setItemHeight(20)
.setFont(font)
.addItems(l)
.setCaptionLabel(" A1")
;
cp5.addSlider("slider1Value")
.setPosition(xpos_event_S, ypos_event_1)
.setHeight(24)
.setRange(0, 10000)
.setFont(font)
.setCaptionLabel(" S1")
;
cp5.addSlider("slider2Value")
.setPosition(xpos_event_D, ypos_event_1)
.setHeight(24)
.setRange(0, 1000)
.setFont(font)
.setCaptionLabel(" D1")
;
cp5.addScrollableList("slider3Value")
.setPosition( xpos_event_A, (ypos_event_1+1*ypos_event_step))
.setSize(80, 50)
.setBarHeight(20)
.setItemHeight(20)
.setFont(font)
.addItems(l)
.setCaptionLabel(" A2")
;
cp5.addSlider("slider4Value")
.setPosition(xpos_event_S, (ypos_event_1+1*ypos_event_step))
.setHeight(24)
.setRange(0, 10000)
.setFont(font)
.setCaptionLabel(" S2")
;
cp5.addSlider("slider5Value")
.setPosition(xpos_event_D, (ypos_event_1+1*ypos_event_step))
.setHeight(24)
.setRange(0, 1000)
.setFont(font)
.setCaptionLabel(" D2")
;
// Send_Data button
cp5.addButton("Send_Data")
.setPosition(220, 900)
.setSize(100, 24)
;
// printArray(Serial.list());
myPort = new Serial(this, "COM3", 9600);
}
void draw() {
background(0);
}
public void Send_Data() {
println("Send_Data button hit.");
sliderVal[0] = slider0Value;
sliderVal[1] = slider1Value;
sliderVal[2] = slider2Value;
sliderVal[3] = slider3Value;
sliderVal[4] = slider4Value;
sliderVal[5] = slider5Value;
printArray(sliderVal);
for (int i = 0; i < (sliderVal.length); ++i) {
// if (i == 0) {
// myPort.write("\n"); //So first value will show up
// }
myPort.write(sliderVal+"\n");
}
}
void serialEvent(Serial p) {
String inStr = p.readStringUntil('\n');
if (inStr != null) {
print("received: ", inStr);
}
}
Код Arduino
int event_1A = 0;
int event_1S = 0;
int event_1D = 0;
int event_2A = 0;
int event_2S = 0;
int event_2D = 20;
int busyPin = 8;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
Serial.readStringUntil('\n');
Serial.println("#################");
event_1A = Serial.parseInt();
Serial.println(event_1A);
event_1S = Serial.parseInt();
Serial.println(event_1S);
event_1D = Serial.parseInt();
Serial.println(event_1D);
event_2A = Serial.parseInt();
Serial.println(event_2A);
event_2S = Serial.parseInt();
Serial.println(event_2S);
event_2D = Serial.parseInt();
Serial.println(event_2D);
Serial.println("=================");
}
if (event_1A == 6)
digitalWrite (busyPin, HIGH);
else
digitalWrite (busyPin, LOW);
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... to-arduino
Отправка последовательных данных из обработки в Arduino ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1763315767
Anonymous
Я новичок в программировании и ищу решение для пользовательского интерфейса Windows для изменения параметров на плате Arduino.
Вся цель — блок управления камерой, вспышкой и клапанами для фотографирования капель воды. Аппаратное обеспечение и IDE Arduino уже запущены, но изменение времени в эскизе Arduino IDE не очень удобно.
Поэтому я провел свои первые тесты последовательной передачи данных на основе ответа пользователя apodidae в разделе «Как я могу использовать обработку для создания графического интерфейса, который отправляет данные в Arduino и получает данные обратно для отображения в графическом интерфейсе?»
Теперь у меня возникла следующая проблема:
Когда я использую его без изменений, он отправит данные 2 набора данных. Второе перезапишет первое значением 0. Перезапись серийного номера изображения
За исключением строк 120–122 будет отправлен только один набор данных, но есть сдвиг и первое значение отсутствует.import controlP5.*;
import java.util.*;
import processing.serial.*;
ControlP5 cp5;
Serial myPort;
PFont font;
PFont fontB;
PFont fontT;
int ypos_event_1 = 50;
int ypos_event_step = 50;
int xpos_event_A = 80;
int xpos_event_S = 180;
int xpos_event_D = 320;
int[] sliderVal = {0, 10, 20, 0, 30, 40};
int slider0Value = sliderVal[0];
int slider1Value = sliderVal[1];
int slider2Value = sliderVal[2];
int slider3Value = sliderVal[3];
int slider4Value = sliderVal[4];
int slider5Value = sliderVal[5];
void setup() {
size(600, 1000);
surface.setTitle("ValveTime");
cp5 = new ControlP5(this);
font = createFont("calibri bold", 8); // custom fonts for
fontB = createFont("calibri bold", 12); // custom fonts for buttons
fontT = createFont("calibri bold", 20); // custom fonts for title
//* add a ScrollableList
List l = Arrays.asList("Leer","Kamera", "Blitz_1", "Blitz_2", "Blitz_3", "Vent_1", "Vent_2", "Vent_3", "Vent_4");
// slider value linked to variable 'sliderNumValue'
cp5.addScrollableList("slider0Value")
.setPosition( xpos_event_A, ypos_event_1)
.setSize(80, 50)
.setBarHeight(20)
.setItemHeight(20)
.setFont(font)
.addItems(l)
.setCaptionLabel(" A1")
;
cp5.addSlider("slider1Value")
.setPosition(xpos_event_S, ypos_event_1)
.setHeight(24)
.setRange(0, 10000)
.setFont(font)
.setCaptionLabel(" S1")
;
cp5.addSlider("slider2Value")
.setPosition(xpos_event_D, ypos_event_1)
.setHeight(24)
.setRange(0, 1000)
.setFont(font)
.setCaptionLabel(" D1")
;
cp5.addScrollableList("slider3Value")
.setPosition( xpos_event_A, (ypos_event_1+1*ypos_event_step))
.setSize(80, 50)
.setBarHeight(20)
.setItemHeight(20)
.setFont(font)
.addItems(l)
.setCaptionLabel(" A2")
;
cp5.addSlider("slider4Value")
.setPosition(xpos_event_S, (ypos_event_1+1*ypos_event_step))
.setHeight(24)
.setRange(0, 10000)
.setFont(font)
.setCaptionLabel(" S2")
;
cp5.addSlider("slider5Value")
.setPosition(xpos_event_D, (ypos_event_1+1*ypos_event_step))
.setHeight(24)
.setRange(0, 1000)
.setFont(font)
.setCaptionLabel(" D2")
;
// Send_Data button
cp5.addButton("Send_Data")
.setPosition(220, 900)
.setSize(100, 24)
;
// printArray(Serial.list());
myPort = new Serial(this, "COM3", 9600);
}
void draw() {
background(0);
}
public void Send_Data() {
println("Send_Data button hit.");
sliderVal[0] = slider0Value;
sliderVal[1] = slider1Value;
sliderVal[2] = slider2Value;
sliderVal[3] = slider3Value;
sliderVal[4] = slider4Value;
sliderVal[5] = slider5Value;
printArray(sliderVal);
for (int i = 0; i < (sliderVal.length); ++i) {
// if (i == 0) {
// myPort.write("\n"); //So first value will show up
// }
myPort.write(sliderVal[i]+"\n");
}
}
void serialEvent(Serial p) {
String inStr = p.readStringUntil('\n');
if (inStr != null) {
print("received: ", inStr);
}
}
Код Arduino
int event_1A = 0;
int event_1S = 0;
int event_1D = 0;
int event_2A = 0;
int event_2S = 0;
int event_2D = 20;
int busyPin = 8;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
Serial.readStringUntil('\n');
Serial.println("#################");
event_1A = Serial.parseInt();
Serial.println(event_1A);
event_1S = Serial.parseInt();
Serial.println(event_1S);
event_1D = Serial.parseInt();
Serial.println(event_1D);
event_2A = Serial.parseInt();
Serial.println(event_2A);
event_2S = Serial.parseInt();
Serial.println(event_2S);
event_2D = Serial.parseInt();
Serial.println(event_2D);
Serial.println("=================");
}
if (event_1A == 6)
digitalWrite (busyPin, HIGH);
else
digitalWrite (busyPin, LOW);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79821582/sending-serial-data-from-processing-to-arduino[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия