DIY: отладка программ micro:bit с помощью осциллографа (часть 1)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Если ваше хобби или работа связана с микрокомпьютерами и электроникой, то приходится отлаживать как программы, так и «железо», проверяя сигналы на цифровых и аналоговых линиях. В простых случаях для отладки достаточно мультиметра, тестового включения или выключения светодиодов. Но при отладке схем с импульсными сигналами не обойтись без осциллографа.

В этой статье мы расскажем, как при отладке устройств на базе micro:bit (или другого микрокомпьютера) использовать осциллограф. Вы научитесь настраивать осциллограф и проверять сигналы широтно-импульсной модуляции (ШИМ).

Выбор осциллографа

Прежде чем приобрести осциллограф, изучите различные возможности. Дело в том, что цена осциллографов в зависимости от его типа и возможностей может меняться в очень широких пределах — от тысяч до сотен тысяч рублей. 

Вам предстоит сделать выбор между цифровым или аналоговым осциллографом, понять, какая нужна полоса пропускания, сколько и каких требуется входов, купить осциллограф как отдельный прибор или как USB-приставку к компьютеру.

Цифровой или аналоговый

Если кратко, то для серьезной работы с микрокомпьютерной техникой, робототехникой и электроникой следует использовать цифровые осциллографы.

Аналоговые осциллографы сделаны на базе электронно-лучевой трубки, причем на экране вы видите измеряемый сигнал, поступающий на вход осциллографа, в реальном времени. Такие осциллографы удобны при просмотре периодических сигналов, например, при отладке аналоговой звуковой или радиоаппаратуры. 

Если сигналы однократные, непериодические или сложные по форме, то могут возникнуть проблемы с синхронизацией и просмотром. И хотя есть запоминающие осциллографы с электронно-лучевой трубкой, пригодные для просмотра даже однократных сигналов, их стоимость обычно довольно высока.

В современных цифровых осциллографах происходит непрерывное преобразование входного сигнала (или сигналов, если входов несколько) в цифровую форму с помощью скоростного аналого-цифрового преобразователя (АЦП). Полученные в результате данные сохраняются в памяти осциллографа.

Далее в зависимости от выбранного режима и настроек содержимое этой памяти в том или ином виде показывается на экране цифрового осциллографа. При этом можно просматривать сигнал непрерывно, как на экране аналогового осциллографа, или фрагментами. 

Например, можно смотреть фрагменты, извлекаемые из памяти в результате автоматической синхронизации или по срабатыванию так называемого триггера.

С помощью триггера запускается просмотр сигнала, сохраненного в памяти, при достижении им определенного значения (по фронту или спаду), по ширине импульса или другим параметрам в зависимости от модели осциллографа. Изображение на экране можно растягивать или сжимать, изучая форму сигнала в деталях.

Цифровые осциллографы могут быть многоканальными (два или четыре аналоговых входа). Также в некоторых моделях могут быть дополнительные входы цифрового логического анализатора (обычно 16 входов). 

Если осциллограф многоканальный, то на его экране можно наблюдать одновременно несколько сигналов. Например, это могут быть сигналы ШИМ управления двигателями. 

Когда возникает необходимость просмотра множества цифровых сигналов, поможет встроенный в осциллограф цифровой логический анализатор (рис. 1). И если в простейших моделях вы можете увидеть только сами цифровые сигналы, то есть модели осциллографов, распознающих протоколы передаваемых данных, например, UART или I2C.

Рис. 1. Цифровой осциллограф Hantek MSO5202D с логическим анализатором на 16 каналов
Рис. 1. Цифровой осциллограф Hantek MSO5202D с логическим анализатором на 16 каналов

Цифровой анализатор не покажет форму сигнала. В нем используются триггеры, которые срабатывают при изменении состояния входного сигнала с 0 на 1 или наоборот. Порог срабатывания триггеров можно настраивать.

Заметим, что цифровой анализатор можно приобрести как отдельный прибор. В этом есть смысл, если вам приходится часто анализировать потоки данных (а не форму сигнала) или нужно много цифровых каналов.

Полоса пропускания и частота дискретизации сигнала

Стоимость осциллографа очень сильно зависит от таких параметров, как полоса пропускания и скорость оцифровки сигнала. Эти параметры настолько важны, что обычно написаны на лицевой панели прибора.

Полоса пропускания осциллографа определяет возможный частотный диапазон исследуемых сигналов. Если исследовать высокочастотные аналоговые сигналы, то вам нужен осциллограф с достаточной полосой пропускания. 

При этом надо учесть, что на частоте полосы пропускания входной сигнал будет ослаблен на 3 dB или на 30%. Это существенное ослабление, поэтому рекомендуется выбирать осциллограф с полосой пропускания, превышающей в 3–5 раз максимальную частоту исследуемых аналоговых сигналов.

Что же касается цифровых сигналов, то тут ситуация еще хуже. Чтобы увидеть на экране меандр с четкими краями, полоса пропускания должна раз в 10 превышать частоту исследуемых импульсов.  

Теперь о частоте дискретизации или частоте выборки. 

Выше в статье мы говорили, что цифровые осциллографы непрерывно преобразуют поступающие на его входы сигналы в цифровые данные. Не углубляясь в детали, отметим, что для точного воспроизведения формы сигнала частота дискретизации должна быть в 5 раз выше полосы пропускания.

Таким образом, чем шире полоса пропускания, тем более точные измерения вы можете сделать с помощью своего осциллографа. Так что тут все зависит от бюджета, который у вас есть на приобретение этого прибора.

Отдельный прибор или USB-приставка

Если бюджет ограничен, но хочется приобрести осциллограф с хорошими параметрами, возможно, подойдет осциллограф-приставка к компьютеру с интерфейсом USB. 

Уточните, имеется ли у такого осциллографа гальваническая развязка входов с USB-портом, обычно ее нет. В этом случае безопаснее использовать для работы ноутбук, получающий питание от аккумулятора. 

Конечно, осциллограф как отдельный прибор, не требующий подключения к компьютеру, удобнее чем USB-осциллограф. Для отладки большинства несложных систем с микрокомпьютерами вам не потребуется самое новое устройство. Попробуйте поискать на Алиэкспресс, там продаются относительно недорогие приборы, или загляните на Авито.

Готовим осциллограф к работе

Перед проведением измерений или исследований с помощью осциллографа необходимо как минимум выполнить его автоматическую калибровку, а также настройку компенсации щупов. Иначе вы увидите на экране осциллографа вовсе не то, что есть на самом деле.

Осциллограф стоит недешево, и чтобы использовать его возможности, обязательно прочитайте инструкцию к вашей модели. Скорее всего ее можно найти в интернете, да еще и на русском языке.

Мы расскажем об использовании осциллографа Hantek MSO5202D с полосой пропускания 200 МГц и скоростью выборки 1 Gs/s (один миллиард выборок в секунду). У этого осциллографа два аналоговых входа и логический анализатор на 16 входов. 

Для осциллографов других марок описанные в статье процедуры выполняются аналогично, ищите детали в документации.

Начальная инициализация

Итак, вы приобрели новый осциллограф Hantek, а может быть и бывший в употреблении. Чтобы сбросить его настройки в состояние по умолчанию, воспользуйтесь кнопкой DEFAULT SETUP. Кнопка F0 закроет меню настройки по умолчанию, а кнопка F1 сохранит исходные настройки.

Если нужно переключить язык интерфейса осциллографа, то сначала нажмите кнопку UTILITY, а затем с помощью кнопки F6 перейдите на вторую страницу меню. Там нажимайте кнопку F2 до тех пор, пока интерфейс не переключится на нужный вам язык.

Кстати, на этой же странице вы можете поменять цветовую гамму изображения на экране, нажимая кнопку F3. По умолчанию выбран голубой цвет Blue

Автоматическая калибровка

Процедура автоматической калибровки нужна для получения максимальной точности измерений. Ее нужно запускать, если температура изменилась более чем на 5 градусов.

Включите осциллограф и прогрейте его в течение 20 минут. Отсоедините от осциллографа все кабели, если они были подключены. Затем нажмите кнопку UTILITY, выберите из меню Do Self Cal (Выполнить автоматическую калибровку) и следуйте указаниям на экране.

Тут придется подождать минут 10–15. Процедура калибровки выполняется довольно долго, и пока она идет, внутри осциллографа слышны щелчки. Не выключайте осциллограф, пока калибровка не закончится.

Настройка компенсации щупов

Для исследования сигналов через аналоговые входы используются щупы. В осциллографе Hantek MSO5202D предусмотрены аналоговые входы CH1 (желтый) и CH2 (синий), а также вход для подачи внешнего сигнала триггера EXT TRIG (серый).

Прежде чем пользоваться щупами, настройте их компенсацию. 

Начнем со входа CH1. Подключите к этому входу щуп, и установите на нем коэффициент ослабления 10X.

Нажмите кнопку PROBE CHECK. На экране появится инструкция — нужно проверить коэффициент ослабления и подключить щуп к контактам PROBE COMP. Эти контакты (земля и сигнальный) обозначены на панели осциллографа как ~5В @1КГц.

После подключения на входе канала CH1 появится тестовый сигнал в виде меандра (периодический сигнал прямоугольной формы) с амплитудой 5В и частотой 1КГц.

Убедитесь, что установлен коэффициент ослабления 10X, и это соответствует выбору в меня Probe. При необходимости с помощью кнопки F1 выберите правильное значение для канала CH1. После этого нажмите кнопку F2, выбрав функцию проверки Check. На экране появится тестовый сигнал в виде меандра.

Далее вооружитесь пластмассовой отверткой из комплекта поставки осциллографа, и вращайте подстроечный конденсатор на разъеме щупа. Добейтесь, чтобы форма отображаемого сигнала была правильной, с прямыми углами. Металлическую отвертку использовать нельзя, так как появляются наводки и искажения.

На рис. 2 показан щуп и отвертка, которой нужно вращать подстроечный конденсатор. 

Рис. 2. Щуп с отверткой для настройки компенсации
Рис. 2. Щуп с отверткой для настройки компенсации

На рис. 3 и 4 показаны осциллограммы для случая, когда компенсация настроена неправильно — наблюдаются либо заваленные фронты, либо выбросы.

Рис. 3. Неправильная компенсация с заваленными фронтами
Рис. 3. Неправильная компенсация с заваленными фронтами
Рис. 4. Неправильная компенсация с выбросами
Рис. 4. Неправильная компенсация с выбросами

Если вам удалось настроить компенсацию, вы увидите меандр с прямоугольными фронтами без заваленных фронтов и выбросов (рис. 5).

Рис. 5. Правильно настроенная компенсация
Рис. 5. Правильно настроенная компенсация

Закончив настройку, нажмите кнопку F3 (функция Finish).

Повторите процедуру для второго щупа, подключив его к разъему CH2. Не забудьте выбрать в меню Probe с помощью кнопки F1 коэффициент ослабления 10X для канала CH2.

Теперь ваш осциллограф настроен и готов к работе!

Также мы подготовили краткую видеоинструкцию по начальной настройке осциллографа Hantek MSO5202D.

Исследуем сигналы ШИМ

Ваш микрокомпьютер micro:bit может управлять моторами, яркостью свечения светодиодов или  ламп накаливания. Однако в нем нет цифро-аналогового преобразователя (ЦАП), с помощью которого программа могла бы задавать уровень напряжения на выходах микрокомпьютера. Вместо этого для регулирования скорости вращения моторов или яркостью светодиодов используется широтно-импульсная модуляция ШИМ (Pulse-Width Modulation, PWM) .

ШИМ предполагает, что на управляемое устройство будут подаваться импульсы. Чем шире импульсы, тем быстрее будет вращаться вал двигателя или тем ярче будет гореть светодиод.

Но что делать, если программа ведет себя не так, как вы ожидаете?

Конечно, можно подключить к выходу микроконтроллера стрелочный или цифровой вольтметр, и наблюдать за его показаниями. Однако так вы не узнаете реальное положение дел, а получите лишь некоторые усредненные значения напряжения.

Другое дело, если для исследования сингалов ШИМ использовать осциллограф. Он покажет импульсы на экране, и вы сможете проверить, как работает ваша программа (рис. 6).

Рис. 6. Исследование сигналов ШИМ с помощью осциллографа
Рис. 6. Исследование сигналов ШИМ с помощью осциллографа

Программа для управления ШИМ

В микрокомпьютере micro:bit для получения сигналов ШИМ можно использовать одновременно три аналоговых контакта P0, P1 и P2 (могут работать как выходные и как входные).

Если вы составляете программу в визуальной среде Microsoft MakeCode, то для получения сигнала ШИМ нужно использовать блок записать аналоговый сигнал в контакт. Этот блок находится в палитре РасширенныеКонтакты.

В качестве параметра блоку передается значение о 0 до 1023. Чем больше будет это значение, тем шире импульс на выходе контакта.

Сразу заметим, что к выходам micro:bit можно подключать только слаботочные устройства, потребляющие ток не более 5 мА, такие как светодиоды с токоограничивающими резисторами. Если нужно управлять двигателями, используйте специальные контроллеры, например, MX1508.

Для изучения приемов работы с осциллографом при отладке программ для micro:bit мы подготовили несложную программу microbit-pwm.hex.

Эту и другие программы из нашей статьи можно загрузить из репозитория Github https://github.com/AlexandreFrolov/oscilloscope-bin.

В блоке при начале программы для хранения текущих значений ШИМ инициализируются три переменные pwm1, pwm2 и pwm3, по одной для каждого контакта P0, P1 и P2. В них записываются значения 64, 128 и 256, соответственно (рис. 7).

Рис. 7. Блок инициализации программы microbit-pwm.hex
Рис. 7. Блок инициализации программы microbit-pwm.hex

Далее с помощью блока записать аналоговый сигнал в контакт эти значение выводятся в соответствующие контакты, а на мониторе micro:bit отображается буква «M».

Для управления шириной импульсов используйте кнопки А и В, расположенные на плате микрокомпьютера.

Когда вы нажимаете кнопку A, блок обработки этой кнопки увеличивает текущее значение переменной pwm1 на 128. При достижении или превышении максимально допустимого значения 1024 в эту переменную записывается значение 64.

И, наконец, обработчик нажатия кнопки A устанавливает ширину импульсов ШИМ на контакте P0 с помощью блока записать аналоговый сигнал в контакт (рис. 8).

Рис. 8. Обработка нажатий кнопки A
Рис. 8. Обработка нажатий кнопки A

Аналогично устроен обработчик нажатия кнопки B, а также комбинации кнопок A и B (рис. 9).

Рис. 9. Обработка нажатия кнопки B и комбинации кнопок A+B
Рис. 9. Обработка нажатия кнопки B и комбинации кнопок A+B

Теперь нажимая кнопки, вы можете регулировать ширину импульсов на каждом из контактов P0, P1 и P2 по отдельности. 

Подключаем осциллограф к micro:bit

Если вы уже откалибровали свой осциллограф и настроили компенсацию щупов, подключите канал CH1 осциллографа к контакту P0 микрокомпьютера micro:bit, а канал CH2 — к контакту P1. Не забудьте также подсоединить щупы к земле micro:bit.

При сборке вам пригодится переходник, который можно найти в интернете по названию «сборный Edge Connector для BBC micro:bit», или адаптер micro:bit Breakout, удобный для установки на макетную плату (рис. 10). 

Рис. 10. Переходники для подключения micro:bit
Рис. 10. Переходники для подключения micro:bit

Подключите micro:bit к интерфейсу USB вашего компьютера, а затем загрузите описанную выше программу microbit-pwm.hex в микрокомпьютер, скопировав файл программы на дисковое устройство MICROBIT.

Убедитесь, что после завершения загрузки на дисплее micro:bit появилась буква «M». Это означает, что программа работает, выдает сигналы ШИМ на контакты, а также ожидает, когда вы будете нажимать кнопки A и B.

Теперь нажмите на осциллографе кнопку AUTO SET. На экране осциллографа вы увидите сигналы на контактах P0 и P1 (рис. 11).

Рис. 11. Сигналы на контактах P0 и P1
Рис. 11. Сигналы на контактах P0 и P1

Закройте меню Autoset, нажав кнопку F0 на панели осциллографа. Покрутите ручку SEC/DEV в блоке HORIZONTAL, чтобы изменить масштаб по горизонтали. Так вы сможете рассмотреть импульсы более детально.

Теперь нажмите несколько раз кнопку A на плате micro:bit. Вы увидите, как импульсы, поступающие с контакта P0, будут расширяться. На рис. 12 мы показали осциллограмму, растянутую по горизонтали.

Рис. 12. Осциллограмма ШИМ после регулировки
Рис. 12. Осциллограмма ШИМ после регулировки

Проведите аналогичный эксперимент с кнопкой B, убедившись, что ее нажатие приводит к расширению импульсов на контакте P1.

Обратите внимание, что в нижней части экрана осциллографа отображается частота следования импульсов, равная 50 Гц. Для измерения амплитуды можно использовать тот факт, что одна клетка шкалы осциллографа соответствует напряжению 2 В. Далее в статье мы расскажем, как измерить амплитуду и длительность импульсов точнее с помощью курсора.

Используем триггер

Режим AUTO SET требует минимальных навыков и в ряде случаев удобен для просмотра периодических сигналов. Однако по-настоящему возможности цифрового осциллографа раскрываются только при использовании триггера.

Как мы уже говорили, цифровой осциллограф непрерывно преобразует входные сигналы в цифровую форму, сохраняя их в памяти. Триггер осциллографа позволяет задать событие, при возникновении которого данные из памяти показываются на экране осциллографа. При этом вы сможете посмотреть осциллограмму как до возникновения события, так и после него (разумеется, только в определенном интервале времени — ведь объем памяти осциллографа ограничен). 

Чтобы использовать триггер, нажмите кнопку TRIG MENU, расположенную в блоке TRIGGER. В правой части экрана осциллографа появится меню Trigger, где можно определить условие возникновения события. Кнопки F1-F6 предназначены для работы с элементами этого меню.

В меню Type оставьте режим Edge, позволяющий задать срабатывание триггера по нарастающему или спадающему фронту импульса. Если вас интересует срабатывание по нарастающему фронту, задайте в меню Slope с помощью кнопки F3 значение Rising, иначе — значение Falling.

В меню Source выберите вход осциллографа, состояние которого будет отслеживать триггер. Укажите здесь CH1 или CH2.

Чтобы осциллограмма отображалась не все время, как в режиме AUTO SET, а только при срабатывании триггера, задайте в меню Mode с помощью кнопки F4 режим Normal.

На рис. 13 показано срабатывание триггера по нарастающему фронту.

Рис. 13. Срабатывание триггера по нарастающему фронту
Рис. 13. Срабатывание триггера по нарастающему фронту

Теперь растяните ручкой SEC/DIV осциллограмму по горизонтали, и нажмите несколько раз кнопку F3. Убедитесь, что в центре экрана, обозначенного как 0.000s, появляется то нарастающий, то спадающий фронт импульса с контакта P0. При этом импульс с контакта P1 будет соответствующим образом сдвигаться по горизонтали.

Ищем пятна на солнце

В идеальном мире фронты меандра строго вертикальные, а напряжение на контактах micro:bit мгновенно меняется от нуля до примерно 3.3 В.

Однако на самом деле не все так просто. В схемах всегда присутствуют паразитные емкости и индуктивности, способные исказить форму сигнала. Выходное сопротивление контактов micro:bit также не равно нулю. 

Растяните ручкой SEC/DIV осциллограмму по горизонтали еще сильнее, чтобы увидеть плавное нарастание фронта (рис. 14).

Рис. 14. Передний фронт на самом деле нарастает постепенно
Рис. 14. Передний фронт на самом деле нарастает постепенно

Обратите внимание на зеленую пунктирную линию. Она соответствует уровню срабатывания триггера. Покрутите ручку LEVEL в блоке TRIGGER, и посмотрите, как этот уровень влияет на отображение осциллограммы.

А как узнать, что происходит с задними фронтами импульсов?

Просто переключите триггер на срабатывание по спадающему фронту, и вы убедитесь, что задние фронты импульсов тоже далеко не идеальные (рис. 15).

Рис. 15. Задние фронты импульсов тоже не идеальные
Рис. 15. Задние фронты импульсов тоже не идеальные

Одна клетка по горизонтали соответствует интервалу времени 40 нс. Таким образом, сигналы на контактах micro:bit меняют свое состояние примерно за 60 нс. 

Конечно, если речь идет об управлении двигателями или светодиодами, такими временами можно запросто пренебречь. Однако теперь с помощью триггера и масштабирования вы можете легко увидеть, как эти фронты выглядят на самом деле. При подключении нагрузки к выходам микроконтроллера время нарастания и спада может измениться.

Итак, теперь вы умеете пользоваться триггером и выбирать, какой фронт осциллограммы будет использован для начала показа данных на экране осциллографа. Попробуйте повторить эти действия для входа CH2, изменив кнопкой F2 в меню Source источник получения данных для триггера.

Меню триггера можно убрать с экрана кнопкой F0.

Подключаем логический анализатор

Все вроде бы хорошо, но есть одна проблема. Мы видим сигналы P0 и P1, но не видим, что происходит на контакте P2. Конечно, можно переключить, например, щуп CH2 с контакта P1 на P2, однако при этом пропадет возможность контролировать состояние контакта P1.

Осциллограф Hantek MSO5202D оборудован простым логическим анализатором, позволяющим отслеживать состояние до 16 цифровых сигналов. Давайте воспользуемся этим, и подключим входы логического анализатора D0, D1 и D2 к контактам P0, P1 и P2 нашего микроконтроллера.

Для включения анализатора нажмите на осциллографе два раза кнопку F7.

Вам предстанет довольно неприглядная картина — осциллограммы аналоговых входов CH1 и CH2 будут мешать просмотру данных логического анализатора (рис. 16).

Рис. 16. Данные аналоговых каналов мешают смотреть данные анализатора
Рис. 16. Данные аналоговых каналов мешают смотреть данные анализатора

Видно, что осциллограммы контактов P0, P1 и P2 micro:bit находятся в нижней части экрана. Таким образом, мы задействовали только три из 16 каналов логического анализатора.

Если вам нужны все 16 каналов, отключите аналоговые входы с помощью кнопок CH1 MENU и CH2 MENU. Однако нам интереснее увидеть два аналоговых сигнала с контактов P0 и P1, а также сигналы со всех трех контактов на логическом анализаторе.

Давайте выполним настройку логического анализатора с помощью меню LA.

Если нажать на панели осциллографа кнопку F2, откроется меню D15-D8, управляющая одноименными каналами анализатора. Нажмите здесь еще раз кнопку F2, и на экране останутся осциллограммы только каналов D0-D7. Нажмите кнопку F6, чтобы вернуться в меню LA

Обратите внимание на меню Threshold, которое активируется по кнопке F4. Здесь с помощью ручки V0 можно выбрать порог срабатывания входов анализатора (триггеров анализатора). Для нашего микрокомпьютера подойдут уровни TTL или CMOS, но не ECL (там используется отрицательное напряжение).  При необходимости можно выбрать режим User, чтобы задать порог срабатывания в вольтах вручную, вращая ручку V0.

Теперь, когда мы отключили показ на экране ненужных нам сейчас каналов D8-D15, верхняя часть экрана расчистилась. Вращая ручки POSITION и VOLTS/DIV, добейтесь, чтобы осциллограммы каналов CH1 и CH2 находились в верхней части экрана. 

Откройте снова меню триггера TRIG MENU. Нажав кнопку F2, можно выбрать для триггера не только один из двух аналоговых каналов, но и любой из каналов цифрового анализатора. На рис. 17 мы показали результат настройки триггера на срабатывание по нарастающему фронту от канала D2, подключенного к контакту P2 микрокомпьютера.

Рис. 17. Срабатывание триггера по фронту от контакта P2
Рис. 17. Срабатывание триггера по фронту от контакта P2

Проверяем работу сонара HY-SRF04

Ультразвуковой сонар HY-SRF04 (рис. 18) позволяет измеряет расстояние в диапазоне от 3 см до 3 метров и широко используется при создании моделей роботов, вездеходов и тому подобных устройств.

Рис. 18. Сонар HY-SRF04
Рис. 18. Сонар HY-SRF04

Собираем стенд для проверки сонара

Для питания сонара нужно напряжение 4.5–5 В, например, три последовательно соединенные батарейки АА или ААА. К сожалению, вывод 3V микрокомпьютера micro:bit для питания сонара не подойдет, так как там слишком низкое напряжение.

Питающее напряжение нужно подавать на контакт Vcc сонара. При этом контакт Gnd, а также «минус» источника питания сонара нужно соединить с землей micro:bit.

Собирая стенд, подключите контакт Trig сонара к выводу P0, а контакт Echo — к выводу P1 микрокомпьютера. Первый из этих контактов запускает отправку ультразвуковых сигналов, а второй служит для получения отраженных эхоимпульсов.

Щуп канала CH1 осциллографа подключите к контакту P0, а щуп канала CH2 — к контакту P1 микрокомпьютера (рис. 19).

Рис. 19. Стенд для отладки программы измерения расстояния при помощи сонара
Рис. 19. Стенд для отладки программы измерения расстояния при помощи сонара

Напротив сонара мы положили на стол коробочку зеленого цвета от micro:bit. Передвигая ее, можно изменять расстояние между сонаром и препятствием.

Программа измерения расстояния для micro:bit

Чтобы проверить сонар в работе, мы подготовили очень простую программу microbit-sonar.hex (рис. 20).

Рис. 20. Программа microbit-sonar.hex
Рис. 20. Программа microbit-sonar.hex

Эта программа в бесконечном цикле постоянно вызывает блок ping trig, который появится в проекте Microsoft MakeCode после установки расширения Sonar. После вызова блока показать число в работе программы создается задержка на 100 мс.

Блок ping trig возвращает расстояние от сонара до препятствия в сантиметрах, которое выводится на монитор micro:bit.

Смотрим импульсы отраженного сигнала

Настройте триггер осциллографа так, чтобы он срабатывал по нарастающему фронту канала CH2, то есть по переднему фронту отраженного сигнала с контакта Echo

На экране осциллографа вы увидите короткий импульс отправки ультразвукового сигнала на канале CH1, а также импульс отраженного сигнала на канале CH2 (рис. 21).

Рис. 21. Смотрим отправленный и отраженный сигнал сонара
Рис. 21. Смотрим отправленный и отраженный сигнал сонара

Изменяя расстояние между сонаром и препятствием, наблюдайте изменение длительности отраженного импульса.

Измерение длительности импульса

Длительность отраженного импульса можно оценить с помощью координатной сетки на экране осциллографа. Например, на рис. 21 одна клетка соответствует 80 мс, а длина импульса составляет почти три клетки. Получается, что длительности импульса немного меньше 240 мс.

Но можно ли измерить длину этого импульса точнее? Да, и в этом нам поможет режим курсора осциллографа. 

Нажмите кнопку CURSOR и кнопкой F1 выберите режим Time. В меню Source при этом кнопкой F2 нужно выбрать канал отраженного сигнала CH2 (рис. 22).

Рис. 22. Измерение длительности импульса в режиме курсора
Рис. 22. Измерение длительности импульса в режиме курсора

Нажав кнопку F4, выберите в меню Select cursor курсор S. Вращая ручку V0, переместите вертикальную пунктирную линию к переднему фронту импульса. Затем выберите курсор E, и ручкой V0 переместите линию курсора к заднему фронту импульса.

После этого в правом нижнем углу экрана вы увидите точное значение длительности импульса, в нашем случае это 220 мс.

В расширении Sonar для получения расстояния в сантиметрах длительность импульса в микросекундах делится на 58. Выполнив эту нехитрую операцию, вы сможете проверить значение расстояния, которая ваша программа показывает на мониторе микрокомпьютера и сравнить с измеренным при помощи осциллографа значением.

Сегодня остановимся на этом. В следующий раз исследуем сигналы управления сервоприводом и данные протокола I2C, а также измерим шумы и пульсации в цепях электропитания.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Источник: https://habr.com/ru/company/first/blog/673768/


Интересные статьи

Интересные статьи

В этой статье я расскажу про атаку PetitPotam, которая позволяет при определенных условиях захватить контроллер домена всего за несколько действий. Атака основана на том, что можно заставить контролле...
Это третья часть серии заметок о реактивном программировании, в которой будет представлено введение в WebFlux - реактивной веб-фреймворк Spring. Читать далее ...
В этой статье мы рассмотрим, как система управления 1С-Битрикс справляется с большими нагрузками. Данный вопрос особенно актуален сегодня, когда электронная торговля начинает конкурировать по обороту ...
Вячеслав Ермолин, 3 мая 2020 год. О чем речь? Любители космонавтики за последние пару дней услышали и прочитали много об эпической победе прогресса над ретроградами. НАСА выбрала SpaceX (...
Именно таким вопросом я задался, когда будучи простым физическим лицом и гражданином РФ, устроился на удалённую работу разработчиком ПО в одну иностранную компанию и начал получать заработную п...