Скачать 65.06 Kb.
|
Система автоматической регистрации времени прохождения трассы (автоматический секундомер) Цель проекта: создание системы автоматической регистрации времени прохождения трассы (автоматический секундомер), способной в автономном режиме засекать время, которое робот потратил на прохождение дистанции. Задачи: 1.Разработать систему автоматической регистрации времени прохождения трассы на базе платы Intel Genuino 101. 2.Написать программный код (скетч). 3.Провести испытания устройства в реальном режиме, внести корректировки и дополнения. 4.Подготовить 3D модель внешней оболочки устройства, распечатать её на 3D принтере. 5.Собрать устройство и презентовать его потенциальным покупателям - организаторам соревнований по робототехнике в направлении "Траектория", "Сортировщик", "Шорт-трек", "Биатлон" и др. Новизна проекта заключается в отсутствии готовых устройств, позволяющих более точно производить измерение времени, потраченного роботом на прохождении трассы. Использование данного устройства позволит исключить человеческий фактор и обеспечить точность определения победителей соревнований (до тысячных секунды) в независимых условиях, что в свою очередь исключит конфликтные ситуации при подведении итогов соревнований и обеспечит более комфортные условия для всех участников. Инструкция по разработке проектаПри разработке данного продукта были использованы Arduino IDE (1.6.11) и программа электронного прототипирования Fritzing (0.9.3b). Что необходимо
Процесс сборкиШаг 1.Рисунок 1. Начало работы. Перед началом работы следует отключить микроконтроллер от всех источников питания. Один ряд контактов на доске прототипирования следует подключить к выходу GND микроконтроллера, другой ряд к выходу 5V, как показано на рисунке 1. Для упрощения, в дальнейшем эти ряды будут обозначаться как ряд 5V и ряд GND. Шаг 2.Подключим LCD экран, на который будет выводиться информация. Названия контактов экрана, которые будут использованы в дальнейшем и сам экран представлены на рисунке 2. Рисунок 2. LCD экран MT-16S2H. Сначала следует вставить контакты экрана в доску для прототипирования. Затем следует подключить питание к экрану следующим образом:
Результат подключения приведен на рисунке 3. Рисунок 3. Подключение питания к LCD экрану. Для подключения экрана к микроконтроллеру следует соединить контакты нижепривёденным способом. Результат представлен на рисунке 4.
Рисунок 4. Подключение экрана к микроконтроллеру. Итоговый результат двух шагов представлен на рисунке 5. Рисунок 5. Итоговый результат двух шагов. Шаг 3.Теперь следует подключить ультразвуковой дальномер, изображение которого и обозначения контактов приведены на рисунке 6. Обозначения слева - направо: Gnd, Echo, Trig, Vcc(VCC). Рисунок 6. Ультразвуковой дальномер HC-SR04. Для начала следует вставить контакты дальномера в доску для прототипирования. Затем для подключения питания следует соединить контакт GND с рядом GND, а контакт Vcc(VCC) с рядом 5V. Подключенный к питанию дальномер изображен на рисунке 7. Рисунок 7. Подключение дальномера к питанию. Для завершения подключения следует соединить Echo с ~9, а Trig с 8, у дальномера и микроплаты соответственно. Результат соединения приведён на рисунке 8. Рисунок 8. Подключение дальномера к микроплате. Итоговым результатом всех шагов является полностью собранный макет секундомера, который изображен на рисунке 9. Рисунок 9. Итоговый результат. СкетчЛистинг скетча с подробными комментариями приведён ниже. // Подключаем стандартную библиотеку LiquidCrystal #include // Подключаем библиотеку для работы с дальнометром #include // Инициализируем объект-экран, передаём использованные // для подключения контакты на Arduino в порядке: // RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd(4, 5, 10, 11, 12, 13); //Конструктор Ultrasonic принимает номера пинов к которым подключены выводы Trig и Echo, соответственно Ultrasonic ultrasonic(8,9); void setup() { // Устанавливаем размер (количество столбцов и строк, 16 и 2 соответственно) экрана lcd.begin(16, 2); // Первичная настройка Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); // Очищаем экран lcd.clear(); // Устанавливаем курсор экрана на позицию 0 0 lcd.setCursor(0, 0); // Печатаем первую строку lcd.print("Counter"); digitalWrite(trigPin, LOW); } // Время которое таймер не будет останавливаться при пересечении линии обзора после первичного пересечения оного, в секундах const int INV = 10; // Длина линии обзора const int LNG = 15; // Переменные для хранения секунд и милисекунд соответственно unsigned int timeS = 0; unsigned int timeMS = 0; // Флаги для событий boolean wait2 = true; boolean wait = true; // Переменная для хранения количесва милисекунд, прошедших с момента запуска микроплаты unsigned int currentMS; // КОличество времени, которое используется для подавления дребезга контактов const int WT = 1; void loop() { lcd.setCursor(0, 1); // Ждем первого пересечения "линии наблюдения" дальномера if (wait) { int duration, cm; // Считывание длительности импульса digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // Перевод расстояния в сантиметры cm = duration / 58; delay(WT); // Что-то пересекает "линии наблюдения" дальномера в первый раз, // на расстоянии = или < 15см if (ultrasonic.Ranging(CM)<=LNG) { // Начинаем отсчет delay(WT); if(ultrasonic.Ranging(CM)<=LNG) wait=false; currentMS = millis(); } } else { // Если объект большой и пересекает линию обзора дальномера несколько раз, // на расстоянии = или < 15см // В течении первых 10 секунд это не допустит остановки таймера if((ultrasonic.Ranging(CM)<=LNG)&&(timeS>INV)) { delay(WT); // Не пересёк ли объект линию наблюдения if(ultrasonic.Ranging(CM)<=LNG) wait2=false; } // Если объект находится на расстоянии = или < 15 см if(!wait2) { // Если объект пересекает линию обзора дальномера после прошествии 10 секунд и // на расстоянии = или < 15см, то мы считаем, что объект сделал "круг" и вернулся на старт if((ultrasonic.Ranging(CM)<=LNG)&&(timeS>INV)) { delay(WT); // Закрепляем прошедшие с момента старта секунды и милисекунды, в формате СЕКУНЛЫ.МИЛИСЕКУНДЫ lcd.print(timeS); lcd.print("."); lcd.print(timeMS); } } else { // Высчитываем прошедшие с момента старта секунды и милисекунды, в формате СЕКУНДЫ.МИЛИСЕКУНДЫ timeS = (millis()-currentMS)/1000; timeMS = (millis()-currentMS)%1000; lcd.print(timeS); lcd.print("."); lcd.print(timeMS); } } } Проведение экспериментов |
Инструкция по применению: назначение Секундомер электронный (далее секундомер) предназначен для измерения длительности |
Авиаперевозка В соответствии с международными правилами авиаперевозки и (или) требованиями аэропортов/перевозчиков Вы должны прибыть в здание аэропорта... |
||
Часы – термометр чцта-250 Инструкция по эксплуатации Часы осуществляют автоматический переход с летнего времени на зимнее и с зимнего времени на летнее в соответствии с таблицей, хранимой... |
Система идентификации транспортных объектов Система автоматической идентификации (сито) служит для автоматической электронной идентификации транспортных объектов (ТО), автомобильного... |
||
Дифференциал Автоматический Красикова (дак) это первый дифференциал,... Дифференциал Автоматический Красикова (дак) — это первый дифференциал, который позволяет добиться 100% автоматической блокировки... |
Инструкция по регистрации юр лиц в системе «iBank2» Внимание! Перед началом регистрации необходимо приобрести устройство защиты электронной подписи (далее эп): usb-токен или смарт-карту... |
||
Техническое задание на строительство и содержание зимней автодороги «Ванкорское м/р нпс-1» Начало трассы – км 212,5 автозимника «Заполярное м/р – Ванкорское м/р»; окончание трассы – нпс-1 |
Инструкция по эксплуатации рН-метр модели 8690 оснащен двойным цифровым... Перед началом работы с прибором внимательно ознакомьтесь с инструкцией по эксплуатации. Перед проведением измерений рекомендуется... |
||
Инструкция по автоматической нумерации документов Для включения автоматической... При помощи справочника Вы самостоятельно осуществляете следующие настройки для реализации автоматической нумерации необходимых типов... |
Фамилия переводчика Оценки Состояния в режиме реального времени, по запросу производящее анализ режима эмуляции, включающее в себя ручной и автоматический... |
||
Техническое задание на выполнение работ по дооснащению оборудования... Система автоматической пожарной сигнализации (далее апс) предназначена для раннего обнаружения очага возгорания и сообщения о нем... |
Инструкция пользователю по регистрации на Сайте orenpay Для регистрации на Сайте ао «Система «Город» Вам необходимо выполнить следующие действия |
||
Методика прохождения тестов 31 Порядок сдачи тестирования по ит 37 Ваших знаний по результатам прохождения специализированных программ подготовки специалистов. Для того чтобы приступить к тестированию,... |
Техническое задание Оказание услуг по техническому сопровождению... Объект/система (элемент): системы контроля и управления противопожарной защитой энергоблоков №№1-4 Калининской аэс, аупс и соуэ здания... |
||
Краткая инструкция по эксплуатации ккм “амс” -100К Для проверки текущего времени нажмите клавишу, на индикаторе появится время. Если при регистрации первой продажи или пробитии нулевого... |
Краткая инструкция по эксплуатации ккм “амс” -100К Для проверки текущего времени нажмите клавишу, на индикаторе появится время. Если при регистрации первой продажи или пробитии нулевого... |
Поиск |