~磁力の変化で画面のアクションが変わる~
スクーミーボードの磁力値が変化すると画面のゲージが上下して、大きくなるほどゲージ色が赤になり、一定以上になると音がなります!
目次
左上:磁気センサー
int originMagValue = 0;
void setup() {
Serial.begin(9600);
pinMode(A5, INPUT);
originMagValue = analogRead(A5);
}
void loop() {
int analogValue = analogRead(A5);
byte origin_highByte = (originMagValue >> 8) & 0xFF;
byte origin_lowByte = originMagValue & 0xFF;
byte analog_highByte = (analogValue >> 8) & 0xFF;
byte analog_lowByte = analogValue & 0xFF;
Serial.write(origin_highByte);
Serial.write(origin_lowByte);
Serial.write(analog_highByte);
Serial.write(analog_lowByte);
}
add_library('serial')
add_library('minim')
myPort = None
available_serialport = 2
arduinoPort = Serial.list()[available_serialport]
sensingValue = 0
originValue = 0
magValue = 0
red = 0
blue = 255
img_file = "musashi_science.png"
sound_file = "sound.mp3"
def setup():
global myPort, img, sound, sensingValue
size(900, 1000)
myPort = Serial(this, arduinoPort, 9600)
myPort.buffer(1024)
img = loadImage(img_file)
minim = Minim(this)
sound = minim.loadFile(sound_file)
fill(0)
def draw():
background(255)
image(img, 550, 420, 350, 600)
progress = map(magValue%400, 0, 400, 0, 1000)
delay(50)
fill((red + magValue), 0, (blue - magValue))
rect(350, 1000, 200, -progress)
text(originValue, 50, 20)
text(sensingValue, 50, 30)
text(magValue, 50, 40)
def serialEvent(myPort):
global originValue, sensingValue, magValue
if myPort.available() >= 4:
origin_highByte = myPort.read()
origin_lowByte = myPort.read()
analog_highByte = myPort.read()
analog_lowByte = myPort.read()
originValue = (origin_highByte << 8) | origin_lowByte
sensingValue = (analog_highByte << 8) | analog_lowByte
magValue = abs(originValue - sensingValue)*10
if magValue >= 200:
if not sound.isPlaying():
sound.play(0)
else:
if sound.isPlaying():
sound.pause()
フリー音源サイト等で、お好みのアラート音をダウンロードしてください。
※音源や画像の設定方法はこちらをご確認ください。
キャロット
このページのHelloNoは、050020 です!