0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フリップドットディスプレイ[Flip-Dot Boards XY5]を入手からRaspi4で動かすまで

Last updated at Posted at 2025-03-10

フリップドットディスプレイを入手からRaspi4で動かす

入手の話

フリップドットディスプレイという以下の写真みたいなディスプレイがあり

IMG_0543.jpg

このようなディスプレイを動かしてみたいっと思っていろいろ調べてみてたけど
日本人でフリップドットディスプレイについて記事を書いている人がチラホラ見かけたので
その人を参考にALFA ZETA の Flip-Dot Boards XY5を購入してみました

ALFA ZETAさんはメールからの注文なのでなかなか手を出しにくいけど中古もどうかなって
とおもってメールで「Flip-Dot Boards XY5はいくらぐらいですか」って送ったら
値段表が来て「色々なサイズがあるよー」っていう感じでメールが届きましたね。

けど思ったよりも高くて、自分は28x7のもので我慢しましたがそれでも送料込みで
5万くらいでしたね (学生にはきつい)
まあそのあと色々とユーロで支払いやら住所と名前を送って届いたかんじですね。

もちろんRaspiで動かす用のHATとマニュアルも送ってもらったので良かったけど全部英語
なのでなんもわからんからグーグル先生に教えてもらいながらやりましたね。
そんで「pythonで動かすサンプルコードってある」っていう質問をしてみたら
pyserialを使えば基本的には制御できるよー 制御プロトコルはこんな感じ」
と来てPDFで仕様書をもらいました 
(だけどあんまりわからんかったから手探りで色々試した)

結果このような制御方法だとわかりました

(手探りだから完璧に合ってるとは言えないけど)

githubからでも見れるよー

Alfa Zeta Flip Dot Display XY5 28x7 操作説明

Alfa Zeta Flip Dot Display XY5 28x7を制御する方法制御コマンドは
シリアルインターフェースを介して送信され、特定のバイト構造で構成されます。

コマンド構造

ディスプレイを制御するためのコマンドは以下のように構成されています:
(データフレーム)

all_dark = bytearray([ #全部黒にするやつね
    0x80,  # ヘッダ
    0x83,  # 28バイトのリフレッシュ
    0xFF,  # アドレス
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 28バイトのデータ
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x8F # 伝送終了(EOT)
])
  • 0x80: ヘッダバイト

  • 0x83: 28バイト、リフレッシュ

  • 0xFF: アドレスバイト

  • 0x00 から0x7F: 28バイトのデータ

  • 0x8F: 伝送終了(EOT)

バイトの説明

  • 0x00から0x7F: これらのバイトは、7x28グリッドの28列を表します。各列は16進数の値で表され、最大値は0x7F(10進数で127)です。この値は、その列の7ビットのデータに対応し、各ビットはドットのオンまたはオフの状態を表します。

たとえば、2進数値の1111111は16進数値の0x7Fに変換され、1列の7つのドットがオンであることを示します。

7x28グリッドの表現

以下は、7x28グリッドの視覚的な表現です。各ドットはオン(*)またはオフ(.)の状態を示します。

    0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
1   .  .  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
2   .  .  .  *  .  *  .  *  .  *  .  *  .  *  .  *  .  *  .  *  .  *  .  *  .  *  .  *
3   .  .  .  .  *  *  .  .  *  *  .  .  *  *  .  .  *  *  .  .  *  *  .  .  *  *  .  .
4   .  .  .  .  .  .  *  *  *  *  .  .  .  .  *  *  *  *  .  .  .  .  *  *  *  *  .  .
5   .  .  .  .  .  .  .  .  .  *  *  *  *  *  *  .  .  .  .  .  *  *  *  *  *  .  .  .
6   .  .  .  .  .  .  .  .  .  .  .  .  .  *  *  *  *  .  .  .  .  .  .  *  *  *  .  .
7   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  *  *  *  .  .  .  .  .  *  *  .  .
    0x00 0x00 0x01 0x03 0x05 0x07 0x09 0x0B 0x0D 0x0F 0x11 0x13 0x15 0x17 0x19 0x1B 0x1D 0x1F 0x21 0x23 0x25 0x27 0x29 0x2B 0x2D 0x2F 0x31 0x33 0x35 0x37

この下の0x**になっているところに16進数を入れる感じ
簡単に言えば、表示させたい1列のドット表示を2進数として考えてそれを16進数へする
それが27個ある感じ

制御セットアップ

DIP スイッチ設定

アドレスバイトの説明

  • コード側では0xFFと今はなっているけど基本的にはここにはそのパネルの裏にある
  • DIPスイッチと同じにする (写真の8ピンDIP側)
    この写真だと0x01となっているからコード側でも0x01にしないといけない
    基本的に後ろのDIPスイッチは2進数なのでそこだけ注意かな
    demoを動かすのなら8ピンをオンすればOK

8ピンDIPの説明

1-6 | アドレスをバイナリコード(自然順)
7 | 磁化時間:OFF: 500μs(デフォルト)、ON: 450μs
8 | テストモード:ON/OFF。OFF = 通常運転

ボートレートの説明

ボーレート (3ピンDIP)
通信速度は以下のように設定できます。写真の設定に従うと、速度は9600になります。

3ピンDIPの説明

0 | ↓ ↓ ↓ | なし
1 | ↑ ↓ ↓ | なし
2 | ↓ ↑ ↓ | なし
3 | ↑ ↑ ↓ | 9600
4 | ↓ ↓ ↑ | 19200
5 | ↑ ↓ ↑ | 38400
6 | ↓ ↑ ↑ | 57600
7 | ↑ ↑ ↑ | 9600
オフ | |

追記 24V電源もいるからねー 詳しくはこの記事

Raspi4で動かしてみた

Raspiで動かすんだったらRS-485を変換するHATが要ります(USBに変換する物でもOK)
だけど自分はALFA ZETAさんからHATも貰ったのでそれを使いました
スクリーンショット 2025-03-10 201858.png

これでRS-485を変換してディスプレイに接続する感じ

接続を完了したら

シリアルポートを有効にしてシリアルコンソールを無効にする:

Raspberry Pi 構成ツールを開きます:

sudo raspi-config
  1. 「Interfacing Options」に移動して、「Serial」を選択します。

  2. 「ログインシェルをシリアル経由でアクセスできるようにしますか?」と尋ねられたら、「No」を選択します。

  3. 「シリアルポートハードウェアを有効にしますか?」と尋ねられたら、「Yes」を選択します。

  4. 構成ツールを終了し、Raspberry Pi を再起動します:

sudo reboot

flip ディレクトリを作成してそこに移動します:

mkdir flip
cd flip

リポジトリを flip ディレクトリにクローンします:

git clone https://github.com/mokuttii/Flip-Dot-Display
cd flip

仮想環境を作成します:

python3 -m venv env

仮想環境をアクティブにします:

. /env/bin/activate

必要な依存関係をインストールします:

pip install opencv-python pyserial

これで環境構築は終わりー

python3 demo.py
または
python3 start.py

で動くよー

(一応)仮想環境をアクティブにしないと動かないです

. /env/bin/activate

とりあえず フリップドットディスプレイで動画を再生したよ

bad apple

次はテトリスでも作ろうかな


引用 又 参考になった

購入元

購入に関する記事を書いている人

arduinoで制御している人たち

海外の人でraspiを使って制御している人

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?