電子ルービックキューブの製作

言わずと知れたタマゴさんです。
最近は電源回路にハマっていて、スイッチング電源を作ったりして電子工作作品っぽい作品は作っていません。
が、しかし、私も電子工作を始めた頃には、とにかく面白い作品を作ろうと闇雲に考えていた時期もありました。
その頃に作った作品のひとつ、LEDで光る電子ルービックキューブを紹介します。
2年近く前に作ったものですが、なぜ今更紹介の記事を書こうと思ったかというと、今年開催のMaker Faire Tokyoにエレ研の作品のひとつとして出展しようと考えているからです。

動画があるのでどうぞ。

動画にあることで大体の紹介は済んでますが、もう少し詳しく知りたければ読むといいかもしれません。

これを製作させるにおいて実現させるべき主なことは以下の4つです。

・フルカラーLEDを54個(3×3が6面)同時制御
・タッチによる操作
・無線通信でスマートフォン・タブレット端末と接続
・できるだけ小型に

フルカラーLED54個ということは計162個の出力と、それぞれの面にはスワイプを認識できるだけの数のタッチセンサが必要です。
このように、大多数に及ぶ入出力装置を同時に管理できるような回路が必要となります。
また、無線通信で端末と接続するにはBluetoothを使い、Androidのアプリを自作します。
以下に回路図を示します。

6面それぞれにLED用のPICとタッチセンサ用のPICを設け(PIC16F1827)、中央処理用のPIC(PIC16F1938)とSPI通信で繋ぎます。
また、BluetoothモジュールにはRN42を使い、中央処理用のPICとUARTで接続します。

このときはRN42を使ったことがなかったので、サンプルで動作を確認したりします。

PICとAndroidアプリ間で通信ができているのがわかります。

設計していきます。

Cタイプの基板を6層重ねるようにします。
側面にあるのは中央処理用の基板と、電池ボックスを固定する板です。

適当に図面みたいなものを出して、ざくざくアクリル板を加工していきます。
 

 

 

基板のパターンを設計します。

これはLEDとタッチセンサ用の基板です。
 

これを同じものを6枚作ります。

基板を重ねるとピンヘッダ、ピンソケットでバスが連結するようになります。
 

中央処理用のPICとBluetoothモジュール用の基板です。

フルカラーLEDを配置し、配線、PICに適当なプログラムを書いて点灯を確認します。

フルカラーLEDは1面ごとに、3×3のマトリクス配線をし、3個ごとにダイナミック点灯方式を使います。
点灯制御用のPICは中央処理用のPICから受信された情報から、LEDの点灯を制御します。

 

本体表面にタッチセンサを作っていきます。

2本のワイヤーを螺旋状に編みこんでいきます。

タッチセンサの動作テストをします。

1面ごとに8つのタッチセンサをつけます。2本のワイヤー間が指に触れたとき微弱な電流が流れ、トランジスタをオンし、PICに信号を送るというものです。
なぜPIC内臓のタッチセンサモジュール(CapSense)を使わなかったんだろう???何かしら理由はあったはずだけどおぼえてないし。
まあこれはこれでしっかり動作するのでよしとします。

8つのタッチセンサは1面ごとに以下のような配置にします。
2つのタッチセンサの反応順をみて、どのようなスワイプ操作がされたかを検出します。
例えば緑の矢印の方向にスワイプする操作をすると、A→Dのセンサが反応、青の矢印の方向にスワイプする操作をするとH→Fのセンサが反応します。
2つのセンサの反応順から操作を読み取り、中央処理用のPICに情報を送信します。

 

LEDの点灯がいい感じに四角形になるような工夫をします。
クリアファイルを紙やすりでこすってつや消しフィルムを作り、切って折り曲げて、仕切りをつくります。
白のテープを使うといい感じになります。
 
 
 

PICにプログラムを書き込んだら、組み立てていきます。
 
 
 

専用のAndroidアプリを作っていきます。
 

ランキング機能とかもつけてみたりしました。

そんなこんなで完成です。

その他

こういうのがあると作りやすいです。

SMDとかPCBとか使わない限り、サイズはこれが限界かも。

インテリアとして重宝します。
 

動画を作った頃に比べてアプリとの通信速度を改善しました。マスがしっかり連動して動きます。

 

というわけで大昔の作品の振り返りでした。

PICのファームウェアとAndroidアプリのプログラムはこちらで公開しています。あまり見ないでください。

コメントをどうぞ

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