Міністерство освіти і науки України
Вінницький національний технічний університет
Факультет інформаційних технологій та комп’ютерної інженерії
Кафедра комп’ютерних наук
Лабораторна робота № 1
З дисципліни: “Теорія захисту інформації ”
Тема: «Знайомство та початок роботи із відкритою платформою Arduino для створення електронних прототипів. Дослідження криптографічних принципів обробки сигналів»
Мета роботи: Установити апаратне та програмне забезпечення для плати “Arduino Diecimila” на ПК із ОС MS Windows XP. Моделювання методів шифрування сигналів.
Завдання: розробити програму перетворення десяткового числа у двійкове. Результати подати на діод плати “Arduino Diecimila”
Хід роботи
Ознайомимося із платою “Arduino Diecimila”.
Завантажити середовище програмування Arduino та розпакувати на диск.
Встановити розташування драйвера для FTDI мікросхеми (на платі “Arduino Diecimila”).
Підключити плату “Arduino Diecimila” до ПК через USB-порт та встановити потрібну конфігурацію.
Скомпілювати та проаналізувати код.
Запрограмувати виведення двійкового числа та доповнити програму операторами.
Проаналізувати код для роботи екземпляра класа Client та код для роботи екземпляра класу Server.
Arduino Diecimila - апаратна обчислювальна платформа для аматорського конструювання, основними компонентами якої є плата мікроконтролера з елементами вводу/виводу та середовище розробки Processing/Wiring на мові програмування, що є підмножиною C/C++.
Встановити середовище для плати “Arduino Diecimila”.
/
Середовище
/
Перевіряємо чи підключена правильна плата.
/
Перевіряємо чи підключений правильний порт.
Завдання 1.
Розробка програми
int led = 13; // вказівка про під'єднання LED до цифрового контакту 13.
int num[8] = {1,1,0,1,0,0,0,0}; //масив - двійкове число 13
void setup() { //метод, який виконується під час завантаження програми
pinMode(led, OUTPUT); // установлення цифрового контакту ledPin у стан для виведення сигналів.
}
void loop() { //метод,який виконується нескінченно
for(int i = 0; i < 8; i++) //метод for
{
if(num[i] == 1)
{
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(500);
}
}
digitalWrite(led, HIGH);
delay(1000); //затримка на 1000 мілісекунд
digitalWrite(led, LOW);
delay(2000); //затримка на 2000 мілісекунд
}
}
Аналіз коду для роботи екземпляра класа Client та код для роботи екземпляра класу Server.
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC адреса для пристрою
byte ip[] = { 10, 0, 0, 177 }; // IP адреса пристрою
byte server[] = { 64, 233, 187, 99 }; // Google
Client client(server, 80); //створюємо екземпляр класу
void setup()
{
Ethernet.begin(mac, ip); //ініціалізація бібліотеки ethernet
Serial.begin(9600);
delay(1000); //затримка на 1000 мілісекунд
Serial.println("connecting...");
if (client.connect()) { //якщо клієнт «під’єднався», то виводимо «connected», в іншому випадку – «connection failed»
Serial.println("connected");
client.println("GET /search?q=arduino HTTP/1.0");
client.println();
} else {
Serial.println("connection failed");
}
}
void loop()
{
if (client.available()) { // якщо клієнт наявний – зчитуємо його
char c = client.read();
Serial.print(c);
}
if (!client.connected()) { //якщо клієнт «від’єднався» виводимо «disconnecting»
Serial.println();
Serial.println("disconnecting.");
client.stop();
for(;;) // безкінечний цикл, потрібно прописати запит до сервера на повторне підключення
;
}
}
#include <Ethernet.h>
// network configuration. gateway and subnet are optional.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 };
byte gateway[] = { 10, 0, 0, 1 }; // IP адреса мережевого шлюзу
byte subnet[] = { 255, 255, 0, 0 }; // маска підмережі
// telnet defaults to port 23
Server server = Server(23);
void setup()
{
// initialize the ethernet device
Ethernet.begin(mac, ip, gateway, subnet);
// start listening for clients
server.begin();
}
void loop()
{
Client client = server.available();
if (client) {
server.write(client.read());
}
}
Висновок: я розробив програму перетворення десяткового числа у двійкове та ознайомився з платою Arduino Diecimila і середовищем Arduino .