фйстД
Увеличение средней ошибки дистанции вместо уменьшения в списке несовпавших деревьев с использованием метода 3 вместо метода 1 указывает, что позиции локальных максимумов корреляционного изображения смазываются, если изображение сглажено. В сравнении с методом 1 методы 2-4 увеличивают количество совпадений, но из таблицы 2-4 этого не видно, когда мы сравниваем эти три метода. Метод 2 выглядит намного лучше по сравнению с другими методами для снимка 144, в то время как (снимок 124) лучшим является метод номер 3. Результат для этих двух комбинаций показан на рис. 6 и 7. Понятно, что результаты для снимка 124 намного лучше, чем для снимка 144. Не удивительно, ведь человек находит это более сложным, чтобы вычленить верхушки деревьев на снимке 144 нежели на 124. Больше того, сравнивая рис.3 и 6, можно заметить, что для снимка 144 числа верхушек деревьев даже не было найдено вариантов (т.е. у них нет отвечающих максимуму по шаблону корреляционной функции). Это проблема, которая не возникла для снимка 124.
Предложенные как модификации прямой максимизации корреляционной функции три метода с использованием сглаживания или прямого устранения ненужных вариантов дают усовершенствование в работе с распознаванием верхушек деревьев.
Библиографический список
1. Kim Dralle. Locating Trees by Digital Image Processing of Aerial Photos. PhD thesis, Royal Veterinary and Agricultural University of Denmark, Frederiksberg,Denmark, 1997.
2. Kim Dralle and Mats Rudemo. Stem number estimation by kernel smoothing in aerial photos. Canadian Journal of Forest Research, 26:1228-1236, 1996.
3. Kim Dralle and Mats Rudemo. Estimation of individual tree positions from aerial photos. Manuscript submitted December 1996 to Canadian Journal of Forest Research,1997.
4. Richard J. Pollock. A model-based approach to automatically locating tree crowns in high spatial resolution images. In Jacky Desachy, editor, Image and Signal Processing for Remote Sensing, Proc. SPIE 2315, pages526-537, Rome, Italy, 1994.
5. Robert J. Woodham and Malcolm H. Gray. An analytic method forradiometric correctionof satellite multispectral scanner data. IEEE Transactions on Geoscience and Remote Sensing, 25(3):258-271, May 1987.
СТАРТОВЫЙ НАБОР ДЛЯ ИЗУЧЕНИЯ МИКРОСХЕМЫ ATTINY 2313
А.А. ТРОИЦКИЙ, доц. каф.автоматизации и управления МГУЛ
Многие фирмы, выпускающие микроконтроллеры, разрабатывают так называемые стартовые наборы, которые используются для изучения свойств микроконтроллеров и исследования возможных способов их применения. Они состоят из микроконтроллера, системы индикации его состояния, устройств и штепсельных разъемов для связи с другими системами и компьютером.
Материалом для статьи послужила разработка стартового набора, проведенная на кафедре АиУ для использования его в качестве лабораторного макета в курсе «Микропроцессорные системы управления». При этом преследовались следующие цели:
- показать необходимость проведения студентами реальных конструкторских работ для формирования специалиста;
troitsky@mgul.ac.ru - показать возможность изготовления силами студентов в современных условиях реальных качественных лабораторных макетов промышленными способами.
Для этого на кафедре автоматизации и управления в системе проектирования печатных плат P-CAD 2004 была разработана принципиальная схема устройства и конструкция печатной платы. Затем были заказаны 8 экземпляров плат, закуплены комплектующие изделия и 5 макетов были распаяны и испытаны. Ниже приводится подробное описание этого процесса.
В основе каждой микропроцессорной системы лежит конкретный микропроцессор, выполняющий определенный набор операций и окруженный рядом периферийных устройств. В качестве такого микроконтроллера была вы-
154
ЛЕСНОЙ ВЕСТНИК 6/2012
ДфЭст
Рис. 1. Функциональная схема автоматизированной системы управления техническим объектом: ЭВМ - управляющая вычислительная машина, COM, USB - порты последовательной передачи информации, RxD-линия связи для приема информации, TxD - линия связи для передачи информации, G - линия заземления, AT2313 - ведущий программируемый микроконтроллер ATtiny2313, UART, I2C - порты последовательной передачи информации, PA, PB, PD, - порты параллельной передачи информации, КО - контролируемый объект (двигатель), ТУ - элементы телеуправления, ТС - элементы телесигнализации, ПМК 1, ПМК2 - ведомые микроконтроллеры
Рис. 2. Принципиальная схема стартового набора ATtiny 2313. DD1 (ADM232) - драйвер линии связи с COM портом компьютера, DD2 (ADM485) - дифференциальный приемопередатчик линии связи с контролируемыми пунктами, DD3 (ATtiny2313) - ведущий программируемый микроконтроллер системы управления, XP1 (DB9) - разъем для связи с СОМ портом компьютера, XP2 (BH10) - разъем для связи с объектами управления, XP3 (BH10) - разъем для записи программы во флеш-память контроллера, S1:1 - кнопка RESET, S1:2, S1:3 - кнопки внешних прерываний INTO, INT1, VD1, VD2, VD3, VD4 - светодиоды-индикаторы, 2 - кварцевый резонатор внутреннего тактового генератора
брана микросхема ATtiny2313 фирмы Atmel из-за его сравнительной простоты, дешевизны и достаточно большого набора выполняемых функций [1]. Существует много вариантов применения контроллера в различных системах
управления. Чтобы облегчить изучение работы контроллера, ограничимся рассмотрением его работы в составе системы управления электроприводом. Функциональная схема такой системы представлена на рис.1 Принципиальная
ЛЕСНОЙ ВЕСТНИК 6/2012
155
схема стартового набора представлена на рис.2. Назначение микросхем и разъемов указано в подписях под рисунками.
Микропроцессорная система управления асинхронным реверсивным двигателем
Наиболее полное представление о работе контроллера может быть получено в процессе проектирования реальной системы управления электродвигателем. В нашем распоряжении имеется реверсивный асинхронный двигатель с двумя обмотками управления, обеспечивающими вращение вала влево и вправо. Сдвиг фаз напряжения в обмотках статора осуществляется конденсатором.
Рассмотрим программы основных действий, которые должен выполнять контроллер в составе системы управления электроприводом:
- обмен информацией между компьютером и контроллером;
- выдача управляющих команд объектам управления через параллельные порты и устройства связи с объектами (УСО);
- получение цифровой или аналоговой информации, ее обработка и применение в процессах управления;
- обработка информации по сигналам прерываний;
- управление временными интервалами.
Используя эти операции, контроллер
может управлять работой асинхронного реверсивного электродвигателя, включенного по следующей схеме.
Система работает следующим образом. При подаче сигнала «0» на выводы порта В0 или В1 замыкаются силовые цепи обмоток В или С через соответствующие УСО0 или УСО1 и двигатель вращается в прямом или обратном направлении. При подаче на оба вывода сигнала «1» двигатель останавливается. Это состояние выводов порта В необходимо задать и при инициализации порта в момент начала работы. Для полного выключения двигателя необходимо разорвать и цепь обмотки А, для чего нужно создать еще одну цепь управления, аналогичную схемам управления обмотками В и С, или предусмотреть другой способ отключения, например с помощью концевых выключателей. Таким образом, для простого управления электродвигателем (без регулирования скорости) нужны три команды:
- вращение вперед (кодируется 01),
- вращение назад (кодируется 10),
- стоп (кодируется 11).
В работах [2, 3] система управления рассматривалась как иерархическая, в которой наличие уровня иерархии определялось наличием формального языка описания законов функционирования самой системы и ее элементов. В стартовом наборе управление системой описывается на языке Visual Basic, а управление непосредственно двигателем записывается в контроллере на языке С. Создать в компьютере систему управления одним, двумя или четырьмя близко расположенными электродвигателями не очень сложно, так как для простого управления одним двигателем
Рис. 3. Схема системы управления асинхронным реверсивным двигателем: А, В и С - обмотки статора, обмотки В и С сдвинуты по фазе относительно А на ±90°, С = 1 мкФ - фазосдвигающая емкость, УСО - устройство связи с объектом, РВ0 и РВ1 - выводы порта В
156
ЛЕСНОЙ ВЕСТНИК 6/2012
требуется два разряда порта В и, комбинируя различные команды, можно разработать программу управления довольно сложным процессом. В этой статье программа компьютера написана именно для этого случая. Однако для получения более общего решения можно рассмотреть случай управления двумя двигателями с помощью двух контроллеров. Тогда мы получим возможность увеличить число объектов управления (не обязательно электродвигателей), а, разработав способы связи и обмена информацией между объектами, получим систему управления с возможностью расширения ее функций путем увеличения числа контроллеров. Для этого каждый контроллер должен иметь свой адрес, а перечень необходимых действий контроллера расширится. Но сначала следует рассмотреть программы выполнения отдельных действий для компьютера и контроллера.
Обмен информацией между
компьютером и контроллером
Пусть кадр обмена информацией между компьютером и контроллером начинается
символом «@» - десятичный код 64, а заканчивается символом «*» - десятичный код 42. Между ними будет размещена информация об адресе контроллера и тех действиях, которые должен выполнить объект управления.
Для отображения состояния отдельных функциональных элементов, входящих в состав микроконтроллера, используется индикатор из 4-х светодиодов, аноды которых через нагрузочные резисторы соединены с + источника питания. К свободным выводам присоединяются выводы порта В контроллера для проверки правильности приема информации от компьютера.
Теперь приступим к реализации системы управления. Напишем программу для компьютера, управляющего работой контроллера и программу для контроллера, управляющего работой двигателя.
Начнем с первой программы. Для ввода информации в контроллер на экране компьютера в среде VB создается виртуальный пульт управления. Предполагается, что для этого имеются начальные навыки работы в визуальной среде программирования, или эти
Рис. 4. Виртуальный пульт управления асинхронным реверсивным двигателем
ЛЕСНОЙ ВЕСТНИК 6/2012
157
фйстД
знания могут быть получены из литературных источников [4].
На пульте управления создаются командные кнопки, текстовые окна для отображения передаваемой и принимаемой информации и элемент управления Microsoft Communications (MSComm) Control, который позволяет программе передавать и принимать данные через UART. Для помещения этого элемента на панель инструментов следует выполнить следующую последовательность действий: Project \ Component \ Microsoft Comm Control 6.0 \ выбираем компонент, ставя галочку \ Ok. В результате на панели инструментов появляется изображение телефонного аппарата, который мы переносим в форму. Примерная форма пульта управления изображена на рис. 4.
Теперь для созданного пульта следует написать программу для передачи команд контроллеру и приема информации о состоянии порта В на языке Visual Basic.
В приведенной ниже программе предполагается использование упрощенного протокола обмена информацией между компьютером и контроллером, написанного специально для стартового набора. Передача начинается с символа «@», за которым следуют код адреса контроллера, код команды и заключительный символ «*».
Option Explicit Dim a As Integer Dim b As Integer Dim d As String Dim e As String Dim i As Integer Dim j As Integer
Private Sub Command1_Click() Me.MSCommLCommPort = 2 ‘CommPort1 используется ‘для программирования контроллера Me.MSCommLSettings = «9600,n,8,1» ‘параметры связи: скорость
‘передачи 9600 Бод, нет проверки на четность, 8 бит данные, 1бит стоп Me.MSCommLPortOpen = True Me.MSComm1.DTREnable = True Me.MSComm1.Output = Chr$(64) ‘передача кода 1-го символа
Me.CommandLEnabled = False End Sub
Private Sub Command2_Click() a = Text1.Text ‘ввод кода адреса контроллера d = Chr$(a)
Me.MSComm1.Output = d ‘передача кода адреса в линию связи
For i = 0 To 10000 ‘задержка, необходимая для обработки кода адреса на
For j = 0 To 10 ‘приемной стороне (подбирается при отладке)
Next j Next i
b = Text2.Text ‘ввод кода команды e = Chr$(b)
Me.MSComm1.Output = e ‘передача кода команды в линию связи
For i = 0 To 10000 ‘задержка, необходимая для For j = 0 To 10 ‘обработки кода команды Next j Next i
Dim tmp As String Dim txt As Integer
tmp = Me.MSComm1.Input ‘прием информации о состоянии
If a = 1 Then ‘объекта управления в буфер tmp
txt = 0
Else
txt = Asc(tmp)
End If
Text3.Text = txt
Me.MSComm1.Output = Chr$(42) ‘передача заключительного символа For i = 0 To 10000 For j = 0 To 10 Next j Next i
Me.Command2.Enabled = False End Sub
Напишем теперь программу работы контроллера для приема команд компьютера, выдачи команд исполнительным механизмам и передачи информации о состоянии порта В в компьютер на языке С. Для этого воспользуемся версией автоматического синтезатора программ CodeWizardAVR, взятой из Internet [5, 6].
This program was produced by the CodeWizardAVR V1.25.3 Evaluation Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com
158
ЛЕСНОЙ ВЕСТНИК 6/2012
Project :
Version :
Date : 22.02.2009
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATtiny2313 Clock frequency : 7,372800 MHz Memory model : Tiny External SRAM size : 0 Data Stack size : 32
#include <tiny2313.h>
// Global enable interrupts
#asm(«sei»)
while (1)
{
// Place your code here
m: while (!(UCSRA&(1<<7))) //Ожидание приема 1-го символа
rx_buffer[0]=getchar(); //Прием 1-го символа
#asm
nop
nop
#endasm
if (rx_buffer[0]==0x40) // Сравнение 1-го символа с заданным значением {
PORTB=rx_buffer[0]; // Визуальная индикация 1-го символа
tx_buffer[0]= rx_buffer[0];
}
else goto m;
while (!(UCSRA&(1<<7))) //Ожидание приема 1-го символа {;}
rx_buffer[1]=getchar(); //Прием адреса КП - 1 или 2 PORTB=rx_buffer[1]; // Визуальная индикация адреса КП
tx_buffer[1]=rx_buffer[1]; while (!(UCSRA&(1<<7)))
rx_buffer[2]=getchar(); //Прием команды объекту управления
PORTB=rx_buffer[2]; // Визуальная индикация команды tx_buffer[2]=rx_buffer[2];
while (!(UCSRA&(1<<7))) // Ожидание приема заключительного символа
rx_buffer[3]=getchar(); //Прием заключительного символа
ДфЭст
if ( rx_buffer[3]==0x42)
{
PORTB=rx_buffer[2];
PINB= PORTB; //Выдача команды исполнительным механизмам
putchar(tx_buffer[1]); // Сообщение об окончании приема команды }
else goto m;
};
}
Запись программы в контроллер производится с помощью внутрисхемного программатора AS2M компании Аргуссофт и программы ASISP 1106, поставляемой той же фирмой вместе с программатором.
На основе стартового набора для микросхемы ATtiny2313 был разработан и изготовлен макет системы управления асинхронным реверсивным конденсаторным электродвигателем (рис. 5).
СОМ порт компьютера через интерфейс RS232 связан с UART (Универсальным асинхронным приемо-передатчиком) ведущего контроллера, который, в свою очередь, через интерфейс RS485 связан с двумя ведомыми контроллерами. Один из них управляет двигателем, выдавая команды вращения вправо или влево и стоп, другой контроллер предназначен для сбора информации о состоянии системы управления двигателем. Двигатель через передачу винтовая пара приводит в движение каретку, на которой может быть закреплен инструмент. Информация от ведущего контроллера к ведомым передается по линии связи типа витая пара на расстояние около 5 м.
Макет был изготовлен силами преподавателей и студентов, чтобы показать возможность и даже необходимость проведения таких законченных творческих работ от начальной стадии проектирования до проведения исследований на изготовленном оборудовании в процессе обучения в современных условиях. Сейчас кафедра может заказать изготовление печатных плат промышленности, а изготовление необходимых деталей механики проводить в учебно-производственных мастерских, где также с большим интересом
ЛЕСНОЙ ВЕСТНИК 6/2012
159