とりあえずAMAZONで・・・

一個200円程度。

写真だと白文字風ですが、赤文字だそうです。

I2Cピン装着済かつオスメス30cmケーブル付き。

位置決め穴は径2.2mm、M2ネジ用のようです。

これは時短できそうです。

・・・

ライブラリ?サンプルコード?

・・・

考えてませんでした。とりあえず今からTM1637を調べます。

時短、全部飛んで行きました。

 

AMAZONの出品から中華風のあやしい日本語を拾ってきました。

「5Vまたは3.3Vのレベルコントロールインターフェース」

電源はどちらでも動作するみたいですが、ほんまかいな?

別の出典に、

 「データシートを見るとVDDのTypicalは5Vとなっていますが、
  3.3Vでも動きます。」

とありましたので、直つなぎOKということで一安心。

raspberrypi-tm1637 1.3.7

というドライバが公式にありました。


□ドライバインストール:
pip3 install raspberrypi-tm1637
 

□サンプルコード
出典から抜粋、編集。めっちゃ簡単です。
が・・・動作未検証!

clk=5はラズパイ5番PINのSCL1、dio=4は7番PINのGPIO4の意???
なぜSDA1(3番PIN)を使わないのか???
それともWiringPiの表記でclk=5は18番PIN、dio=4は16番PINか?
まだわかりません。

わかりました!!! PIN番号はBMCです。(BCM、BMCどちらが正しいのか知らんし)
ドライバのソースの最初の方に下記が見つかりました。
すなわち、
  ・このドライバはRPi.GPIOを使っている。(WiringPiではない)
  ・GPIOはセットモードBCMである。
と判明しました。
ということで、
clk=5はBMCの5、ラズパイBoardの21番PIN
dio=4はBMCの4、ラズパイBoardの7番PIN
でした!
以下のサンプルコードが動作しました。
import tm1637
#PIN設定
tm = tm1637.TM1637(clk=5, dio=4)
#全ON# all LEDS on "88:88" 
tm.write([127, 255, 127, 127]) 
#全OFF# all LEDS off
tm.write([0, 0, 0, 0])
# show "0123" 単桁X4
tm.write([63, 6, 91, 79])
#疑似英数字# show "COOL"
tm.write([0b00111001, 0b00111111, 0b00111111, 0b00111000])
# show "HELP"
tm.show('help')
# display "dEAd", "bEEF"
tm.hex(0xdead)
tm.hex(0xbeef)
#時刻表示=2桁整数X2 # show "12:59"
tm.numbers(12, 59)
#マイナス整数
# show "-123"
tm.number(-123)
#温度表示# show temperature '24*C'
tm.temperature(24)

□表示コード

ーーーーーーーーーーーーーーーーーーーーーーーーーー

Display Bin Hex   Dec
0 0b00111111 0x3F 63
1 0b00000110 0x06 6
2 0b01011011 0x5B 91
3 0b01001111 0x4F 79
4 0b01100110 0x66 102
5 0b01101101 0x6D 109
6 0b01111101 0x7D 125
7 0b00000111 0x07 7
8 0b01111111 0x7F 127
9 0b01101111 0x6F 111
A 0b01110111 0x77 119
b 0b01111100 0x7C 124
C 0b00111001 0x39 57
d 0b01011110 0x5E 94
E 0b01111001 0x79 121
F 0b01110001 0x71 113
G 0b00111101 0x3D 61
H 0b01110110 0x76 118
I 0b00000110 0x06 6
J 0b00011110 0x1E 30
K 0b01110110 0x76 118
L 0b00111000 0x38 56
M 0b01010101 0x55 85
n 0b01010100 0x54 84
O 0b00111111 0x3F 63
P 0b01110011 0x73 115
q 0b01100111 0x67 103
r 0b01010000 0x50 80
S 0b01101101 0x6D 109
t 0b01111000 0x78 120
U 0b00111110 0x3E 62
v 0b00011100 0x1C 28
W 0b00101010 0x2A 42
X 0b01110110 0x76 118
y 0b01101110 0x6E 110
Z 0b01011011 0x5B 91
blank 0b00000000 0x00 0
- 0b01000000 0x40 64
* 0b01100011 0x63 99

ーーーーーーーーーーーーーーーーーーーーーーーーーー
 

□動作確認記録

PIN番号がWiringPiと思い込んで結線しましたら動作せず、
ライブラリソースコード確認に至るまで3時間右往左往。

結線ひとつとっても、

 ソフト&ハードの「罠」
があちこちとあるもんだ!と再認識しました。

 

□別のライブラリ

出典:

こちらの出典には、

 「チップとの通信にRPIのSCL,SDAピンを使っていますが、
  i2c通信ではありません。他のピンでもOKです。」

とあります。そういうことか!

 

ふつうにGPIOで制御しているということね。

↑これには、↓ここにサンプルがあると書かれています。

ドライバはpython-periphery。

インストール方法は下記。

ーーーーーーーーーーーーーーーーーーーー

Please install the "python-periphery" library.

sudo apt update
sudo apt install git python3-pip python3-setuptools
git clone https://github.com/vsergeev/python-periphery.git
cd python-periphery/
python3 -m pip install python-periphery
ーーーーーーーーーーーーーーーーーーーー
単なるPIPだけではだめで、セットアップが先に必要らしいです。
サンプルコードはここ↓

↑ここのサンプルコードでは、

[DEVICE NAME]              [CLK]  [DIO]
----------------------------------------
Raspberry Pi                3      2
となっています。やはりピン番号はよくわかりません。2は5Vやん!

やはりWiringPiでしょうか???

3はWiringPiの3でGPIO3(BCMではない)、RPiボードの15番PIN、BCMのGPIO27

2はWiringPiの2でGPIO2(BCMではない)、RPiボードの12番PIN、BCMのGPIO27

ですね!概ね確信しました。

 

結局、一番最初のライブラリraspberrypi-tm1637 1.3.7が使いやすそうです。

インストールがPIPだけで済むし!


あとは実際に結線して、トライするのみ!
以後、追記予定

 

以上