Raspberry Pi:Примеры/Управление датчиком HC-SR04 с помощью Python скрипта

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Управление датчиком HC-SR04 с помощью Python скрипта

Данный пример показывает как управлять датчиком HC-SR04 с помощью Python скрипта.

Необходимое оборудование

  • плата Raspberry Pi;
  • датчик HC-SR04;
  • 2 резистора 10 кОм;
  • пара перемычек;
  • макетная плата;

Схема

Будьте осторожны при обращении с портами GPIO вашего Raspberry Pi. Помните входы и выходы GPIO расссчитаны на напряжение +3,3В


Таблица с используемыми выводами:

Вывод GPIO(BCM) № п/п
gpio22 15
gpio27 13
GND 20
5V 2


Все манипуляции по подключению датчика HC-SR04 производите только при отключенном питании платы Raspberry Pi


Код

import time
import botbook_gpio as gpio

def measureDistance():
	trigPin = 22	                       # указываем номер контакта Raspberry Pi, к которому подключен Trig контакт датчика HC-SR04
	echoPin = 27                           # указываем номер контакта Raspberry Pi, к которому подключен Echo контакт датчика HC-SR04

	v=(331.5+0.6*20)                       # скорость звука при температуре 20 градусов Цельсия(вы можете указать свое значение вместо 20) в м/с

	gpio.mode(trigPin, "out")              # устанавливаем контакт как выход
 
	gpio.mode(echoPin, "in")               # устанавливаем контакт как вход
	gpio.interruptMode(echoPin, "both")    # режим прерывания, чтобы функция pulseInHigh вычислила длительность перехода сигнала с 0 до 1 и от 1 до 0

	gpio.write(trigPin, gpio.LOW)          # устанавливаем низкий уровень сигнала
	time.sleep(0.5)                        # задержка в пол секунда

	gpio.write(trigPin, gpio.HIGH)         # устанавливаем высокий уровень сигнала
	time.sleep(1/1000000.0)                # задержка в 1 мкс 
	gpio.write(trigPin, gpio.LOW)          # устанавливаем низкий уровень сигнала

	t = gpio.pulseInHigh(echoPin)          # вычисляем длительность сигнала 

	d = t*v*50                             # вычисляем пройденное расстояние
	return d	                       # возвращаем значение

d = measureDistance()                          # вызываем функцию и сохраняем возвращенное значение в переменную	
print "Distance: %.2f cm" % d                  # выводим значение

Инструкции

Соберите схему.

В удобном для вас месте создайте файл Python скрипта.

Для этого введите в консоли

nano hc-sr04.py

Скопируйте или перепечатайте код скрипта в файл.

После этого сохраните файл. Нажмите  Ctrl + X , вам предложат сохранить изменения, нажмите  Y  и затем  ↵ Enter 

Для работы этого скрипта также необходима библиотека botbook_gpio, скачать которую можно отсюда. Файл botbook_gpio.py необходимо поместить в папку с вашим скриптом.

Для запуска скрипта, введите python и путь до скрипта(если скрипт находится в вашем текущем расположении, то можно просто указать имя файла)

python hc-sr04.py

Пример работы скрипта

Как видим показания могут сильно искажаться, на точность может повлиять и количество запущенных программ.

См.также

Внешние ссылки