Лабораторная работа №3 Основы работы с аппаратной платформой Arduino

С.М. Липкин, Т.В. Липкина

 

 

КОМПЬЮТЕРНОЕ УПРАВЛЕНИЕ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ И ОБОРУДОВАНИЕМ

 

 

Новочеркасск

ЮРГПУ (НПИ)

 


 

УДК 681.518.5

 

Рецензент – докт. техн. наук В.С. Елсуков

 

 

Липкин С.М., Липкина Т.В.

Компьютерное управление технологическими процессами и оборудованием : Лабораторный практикум / С.М. Липкин, Т.В. Липкина Южно-Российский государственный политехнический университет имени М.И. Платова.– Новочеркасск: ЮРГПУ (НПИ), 2016.– 27 с.

 

Практикум предназначен для закрепления знаний в основных практических аспектах автоматизации и компьютерного управления технологическими процессами и оборудованием.

Предназначено для практических занятий студентам очной формы обучения факультета информационных технологий и управления, обучающихся по программе академического бакалавриата.

 

 

УДК 681.518.5

 

 

© Южно-Российский государственный

политехнический университет

(НПИ) имени М.И. Платова, 2016

 


 

 

Оглавление

Лабораторная работа № 1. Создание приложения. 4

Программа работы.. 4

Методические указания. 4

Лабораторная работа №2 Базовые приемы разработки программ с графическим интерфейсом пользователя (GUI) на языке C#. 10

Программа работы. 10

Методические указания. 10

Лабораторная работа №3 Основы работы с аппаратной платформой Arduino. 15

Программа работы.. 15

Методические указания. 15

Лабораторная работа №4 Взаимодействие технических систем с ЭВМ по последовательному интерфейсу. 19

Цель работы.. 19

Программа работы.. 19

Методические указания. 19

 


Лабораторная работа № 1. Создание приложения.

Цель работы: Изучить основные элементы среды разработки Visual Studio Integrated Development Environment (IDE - интегрированная среда разработки) C# при создании на языке C# приложений с графически интерфейсом.

Программа работы

1. По рекомендованной литературе ознакомиться с основными возможностями и средствами среды разработки Microsoft Visual Studio 2012.

2. Разработать простейшее приложение с графическим интерфейсом.

3. Усовершенствовать разработанное приложение, выполнив дополнительные задания.

4. Сделать выводы по работе и подготовить отчет.

Методические указания

к п. 1 Microsoft Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight.

Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

Visual Studio 2012 распространяется в тех же редакциях, что и 2010. Изменения коснулись Visual Studio 2012 Express — устанавливаются все языки программирования, а не один, как раньше (Visual Basic 2010 Express, Visual C# 2010 Express), а также теперь существует пять версий Visual Studio Express: Visual Studio Express 2012 для Web, Visual Studio Express 2012 для Windows 8, Visual Studio Express 2012 для Windows Desktop, Visual Studio Express 2012 для Windows Phone и Visual Studio Team Foundation Server Express 2012. Все версии распространяются как отдельные приложения. Visual Studio Express 2012 для Windows 8 позволяет разрабатывать приложения для Windows Store с Modern-интерфейсом, а Visual Studio Express 2012 для Windows Desktop позволяет разрабатывать «классические» приложения для Рабочего стола. Что касается Visual Studio Team Foundation Server Express 2012, то эта версия поставляется с оболочкой Visual Studio 2012.

К п. 2 Работа над созданием приложения начинается со стартового окна Visual Studio (рис. 1.1).

Рис. 1.1 – Вид стартового окнаVisual Studio (VS)

Для создания проекта приложения необходимо нажать соответствующую кнопку на стартовом окне. В появившемся окне «Создать проект» (рис. 1.2) выполняются настройки вида создаваемого приложения, названия проекта, его расположения на жестком диске и целевой платформы.

Рис. 1.2 Окно «Создать проект»

Особое внимание следует уделить выбору целевой платформы, а именно версии библиотеки .NET Framework, необходимой для запуска разрабатываемого приложения. При его выборе следует учитывать, что более поздние версии библиотеки обладают большими возможностями, однако, вероятнее всего, установлены на меньшем количестве машин.

Для разрабатываемого приложения целесообразно выбрать следующие параметры:

Табл. 1.1

Параметр Значение
Имя FITU_31_LAB1
Вид приложения Приложение Windows Forms
Версия платформы .NET 2.0

После нажатия кнопки «ОК» будет выполнено создание проекта и появится окно конструктора начальной формы приложения. В левом нижнем углу появится окно свойств (рис. 1.3), в котором выполняются настройки отображения и поведения формы и элементов управления.

Рис. 1.3 – Вид окна «Свойства»

Для главной формы выполняются следующие настройки (табл. 1.2):

Табл. 1.2 Настройки главной формы

Параметр Значение
Text Первая программа на C#
FormBorderStyle FixedToolWindow

После выполнения данных настроек можно выполнить компиляцию проекта (рис. 1.4). Сделать это можно выполнив команду «Отладка»>«Начать отладку» или с помощью клавиши F5

Рис. 1.4 – Результат первой компиляции программы

В окне конструктора можно выполнить настройку свойств и расположения элементов управления. Рассмотрим эту операцию на примере элемента управления Button (рис. 1.5).

Рис. 1.5 – Результат добавления Button на главную форму

Зададим добавленному элементу следующие параметры в окне свойств (табл. 1.3):

Табл. 1.3 – Параметры элемента управления Button

Параметр Значение
Text Приветствие
Dock Bottom

Выполнение каких-либо действий в результате нажатия кнопки происходит посредством создания обработчика событий. Создадим обработчик нажатия кнопки для добавленного элемента (рис. 1.6). Для этого в окне свойств кнопки выберем вкладку события с помощью пиктограммы . Требуемый обработчик же создается двойным щелчком на поле Click. В результате IDE создаст и свяжет с кнопкой функцию, вызываемую каждый раз, когда данная кнопка нажимается. Добавим в созданный обработчик следующий код:

MessageBox.Show("Я - ваша первая программа на С#", "Привет!");

И выполним компиляцию проекта, а также проверку функционирования программы (рис. 1.6).

Рис. 1.6 – Результат выполнения программы

к п. 3 Для усовершенствования разработанного приложения необходимо добавить на главную форму 2 кнопки и задать им следующие свойства (табл. 1.4)

 

 

Табл. 1.4 Свойства дополнительных кнопок

Параметр Значение
Name B1 B2
Text Кнопка 1 Кнопка 2
Dock Bottom
BackColor ControlLightLight ControlDarkDark

Для созданных кнопок необходимо создать такие обработчики нажатия, чтобы в результате нажатия на любую из кнопок их фоновые цвета (свойство BackColor) менялись местами. Для этого целесообразно воспользоваться шаблоном:

var bc = B1.BackColor;

B1.BackColor = ????

B2.BackColor = ????

 


Лабораторная работа №2 Базовые приемы разработки программ с графическим интерфейсом пользователя (GUI) на языке C#

Цель работы:Познакомиться с основными приемами разработки приложений Windows Forms на языке C# закрепить навыки работы с ИСР MS Visual Studio.

Программа работы.

1. Ознакомится с литературой по теме работы.

2. Написать программу, иллюстрирующую приемы работы со строками.

3. Написать программу, иллюстрирующую основы работы с классами в C#.

4. Сделать выводы по работе.

Методические указания.

к п. 2 Создайте новый проект Windows Forms Application. В окне Solution Explorer щелкните правой кнопкой мыщи на имени проекта и выберите в появившемся меню команду Add>>Class. Назовите файл Talker.cs, при этом класс автоматически получит имя Talker. В ИСР появится новая вкладка с именем Talker.cs.

Сверху вставьте строчку using System.Windows.Forms, a затем введите код самого класса:

Рис. 1- Класс Talker

Новый класс содержит метод с именем BlahBlahBlah() и двумя параметрами. Первый параметр — строка с произносимым текстом, а второй — количество повторений. Этот метод вызывает окно, в котором фраза повторяется указанное количество раз. Метод возвращает длину строки. Ему следует передать строку для параметра thingToSay и число для параметра numberOfTimes. Указанные значения вводятся в поля формы, созданные на основе элементов управления TextBox и NumericUpDown.

Добавим в проект форму, работающую с новым классом

Рис. 2 – Интерфейс создаваемой программы

Дважды щелкните на кнопке, чтобы добавить к ней код, вызывающий метод BlahBlahBlah(). Он должен возвращать целое число len и выводить информацию о длине сообщения:

private void buttonl_Click(object sender, EventArgs e){

// Ваш код

/располагается здесь

}

к п. 3 Создайте проект Windows Forms Application В окне Solution Explorer создайте класс с именем Guy. Добавьте в верхнюю часть файла этого класса строчку using System.Windows.Forms, затем введите следующий код:

Рис. 4 – Класс Guy

Нам понадобятся две кнопки и три метки

Две верхние метки должны показывать сумму наличности у каждого из парней. К форме также нужно добавить поле bank — это еще одна метка. По очереди выделяйте все метки и редактируйте их свойство Name в окне Properties. Присвоив метками имена joesCashLabel и bobsCashLabel вместо имен label1 и 1аbе12, вы сделаете код более читабельным.

Рис. 5 – Интерфейс создаваемой программы

 

 

Для отслеживания финансового состояния наших героев потребуются два поля. Назовите их jое и bob. Затем добавьте поле с именем bank для расчета, сколько форма должна взять у объектов, а сколько отдать им. Дважды щелкните на третьей метке и добавьте в появившийся код строки:

Рис. 6 – Объявление полей формы Form1

Добавим к форме метод UpdateForm(), чтобы метки всегда показывали актуальное количество денег. Убедитесь в наличии модификатора void, так как данный метод не должен возвращать значение. Добавьте эти строчки под предыдущий код:

Рис. 7 – Метод, обновляющий метки формы

Убедитесь, что кнопка называется buttonl, а кнопка справа- button2. Дважды щелкните на каждой из кнопок, чтобы добавить методы buttonl_Click() и button2_Click() соответственно, и для каждой кнопки введите код:

Рис. 8 – Обработчики нажатий кнопок

Начальный капитал Джо $50, а Боба — $100

А теперь самостоятельно укажите начальное состояние полей Cash и Name для обоих экземпляров. Код расположите под строкой InitializeComponent(), ведь процедура должна выполняться при инициализации формы. Завершив работу, убедитесь, что щелчок на левой кнопке забирает $10 из банка и отдает эту сумму Джо, а вторая кнопка забирает у Боба $5 и возвращает их в банк.

Рис. 9 – Задание начальных значений объектов

Практически всегда создание объектов сопровождается присвоением им начальных значений. Объект Guy не исключение — он бесполезен, если не заданы значения полей Name и Cash. Для решения этой задачи в C# существует инициализатор объектов. В его основе лежит технология IntelliSense.

Рассмотрим исходный код, присваивающий полям объекта Joe начальные значения.

joe = new Guy();

joe.Name = "Joe";

joe.Cash = 50;


 

Лабораторная работа №3 Основы работы с аппаратной платформой Arduino

Цель работы: Приобретение навыков работы с устройством Arduino Uno R3, а также интегрированной средой разработки программного обеспечения для устройств платформы Arduino.

Программа работы

1. Ознакомиться со структурой программ на языке Wiring (скетчей).

2. Разработать скетч для Arduino Uno, осуществляющий включение/выключение встроенного светодиода с периодом в Т=0.5 с.

3. Усовершенствовать разработанный скетч, оформив программный код включения и выключения светодиода в виде функции.

4.Разработать скетч, обеспечивающий кодирование заданных символов с помощью азбуки Морзе.

5.Собрать схему и разработать скетч, выполняющий функцию регулирования яркости светодиода.

6.Сделать выводы по работе

Методические указания

к п.1. Создание скетчей для аппаратной платформы Arduino выполняется в интегрированной среде разработки Arduino IDE (рис. 1)

Рис. 1 – Вид главного окна Arduino IDE

Данная среда позволяет выполнять компилирование и загрузку программного кода в устройство, а также содержит большое количество скетчей-примеров.

Структуру скетча рассмотрим на следующем примере:

//Подключение внешних модулей, необходимых для выполнения скетча

#include <SPI.h>

#include <Ethernet.h>

//Объявление глобальных переменных в формате:

//ТипПеременой ИмяПеременной = НачальноеЗначение;

byte mac[] = {

0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192,168,1, 177);

IPAddress gateway(192,168,1, 1);

IPAddress subnet(255, 255, 0, 0);

EthernetServer server(23);

boolean alreadyConnected = false;

//Функция инициализации setup.

//Работа скетча начинается с ее выполнения.

//Данная функция вызывается автоматически и выполняется один раз

void setup() {

Ethernet.begin(mac, ip, gateway, subnet);

server.begin();

Serial.begin(9600);

while (!Serial) {}

Serial.print("Chat server address:");

Serial.println(Ethernet.localIP());

}

//Главная функция loop

//Эта функция содержит программный код основных действий программы

void loop() {

EthernetClient client = server.available();

if (client) {

if (!alreadyConnected) {

client.flush();

Serial.println("We have a new client");

client.println("Hello, client!");

alreadyConnected = true;

}

if (client.available() > 0) {

char thisChar = client.read();

server.write(thisChar);

Serial.write(thisChar);

}

}

}

к п.2-4. Для разработки данного скетча удобно воспользоваться примером Blink

(рис. 2).

Рис. 2 – Загрузка скетча Blink

Рассмотрим текст функции loop данного примера:

void loop() {

digitalWrite(led, HIGH); // включение светодиода

delay(1000); // пауза

digitalWrite(led, LOW); // выключение светодиода

delay(1000); // пауза

}

Период включений светодиода задается параметром, передаваемым функции delay().

Таким образом, для оформления включения-выключения светодиода в виде функции программный код, выполняемый в теле функции loop(), поместить в тело создаваемой функции. А в теле функции loop() достаточно лишь выполнять вызов созданной функции.

Для кодирования символов азбуки Морзе целесообразно будет создать 2 функции: длинного и короткого включения.

к п 5. Для разработки данного скетча можно воспользоваться следующим шаблоном:

int led = ???;

int brightness = 0; // величина яркости светодиода

int fadeAmount = 5; // величина изменения яркости светодиода за 1 такт

void setup() {

pinMode(led, OUTPUT);

}

void loop() {

// установка яркости на выбранном выводе arduino:

analogWrite(led, brightness);

// изменение яркости

brightness = brightness + fadeAmount;

// обращение направления изменения яркости (нарастание/затухание)

if (brightness == 0 || brightness == 255) {

??? ;

}

// пауза для обеспечения эффекта нарастания/затухания

???

}