2019/9/20 訂正:Arduino MEGA2560だと思っていたのですがどうやらArduinoではなく互換機だったようです。本家よりも安価なのと色が違うらしい…?
先日ノリと勢いでArduino MEGA2560
という開発ボードのスターターキットを購入したのでレポートです。
パッケージがかわいい。
Arduino MEGA2560はArduino Unoの上位互換で、メモリやI/Oを増量したものらしいですが私はArduino Unoも全く触れたことがないので違いはあまりよくわかってないです。
##とりあえず開発環境を整えてみる
Arduino MEGA2560を使うのはArduino IDE
というものをダウンロードしてこなければならないらしいです。
Arduino IDEはELEGOOの公式サイトからダウンロードできました。
チュートリアルも同じページにあります。親切。
Arduino IDEをインストールして開くとこんな感じのアプリが起動します。
ツールから自分の使う開発ボードに合ったものを選択します。
開発ボードをパソコンにUSBで接続します。
接続するとすぐに緑色のランプが点灯します。
これで開発環境は整ったはず。
##動作確認をしてみる
Arduino IDEにはいくつかコードのテンプレートが用意されています。
ファイルのスケッチ例からBlinkを選択してみましょう。
Blinkのテンプレートが表示されました。
void loop()
の部分にLEDランプが1000ミリ秒間隔でオンオフが繰り返されるというコードが書かれています。
コードはこのままで、右上の✓マークから検証、→マークで開発ボード側に書き込みを行います。
開発環境が問題なく整っていれば、これで開発ボードのオレンジ色のランプがチカチカと点滅するはずです。
delay
の数字を大きくしたり小さくしたりコードを書き換えて、再度ボードに書き出してみればLEDランプの点滅の間隔が変更されます。
##パッシブブザーを使って遊ぶ
開発環境が問題なく整っていることが確認できたので、次はブレッドボード
を使ってみます。
ブレッドボードは電子回路の実験や試作をする時に使う板で、はんだ付けをしなくても回路が作れちゃうすごいやつです。便利。
初心者らしく、今回はパッシブブザーを使ってコードに書いた音を鳴らしてみようかなと思います。
使う道具はこちら。
ブザー思ったよりだいぶちっちゃい。
小指の先くらいのサイズです。なくさないように気をつけましょう。
とても簡単でいかにも初心者向けでいいですね。パッシブブザーはプラスとマイナスが明確に決まってるやつととくに決まってないやつの二種類があるみたいですが、スターターキットに付属されていたやつはちゃんと極性があるようでした。
ブザーの開始ピンはどこからでも問題ないですが、この後コードを書く時に指定してあげないといけないのでどこにピンを刺したのかきちんと見ておきましょう。(今回は13ピンからスタートしてます。)
GNDに接続して準備完了です。
コードを書いていきます。
ブザーは
tone( 開始ピン番号 , 周波数(鳴らす音) , 音の長さ)
という感じで書けば鳴るらしいです。開始ピン番号は今回は13です。ドの周波数は262らしいので、ブザーからドの音を鳴らすには
void setup() {
}
void loop() {
tone(13,262,1000) ;
}
という風に書けばいいわけです。
書き方がわかったので試しに音階を作ってみます。
Arduinoのコードでは定数は#define
で定義するらしいです。
最初にドレミファソラシドの定数を作ります。
#define C 262 //ド
#define D 294 //レ
#define E 330 //ミ
#define F 349 //ファ
#define G 392 //ソ
#define A 440 //ラ
#define B 494 //シ
#define C_high 523 //ド
作った定数を配列に入れます。
int scale[] = {C, D, E, F, G, A, B, C_high};
setup()
は何も書かなくて大丈夫です。
loop()
でfor文を使って一定間隔で音がなるようにコードを書きます。
最終的なコードはこのような感じになりました。
//音を定数に
#define C 262 //ド
#define D 294 //レ
#define E 330 //ミ
#define F 349 //ファ
#define G 392 //ソ
#define A 440 //ラ
#define B 494 //シ
#define C_high 523 //ド
//ピンの番号
int pin = 13;
//音階を配列に
int scale[] = {C, D, E, F, G, A, B, C_high};
//音の間隔
int duration = 200;
void setup() {
}
void loop() {
//演奏
for (int i = 0; i < 8; i++) {
tone(pin, scale[i],duration);
delay(duration);
}
//演奏終了後の余白
delay(1000);
}
ボードに書き込んでみて、正しくパッシブブザーから音が出ていれば完成です。