とりあえず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だけで済むし!
あとは実際に結線して、トライするのみ!
以後、追記予定
以上