Обновление экрана
- Войдите на сайт для отправки комментариев
Чт, 18/01/2018 - 12:52
Добрый день!
Вопрос такой. Процессинг получает от Arduino занчение параметра и строит по нему график. Как сделать, чтобы это происходило раз в 5 секунд (считывание нового значение и построение графика)? Сейас график строится только один раз.
import processing.serial.*; import cc.arduino.*; Arduino arduino; int rotation; int x=0; int y=0; int xk=0; int yk=0; float i = 0.0; int v0 = 10; float a; void setup() { fullScreen(); background(74, 184, 179); stroke(255); arduino = new Arduino(this, Arduino.list()[0], 57600); } void draw() { x=40; y=728; xk=40; yk=728; fill( 255, 0, 0 ); strokeWeight(1); ellipse(40, 728, 60, 60 ); strokeWeight(10); rotation = arduino.analogRead(0); a = map(rotation, 0, 1023, 0, 90); while (i<=3.0){ x = 40 + round(( v0 * i * cos(a * 3.14 / 180))*100); y =728 - round((v0 * i * sin(a * 3.14 / 180) - (9.81 * i * i) / 2)*100); line (xk, yk, x, y); xk=x; yk=y; i += 0.1; delay(100); } }
У вас цикл while запускается только один раз, так как переменная i ни где не сбрасывается.
Я делал так - Arduino по таймеру запускал передачу данных по COM порту, а Процессинг получал данные
Спасибо! Дурацкая ошибка. Проглядел. Все заработало.
Это потому, что i глобальная переменная. Для циклов нужно объявлять локальные переменные, тогда забыть будет сложнее.
Можно обнулять эту переменную раз в 5 секунд чтобы обновлять экран, как хотел ТС.