Банк проектов 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