ぱそこん らっく 要塞化!
いまは むかし
むかし むかし むかし
じじぃ~
の 愛用している
パソコンラックを
購入したのは・・・
いつだ???
世の中
まだ
マルチモニタ なんて ものはないし
ディスプレイは
ぶらうん缶
と
液晶
戦国時代???
全幅 約60せんち
全高 約115せんち
奥行 約60せんち
前後左右の4本の ■ フレーム
やく25みり x やく25みり
4個 の キャスターで 支える・・・はず
床から やく30せんち に 1枚 のたないた
床から やく70せんち に 1枚 のめいんて~ぶる
めいんてーぶる の やく16せんち に なぞの たないた
そして
天板・・・

作画:【chatGPT】様
うまく指示が伝わらない・・・(涙)
おんどけい
ぱいぱい
ん~~~
PICO-W
は
温度センサー が 内蔵・・・の
はず
【chatGPT】様
に
あ~でもねぇ~
こ~でもねぇ~
ガっ展勝地♪
# ==== 【chatGPT】様のご回答
あなたのプログラムはすでに動作するシンプルなコードですが、
いくつかの改善ポイントを挙げることができます。
以下の点を考慮すると、コードの可読性、効率性、または信頼性が向上します。
### 改善ポイント:
#### 1. **コメントの整理**
コメントはとても丁寧ですが、少し長いため、簡潔にして可読性を向上させることができます。たとえば、コードの意図が明確な場合、詳細な説明は不要です。
#### 2. **定数の明示化**
`27` や `0.706`, `0.001721` などの値は「マジックナンバー」と呼ばれ、何を意味しているか分かりにくい場合があります。これらを定数として明示すると、可読性が上がります。
例:
```python
OFFSET_VOLTAGE = 0.706 # センサーの基準電圧
TEMPERATURE_SLOPE = 0.001721 # 温度計算のスケール係数
BASE_TEMPERATURE = 27 # センサー基準温度
```
#### 3. **ループの終了条件**
`while True` だと無限ループになりますが、デバッグや意図的な終了が必要な場合に備えて、例外処理や終了条件を追加すると良いです。
例:
```python
try:
while True:
# 温度計測コード
...
except KeyboardInterrupt:
print("終了しました")
```
#### 4. **出力フォーマットの改善**
小数点以下の桁数を制限するなどして、見やすくすることができます。
例:
```python
print(f"Temperature: {temperature:.2f} °C")
```
#### 5. **間隔の設定を柔軟に**
`utime.sleep(2)` のように固定値ではなく、変数として設定しておくと、後から簡単に変更できます。
### 改善後のコード例
```python
import machine
import utime
# 定数
OFFSET_VOLTAGE = 0.706 # センサーの基準電圧 (V)
TEMPERATURE_SLOPE = 0.001721 # 温度計算のスケール係数
BASE_TEMPERATURE = 27 # センサー基準温度 (℃)
CONVERSION_FACTOR = 3.3 / 65535 # ADCの変換係数
# 温度センサーの初期化
sensor_temp = machine.ADC(4)
# 計測間隔 (秒)
MEASUREMENT_INTERVAL = 2
try:
while True:
# ADCからの値を取得して電圧に変換
reading = sensor_temp.read_u16() * CONVERSION_FACTOR
# 温度を計算
temperature = BASE_TEMPERATURE - (reading - OFFSET_VOLTAGE) / TEMPERATURE_SLOPE
# 温度をフォーマットして出力
print(f"Temperature: {temperature:.2f} °C")
# 計測間隔のスリープ
utime.sleep(MEASUREMENT_INTERVAL)
except KeyboardInterrupt:
print("プログラムを終了しました")
'''
```
### 主な改善点
1. **可読性向上**: マジックナンバーを定数化し、コメントを簡潔に。
2. **終了条件**: `try-except` を使い、Ctrl+Cで安全に終了可能に。
3. **出力整形**: 温度の小数点以下を見やすくフォーマット。
4. **柔軟性**: 計測間隔を変数化。
これで、より堅牢で可読性の高いコードになります!
# ====
最近
考えるの
調べるの
や め た !
【chatGPT】様に
栄光アレ?
じじぃ~
GPIO動作確認
ぱいぱい
ラズパイピコ-W
GPIOの16~21 (6回路)
# ==== こんな感じ?
import machine
import time
# 内蔵LEDのピン定義【PICO-W】の場合
# led_int = machine.Pin("WL_GPIO0", machine.Pin.OUT)
# GPIOのピン定義【PICO-W】の場合
# led_gpio = machine.Pin("WL_GPIO0", machine.Pin.OUT)
# チェックしたい「GPIO番号」の定義
led_gpio = machine.Pin(16, machine.Pin.OUT)
# GPIO LEDの点滅
led_gpio.high() # LEDを点灯
time.sleep(1) # 1秒待機
led_gpio.low() # LEDを消灯
time.sleep(0.3) # 0.3秒待機
led_gpio = machine.Pin(17, machine.Pin.OUT)
# GPIO LEDの点滅
led_gpio.high() # LEDを点灯
time.sleep(1) # 1秒待機
led_gpio.low() # LEDを消灯
time.sleep(0.3) # 0.3秒待機
led_gpio = machine.Pin(18, machine.Pin.OUT)
# GPIO LEDの点滅
led_gpio.high() # LEDを点灯
time.sleep(1) # 1秒待機
led_gpio.low() # LEDを消灯
time.sleep(0.3) # 0.3秒待機
led_gpio = machine.Pin(19, machine.Pin.OUT)
# GPIO LEDの点滅
led_gpio.high() # LEDを点灯
time.sleep(1) # 1秒待機
led_gpio.low() # LEDを消灯
time.sleep(0.3) # 0.3秒待機
led_gpio = machine.Pin(20, machine.Pin.OUT)
# GPIO LEDの点滅
led_gpio.high() # LEDを点灯
time.sleep(1) # 1秒待機
led_gpio.low() # LEDを消灯
time.sleep(0.3) # 0.3秒待機
led_gpio = machine.Pin(21, machine.Pin.OUT)
# GPIO LEDの点滅
led_gpio.high() # LEDを点灯
time.sleep(1) # 1秒待機
led_gpio.low() # LEDを消灯
time.sleep(0.3) # 0.3秒待機
# ==== おわり
と・・・・・・
【chatGPT】様に 評価依頼・・・
# ==== お返事・・・
コードの基本的なアイデアは正しいですが、冗長性を少し減らして、コードを簡潔かつ読みやすくするためにループを使用すると効率的です。以下は、あなたの要件に基づいて改良したコードの例です:
```python
import machine
import time
# チェックしたいGPIO番号のリスト
gpio_pins = [16, 17, 18, 19, 20, 21]
# 各GPIOの確認
for pin in gpio_pins:
led_gpio = machine.Pin(pin, machine.Pin.OUT) # GPIOピンを出力モードで初期化
led_gpio.high() # LEDを点灯
time.sleep(1) # 1秒待機
led_gpio.low() # LEDを消灯
time.sleep(0.3) # 0.3秒待機
```
### 修正点:
1. **ループを使用**: 各GPIOピンをリストにまとめ、`for`ループで処理することで冗長なコードを減らしました。
2. **再利用可能な変数**: 毎回`led_gpio`を作成するのではなく、ループ内で動的に処理しています。
3. **読みやすさ向上**: 同じ処理が複数回書かれていた部分を統一しました。
このコードを使うと、GPIO 16~21の各ピンでLEDを点灯・消灯させる動作確認ができます。また、物理的な配線ミスをチェックする際にも使いやすくなります。
# ====

日々これ修行・・・
じじぃ~





