RaspberryPi picoでRC-505mk2のレプリカを作る(1)

## はじめに

　音楽制作ツールとして人気のBOSS RC-505mk2 Loop Station。その特徴的なループボタンの操作感を、持ち歩いて楽しめるようにしたい！という突発的な衝動から、レプリカの開発に挑戦してみます。開発環境はRaspberryPi picoを使用しています。本記事では、その製作過程を記録していきます。

#### 　今回は、その開発の概要と下準備についてまとめます。

## RC-505mk2とは
　RC-505mk2は、BOSSが作っているループステーションという種類の機材です。

　ループステーションとは、簡単に説明すると、自分の演奏を録音して重ねていくことで、一人でも複数の楽器を演奏しているような効果を出せる機械のことです。

　RC-505mk2は、5つのトラックにそれぞれ異なる音を録音して、様々なエフェクトをかけたり、テンポを変えたりして、自由な音楽作りを楽しめることが特徴です。主に、ミュージシャンやビートボクサーに人気の機材です。筆者も愛用しています。

　ギター、ベース、ドラム、ボーカルなど、様々な楽器の音を一人で演奏することができ、ライブパフォーマンスでも会場を盛り上げることができます。また、楽器の音を再現することに囚われず、オリジナルの音色を作り出すこともできます。
 
 ![rc-505mkii_hero.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2698018/ef8fe0e6-89e4-7d75-98a7-d0bbaceaba25.jpeg)
画像引用元 https://www.boss.info/jp/products/rc-505mk2/

## 何を血迷ったのか
　僕は「RC505mk2の一部を再現して、ポチポチ押して光らせて遊べるおもちゃを作りたい！」と思ったわけです。
## レプリカに実装する機能
　RC-505mk2のボタンの実際の挙動を参考に、以下の機能を実装することにしました。
#### ボタンの色の再現
　1回目にボタンを押すと赤色(録音開始)、2回目は緑色(再生)、3回目は黄色(オーバーダビング)といった、実際のRC-505mk2の色の変化の挙動を再現。初期状態または停止状態では消灯。
#### ループ時間設定
　1回目のボタン押下から2回目のボタン押下までの時間をループ時間として設定。
#### ループ表示
　16個のLEDでループの経過時間を視覚的に表示。ループ開始時は16個のLEDの全点灯から1つずつ消灯していくアニメーション、停止時は全点灯を維持。
#### 停止機能
　停止ボタンを1回押してStop、2連打でQuick Clear
#### BPM表示
　設定したループ時間をBPMに変換して表示。

## 使用したパーツ
電子パーツは秋月電子通商で購入しました。

- #### Raspberry Pi Pico(1台)
    今回の主役です。
    既にpico2が発売されていますが、安価な初代picoで十分でしょう。
    https://akizukidenshi.com/catalog/g/g116132/ 税込770円
    　
- #### マイコン内蔵RGBLED 8mm(1個)
   RC505mk2のメインボタンの色の変化を再現するLEDです。
   スペースの都合で、後々チップLEDに代用する可能性があります。
    https://akizukidenshi.com/catalog/g/g108412/ 税込40円
　
- #### 3mm赤色LED (16個)
    RC505mk2のメインボタンを囲う赤色の光を再現するLEDです。
    チップLEDで再現する予定でしたが、コストの都合で16個の赤色LEDを使うことにしました。
    https://akizukidenshi.com/catalog/g/g111577/ 税込10円 × 16個
　 
- #### 74HC595 シフトレジスタ (2個)
    16個のLEDをなるべく容易に制御するために、シフトレジスタを使います。
    1つの74HC595で8個のLEDが制御できるようになるため、今回はこれを2つカスケード接続して、picoから3本のピンと2本の電源のみで16個のLEDを制御できるようにしました。
    https://akizukidenshi.com/catalog/g/g114053/ 税込40円 × 2個
　
- #### 抵抗 (220Ω, 17本)
    200Ωから330Ω程度のものが望ましいようです。
    非常に安価であるため、適切な抵抗値のものを使いましょう。
    https://akizukidenshi.com/catalog/g/g125221/ 税込100円(100本入り)
　
- #### タクトスイッチ (2個)
    メインボタンと停止ボタンを再現するために使います。
    今回は比較的大きめな12mmのものを採用しています。
    この上に、RC505mk2のボタンの質感を再現できる素材を乗せるつもりです。
    https://akizukidenshi.com/catalog/g/g109828/ 税込30円 × 2個
    　
- #### ユニバーサル基板
    実際に配線をする基板です。
    本物のRC505mk2と等身大のレプリカを作りたければ95×72mmがおすすめです。
    https://akizukidenshi.com/catalog/g/g103054/ 税込120円
    　
- #### ジャンパーワイヤ
    試作で配線するための必需品です。
    https://akizukidenshi.com/catalog/g/g105159/ 税込300円
    　
- #### ブレッドボード(合計３枚)
    試作で配線するための必需品です。
    大サイズのものを1つ、中サイズのものを2つ使います。
    　
    中サイズの片方にはpicoを配置、もう片方にはボタン類を配置します。
    中サイズ　https://akizukidenshi.com/catalog/g/g105294/ 税込220円 × 2個
    　
    大サイズには16個の赤色LEDを並べて動作のテストを行います。
    大サイズ　https://akizukidenshi.com/catalog/g/g109257/ 税込300円
    　
- #### モバイルバッテリー
    100均のやっすいやつでいいです。
    あんまりデカくしすぎても重くなるだけです。
    安価かつ小型で、だれでも入手しやすい国内流通品の中から模索中です。
    （さすがに中国通販Aliexpressの無名ブランド品のリチウムイオン電池は怖い）
    　
- #### 半透明のシリコン製スイッチカバー 
    ボタンの質感を再現するために使用予定。
    代用品を模索中。全っ然いい案が見つからん。
 # 開発の流れ
##### 具体的な開発は次回以降の記事に記録します。
　おおまかな開発の流れを説明すると、 
 - ブレッドボードに配線を行い、各パーツの動作確認
 - MicroPythonでプログラムの開発を行い、各パーツの制御を試行
 - 実際にユニバーサル基板の上に配線
 - 筐体を設計し、3Dプリンタを用いて印刷
-  それらを組み立てて完成
　
 となる予定です。おそらく難航すると思われます。
 難航の過程も含めて、次回以降の記事に記録していきます。

# まとめ
　今回の記事ではRC505mk2レプリカ作成の下準備をまとめました。
　現時点の進捗としてはプログラムの完成間近といったところですが、まだ未確定の要素も多く、本当に完成するかどうかもわからない状態です。最終的になんとか形にはできるよう、積極的に計画していきます。次回の記事ではパーツの制御の網羅と、完成したプログラムについてまとめる予定です。再現性が求められるような開発ではないと思いますが、備忘録として作成していきます。