サーボアレイを用いた一軸ジンバルによるメカニカルディスプレイあるいはインスタレーション(仮称)

© CC BY 4+ visibility3269
© CC BY 4+
visibility3269

Title: Mechanical Display
I constructed a mechanical display using a servo array.

link https://hackaday.io/project/191613-mechanical-display
  • 特別賞Mouser Make Awards 2023
  • 2位M5Stack Japan Creativity Contest 2023
動画
開発素材

ツール

デバイス

システム構成
system image

サーボコントローラにはPCA9685を、ミラー駆動用のサーボにはSG90×16を使用します。
サーボ一つで一つのピクセルを動作させるため、PCA9685ひとつにつき4×4pixelのサーボアレイを構成し、1display unitとしています。

I used PCA9685 as the servo controller and SG90 x 16 servos for mirror control.
To operate one pixel with one servo, we configured a 4x4 pixel servo array for each PCA9685, considering it as one display unit.
最終的には16ユニットを4行4列のマトリクス状に配置して16×16=256pixelのディスプレイを構成しました。

ディスプレイの制御にはM5SickVを使用しています。M5StickVはカメラ搭載、I2Cポート有り、micropythonにて画像処理も可能と、今回の用途には使いやすい機能を保有しているためです。

制御系の接続はシンプルですが、256個のサーボが大きな電力を消費する為電源系は入念に強化しています。12V30A出力AC-DCコンバータから16個のDC-DC降圧コンバータに12V電源を供給、DC-DCで5.5Vに降圧し5FのEDLCでバックアップしてピーク電流に対応しています。

M5StickVのI2C Busに16個以上のデバイスを接続するとエラーが発生することが判明しました。 M5StickVはカメラ画像の取得やアニメーションの合成を行い、Raspberry Pi PicoにUARTで画像データを送信。Raspberry Pi PicoのI2C Busを二本使ってディスプレイ表示を行う様にシステムを変更しました。

In the end, we arranged 16 units in a 4x4 matrix, creating a 16x16=256-pixel display.
For display control, we are using the M5StickV. The M5StickV features a built-in camera, I2C ports, and supports image processing in MicroPython, making it well-suited for this application.
While the control system connections are simple, powering 256 servos requires careful consideration. We have reinforced the power system by supplying power from a 12V 30A output AC-DC converter to 16 DC-DC buck converters, which step the voltage down to 5.5V. We've also included 5F EDLC capacitors for backup to handle peak current demands.

It has been discovered that an error occurs when connecting more than 16 devices to the I2C bus of M5StickV.
The M5StickV is used for capturing camera images and synthesizing animations, and then it sends image data to the Raspberry Pi Pico via UART. The system has been modified to use two I2C buses on the Raspberry Pi Pico for display output.

※最新状況 更新 :8/18  Latest Update - Updated on August 18th

現在、疑似カラー化用レンチキュラーレンズプレートを開発しています。 Currently, we are in the process of developing a lenticular lens plate for pseudo-colorization.

詳細はelchikaさんにアップしています。 I have uploaded the details for Elchika

ストーリー

開発log 第一部 イメージから実装へ

詳細は#メカニカルディスプレイを参照ください。

この作品は、20㎜角の小型ミラーをマイクロステッピングモータ×2個で可動させる2軸ジンバルに搭載して動かすミラーアレイの習作として企画しています。 小型の2軸ジンバルの試作品は出来ていますが、狙った演出を行うためには精度が不十分でした。そこで技術的な課題は一旦棚上げし、シンプルな1軸ジンバルをサーボで駆動し、ミラーアレイを動かす装置を習作として制作することで最終作品へのイメージを広げることにしました。

This project is planned as an exercise in creating a mirror array that utilizes two-axis gimbals, driven by two micro-stepping motors, to move 20mm square miniature mirrors. While we have successfully created a prototype of the small two-axis gimbal, its precision was insufficient to achieve the desired effects. As a result, we temporarily set aside the technical challenges and decided to create a simple one-axis gimbal driven by a servo to move the mirror array. This serves as an exercise to broaden our vision for the final project.

とりあえずサーボアレイを組んでテストなど。

For now, I am assembling the servo array and conducting tests.

どんなものを表示させるか思案中。文字や数字もいいけれど、最終的には音や風に反応させたりしたい。 基本機能はディスプレイなので、いろいろ応用が効く。

I am currently contemplating what to display. While text and numbers are options, my ultimate goal is to make it responsive to sound and wind. Since it's primarily a display, there are numerous possibilities for creative applications.

鏡もいいけど、最初はこんな感じの凸凹パネルを配置して角度によってグレースケールディスプレイとして機能させてみるのが面白そうなので、コンテストにはメカニカルグレースケールディスプレイとしてエントリーするかもしれません。

Using a panel with such irregularities and configuring it as a grayscale display that functions based on angles sounds intriguing. I might consider entering the Contest with this as a Mechanical Grayscale Display entry

凹凸パネルによるグレースケールディスプレイのテスト。4×4の1ユニット分の動作確認はできた。

Testing the grayscale display with the irregular panel has been successful. I have verified the op eration of one unit of the 4x4 configuration.

左右の光源を使い分けて任意の2色で演出するアイデアのテスト。
ここでは、右から白照明、左は照明無しでモノクロ表現ですが、左右から青と赤のライトで照らすと青赤のモノクロ表現などもできるはず。
両隣のパネルの影が落ちてしまうので視認性が不十分。もうすこしアイデアを練らねば。

Testing the idea of using separate light sources on the left and right for creating arbitrary two-color effects. Here, I have white illumination from the right and no illumination from the left for a monochrome representation. However, it should be possible to achieve a blue-red monochrome representation when illuminated from both sides with blue and red lights. Visibility is currently hampered by shadows cast by the adjacent panels, so I need to refine the idea a bit further.

4×4の16個では表現力に満足できなくなってきたので、これを1ユニットとして、複数ユニットを連結できる方式に変更。最終的には16×16=256pixelを狙いたい。

As I found that using just 16 of the 4x4 panels didn't provide enough expressive power, I have decided to change this into a unit and pursue a method where multiple units can be connected. Ultimately, I aim to achieve a 16x16 = 256-pixel display.

当面の課題と対策

①凹凸パネルの白黒塗分けがうまくできていない。

The differentiation between black and white paint on the irregular panel is not being executed effectively.

原因:FDM3Dプリンタの積層痕の凹凸によりマスキングが不十分となり塗料が浸透してしまっている。
対策:もうすこし丁寧にマスキングしてみる、筆塗してみる、液状マスクを試すなど

Cause: Inadequate masking due to the unevenness caused by FDM 3D printer's layering has led to paint infiltration.
Countermeasure: Attempt more careful masking, consider brush painting, and explore the use of liquid masking agents

塗装はあきらめて黒材料+シール貼り付けでツートン表現

I have decided to abandon painting and opt for a two-tone representation using black material along with adhesive decals.

②パネル間からメカ部が見えており視認性が下がる

The mechanical components are visible between the panels, reducing visibility.

原因:メカやベース部が白や青など明度が高い、パネルの間隙が大きいなど
対策:メカ部分の3Dプリントパーツを黒に変更。パネルを大きくして間隙を小さくするなど

ause: Mechanical and base components are of high brightness, such as white or blue, and there is a significant gap between the panels.
Countermeasure: Change the 3D printed parts of the mechanical components to black. Increase the size of the panels and reduce the gap.

材料色を黒に変更して制作。パネルも一回り大きく再設計。 I have changed the material color to black and redesigned the panels to be slightly larger.

③パネルの位置や向きが水平、垂直を確保できておらず汚い

The panels are not properly aligned in terms of position and orientation, and the result looks messy.

原因:取付が雑、部品の工作精度が低い、など
対策:頑張って各種精度を上げる

Cause: Sloppy installation, low precision in component fabrication, etc.
Countermeasure: We will strive to improve various aspects of precision.

費用、時間ともにあまりコストをかけない範囲で頑張りました。

I have worked diligently within the constraints of cost and time to make these improvements.

④マルチユニットの動作が確認できていない。

We have not been able to confirm the operation of the multi-unit system.

原因:ソフト開発できてない、ユニット結合方法が設計できていない、電源不足問題など
対策:がんばる。

Cause: Software development has not been completed, the unit integration method hasn't been designed, and there are power supply issues.
Countermeasure: I will continue to work hard.

マルチユニット制御ソフト (micro python版) にて基本動作確認できた。

Basic operation has been confirmed in the multi-unit control software (MicroPython version).

開発log 第二部 ミラーディスプレイができるまで

4ユニット締結、バックプレートによる補強で強度確保。

I have securely fastened four units together and reinforced them with a backplate to ensure strength.

電源はまだいい加減。つぶやいたらアドバイスしていただける優しい世界(^^)

Power supply is still a bit of a challenge. If I tweet about it, I hope to receive some advice from this kind world (^^)

16ユニット256pixelが動きました

16 units, 256 pixels, are up and running!

グレースケール用パネルでhello world。制御もすこしづつ進捗出てきてます

Hello world with the grayscale panel! Control is making gradual progress as well. Keep up the good work

電源を増強。 AC-DC 12V30A電源から、DC-DC 降圧モジュール×16個に供給して5.5Vに降圧、5FのEDLCでバックアップしつつ各ユニットに供給します。AC電源が無い場合は12Vの鉛電池等からも供給することを想定しています。

I have enhanced the power supply.
I am now providing power from an AC-DC 12V 30A source to 16 DC-DC buck modules, which step down the voltage to 5.5V.
I have also implemented 5F EDLC capacitors for backup while supplying power to each unit. Additionally, I have considered the possibility of supplying power from a 12V lead-acid battery or similar source in case AC power is unavailable.

ミラーパネルバージョンも一気に作ってしまいました。ハードが出来たらコンテンツも作らないとですね。あと一週間切って焦ってます。 ミラーバージョンは、環境光を利用するため屋外使用が前提です。バッテリー駆動化もぎりぎりのタイミングで完成しました。 I've also quickly created the mirror panel version. Once the hardware is ready, I need to start working on the content. There's less than a week left, and I'm feeling the pressure.
The mirror version is designed for outdoor use, utilizing ambient light. Battery operation was completed just in time.

梅雨の雨が止んだ隙を見計らって動作テスト。夕焼け空の色を切り取ってディスプレイが動きました!

The display captured the colors of the evening sky, and it worked!

開発log 第三部 8bit グレースケール化

以前途中まで開発していたグレースケール化案ですが、屋内展示には非常に相性のいい技術です。 7月16日に大阪で開催された企画展、SNACKS Vol.5にてグレースケールバージョンを公開しました。

開発経緯は少し前にツイートしてました。これはグレースケールとして「見える」かどうかのテスト。

グレースケール用パネルは白黒の塗分けが必要ですが、塗装は何度やってもうまくいかないので黒い3Dプリンタ成形品に白いシールを貼っています。シールはラベルシールを正確な寸法に切り出して、ズレの無い様に手貼りしています。プレート一枚につき5枚×256プレート=1280枚!

開発log 第四部 疑似カラー化

レンチキュラーレンズを使ったカラー表現に取り組むことにしました。 レンズは光造形式の3Dプリンタで自作します。

レンチキュラーレンズを使うと、縞状に配置した参照色の狙った色のみを拡大表示できます。

光造形品は硬化条件を誤ると変形したり黄変したりするので条件探しをしています。

CMYのカラープレートを製作しました。レンズピッチを変えて視認性の確認もしています。

開発log おまけ ミニメカニカルディスプレイ

M5StackのServo2モジュールは16個のサーボを駆動できます。8 Encoder Unitを2台使うと、16サーボを搭載したユニットを制御できます。手動で動かせるミニメカニカルディスプレイも作りました。

追記

Daniel Rozin氏の作品との類似について
先日、このディスプレイが海外サイトのblog記事に取り上げられたところ、Daniel Rozin氏の作品と類似しているのにそのことについて言及していないのは問題でろうとの主旨のコメントがありました。
Daniel Rozin 氏の作品について知らなかったため、改めて調べてみたところ、メカニカルディスプレイの構造とDaniel Rozin氏の作品の構造が酷似していることが判りました。
アートの分野は門外漢なので判断が難しいのですが、現時点で次の様に考えています。

・アクチュエータでパネルやミラーを動かすアレイ構造は、スケールは違うもののDLPや太陽熱発電にも使われており、サーボやその制御技術も一般的なものでなので第三者が使用することは問題ないであろう。
・ミラーで空や自然の色を切り取るという着想、山型のグレースケールパネルで8bitグレースケールディスプレイを構成するという着想は模倣とは言えないであろう。

一方で、Daniel Rozin氏の作品は素晴らしいもので、可能な限り尊重しなければならいとも感じています。
以上の判断は現時点ものであり変化するかもしれませんが、この作品公開やコンテストへのエントリーは維持させていただきます。
もちろんprotopedia運営者様やコンテスト主催者様のご判断も尊重致します。
そのほかご意見やアドバイスは随時歓迎します。場所は集約しておきたいので、twitterへお願いします。

また、ご迷惑かとも思いましたがDaniel Rozin氏へこの件について報告し、このデバイスを公の場で継続使用しても良いと考えるか、メールにて質問させていただきました。
お忙しい方だと思いますので返信をいただけるかはわかりませんが、次のアクションについては返信、もしくはみなさんからのご意見などを見て考えたいと思います。

7/19 追記の追記

Daniel Rozin氏より「過去に自分の作品と似たものを発表した人はいたけど、連絡をくれた人は初めて。出版物などで参照してもらえるのは歓迎する」との返信を頂きました。
まずはDaniel Rozin氏に感謝するとともに、先人である氏の作品に敬意を表したいと思います。
またこんな素晴らしい作品を知ってしまったからには、彼の作品の影響下に入ってしまったことを認めざるを得ません。それらを含めてもこのメカニカルディスプレイの可能性の追求はとても面白く価値のあるものではないかと思います。

お騒がせしましたが、これにて解決ということにさせていただきます。

メンバー
  • user
    airpocket @airpocket

関連イベント
  • event Mouser Make Awards 20232023-05-01 開催
  • event M5Stack Japan Creativity Contest 20232023-07-15 開催
  • event 「Maker Faire Tokyo 2023」の出展作品まとめ(一部だよ|非公式だよ)2023-10-14 開催
関連リンク
user
ばんの @tomoki_banno

YouTubeで紹介させていただきました!
https://youtube.com/live/PyXM0EITzZ0

user
特別賞 @Mouser Make Awards 2023

<最終審査員が選出>栗原さん:想像が楽しい作品。鏡のバージョンが特に好きで、映像と情報をどう扱うかを考えたくなりました。
1次元の回転制御で実現できる多彩さに感動し、物理原理を活かした探究心に心を打たれました。(講評を事務局が代筆)

user
2位 @M5Stack Japan Creativity Contest 2023

大型のメカニカル ディスプレイ マトリックスです。これは非常に大きなプロジェクトです。16×16 サーボによって駆動されるこのようなアレイには、電源や周波数変調などの機能も含め、多くの制御アルゴリズムと多くのエンジニアリング上の問題が含まれます。レイアウト全体も非常によく設計されており、強力な設計能力と実践能力を備えています。


同じニオイがする作品
  • event デジたま2 the AI
  • event キャンプ感あふれるお天気グッズ「CAMP-CAN」by M5StickC PLus
  • event TV Side Keyboard SparrowTV
  • event InfiniFlow Mirror

作品を登録しよう

モノづくりしている人に、つくった作品を見てもらえ、リアクションがもらえるかも?

close

目次