We use some essential cookies to make our website work.

We use optional cookies, as detailed in our cookie policy, to remember your settings and understand how you use our website.

13 posts • Page 1 of 1
ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

1.8インチTFT(ST7735S)色違い

Wed Jul 28, 2021 6:56 am

1.8インチTFT(ST7735S)16ビット65Kcolor 色違い

手元のTFTモジュールは、通常RGBの色指定が
BGRになっている。

[ MSP 1803 ]でネット検索ヒットします。
このモジュールのマニュアルを見たが、理解出来ませんでした。

赤を出そうとすると「青」になってしまう。
青を出すには、通常の(0,0,255)ではなく(255,0,0)
にする。

自分で色を指定する場合は、BGRでも対応出来るが
通常の画像ファイル(jpgやpngなど)や
キャプチャ画像を描画する場合、
赤が青になってしまう様に色が違ってしまい、
具合がわるい。

ソフトウエア的に通常のRGB形式で描画出来る様に
したいが、方法は有りませんか?

アドバイスお持ちの方、お願い致します。

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Thu Jul 29, 2021 12:00 am

やって見たこと

就寝前に思い付き、今朝まで楽しみにしていたが、
単純ではなかった・・・・ :)


ST7735.py の98行目から
色の設定に関係しそうな箇所があります。
RGBがこのTFTモジュールでは、BGRとなって居る為
色表現16進数を赤に青の16進数を入れて観ます。
他も同様に、

赤と青、シアンとイエローの16進数をそれぞれ入れ換えて
見ましたが・・・・



TFTの描画には、
入れ換える前と後では、全く変化は生じませんでした。

勿論、TFTモジュールが「焼ける」様な事象も発生ししません。:)

ここに、触って、TFTの描画に変化が生じないことにガッカリ、
ソレより「ビックリ」ですが
コメントアウトの箇所でもないのに

プログラムに無関係の記述なんてあるのでしょうか?

113行の定義文は各色の階調だと思います・・・・。

他にあるのだろうか?

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Fri Jul 30, 2021 2:13 am

どうもさっぱり、解りません。

青と赤 シアンとイエローの色違いの修正を試みていますが・・・

このTFTモジュールの描画に、この ST7735.py は使われていると思うのですが

ST7735.py の中で
# Constants for interacting with display registers.
ディスプレイレジスタと対話する為の定数
の項目の中に

70行目 に

ST7735_COLMOD = 0x3A

が有る。
カラーモード に関する定数らしいが
カラーモード」と有るので、ここを弄ってみます。

この値を、変えてもエラーも発生しないし、変えても描画に変化が生じない
更に、コメントアウトしてもTFT描画に変化無く 色違いで「正常に」描画する。

242目辺りにも

self.command(ST7735_COLMOD) # set color mode

が、有る。

ここを、コメントアウトしても、
同様に、エラーも無ければ、TFTの描画も「正常」だ。

さっぱり、解りません。

oriri
Posts: 23
Joined: Sat Nov 21, 2020 4:25 pm

Re: 1.8インチTFT(ST7735S)色違い

Fri Jul 30, 2021 3:22 am

1.8インチTFT(ST7735S) の製品に, 何かプルタブのようなものが付いてるらしいけど
何色でしたか?

3種類の製品があるらしく, タブの色によって, 初期化の方法が異なるそうで

参考: http://blog.boochow.com/article/423965515.html

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Fri Jul 30, 2021 6:08 am

viewtopic.php?f=82&t=316135

に、書いたとおり
「緑:のタグです。

アルドウイーノではなく、RZPで困ってます。
アルドウイーノのWeb記事は、見ていますが、ヒントは
見つける事が出来ていません。

oriri
Posts: 23
Joined: Sat Nov 21, 2020 4:25 pm

Re: 1.8インチTFT(ST7735S)色違い

Fri Jul 30, 2021 7:45 am

ton_katu wrote:
Fri Jul 30, 2021 6:08 am
アルドウイーノではなく、RZPで困ってます。
アルドウイーノのWeb記事は、見ていますが、ヒントは
見つける事が出来ていません。
  • 製品が複数あること。それぞれ, 初期化方法(指定)が異なること。
  • (指定によっては) 同じような現象が出てるようなこと
を示してるわけですが ...
今現在どのような指定になってますか?
(config.txt)

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Fri Jul 30, 2021 8:05 am

貴殿のおっしゃってる意味が解りません。

viewtopic.php?f=82&t=316135
にも、書いた通り
TFTモジュールは「MSP1803]でネット検索したら、ヒットする製品です。

この、赤・青、関係してシアン・イエローの色違いは
私のところだけで出ている現象では有りません。

ネットを見ると、たくさんヒットします。
ただ、今のところ、どこにもこの現象を解消している
Web記事は目にしていません。

ヒントも見つけられていません。

私が、やっている事は、この掲示板に
書いた通りです。

あなたに、この色違いについての解決方法をお持ちなら、
あなたならどう、解決するのか、是非、お知らせ下さい。

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Fri Jul 30, 2021 9:41 am

ST7735.pyの親の親のフォルダ、
[ Python_ST7735 ]の中の[ README.md ]に
https://github.com/TexasInstrumentsDIY/Python_ST7735
冒頭で
Python library to control an ST7735 TFT LCD display. Allows simple drawing on the display without installing a kernel module.
と言う文が有ります。
Google翻訳では、
「ST7735 TFTLCDディスプレイを制御するPythonライブラリ。 カーネルモジュールをインストールせずに、ディスプレイに簡単に描画できます。」
となります。

ここで、気になると言うか、意味がハッキリしない点があります。
〜〜カーネルモジュールをインストールせずに〜〜
とある点です。

と言うのも、ST7735.pyの中で
ここを「弄ったらダメだろう」というスクリプトに
[ # ]を打って、コマンドラインをキャンセルして描画を実行すると・・・

エラーも出ないし、描画は色違いがあっても「正常」に、TFTモジュールに描画する。

詰まり、[ ST7735.py ]は、TFT描画には関係していないのではと
思えるのです。

ここで言う、 「カーネルモジュール」とは、何でしょうか?

この文の kernel module とは、
もしかしたら、[ ST7735.py ]の事でしょうか?

もし、そうなら、ST7735.pyの中をどんなに「弄っても」
赤青問題解消には、関係しない事になるのではとなります。
実際、現象は、そうなっています。

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Fri Jul 30, 2021 11:17 pm

イメージ描画スクリプトで、

image.split() で画像をR,G,Bの各バンドに分割
image.merge() で再構成

出来ると言う事で、画像を色バンドごとに分けて、再構成して
通常のR,G,Bに出来る様ですが・・・・やって見ると・・・

b,g,r=image.split()
image = image.merge('RGB', (r, g, b))

line 60, in <module>
b,g,r=image.split()
ValueError: too many values to unpack

とエラー。

アンパックするには、何かが(「r,g,b」)多すぎると、言っている様です。

赤・緑・青の3つのバンド分割したいので、「ここは譲れない線」ですが。 :)
ここで、エラーを言われてもなぁ〜ですが・・・・

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Sat Jul 31, 2021 6:00 am

まじか!

まじか!

解決!!

「犬も歩けば・・・・・」です。

エラー 消え、描画RGBで正常描画。問題解決。

大分、古いが『マンモス うれピー!!!』

たった、1文字追加で、解消。

なんですか!! これっ!!

青に表示されていた部分が、赤に。
顔色も「ピンクの肌色に」
参ったなぁ〜〜〜

まるで。見事な「テーブル・マジック」を見せられたみたい。

マジですか!

スマホ画像は、色が悪いがTFT描画は満足の色合い・描画です。

『青」になっていた、コートが「赤に」(=原画どおり)なってます。

IMG_20210731_153858.jpg
IMG_20210731_153858.jpg (171.72 KiB) Viewed 9329 times

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Thu Sep 09, 2021 1:52 pm

ラズパイOSのアップデートで描画出来なくなって居た

TFT描画、復活! 良かった。嬉しい!

もう出来ないかと諦めもあり 暫く、触っていなかったら、使い方を忘れた!!
脳の老化が激しい! :)

それにしても・・どう言う加減なんだろうか?

ラズパイOSが8月の末でアップデートして
Linux しろさんかくしろいしかく 5.10.60+ #1449 Wed Aug 25 14:59:20 BST 2021 armv6lになった。

諦めて居たが、描画出来ない事が
「咽に刺さった魚の小骨」の様な感じ(ややオーバー)で、いつも気に掛かっていた。

もう一度と、やって見たら、
この1ヶ月間 全く、同じ仕掛けでエラーが出て描画しなかったのに 今は、描画する!! どうなっている?

スマホ画像では、はっきりしないが、
赤地に青丸は緑枠線を太く描き(幅3ピクセル)
ピンクの長方形は1ピクセルの枠
RZPzeroWにて
IMG20210909222243.jpg
IMG20210909222243.jpg (160 KiB) Viewed 8838 times

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Sat Sep 11, 2021 2:36 am

Lチカの「ホタル」(増分)を学習すると、簡単なんだろうが・・・
Lチカを軽視して、「勉強」しなかったので、たったこれだけでも面倒。
TFTの描画では「赤地に青丸(ぬりつぶし)」で
奥から手前で、若干の「立体感」が感じられる、綺麗な発色だが
スマホ画像では、そう見えない。:)
[ Processing]のマウス・デモを「絵ずら」だけ、真似てみた・・・
IMG20210911110252.jpg
IMG20210911110252.jpg (122.53 KiB) Viewed 8809 times

ton_katu
Posts: 197
Joined: Sun Jun 27, 2021 3:28 am

Re: 1.8インチTFT(ST7735S)色違い

Wed Sep 15, 2021 3:23 am

座標値を計算で入力出来るという。

参照先
https://pasopet.com/try_to_draw_line_with_python
ありがとうございます。

倣って、座標を計算で入力するようにしてみる.

今回は(X,Y)のX座標値を、range関数で作る。
--------------------
range( [開始値], [終了値]+1, [増分] ):
-----------------------
range関数は、[開始値]から[終了値]まで、[増分]で増加する値を生成できる。
[終了値]は、[終了値]+1を指定するところに注意。

71 for delta in range( 0, 129, 1) :
72 draw.line((( delta, 0),( 128-delta, 128)), fill=(0, 255, 0))

examples内の[shapes.py ]において
70行までは同じ。
71・72で、(青字に)緑の直線を、(0,0)から1ピクセル増分で引いた。
1ピクセルの増分だから塗りつぶしの出来上がりとなる。

これなら、たった2行の記述で済む。便利だ。

73 disp.display() でスクリプトを閉じる。

IMG20210915113802.jpg
IMG20210915113802.jpg (141.71 KiB) Viewed 8694 times

13 posts • Page 1 of 1

Return to "日本語"

AltStyle によって変換されたページ (->オリジナル) /