1.8インチTFT(ST7735S)色違い
1.8インチTFT(ST7735S)16ビット65Kcolor 色違い
手元のTFTモジュールは、通常RGBの色指定が
BGRになっている。
[ MSP 1803 ]でネット検索ヒットします。
このモジュールのマニュアルを見たが、理解出来ませんでした。
赤を出そうとすると「青」になってしまう。
青を出すには、通常の(0,0,255)ではなく(255,0,0)
にする。
自分で色を指定する場合は、BGRでも対応出来るが
通常の画像ファイル(jpgやpngなど)や
キャプチャ画像を描画する場合、
赤が青になってしまう様に色が違ってしまい、
具合がわるい。
ソフトウエア的に通常のRGB形式で描画出来る様に
したいが、方法は有りませんか?
アドバイスお持ちの方、お願い致します。
手元のTFTモジュールは、通常RGBの色指定が
BGRになっている。
[ MSP 1803 ]でネット検索ヒットします。
このモジュールのマニュアルを見たが、理解出来ませんでした。
赤を出そうとすると「青」になってしまう。
青を出すには、通常の(0,0,255)ではなく(255,0,0)
にする。
自分で色を指定する場合は、BGRでも対応出来るが
通常の画像ファイル(jpgやpngなど)や
キャプチャ画像を描画する場合、
赤が青になってしまう様に色が違ってしまい、
具合がわるい。
ソフトウエア的に通常のRGB形式で描画出来る様に
したいが、方法は有りませんか?
アドバイスお持ちの方、お願い致します。
Re: 1.8インチTFT(ST7735S)色違い
やって見たこと
就寝前に思い付き、今朝まで楽しみにしていたが、
単純ではなかった・・・・ :)
ST7735.py の98行目から
色の設定に関係しそうな箇所があります。
RGBがこのTFTモジュールでは、BGRとなって居る為
色表現16進数を赤に青の16進数を入れて観ます。
他も同様に、
赤と青、シアンとイエローの16進数をそれぞれ入れ換えて
見ましたが・・・・
TFTの描画には、
入れ換える前と後では、全く変化は生じませんでした。
勿論、TFTモジュールが「焼ける」様な事象も発生ししません。:)
ここに、触って、TFTの描画に変化が生じないことにガッカリ、
ソレより「ビックリ」ですが
コメントアウトの箇所でもないのに
プログラムに無関係の記述なんてあるのでしょうか?
113行の定義文は各色の階調だと思います・・・・。
他にあるのだろうか?
就寝前に思い付き、今朝まで楽しみにしていたが、
単純ではなかった・・・・ :)
ST7735.py の98行目から
色の設定に関係しそうな箇所があります。
RGBがこのTFTモジュールでは、BGRとなって居る為
色表現16進数を赤に青の16進数を入れて観ます。
他も同様に、
赤と青、シアンとイエローの16進数をそれぞれ入れ換えて
見ましたが・・・・
TFTの描画には、
入れ換える前と後では、全く変化は生じませんでした。
勿論、TFTモジュールが「焼ける」様な事象も発生ししません。:)
ここに、触って、TFTの描画に変化が生じないことにガッカリ、
ソレより「ビックリ」ですが
コメントアウトの箇所でもないのに
プログラムに無関係の記述なんてあるのでしょうか?
113行の定義文は各色の階調だと思います・・・・。
他にあるのだろうか?
Re: 1.8インチTFT(ST7735S)色違い
どうもさっぱり、解りません。
青と赤 シアンとイエローの色違いの修正を試みていますが・・・
この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の描画も「正常」だ。
さっぱり、解りません。
青と赤 シアンとイエローの色違いの修正を試みていますが・・・
この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の描画も「正常」だ。
さっぱり、解りません。
Re: 1.8インチTFT(ST7735S)色違い
1.8インチTFT(ST7735S) の製品に, 何かプルタブのようなものが付いてるらしいけど
何色でしたか?
3種類の製品があるらしく, タブの色によって, 初期化の方法が異なるそうで
参考: http://blog.boochow.com/article/423965515.html
何色でしたか?
3種類の製品があるらしく, タブの色によって, 初期化の方法が異なるそうで
参考: http://blog.boochow.com/article/423965515.html
Re: 1.8インチTFT(ST7735S)色違い
viewtopic.php?f=82&t=316135
に、書いたとおり
「緑:のタグです。
アルドウイーノではなく、RZPで困ってます。
アルドウイーノのWeb記事は、見ていますが、ヒントは
見つける事が出来ていません。
に、書いたとおり
「緑:のタグです。
アルドウイーノではなく、RZPで困ってます。
アルドウイーノのWeb記事は、見ていますが、ヒントは
見つける事が出来ていません。
Re: 1.8インチTFT(ST7735S)色違い
貴殿のおっしゃってる意味が解りません。
viewtopic.php?f=82&t=316135
にも、書いた通り
TFTモジュールは「MSP1803]でネット検索したら、ヒットする製品です。
この、赤・青、関係してシアン・イエローの色違いは
私のところだけで出ている現象では有りません。
ネットを見ると、たくさんヒットします。
ただ、今のところ、どこにもこの現象を解消している
Web記事は目にしていません。
ヒントも見つけられていません。
私が、やっている事は、この掲示板に
書いた通りです。
あなたに、この色違いについての解決方法をお持ちなら、
あなたならどう、解決するのか、是非、お知らせ下さい。
viewtopic.php?f=82&t=316135
にも、書いた通り
TFTモジュールは「MSP1803]でネット検索したら、ヒットする製品です。
この、赤・青、関係してシアン・イエローの色違いは
私のところだけで出ている現象では有りません。
ネットを見ると、たくさんヒットします。
ただ、今のところ、どこにもこの現象を解消している
Web記事は目にしていません。
ヒントも見つけられていません。
私が、やっている事は、この掲示板に
書いた通りです。
あなたに、この色違いについての解決方法をお持ちなら、
あなたならどう、解決するのか、是非、お知らせ下さい。
Re: 1.8インチTFT(ST7735S)色違い
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の中をどんなに「弄っても」
赤青問題解消には、関係しない事になるのではとなります。
実際、現象は、そうなっています。
[ 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の中をどんなに「弄っても」
赤青問題解消には、関係しない事になるのではとなります。
実際、現象は、そうなっています。
Re: 1.8インチTFT(ST7735S)色違い
イメージ描画スクリプトで、
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つのバンド分割したいので、「ここは譲れない線」ですが。 :)
ここで、エラーを言われてもなぁ〜ですが・・・・
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つのバンド分割したいので、「ここは譲れない線」ですが。 :)
ここで、エラーを言われてもなぁ〜ですが・・・・
Re: 1.8インチTFT(ST7735S)色違い
まじか!
まじか!
解決!!
「犬も歩けば・・・・・」です。
エラー 消え、描画RGBで正常描画。問題解決。
大分、古いが『マンモス うれピー!!!』
たった、1文字追加で、解消。
なんですか!! これっ!!
青に表示されていた部分が、赤に。
顔色も「ピンクの肌色に」
参ったなぁ〜〜〜
まるで。見事な「テーブル・マジック」を見せられたみたい。
マジですか!
スマホ画像は、色が悪いがTFT描画は満足の色合い・描画です。
『青」になっていた、コートが「赤に」(=原画どおり)なってます。
まじか!
解決!!
「犬も歩けば・・・・・」です。
エラー 消え、描画RGBで正常描画。問題解決。
大分、古いが『マンモス うれピー!!!』
たった、1文字追加で、解消。
なんですか!! これっ!!
青に表示されていた部分が、赤に。
顔色も「ピンクの肌色に」
参ったなぁ〜〜〜
まるで。見事な「テーブル・マジック」を見せられたみたい。
マジですか!
スマホ画像は、色が悪いがTFT描画は満足の色合い・描画です。
『青」になっていた、コートが「赤に」(=原画どおり)なってます。
- IMG_20210731_153858.jpg
- IMG_20210731_153858.jpg (171.72 KiB) Viewed 9329 times
Re: 1.8インチTFT(ST7735S)色違い
ラズパイOSのアップデートで描画出来なくなって居た
TFT描画、復活! 良かった。嬉しい!
もう出来ないかと諦めもあり 暫く、触っていなかったら、使い方を忘れた!!
脳の老化が激しい! :)
それにしても・・どう言う加減なんだろうか?
ラズパイOSが8月の末でアップデートして
Linux △しろさんかく□しろいしかく 5.10.60+ #1449 Wed Aug 25 14:59:20 BST 2021 armv6lになった。
諦めて居たが、描画出来ない事が
「咽に刺さった魚の小骨」の様な感じ(ややオーバー)で、いつも気に掛かっていた。
もう一度と、やって見たら、
この1ヶ月間 全く、同じ仕掛けでエラーが出て描画しなかったのに 今は、描画する!! どうなっている?
スマホ画像では、はっきりしないが、
赤地に青丸は緑枠線を太く描き(幅3ピクセル)
ピンクの長方形は1ピクセルの枠
RZPzeroWにて
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
Re: 1.8インチTFT(ST7735S)色違い
Lチカの「ホタル」(増分)を学習すると、簡単なんだろうが・・・
Lチカを軽視して、「勉強」しなかったので、たったこれだけでも面倒。
TFTの描画では「赤地に青丸(ぬりつぶし)」で
奥から手前で、若干の「立体感」が感じられる、綺麗な発色だが
スマホ画像では、そう見えない。:)
[ Processing]のマウス・デモを「絵ずら」だけ、真似てみた・・・
Lチカを軽視して、「勉強」しなかったので、たったこれだけでも面倒。
TFTの描画では「赤地に青丸(ぬりつぶし)」で
奥から手前で、若干の「立体感」が感じられる、綺麗な発色だが
スマホ画像では、そう見えない。:)
[ Processing]のマウス・デモを「絵ずら」だけ、真似てみた・・・
- IMG20210911110252.jpg
- IMG20210911110252.jpg (122.53 KiB) Viewed 8809 times
Re: 1.8インチTFT(ST7735S)色違い
座標値を計算で入力出来るという。
参照先
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() でスクリプトを閉じる。
参照先
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
Jump to
- Community
- General discussion
- Announcements
- Other languages
- Deutsch
- Español
- Français
- Italiano
- Nederlands
- 日本語
- Polski
- Português
- Русский
- Türkçe
- User groups and events
- Raspberry Pi Official Magazine
- Using the Raspberry Pi
- Beginners
- Troubleshooting
- Advanced users
- Assistive technology and accessibility
- Education
- Picademy
- Teaching and learning resources
- Staffroom, classroom and projects
- Astro Pi
- Mathematica
- High Altitude Balloon
- Weather station
- Programming
- C/C++
- Java
- Python
- Scratch
- Other programming languages
- Windows 10 for IoT
- Wolfram Language
- Bare metal, Assembly language
- Graphics programming
- OpenGLES
- OpenVG
- OpenMAX
- General programming discussion
- Projects
- Networking and servers
- Automation, sensing and robotics
- Graphics, sound and multimedia
- Other projects
- Gaming
- Media centres
- AIY Projects
- Hardware and peripherals
- Camera board
- Compute Module
- Official Display
- HATs and other add-ons
- Device Tree
- Interfacing (DSI, CSI, I2C, etc.)
- Keyboard computers (400, 500, 500+)
- Raspberry Pi Pico
- General
- SDK
- MicroPython
- Other RP2040 boards
- Zephyr
- Rust
- AI Accelerator
- AI Camera - IMX500
- Hailo
- Software
- Raspberry Pi OS
- Raspberry Pi Connect
- Raspberry Pi Desktop for PC and Mac
- Beta testing
- Other
- Android
- Debian
- FreeBSD
- Gentoo
- Linux Kernel
- NetBSD
- openSUSE
- Plan 9
- Puppy
- Arch
- Pidora / Fedora
- RISCOS
- Ubuntu
- Ye Olde Pi Shoppe
- For sale
- Wanted
- Off topic
- Off topic discussion