質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

1回答

1857閲覧

Processingで距離センサーが反応する度、違う音を鳴らしたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2018/03/02 10:47

前提・実現したいこと

今、学校の作品で「音が鳴るゴミ箱(ペットボトル専用)」を作っています。
arduinoとProcessingを連携させて、距離センサーがペットボトルを感知すると音がなる仕組みです。

・Processingとarduinoを連携させて、距離センサーが反応する度、違う音を鳴らしたいです。(音はランダムでも、一定の順番を繰り返すでもOK!!)

※反応すると円が画面に出ますが、反応しているかの確認用なので気にしないでください。

来週に作品展があるので、よろしくお願いします。

発生している問題

randomでやってみましたが、再度実行しないと音が変わらないです。

import processing.serial.*; import cc.arduino.*; import ddf.minim.*; Minim minim; AudioPlayer player; Arduino arduino; int inPin = 0; float rand; String[] sound = { "hyu-parin1.mp3", "hyu-parin2.mp3","hyu-pochon1.mp3","hyu-pochon2.mp3"}; void setup() { size(500, 500); background(255); arduino = new Arduino(this, Arduino.list()[1], 57600); int rand = random(4); //file kazu minim = new Minim(this); //shokika player = minim.loadFile(sound[(int)rand]); } int void draw() { int value = floor(arduino.analogRead(inPin)); int val = floor(map(value, 0, 700, 0, width)); if(value >= 400){ rand = random(4); int r = (int)random(0, 3);x player.rewind(); //saisyo-kara,hajimaru player.play(); ellipse(width/2, height/2, val, val); } println(value+" : "+val); } void stop() { player.close(); minim.stop(); super.stop(); }

試したこと

random関数で違う音がなるようにしましたが、再度実行させないとできませんでした。

補足情報(FW/ツールのバージョンなど)

Processingでプログラミングしてあります。
arduinoと連携させて距離センサーを反応させています。

★音はランダムでも、一定の順番を繰り返すでもOKです。

※反応すると円が画面に出ますが、反応しているかの確認用なので気にしないでください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

再生する音声をsetupで決めてしまっているからです。
setupはプログラム実行開始時に一度しか実行されません。
毎回違う音を鳴らしたいならdraw()で音声のロードなども含めてやってみてください。

投稿2018/03/02 11:42

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/05 09:02

ありがとうございます!! 試してみます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問