私が参加している新しいコースでは、ProcessingとArduinoの間の接続を作成する必要があります。特定のスイッチがONの場合、処理では四角形が描画されます。図面の長方形
これには3つのスイッチと1つのボタンがあります。 3つのスイッチは赤、緑、青の色を表します。そのため、ユーザーは最初に色を選択してから、特定の色で矩形を描くようにする必要があります。
その後、ユーザーはその色のスイッチをオンにし、別の色のスイッチをオンにし、スイッチを押して2番目の長方形を描くことができます。残念ながら私のために働いていません。
1つの矩形が描画されると、別の矩形を描画することはできません。私は非常にこれに新しいですので、私のコードが非常に悪い場合はごめんなさい!
私のArduinoのコード:
int switchPinRed = 21;
int switchPinGreen = 22;
int switchPinBlue = 23;
int buttonPinRect = 20;
void setup() {
pinMode(switchPinRed, INPUT); // Set pin 0 as an input
pinMode(switchPinGreen, INPUT);
pinMode(switchPinBlue, INPUT);
pinMode(buttonPinRect, INPUT);
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop() {
if (digitalRead(buttonPinRect) == HIGH) {
Serial.print(1);
}
else if (digitalRead(switchPinRed) == HIGH) {
Serial.print(2);
}
else if (digitalRead(switchPinGreen) == HIGH) {
Serial.print(3);
}
else if (digitalRead(switchPinBlue) == HIGH) {
Serial.print(4);
}
}
そして、私の処理コード:
import processing.serial.*;
Serial myPort;
int val;
int[] rects = new int [3];
void setup()
{
size(600, 200);
String portName = Serial.list()[0];
myPort = new Serial(this, "/dev/tty.usbmodem3330431", 9600);
for (int i=0; i < 3; i++) {
rects[i] = 0;
}
}
void draw()
{
if (myPort.available() > 0) {
val = myPort.read();
}
background(255);
for (int i =0; i < 3; i++) {
if (val == 1) {
if (val == 2) {
fill(255, 0, 0);
} else if (val == 3) {
fill(0, 255, 0);
} else if (val == 4) {
fill(0, 0, 255);
}
rect(random(50), random(50), 100, 100);
}
}
}
「val」は同時に「1」と他の値となることはできません。 –
ありがとう、ありがとう!そして、どのようにして、私はそれが機能するように、他の価値を何かに変えることができますか? –