2023/07/03
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()