Picoで距離測定とTWELITEでデータ送信

Pico and TWELITE Sonar test Raspberry Pi 工作

この回路ではHC-SR04は5Vで動作し、それ以外は3.3Vで動作しています。HC-SR04の5Vレベル出力を3.3V動作のPicoで受けるために、抵抗による降圧を行っています。Trig入力は3.3VでHigh Level入力となっており、TTL的なシグナルマージンはかなり少ないですが、とりあえず動作しています。次の工作ではレベルシフターを利用する予定です。

Picoで実行したMicroPythonコードは以下になります。

import machine
import utime

trig = machine.Pin(7, machine.Pin.OUT)
echo = machine.Pin(6, machine.Pin.IN)

uart = machine.UART(1,115200)

for cnt in range(10000):
   trig.value(1)
   utime.sleep_us(50)
   trig.value(0)
   total_time = 0
   while echo.value() == 0:
      low_time = utime.ticks_us()
   while echo.value() == 1:
      high_time = utime.ticks_us()
   time_echo = high_time - low_time    
   uart.write("echo={} dist={}".format(time_echo, int((time_echo/58))))
   utime.sleep(1)

ロジアナにて超音波距離センサーHC-SR04のTrigger入力(ロジアナ2段目)、同Echo出力(ロジアナ3段目)、PicoのUART TX(ロジアナ1段目)をモニターしました。

Echoパルスの立下りからUART TXにデータが現れるまでの時間が1ms程度あります。これが設計意図通りなのか、追って確認をしたいと思っています。

この工作時点ではPico、TWELITE、HC-SR40ともにUSBからの給電で動作しています。次にこれら全体を乾電池で動作させるよう電源周りの工作を行う予定です。

コメント  

タイトルとURLをコピーしました