Посоветуйте контент на тему обмена данными между Arduino и Processing
- Войдите на сайт для отправки комментариев
Втр, 11/08/2020 - 15:33
В частности интересует обмен массивами и структурами в обе стороны, посылка и разбор сообщений.
У Гугла спроси:
"Протоколы передачи данных"
"Пакетная передача данных"
Можешь добавить "С++"
Гугл - это не то. Там куча инфы про передачу данных на других языках. Ардуино и Processing имеют свои особенности. Именно про них я бы хотел прочитать.
Гугл - это не то. Там куча инфы про передачу данных на других языках. Ардуино и Processing имеют свои особенности. Именно про них я бы хотел прочитать.
Ардуино и процессинг, это галимый C++, на котором и описано большинство протоколов
если прочитать предыдущие сообщения в разделе Processing, то можно найти примеры общения Processing и Arduino.
Гугл - это не то. Там куча инфы про передачу данных на других языках. Ардуино и Processing имеют свои особенности. Именно про них я бы хотел прочитать.
теоретически процессинг, это Java, но код Ардуино частенько работает в процессинге.
Гугл - это не то. Там куча инфы про передачу данных на других языках. Ардуино и Processing имеют свои особенности. Именно про них я бы хотел прочитать.
теоретически процессинг, это Java, но код Ардуино частенько работает в процессинге.
А java ,это не голимый c++ ?
Зачем вам это?
По идеи, ардуина должна отправлять актуальные данные.
А сортировка по массивам со структурами и обработка, в процессинге.
Назад в ардуину отправляются только короткие команды.
один из моих первых вариантов)) PROCESSING---->>ARDUINO
//ARDUINO SKETCH---------------------------------------------------------------------- long commandValue; // данные, получаемые с последовательного порта #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup(){ Serial.begin(9600); lcd.begin(16, 2); lcd.clear(); } void loop(){ // считывание // если можно прочитать данные if (Serial.available() > 0) { // считываем данные //commandValue = Serial.read(); commandValue = Serial.parseInt(); lcd.clear(); lcd.setCursor(0, 0); lcd.print("DATA: "); lcd.setCursor(0, 1); lcd.print(commandValue,DEC); delay(600); //lcd.clear(); } delay(100); lcd.clear(); lcd.setCursor(0, 0); lcd.print("NO Signal"); } //ARDUINO SKETCH---------------------------------------------------------------------- //PROCESSING SKETCH------------------------------------------------------------------- /* int speed = 9600; //начальная скорость порта import processing.serial.*; //библиотека Serial serial; import controlP5.*; //библиотека кнопки крутилки ControlP5 cp5; String portName; RadioButton r1, r2; int TheMyCalor; int rgb; void setup() { size(680, 430); //размеры основного окна cp5 = new ControlP5(this); cp5.setFont(createFont("Calibri", 16)); // сделаем шрифт побольше // create a toggle cp5.addToggle("") //SENDRGB .setPosition(10,360) .setSize(240,20) ; //ON Отправка RGB-------------------------------------------------------------------- cp5.addButton("ONRGB").setPosition(10, 320).setSize(240, 30); //palitra---------------------------------------------------------------------------- cp5.addColorWheel("myCalor" , 10 , 50 , 240 ).setRGB(color(128,0,255)); // кнопки--------------------------------------------------------------------- cp5.addButton("open").setPosition(90, 10).setSize(80, 30); cp5.addButton("close").setPosition(170, 10).setSize(80, 30).linebreak(); //отправка-------------------------------------------------------------------- cp5.addTextfield("input").setPosition(260, 10).setSize(320, 30); cp5.addButton("send").setPosition(590, 10).setSize(80, 30); // выпадающий список---------------------------------------------------------- cp5.addScrollableList("com") .setPosition(10, 10) .setSize(80, 100) .setBarHeight(30) .setItemHeight(30) .close() .addItems(Serial.list()); // добавляем список портов ; // cкорость порта-------------------------------------------------------------- r1 = cp5.addRadioButton("radioButton") .setPosition(10,400) //позиция кнопок выбора скорости порта .setSize(80,20) //размер кнопок выбора скорости порта .setColorForeground(color(120)) .setColorActive(color(255)) .setColorLabel(color(255)) .setItemsPerRow(5) .setSpacingColumn(50) .addItem("4800",1) //режим 1 равен скорости 4800 бод .addItem("9600",2) //режим 1 равен скорости 9600 бод .addItem("19200",3) //режим 1 равен скорости 19200 бод .addItem("38400",4) //режим 1 равен скорости 38400 бод .addItem("115200",5) //режим 1 равен скорости 115200 бод ; for(Toggle t:r1.getItems()) { t.getCaptionLabel().setColorBackground(color(255,80)); t.getCaptionLabel().getStyle().moveMargin(-3,0,0,-3); t.getCaptionLabel().getStyle().movePadding(7,0,0,3); t.getCaptionLabel().getStyle().backgroundWidth = 55; //длинна серых окон выбора скорости порта t.getCaptionLabel().getStyle().backgroundHeight = 13; }} void radioButton(int TheRadioButton) { if(TheRadioButton==1){speed=4800;} //при включенном режиме 1 установить скорость в 4800 бод if(TheRadioButton==2){speed=9600;} //при включенном режиме 1 установить скорость в 9600 бод if(TheRadioButton==3){speed=19200;} //при включенном режиме 1 установить скорость в 19200 бод if(TheRadioButton==4){speed=38400;} //при включенном режиме 1 установить скорость в 38400 бод if(TheRadioButton==5){speed=115200;} //при включенном режиме 1 установить скорость в 115200 бод print(speed); } public void SENDRGB(boolean MySENDRGB ) { if(MySENDRGB==true){rgb=1;}else{rgb=0;} //указываем флаг rgb 0 или 1 } public void ONRGB(boolean MyONRGB ) { String textONRGB = "Str=" + ~TheMyCalor; //создаем СТРОКУ для отправки цвета if(MyONRGB==true) {serial.write(textONRGB);println(textONRGB);} //отправить значение RGB при нажатой кнопке ONRGB (инвертировал ~) } public void myCalor(int TheMyCalor2) { TheMyCalor=TheMyCalor2; //глобальная переменная равна локальной } void com(int n) { portName = Serial.list()[n]; } void open() { serial = new Serial(this, portName, speed); } void close() { serial.stop(); } void send() { serial.write(cp5.get(Textfield.class, "input").getText()); //Отправка сообщения при нажатой кнопке Send } void draw() { background(40); // цвет фона if(rgb==1){ // если флаг rgb равен 1 String textMyCalor = "Str=" + ~TheMyCalor; //создаем СТРОКУ для отправки цвета serial.write(textMyCalor);println(textMyCalor); //включить постоянную передача цвета delay(200); //задержка } } */ //PROCESSING SKETCH-------------------------------------------------------------------