- •С.М. Липкин, т.В. Липкина компьютерное управление технологическими процессами и оборудованием
- •Лабораторная работа № 1. Создание приложения.
- •Программа работы
- •Методические указания
- •Лабораторная работа №2 Базовые приемы разработки программ с графическим интерфейсом пользователя (gui) на языке c#
- •Программа работы.
- •Методические указания.
- •Лабораторная работа №3 Основы работы с аппаратной платформой Arduino
- •Программа работы
- •Методические указания
- •Void loop() {
- •Void setup() {
- •Void loop() {
- •Лабораторная работа №4 Взаимодействие технических систем с эвм по последовательному интерфейсу Цель работы
- •Программа работы
- •Методические указания
- •Void setup() {
- •Void loop() {
- •InitializeComponent();
- •InitializeComponent();
- •Литература
- •346428, Г. Новочеркасск, ул. Просвещения, 132
- •346428, Г. Новочеркасск, ул. Первомайская, 166
Void setup() {
???? //подключение сервопривода к выводу 6
???? //перемещение вала привода в положение 0º
}
Void loop() {
???? //перемещение вала привода в положение 30º
delay(500);
???? //перемещение вала привода в положение 60º
delay(500)
}
К п.3 Взаимодействие с последовательным интерфейсом в Arduino IDE осуществляется через встроенный класс Serial, который служит для связи устройства Ардуино с компьютером или другими устройствами, поддерживающими последовательный интерфейс обмена данными. Все платы Arduino имеют хотя бы один последовательный порт (UART, иногда называют USART). Для обмена данными Serial используют цифровые порты ввод/вывода 0 (RX) и 1 (TX), а также USB порт. В работе используются следующие методы класса Serial:
begin() – Инициирует последовательное соединение и задает скорость передачи данных в бит/c (бод). Для обмена данными с компьютером используйте следующие значения: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200.
read() – Cчитывает очередной доступный байт из буфера последовательного соединения.
println() – Передает данные через последовательное соединение как ASCII текст с следующим за ним символом переноса строки (ASCII символ 13 или '\r') и символом новой строки (ASCII 10 или '\n').
Необходимый скетч может быть реализован по следующему шаблону:
#include <Servo.h>
String inputString = "";
boolean stringComplete = false;
Servo sm;
int pos=0;
void setup() {
???? // Инициализация сервопривода на скорости 9600 бод
inputString.reserve(200);
???? // подключение сервопривода к выводу 6
???? //перемещение вала привода в положение 0º
}
void loop() {
if (stringComplete) {
/* целочисленная переменная */=inputString.toInt();
???? //перемещение вала привода в полученное положение
inputString = "";
stringComplete = false;
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n') {
stringComplete = true;
}
}
}
Отладку скетча можно выполнить при помощи встроенного монитора последовательного порта (рис. 1).
Рис. 1 – Вызов окна монитора последовательного порта
Приложение на C# должно иметь одну форму со следующим интерфейсом (рис. 2).
Рис. 2 – Интерфейс управляющего приложения
Используемые элементы, а также их свойства приведены в табл. 1
Табл. 1 Свойства элементов интерфейса управляющего приложения
Элемент |
Свойство |
Значение |
Label |
Name |
currentPosition |
Text |
0 |
|
TrackBar |
Name |
servoPosition |
Maximum |
180 |
|
Minimum |
0 |
|
SmallChange |
1 |
|
Button |
Text |
Установить |
Код единственной формы приложения может быть разработан по следующему шаблону:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace WindowsFormsApplication9
{
public partial class Form1 : Form
{
public Form1()
{
