LoginSignup
1
0

More than 1 year has passed since last update.

超音波センサーで距離を測ってみた

Posted at

秋月から超音波センサーが届いたので、下記の記事を参考に作成してみた。

ブレッドボードより基板使った方がかっこいいかなと思い、久ぶりに電子工作工作してみた。
完成したのがこちら。半田に手こずったし、機材そろえるのに少しお金かかったけど、手を動かすと楽しい。。
IMG_3974.JPG

回路図

HC-SR04のECHOから出力は、5Vが出てくる。ラズパイのGPIOは、3.3Vまでしか許容しないため、抵抗を使って3.3Vにしている。

HC-SR04_回路図.png

code

TRIG,ECHOの指定ができれば、DistanceSensorを使えばm単位で結果を出力される。

1.1 pigpio

Raspberry PiのGPIOを制御するため、再起動して有効になるようにsystemctlのenableをonにした。

$ sudo service pigpiod start
$ sudo systemctl enable pigpiod.service

1.2 python

測定誤差が生じるため、10回測定しそのmedian値を結果に出力するようにした。
単位は、cmにしている。

hc_cr04.py
from gpiozero import DistanceSensor
from gpiozero.pins.pigpio import PiGPIOFactory
import statistics
import math 

import time

PIN_TRIG = 22
PIN_ECHO = 27
point    = 10
tmp      = [num for num in range(point)]

factory = PiGPIOFactory()
sensor = DistanceSensor(PIN_ECHO, PIN_TRIG, pin_factory=factory)

for i in range(point):
    print('Distance to nearest object is', sensor.distance, 'm')
    tmp[i] = sensor.distance * 100
    time.sleep(0.5)

median = statistics.median(tmp)
print('Distance to nearest object is', '{:.2f}'.format(median), 'cm(median', point ,'point)')

感想

ひとまず超音波センサーを使って距離を測定することができるようになった。電子工作をしてみて手を動かすのは、難しいけど、信号が出なかったときにどこが原因か考えて答えを見つける楽しさがある。テスターとオシロスコープ使うような複雑なことやれると、もう少し面白くなりそう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0