Библиотека knigago >> Компьютеры и Интернет >> Учебники и самоучители по компьютеру >> MicroPython для микроконтроллеров


Станислав Лем, польский писатель-фантаст и философ, был гением научной фантастики. Его произведения отличаются глубоким интеллектуализмом, точностью предсказаний и исследованием экзистенциальных тем. "Возвращение со звезд" - одна из его самых знаковых работ, включающая одноименную повесть и три другие. Главный герой - астронавт, который возвращается на Землю после длительного космического путешествия. Он обнаруживает, что мир изменился до неузнаваемости, и общество теперь...

СЛУЧАЙНАЯ КНИГА

Гюнтер Спаннер - MicroPython для микроконтроллеров

MicroPython для микроконтроллеров
Книга - MicroPython для микроконтроллеров.  Гюнтер Спаннер  - прочитать полностью в библиотеке КнигаГо
Название:
MicroPython для микроконтроллеров
Гюнтер Спаннер

Жанр:

Учебники и самоучители по компьютеру

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "MicroPython для микроконтроллеров"


Читаем онлайн "MicroPython для микроконтроллеров". [Страница - 29]

м/с
На основе этого значения следующая программа обеспечивает значения измерения
расстояния в сантиметрах:
# HCSR04_US_distance_demo.py
# измерение расстояния с помощью ультразвука
from hcsr04 import HCSR04
from time import sleep
sensor = HCSR04(trigger_pin=2, echo_pin=4)
while True:
distance = sensor.distance_cm()
output="Distance: {:6.1f} cm"
print(output.format(distance))
sleep(.1)

Библиотека «HCSR04» генерирует импульс запуска, который запускает
соответствующий импульс передачи в ультразвуковом модуле. После этого система
ожидает прихода эхо-сигнала. Информация о расстоянии передается по ширине
принимаемого импульса. На осциллографе можно увидеть два сигнала:

● 118

Chapter 9 • Using Sensors

Рис.9.21: Импульс передачи ультразвука (верхняя кривая) и импульс
приема (нижняя кривая).
ESP32 нужно только определить ширину эхо-импульса. Это делается библиотечной
функцией. Функция
sensor.distance_cm()
непосредственно возвращает измеренное расстояние в сантиметрах. Затем
измеренное значение может быть выведено на оболочку через
output="Distance: {:6.1f} cm" print(output.format(distance))
и форматируется с одним десятичным знаком.
При разнице температур в 20 °С уже возникает погрешность в 3,4 %. Поэтому для
использования вне помещений и измерения больших расстояний полезна
температурная компенсация. Для простых приложений, таких как помощь при
парковке, температурная компенсация не требуется, как показывает пример
приложения в следующем разделе.

9.16 Больше никаких вмятин и царапин: дальномер для гаражей
Современные гаражи обычно очень компактны с точки зрения затрат. В частности,
подземные парковочные места становятся все более узкими. Здесь повреждения
автомобиля могут быстро произойти при парковке. Устройство предупреждения о
расстоянии очень полезно в таких ситуациях.
Ультразвуковой дальномер может быть легко модернизирован до такого устройства.
Для этого требуется только пороговое значение. Если расстояние между
автомобилем и стеной меньше этого значения, должен прозвучать
предупредительный сигнал. Если ультразвуковой модуль установить в подходящем
месте, можно избежать поломки собственного автомобиля.

● 119

Функцию ШИМ можно использовать для вывода предупредительного звукового
сигнала. В следующей строке отчетливо слышен сигнал частотой 1 кГц:
PWM(Pin(14), freq=1000, duty=512)

Чтобы предупреждающий сигнал был слышен, пассивный пьезо-зуммер должен
быть подключен к контакту D14 платы ESP. На следующем рисунке показан
подходящий зуммер:

Рис.9.22: Пьезо-зуммер.
Это дополнит программу из предыдущей главы:
# HCSR04_anti_colission.py
from machine import Pin, PWM
from hcsr04 import HCSR04
from time import sleep
sensor = HCSR04(trigger_pin=2, echo_pin=4)
beeper = PWM(Pin(14), freq=1000, duty=512)
beeper.deinit()
minDist=10
while True:
distance = sensor.distance_cm()
output="Distance: {:6.1f} cm"
print(output.format(distance))
if (distance --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.