Банк проектов 8-11 Банк проектов 8-11 кл | Page 60
Из данного примера видно, что настройка порта контроллера для использования датчика
реализуется строкой Ultrasonic ultrasonic(9,8).
Получить значения с ультразвукового датчика позволяет функция ultrasonic.Ranging(CM), где
в скобках указаны единицы измерения полученных значений.
В
программе
предусмотрен
вывод
данных
через
монитор
порта
командой
Serial.print(ultrasonic.Ranging(CM)).
Предварительно производится настройка скорости передачи данных: Serial.begin(9600).
Одним из самых важных пунктов в программе является определение результата заезда
робота. Чтобы засечь время, рекомендуется использовать функцию millis().
Данная функция возвращает количество миллисекунд с момента начала выполнения
текущей программы на плате Arduino. То есть задача сводится к тому, что нужно создать две
переменные, в которые мы сохраним текущее время с момента запуска программы при
прохождении линии старта, например: t 1 = millis(), и во вторую — время при прохождении линии
финиша.
Таким образом, с помощью разности можем вычислить время заезда и полученный
результат вывести в монитор среды Arduino (рис. 5) командой Serial.print.
Рисунок 5. Открытие монитора порта в Arduino IDE
Следует отметить, что в программе рекомендуется использовать условный оператор if для
того, чтобы в нужный момент времени зафиксировать прохождение старта и финиша. Дистанция
(S 1 и S 2 на рисунке 2) подбирается экспериментальным путём и пороговое значение для условия if
в том числе. Очевидно, оно должно быть меньше расстояния S 1 и S 2 , так как робот может
отклоняться в сторону от чёрной линии на поле.
Модернизация проекта
В качестве дополнительного упражнения добавить LCD-экран для отображения времени на
экране или Bluetooth-модуль для отображения времени на сотовом телефоне через программу
Bluetooth-терминал.
60