[Konashi] 廃品リレーでリズムマシンを作ってみた

2016.11.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

リレーの音って、以前は色んな所で聞かれた気がするのですが、最近は、色々と半導体に移行したせいか、あまり聞かなくなったように感じます。 しかし、リレーの音って、なんか良いですよね・・・(すいません、まったくの個人的尺度です)

今回は、廃品から外した幾つかのリレーで、リズムマシンを作ってみました。

ちなみに、同じ型番のリレーでも、電圧を変えると違った音色になるのです。

2 デバイス

出力デバイスは、何処で外してきたか全然思い出せませんが、私の廃品収取箱にあったリレーです。

基盤に載るだけ並べて、適当に制限抵抗と動作確認用にLEDを乗せながら12Vで動作するようにしました。

実は設計図(回路図)はありません。ほんと適当です。

001 002 004 005

表面は、全部リレーで、チップの抵抗やLEDは裏面です。 チップ部品は、ちょうど基盤のランドの間に入るので非常に簡単です。

006 003

3 konashi

リズムマシンの操作は、iPhoneで行っていますが、iPhoneとデバイスは、Konashiを利用してBluetoothで繋がっています。

もともとiPhoneには、センサーや表示など、なんでも揃っていますが、残念ながらIOを制御する入出力は持っていません。そして、これを追加できるのがKonashiです。

Konashiは、デジタルIOの他にアナログ入力、UART、I2C、PWM出力を備えていますが、今回使用したのは、単純にデジタルの出力だけです。
http://konashi.ux-xu.com/

007

4 iOS実装

(1) CocoaPods

Konashiには、iOSから簡単に利用できるようにSDKが配布されています。

SDKは、CocoaPodsで簡単に組み込むことが可能で、CoreBluetoothFoundation及び、JavaScriptCoreも、同時に組み込まれます。

pod 'konashi-ios-sdk'

008

(2) 初期化

最初に記述しているのは、Konashiの初期化が完了した際のハンドラ処理です。 全部のデジタルIOピンを出力モードに設定しています。

[[Konashi shared] setReadyHandler:^{
    [Konashi pinModeAll:KonashiPinModeOutput];
}];

(3) 接続

次のコードで、Bluetoothで接続可能なデバイスを検索します。

[Konashi find];

近くのBluetooth機器が検索できたら、選択する画面が表示され、これを選択すると接続が開始されます。

009

アプリでは、接続が完了した時点で、操作可能にしています。

[[Konashi shared] setConnectedHandler:^{
    self.mainSwitch.enabled = true;
}];

(4) リレーの駆動

タイマーで一定時間毎に実行される下記のメソッドで、当該デジタルIOの電圧を一定時間(0.03秒)Hightレベルに上げることで、リレーを稼働させています。

0.03秒より短いと、電流不足でリレーが駆動しきれず、また長いと、シャキシャキ感が無くなるので微妙なところです。

- (void)blink
{
    for(int x=0; x<5; x++){
        [self.buttons[self.counter][x] blink];
        if ([self.buttons[self.counter][x] isActive]) {
            [Konashi digitalWrite:KonashiDigitalIO3 + x value:KonashiLevelHigh];
            usleep(30000);
            [Konashi digitalWrite:KonashiDigitalIO3 + x value:KonashiLevelLow];
        }
    }
}

(5) UI

特にひねりは有りません。Rのボタンを押すと、そのタイミングでリレーを鳴らすかどうかを設定できます。

010

5 最後に

実はこれ、だいぶ前から作りかけていたのですが、なかなか時間が取れずに放置されてました。今日、やっと完成して嬉しいです。

今、まったりとリレーの音を堪能しています。

たぶん、誰も必要ないと思いますが、コードです。


github [GitHub] https://github.com/furuya02/RelayRhythmMarine

6 参考資料


http://konashi.ux-xu.com/
yutube リレーでリズムマシンを作ってみた