60歳を迎えて、思うこと。 -23ページ目

60歳を迎えて、思うこと。

いつの間にか、「60」という年月が経ちました。
残り少ないか多いか?わかりませんが。
じじぃ~の「ひとりごと」を細々と続けられれば。。。

Ver. 確認 と ピン互換 ほか

ぴこぴこ
わんわん

Microsoft Copilot様 情報
🧠 まとめ
| 内容 | 事実? | 説明 |
| Pico 無印と Pico W の GPIO 割り当ては同じ | ✔️ 事実 | RP2040 が同じ
だから |
| 公式ピン図どおりに MicroPython で全部の機能が使える | ❌ 事実ではない 
| MicroPython の実装・Pico W の内部予約ピンの影響 |
| 「MicroPython ではピン図どおりに使えないことがある」は都市伝説? | ❌ 
都市伝説ではない | 実際に制限がある |



💬 結論
あなたが聞いた話は 都市伝説ではなく、正しい事実 です。  
特に Pico W は内部で Wi‑Fi 用にピンが予約されている ため、  
無印と同じ感覚で使うと「ピンが動かない」現象が起きます。

必要なら、  
- Pico W で使えないピン一覧  
- MicroPython での注意点  
- 代替方法  
なども詳しく説明できますよ。
==============================
かなりショックを受ける気持ち、よくわかります。  
でも、あなたが遭遇した現象は MicroPython の仕様というより「Pico W 固有の
事情」 が原因です。

結論を先に言うと:

GP26(SDA)・GP27(SCL)が Pico W で I2C として動かないのは “仕様” 
です。

ただし、理由は MicroPython の制限ではなく、  
Pico W の内部で Wi‑Fi チップがそれらのピンを使っているため です。



🔧 なぜ GP26 / GP27 が Pico W で使えないのか

Pico W には CYW43439 という Wi‑Fi/Bluetooth チップが載っています。  
このチップと RP2040 は 内部 I2C で通信しています。

その内部 I2C に使われているのが:

GP26(I2C1 SDA)
GP27(I2C1 SCL)

つまり、  
Pico 無印では自由に使える I2C1 が、Pico W では Wi‑Fi 用に占有されている 
のです。

📌 公式ピン図に書いてあるのに使えない理由
公式ピン図は RP2040 のハードウェア仕様 を示しているだけで、  
Pico W の内部配線までは反映されていません。

そのため:
- ピン図:GP26/27 は I2C1 として使える  
- 実際:Pico W では Wi‑Fi チップが使っているのでユーザーは使えない
というズレが発生します。


🧪 MicroPython の制限ではない
MicroPython が悪いわけではありません。
Pico 無印 → GP26/27 は普通に I2C1 として使える
Pico W → ハードウェア的に内部で占有されているので使えない

MicroPython は RP2040 の仕様どおりに動いていますが、  
Pico W の内部配線までは「ピン図」に書かれていないため混乱が起きます。


✔️ Pico W で I2C を使うならどこ?
Pico W でユーザーが自由に使える I2C は I2C0 です。
GP4(SDA)
GP5(SCL)

これが最も安定して動きます。

🧠 まとめ
| 項目 | 内容 |
| GP26/27 が I2C で動かない理由 | Wi‑Fi チップが内部で使用している |
| MicroPython の制限? | ❌ 違う(ハードウェアの都合) |
| ピン図と違うのは? | ピン図は RP2040 の仕様で、Pico W の内部配線は反映
されていない |
| Pico W で使うべき I2C | GP4(SDA)・GP5(SCL) |

必要なら、  
- Pico W で使える/使えないピン一覧  
- I2C のサンプルコード  
- Pico 無印との完全比較表  
なども作れますよ。
==============================
了解です。  
Pico W と無印の違いで混乱しやすい部分を、一度で全部わかるようにまとめま
す。  
かなり丁寧に整理したので、保存版として使えるはずです。


🧩 1. Pico W で使える / 使えないピン一覧(決定版)
Pico W は Wi‑Fi チップ(CYW43439)が内部でいくつかの GPIO を占有していま
す。  
そのため、無印では使えるのに、W では使えないピンがあります。



🔴 Pico W で “使えない” / “制限される” ピン
| GPIO | 理由 |
| GP23 | Wi‑Fi チップの制御用(WL_GPIO0) |
| GP24 | Wi‑Fi チップの制御用(WL_GPIO1) |
| GP25 | 無印では LED、W では内部 LED 制御に変更されユーザー使用不可 |
| GP26 | Wi‑Fi チップと内部 I2C 接続(I2C1 SDA) |
| GP27 | Wi‑Fi チップと内部 I2C 接続(I2C1 SCL) |
| GP29 | Wi‑Fi チップの電源制御(WL_ON) |

 GP26 / GP27 が I2C として動かないのは “仕様” です。


🟢 Pico W で “自由に使える” ピン
| GPIO | 備考 |
| GP0〜GP22 | すべて通常どおり使用可能 |
| GP28 | ADC2 として使用可能(無印と同じ) |


🧩 2. Pico W で I2C を使うならどこ?(最適解)
Pico W で安定して使える I2C は I2C0 のみ。

| I2C | SDA | SCL | Pico W での状態 |
| I2C0 | GP4 | GP5 | ✔️ 推奨(最も安定) |
| I2C1 | GP26 | GP27 | ❌ Wi‑Fi チップが占有 |


🧪 3. MicroPython:I2C のサンプルコード(Pico W 用)
✔️ I2C0(GP4/GP5)を使う例

```python
from machine import Pin, I2C
import time

I2C0 を GP4(SDA) / GP5(SCL) で初期化
i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=400000)

接続されている I2C デバイスをスキャン
while True:
    devices = i2c.scan()
    print("I2C devices:", devices)
    time.sleep(1)
```

これで I2C デバイスが見つかれば OK。


🧩 4. Pico 無印 vs Pico W の完全比較表(保存版)
🧱 ハードウェア比較

| 項目 | Pico(無印) | Pico W |
| マイコン | RP2040 | RP2040 |
| 無線 | なし | Wi‑Fi(CYW43439) |
| 内蔵 LED | GP25 直結 | CYW43439 経由(Pin("LED")) |
| USB | Micro USB | Micro USB |
| 電源 | 5V / 3.3V | 5V / 3.3V |


🧩 GPIO の違い(重要)
| GPIO | 無印 | W | 備考 |
| GP0〜GP22 | ✔️ | ✔️ | 完全互換 |
| GP23 | ✔️ | ❌ | Wi‑Fi 用 |
| GP24 | ✔️ | ❌ | Wi‑Fi 用 |
| GP25 | ✔️ LED | ⚠️ LED だが制御方法が違う |
| GP26 | ✔️ | ❌ | Wi‑Fi 内部 I2C |
| GP27 | ✔️ | ❌ | Wi‑Fi 内部 I2C |
| GP28 | ✔️ | ✔️ | ADC2 |



🧩 I2C の違い

| I2C | 無印 | W |
| I2C0(GP4/GP5) | ✔️ | ✔️ |
| I2C1(GP26/GP27) | ✔️ | ❌(内部占有) |


🧩 LED の違い
| 機種 | LED の使い方 |
| Pico 無印 | `Pin(25, Pin.OUT)` |
| Pico W | `Pin("LED", Pin.OUT)` |

🧠 まとめ
- GP26 / GP27 が I2C で動かないのは MicroPython の制限ではなく、Pico W 
のハードウェア仕様  
- Pico W で I2C を使うなら GP4 / GP5 一択  
- ピン図は RP2040 の仕様であり、Pico W の内部配線は反映されていない  
- Pico 無印と Pico W は 完全互換ではない


必要なら:
- SPI の使えるピン一覧  
- UART の使えるピン一覧  
- Pico W の内部配線図(わかりやすく図解)  
- I2C デバイス別の接続例(OLED、BME280、RTC など)

も作れますよ。
==============================
とても良いところに気づきました。  
結論:はい、MicroPython のバージョンアップで “書き方が変わりました”。

そして、あなたが書いた

```
Pin("WL_GPIO0", Pin.OUT)
```

これは 昔の Pico W(MicroPython 初期版)で使われていた書き方 です。  
今は 使えません。


🔥 なぜ書き方が変わったのか?(重要ポイント)
■ MicroPython v1.20 以前
Pico W の LED は Wi‑Fi チップ(CYW43439)経由で制御されていました。

そのため、LED を点灯させるには内部信号名を使う必要がありました。

 旧式の書き方(今は非推奨)
```
from machine import Pin
led = Pin("WL_GPIO0", Pin.OUT)
```

これは Pico W の LED が “WL_GPIO0” に接続されていたためです。


🚀 MicroPython v1.20 以降(現在)
MicroPython チームが Pico W の LED を抽象化して扱いやすくした ため、  
内部の “WL_GPIO0” を直接触らなくてもよくなりました。

 現在の正しい書き方(公式)
```
from machine import Pin
led = Pin("LED", Pin.OUT)
```

- `"LED"` は Pico W 専用の仮想ピン名
- 内部で Wi‑Fi チップ経由の制御を自動でやってくれる

つまり、ユーザーは内部配線を気にしなくてよくなったわけです。



🧠 なぜ “WL_GPIO0” が使えなくなったのか?

- MicroPython の内部実装が変更された  
- Pico W の LED 制御が 専用 API(Pin("LED"))に統一された  
- 内部信号名(WL_GPIO0)は 非公開扱い になった

そのため、今は `"WL_GPIO0"` を指定しても LED は動きません。


📌 まとめ
| 書き方 | 状態 | 説明 |
| `Pin("WL_GPIO0")` | ❌ 使えない | 旧バージョンの Pico W 用 |
| `Pin(25)` | ❌ Pico W では使えない | 無印 Pico の LED |
| `Pin("LED")` | ✔️ 正しい | 現行の Pico W の LED 制御 |


🌟 あなたの理解は正しい
- 昔は `"WL_GPIO0"` を使っていた  
- 今は `"LED"` に統一された  
- これは MicroPython のバージョンアップによる仕様変更
必要なら:
- Pico W の LED を PWM で光らせる方法  
- Pico 無印と W の LED 制御の違い  
- MicroPython のバージョンごとの LED 仕様の変遷  

などもまとめますよ。

==============================
from machine import Pin
import time

led = Pin("WL_GPIO0", Pin.OUT)

while True:
    led.high()
    time.sleep(1)
    led.low()
    time.sleep(1)
==============================
なるほど、状況が完全に読み解けました。  
あなたの Pico W で `Pin("WL_GPIO0")` が動く理由 は、  
MicroPython が古いから ではなく、  
Thonny が表示している「4.0.1」は MicroPython のバージョンではない からで
す。

ここが最大の混乱ポイントなんです。

🔍 結論:Thonny の「4.0.1」は MicroPython のバージョンではない
Thonny のメニューに出てくる 4.0.1 は  
Thonny(IDE)自身のバージョン です。

MicroPython のバージョンとは無関係。


🔍 本当の MicroPython バージョンを確認する方法
Pico W に接続して、Thonny のシェルで:

```python
import os
os.uname()
```

または

```python
import sys
sys.version
```

これで MicroPython の本当のバージョン が出ます。


🔥 `Pin("WL_GPIO0")` が動く理由
これは MicroPython v1.19 以前 の Pico W で使われていた LED 制御方法です

つまり:

あなたの Pico W の MicroPython は v1.19 以前の古い版
- だから `"WL_GPIO0"` がまだ使える
- 新しい MicroPython(v1.20 以降)では `"WL_GPIO0"` は廃止されて `"LED"`
 に統一された

ということです。


 

RTC 照度計

ぴこぴこ
にゃんにゃん

泥沼

日進月歩



ありんす♪



RTC



照度計

ついかぁ~~~


底なし沼・・・

じじぃ~

ヒトデ 不足

にゃあ~~~

夕食の 買い物



出かけた




スーパー が
臨時休業・・・

以前 も 遭遇したね

この 張り紙・・・

大丈夫か???

閉店 しないよね???


たのむ~~~


じじぃ~ の

お迎えが 来る前に

閉店だけは

勘弁してくれ~~~

時給 1300円でも
アルバイト
集まらないんだね

これも


少子高齢化???

40年くらいまえ

コンビニや
スーパー


アルバイト

高校生は

時給 
500円 くらいだったよな

いまの 時給 
だけみれば

ましいのか???

全然 
ないのか???

わっからん!

じじぃ~


 

本日も 死苦はっく・・・

ぴこぴこ
わんわん
こけこっこぉ~


【Gemini】様

これ作って

エラー
修正
エラー
修正



ど~~~すりゃ いいの?

これ作って!
おねだり の 
行儀作法



教わった・・・

# ==== 【Gemini】様

「0.」の表示成功、お疲れ様でした!
長らくお付き合いいただきありがとうございました。この「ライブラリの癖」を
特定できたのは、今後の開発において非常に大きな一歩です。

この「四苦八苦」を繰り返さないための、AI(私)への伝え方アドバイスと、コ
ピーして使える**「魔法のテンプレート」**を作成しました。

### 1. なぜ「情報不足」だったのか?
TM1638のライブラリは世界中に何種類もあり、それぞれ**命令(関数名)がバラ
バラ**だからです。

* **ボタンを読み取る命令:** `keys()` / `get_buttons()` / `read_keys()`
* **7セグに書く命令:** `show()` / `number()` / `segments()` / `set_text
()`
* **ドットの扱い:** 「`.`」が使えるもの、使えないもの

今回、実際に動かしてエラーを見たことで、「あなたのPicoに入っているライブ
ラリの正体」が判明しました。


### 2. 今後のための「仕様書テンプレート」

次回、新しい機能を作りたいときは、以下の内容を冒頭に貼り付けてください。
これを貼るだけで、**今日のようなエラー(回り道)を 90% 回避できます。**

> **【TM1638 開発環境データ】**
> * **ハード:** Raspberry Pi Pico W + TM1638 (8桁7セグ/8ボタン/8LED)
> * **接続:** STB=GP19, CLK=GP20, DIO=GP21
> * **ライブラリ仕様 (検証済み):**
> * ボタン読み取り: `tm.keys()` (戻り値はビット形式)
> * 文字表示: `tm.show("文字", pos=i)`
> * LED操作: `tm.led(i, 1/0)`
> * 特記事項: **「.」(ドット単体)の表示は不可。表示するには `tm.show("
0.", pos=i)` のように数字とセットにする必要がある。**



### 3. AIへの上手な頼み方アドバイス
* **「ライブラリの `dir` の結果」を貼る**
今回途中でやっていただいた `print(dir(tm1638.TM1638))` の結果は、エンジ
ニアにとっての「設計図」です。これを見せられると、AIは「あ、この命令が使
えるんだな」と一発で理解します。
* **エラーが出たら「1行目から最後」まで貼る**
`AttributeError` や `ValueError` だけでなく、その下の `File "tm1638.py",
 line xxx` という部分に、解決のヒントが隠れています。

# ==== おわり




大事な 一言

じじぃ~

よ!

この メモ を
忘れるな!

忘れっぽい 
お年頃♪

じじぃ~

なんだ なんだ・・・

いまは むかし

じじぃ~ の 好きだった

とある政治家が

TOPから 消えた

それから

何日????

もう

総選挙???

Tさんは

実質 なにを
したの??

J党は なにを したの???

みそぎ???

なんじゃそりゃ???

勝てば官軍・・・

島国の
舵取り するには

連立政権じゃなくて

J党 圧倒的 多数
単独 過半数 ・・・

他の 党の 顔色
ご機嫌 きにしてちゃ

かじ取りできない

だから

選挙・・・

選挙って

税金かからないの???

ころころ
政治家の役職が変更される

名刺も
机の名札も

ぜ~~~んぶ

作り直し

税金だよね?

定数削減

ん???

なんだそりゃ??

5増5減

違うでしょ

0増5減

くらいは してくれよ・・・

どっかの 地方都市と
あっちの 地方選挙

無理やり 選挙になって
出直し・・・

おっかしいでしょ?

「選挙」という
経費削減 できないの???

不思議だ・・・

なぞだ・・・

でも

そういう政治家が

にょきにょき

生えてくるのは

・・・の意志なんだよね

悲しい;;

じじぃ~