Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЗ система.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆
  • Sequential Function Chart (SFC) – язык последовательных функциональных схем (международная версия французского стандарта «Графсет»);

  • Function Bloc Diagrams (FBD) – язык функциональных блоковых диаграмм, повсеместно используемый в Европе и позволяющий строить комплексную процедуру, состоящую из различных функциональных библиотечных блоков;

  • Ladder Diagrams (LD) - язык релейных диаграмм, распространенный в основном в США для описания логических выражений любой сложности;

  • Structured Text (ST) – язык структурированного текста,- из семейства языков Паскаль,- реализует гибкие процедуры обработки данных;

  • Instruction List (il) – язык инструкций, относится к классу ассемблеров, - для создания оптимизированных процедур.

Встроенные компиляторы CODESYS генерируют машинный код (двоичный код), который загружается в контроллер. Поддержаны основные 16-и и 32-х разрядные процессоры: Infineon C166, TriCore, 80x86, ARM (архитектура), PowerPC, SH, MIPS (архитектура), Analog Devices Blackfin, TI C2000/28x и другие, предоставившие в систему исполнения CoDeSys так называемые target-файлы (hex-файл) для прошивки того или иного контроллера.

Инструмент CODESYS Application Composer позволяет перейти от программирования практических приложений к их быстрому составлению. Пользователь составляет собственную базу объектов, соответствующих определенным приборам , механическим узлам машины и т.п. Каждый объект включает программную реализацию и визуальное представление. Законченное приложение составляется из необходимых объектов, конфигурируется и автоматически генерируется программа на языках МЭК 61131-3.

Для программирования МК семейства Mega используется язык Processing, а для работы с этим языком новичками, не знакомыми близко с разработкой программного обеспечения создана интегрированная среда разработки ArduinoIDE —кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату.

Язык программирования аналогичен используемому в проекте Wiring. Строго говоря, это C/C++, дополненный некоторыми библиотеками. Программы обрабатываются с помощью препроцессора, а затем компилируется с помощью AVR-GCC- GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU.- Изначально GCC поддерживал только язык Си, но позднее был расширен для компиляции исходных кодов на таких языках программирования, как C++, Objective-C, Java, Фортран и Ada.

С учетом вышеприведенных определений основные элементы информационной системы в составе структурной схемы мобильного робота могут быть представлены на рис.1.

Блок сенсоров для ультразвуковой системы управления мобильным роботом с обходом препятствий.

Принцип действия и первичные преобразователи

Как известно, скорость звука в воздухе равна около 340 м/с. Таким образом, принцип ультразвукового сенсора состоит в посылке ультразвукового импульса частотой 40 кГц и отслеживание отраженного сигнала (эхо). Зная время прохождения импульса и отраженного ультразвукового сигнала, можно получить расстояние. Разделив на два, мы получим расстояние от ультразвукового датчика до первого препятствия, от которого был отражен сигнал.

В качестве первичных преобразователей применен пьезокерамический ультразвуковой излучатель MA40B8S и пьезокерамический ультразвуковой датчик MA40B8R открытого типа. Основные параметры приведены в таблице 1 ниже.

Табл.1

Устройство

Назначение

Частота

Направленность, град

Емкость, пФ

Область детектирования, м

Входное напряжение, макс, В

MA40B8S

Излучатель

40 кГц

50 (симметричный)

2000

0.2 … 6

40

MA40B8R

Датчик

40 кГц

50 (симметричный)

2000

0.2 … 6

—

Рассмотрим ультразвуковой модуль измерения расстояния HC-SR04 (Ultrasonic ranging module HC-SR04) производства корпорации Scharp на базе Devantech SRF04, рис. 2.

О собенности Напряжение питания: 5V DC Ток покоя: <2mA Эффективный угол: <15° Диапазон измерения расстояния: 2–400 cm Разрешение: 0.3 cm

SRF04/SRF05 - это только датчик, который напрямую информацию о расстоянии не выдает. У датчика помимо выводов питания имеется ещё вывод триггера и вывод эха. При настройке вывода триггера высоким датчик генерирует 8-периодную 40 kHz ультразвуковую волну. В этот момент вывод эха становится высоким и остается высоким до того времени, пока отображенная звуковая волна достигнет датчика, рис. 3.

Т аким образом, сигнал эха показывает время, в течение которого звук распространяется до объекта и обратно. Измерив это время, умножив его на скорость распространения и разделив на два, можно получить расстояние до объекта.

Принципиальная схема сенсора представлена на рис.4. Для реализации диаграммы сигналов SRF04 используется микроконтроллер PIC12C508, а для питания излучателя MA40B8S напряжением ±10в – контроллер MAX232. Такое решение позволяет увеличить дальность локации до 4м и подать -10в на операционный усилитель LP331 компаратора

Приемная часть ультразвукового дальномера состоит из микрофона MA40B8R 40кгц и каскада из двух операционных усилителей LM6032. Первый с помощью обратной связи настроен на коэффициент усиления 1:100, второй на 1:10. Между операционными усилителями включены конденсаторы, выполняющие роль частотных фильтров - убирающих все низкочастотные сигналы.

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

П осле компаратора уровень сигнала (уже можно сказать логического) понижается до 5 вольт и идет в прерывание микроконтроллера - далее уже работает программа.

Для использования ультразвукового датчика Devantech с микроконтроллером AVR, нужно выводы триггера и эха соединить с какими-либо выводами AVR. Для измерения времени желательно использовать 16-битный таймер, к примеру, timer3. На сигнал Trig нужно подавать короткие импульсы длительностью 10мкс. Этот импульс запускает эхо-локатор. Он уже сам генерирует пачку ультразвуковых импульсов (40кГц) для излучателя и сам ловит отраженное эхо.

Далее приведена функция pulseIn (дополнительная функция языка Wiring), которая производит всю процедуру измерения - генерирует сигнал триггера, запускает таймер, измеряет длину сигнала эха и переводит его в расстояние в сантиметрах.

unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); Вызов:

pulseIn(порт, значение, таймаут);

Описание: Считывает импульс (высокий или низкий) c цифрового порта и возвращает продолжительность импульса в микросекундах, импульс ожидается в течении таймаута(если не указать — будет ждать 1с). Например, если параметр «значение» при вызове функции установлен в HIGH, то pulseIn() ожидает, когда на порт поступит высокий уровень сигнала. С момента его поступления начинается отсчет времени до тех пор, пока на порт не поступит низкий уровень сигнала.

Функция возвращает длину импульса (высокого уровня) в микросекундах. Работает с импульсами от 10 микросекунд до 3 минут. Обратите внимание, что эта функция не будет возвращать результат, пока импульс не будет обнаружен или пока не истечёт таймаут (по умолчанию 1с) Параметры: порт: номер порта, с которого считываем импульс значение: тип импульса HIGH или LOW таймаут: время в микросекундах в течении которого ждать импульс, опция, по умолчанию 1с Возвращаемое значение: возвращает длительность импульса в микросекундах (тип int) Пример:

  int duration; // объявление переменной duration типа int   duration = pulseIn(pin, HIGH); // измеряем длительность импульса