稼働中

Raspberry Pi Pico(s_14)GP2Y0A21YK 用モジュール

GP2Y0A21YK GP2Y0c.py

GP2Y0A21YKはPSD赤外距離センサです。10~80cm間の距離を測定できます。
※詳細はGP2Y0A21YKのデータシートを参照ください。
Raspberry Pi PicoでGP2Y0A21YKセンサーモジュールを使う自作の’GP2Y0c.py’を作成しました。記事d_18を元に作成しています。
使い方だけを記載します。’GP2Y0c.py’は末尾にあります。

使い方

■ ファイル転送
Raspberry Pi Picoへ’GP2Y0c.py’を送った後でimportして使います。
※GP2Y0c.pyの末尾に、使用例(GP2Y0c_ex.py)の## example以降をコピペ追加しても動作確認できます。
■ メソッド
‘GP2Y0c’をimportすると「d_meas」のメソッドが使えるようになります。
GP2Y0()で初期化します。
(01)d_meas(num=0)
ADCの値と計算後の距離cmをリストで返します。
num:ADCの番号(0, 1, 2)です。デフォルトはADC0 (Pin(27))です。

距離の算出は以下の近似式を使っています。
距離 = 27.22×電圧 Vo^(-1.2027)

使用例

GP2Y0A21YKで画用紙との距離を測定します。


GP2Y0c_ex.py
#!/usr/bin/env python
# -*- coding: utf-8 -*
from machine import ADC
from GP2Y0c import GP2Y0
# GP2Y0A21YK0F distance measuring sensor unit

## example
a=GP2Y0()
L=a.d_meas(0)
print('%6.4f V' %L[0],'%6.1f cm' %L[1])

実行結果

実行すると以下のようになりました。※Thonnyのshellに表示されます。


>>> %Run -c $EDITOR_CONTENT
0.7679 V   37.4 cm
>>> 

GP2Y0A21YKモジュール用


GP2Y0c.py
#!/usr/bin/env python
# -*- coding: utf-8 -*
from machine import ADC
import sys
# GP2Y0A21YK0F distance measuring sensor unit
# ADC0 Pin(26) ADC1 Pin(27) ADC2 Pin(28) 
class GP2Y0:
    def __init__(self):
        self.res=3.3/(2**16)      #16bit ADC   3.3V/65536
    def d_meas(self,num):
        if num in [0,1,2]:
            adc=ADC(num)
            vo=adc.read_u16()*self.res
            dist=27.22*vo**(-1.2027)
            return vo,dist
        else:
            print('ADC_Set err')
            sys.exit()