Processing × スクーミー ①~円の明るさ変化&拡大縮小~【Python】

スクーミーボードの圧力センサーを押すと円が明るくなり、明るさセンサーを隠すと円の大きさが変わります。

使用センサー

  • 左上:圧力センサー
  • 右上:明るさセンサー

※他のセンサーを使う事も出来ます

動画

スクーミーIDEのコード

void setup(){
  Serial.begin(9600);
  pinMode(A5, INPUT);
  pinMode(A1, INPUT);
}
 
void loop(){
  int pressureValue = analogRead(A5);
  int brightestValue = analogRead(A1);
  
  byte pressure_highByte = (pressureValue >> 8) & 0xFF;
  byte pressure_lowByte = pressureValue & 0xFF;
  
  byte brightest_highByte = (brightestValue >> 8) & 0xFF;
  byte brightest_lowByte = brightestValue & 0xFF;
  
  Serial.write(pressure_highByte);
  Serial.write(pressure_lowByte);
  Serial.write(brightest_highByte);
  Serial.write(brightest_lowByte); 

  delay(100);
}

ProcessingIDEのコード

add_library('serial')

myPort = None
available_serialport = 2
arduinoPort = Serial.list()[available_serialport]
pressureValue = 0
brightestValue = 0
Color = 0
diameter = 0

def setup():
    global myPort
    size(640, 480)
    myPort = Serial(this, arduinoPort, 9600)

def draw():
    background(0)
    fill(Color)
    ellipse(width/2, height/2, diameter, diameter)

def serialEvent(myPort):
    global Color, diameter
    if myPort.available() >= 4:
        pressure_highByte = myPort.read()
        pressure_lowByte = myPort.read()
        brightest_highByte = myPort.read()
        brightest_lowByte = myPort.read()
        
        pressureValue = (pressure_highByte << 8) | pressure_lowByte
        brightestValue = (brightest_highByte << 8) | brightest_lowByte
        
        Color = map(pressureValue, 0, 1023, 0, 255)
        diameter = map(float(brightestValue), 0, 1023, 0, height)
キャロット
キャロット

このページのHelloNoは、050012 です!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です