工学部生の生プレス

*就職して元工学部生になりました

専門内容 日常 紹介

キーボードを鍵盤のキーにして演奏してみた

投稿日:2019年2月24日 更新日:

こんにちは~

最近は温かくなってきて、いいですね~

なので「街に遊びに行きたいな~」と思っているのですが、お金が無くて泣く泣く引きこもっているつい最近です(笑)

私事ながら先日、バイトを辞めたのでお金がないのです😢

いや~、入ってくるお金が無くなると思っていたよりお金を使うハードルが高くなって・・・(笑)

それで家でyoutubeばかり見ています。

そんな感じでネットサーフィンしていると、ある日City Hunterの主題歌であるGet Wildのピアノ演奏を見つけました

それがまあ~素敵で!!

「僕もピアノでGet Wild、弾いてみたいな~」と思ったのが今回の試みのきっかけです。

それで、ピアノをわざわざ買うのはお金もないし面倒で場所も取るので、Arduinoを使ってキーボードを鍵盤の代わりにして演奏できるようにしました!

それでは~

シュワッチ!


 

①作るもの:

キーボードでタイピングするだけで演奏ができる装置

②用意するもの :

Arduino Nano

圧電スピーカー

ジャンパ線

③回路:

 

圧電スピーカーをarduinoに繋ぐだけです

④プログラム:

弾きやすさを考えて、”ド→d”、”レ→r”、”ミ→m”、”ファ→f”、”ソ→s”、”ラ→a”、”シ→i”、”高いド→o”という風に対応させてあります。

*作成上の注意点:

文字はシングルクオーテーション(’ ‘)文字列はダブルクオーテーション(” “)

参考にさせていただいたサイト:Arduino 日本語リファレンス

・ArduinoではC言語のようにして構造体を使うのは無理(もし方法ご存知でしたら、教えて下さい!)

・本当は”ド→do”という風に2文字を送信したかったのですが、Arduinoのシリアル通信では1byteごとにしかポートに来ている情報を読めないみたいです。だから1文字にしています。

・delay()はただ弾くだけなら要らないのですが、テストとしてきらきら星を弾くときに自分でタイミングを計るのが難しかったのであらかじめ入れておきました。

⑤完成動画:


 

いかがでしたでしょうか?

今回はきらきら星を弾いてみたのですが、もっと配列を大きくして対応する鍵盤の鍵を増やせばGet Wildなんかも弾けて面白いと思います!

こんな感じでピアノを買わなくてもArduinoだけで演奏出来ることが確認できました!

今回、ちょっと心残りなのは構造体・共用体が使えずに終わってしまったこと。

構造体と共用体を使うと、プログラムをより綺麗にまとめることが出来るのでもう少し勉強してから挑戦したいです!!

最後に例のソフトの練習状況です↓

▲▲▲アリガ島▲▲▲

次回予告
「未定」







-専門内容, 日常, 紹介

執筆者:


comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

Visual Studio 2017 Communityを使ったC#入門~第2回:LEDをArduinoと協力して光らせる~

こんにちは~ 申し遅れましたが、最近、Twitterを始めました!ちょっとしたことを呟いていきます(笑)よろしければフォローをお願いします→FineManのTwitter さて、今回はArduinoの …

アキューセンタ!!!

こんばんは~ 今日はフライス盤でロボット製作に使う部品の加工を行いました。 フライス盤とは部材の面出しやボール盤では開けることが出来ない大きさの穴をあけるためなどに使う工作機械です。 今日はその加工を …

【院試対策】線形代数⑥(固有値と固有ベクトルを用いた行列の対角化Part2)

こんにちは~ 前回の予告通り、今回は“行列の固有値と固有ベクトルを用いた行列の対角化”の中でも変換行列に直行行列を用いるもの。それも、もとは直交行列ではないものを無理やり直交行列にしたという特殊パター …

【製作日誌】ほぼ自動ドリンクサーバーを自作~メカ編~

こんばんは。 久しぶりの投稿になってましたw(1年ぶりくらいw) 今回は「ほぼ自動ドリンクサーバー」というものを自作していきたいと思います。 ドリンクサーバー(ドリンクディスペンサー)っていうのはお酒 …

温度センサからの値を.txtに保存しよう!

こんにちは~ 最近、マギを見だしてアラジン君の可愛さに癒されているfinemanです! いや~。アラジン君の声、可愛すぎじゃないですか? さて、では本題に♪ 今回は「温度センサからの値をArduino …