Tải bản đầy đủ (.docx) (52 trang)

Thực hành điện tử viễn thông cơ sở II

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (784.28 KB, 52 trang )

Nhóm 3
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ
KHOA ĐIỆN TỬ-VIỄN THÔNG

BÀI BÁO CÁO
THỰC HÀNH

CƠ SỞ ĐIỆN TỬ - VIỄN THƠNG II

Giáo viên hướng dẫn :

HỒNG LÊ HÀ
Sinh viên thực hiện :
1

VÕ HỒNG QUÝ

2

PHAN VĂN ĐẠI

3

TRẦN THỨC

4

TRƯƠNG TRỌNG NGHĨA
Nhóm : 3
Lớp : Điện Tử Viễn Thông K37



NĂM HỌC 2016-2017

1


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

MỤC LỤC

2


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

DANH SÁCH CÁC HÌNH ẢNH

3


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

IDE
LED
RGB
LCD
COM
UART
DC

Diễn giải
Integrated Development Environment
Light Emiter Diode
Red Green Blue
Lyqid Crystal Display
Component Object Model
Universal Asynchronous Receiver
Transmitter
Direct Current

Dịch nghĩa
Mơi trường phát triển tích hợp
Đi-ốt phát quang
Đi-ốt tích hợp đỏ, xanh lá, xanh lam
Màn hình hiển thị tinh thể lỏng
Mơ hình thành phần đối tượng
Truyền nhận nối tiếp khơng đồng bộ
Dòng điện một chiều

4



Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

MỞ ĐẦU :GIỚI THIỆU TỔNG QUAN VỀ KIT PHÁT TRIỂN
INTEL ARDUINO GALILEO
Mô tả phần cứng
Intel Galileo là một board ứng dụng đầu tiên sử dụng vi xử lý Intel Quark SoC X1000,
một vi xử lý 32 bit đầu tiên thuộc dòng “Santa Clara” sản xuất trên công nghệ System
on Chip lớp Petium 32nm với mức độ tiêu thụ điện rất thấp. Vi xử lý X1000 hoạt động
với xung nhịp 400Mhz dựa trên nền tảng Intel Pentium x86 với bộ nhớ L1 cache
16Kb. Galileo được thiết kế thích với chuẩn board Arduino Uno R3.
Tương tự như những board Arduino khác, board Intel Galileo tuân theo những
tiêu chuẩn nhất định của nền tảng Arduino. Các chân Digital được đánh số từ chân 0
tới 13 (kề cận là chân AREF và GND), các chân Analog từ chân 0 tới 5, header nguồn,
header ICSP và 2 chân truyền UART là tất cả những điểm giống nhau với Arduino
Uno R3. Tất cả các chân của Galileo đều tuân theo chuẩn Arduino pinout 1.0.

Hình 1.Minh họa sơ đồ khối và hình ảnh
thực tế bo Intel Galileo Gen 2

5


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

Vi xử lý 400Mhz tương thích với tập lệnh 32 bit Intel Pentium với các đặc điểm như
sau.

-

Bộ nhớ cache L1 16Kb.
Đơn lõi, đơn luồng, tốc độ không đổi.
Hỗ trợ trạng thái ngủ ACPI.
Một đồng hồ thời gian thực được tích hợp, sử dụng một pin 3V khơng có sẵn

-

trên board, cấp nguồn thơng qua header.
11 Kb EEPROM có thể được lập trình thơng qua thư viện EEPROM.
Bộ nhớ flash Legacy SPI 8Mb để lưu trữ firmware (hay bộ nạp khởi động)
hoặc Sketch mới nhất. Ở giữa 256 Kb và 512 Kb được dành riêng cho việc lưu
chương trình Sketch. Việc upload diễn ra một cách tự động trừ khi có một bản

-

nâng cấp được thêm vào firmware.
512 Kb SRAM và 256 Mb DRAM được cho phép bởi firmware mặc định.
Tùy chọn thêm vào thẻ nhớ micro SD cho phép không gian lưu trữ lên tới 32

-

Gb.
Lưu trữ thông qua USB tương thích với chuẩn USB 2.0.

Galileo được thiết kế để hỗ trợ các Shield có điện áp hoạt động 3,3V hoặc 5V.
Điện áp hoạt động lõi của Galileo là 3,3V. Tuy nhiên, 1 jumper trên board cho phép
chuyển đổi thành 5V trên các chân I/O. Sự cung cấp này hỗ trợ cho các Shield Uno
5V và đây là thiết lập mặc định. Nếu jumper bị chuyển vị trí, bộ chuyển đổi điện áp có

thể khơng hoạt động và cung cấp điện áp 3,3V ở các chân I/O. Những đầu vào Analog
còn lại có điện áp từ 0V tới 5V bất kể vị trí của jumper.

6


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

Phương pháp lập trình bằng trình biên dịch IDE
Mơi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng đa nền tảng được
viết bằng Java.Nó được thiết kế để dành cho các nhà phát triển và những người mới
tập tành làm quen với lĩnh vực phát triển phần mềm. Nó bao gồm một trình biên tập
mã nguồn (code editor) với các chức năng như đánh dấu cú pháp, tự động kiểm tra
phù hợp dấu ngoặc và tự động canh lề, cũng như biên dịch (complie) và tải (upload)
chương trình lên bo. Một chương trình hoặc mã nguồn viết cho Arduino được gọi là
một sketch.
Các chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với một
thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao
tác input/output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm để tạo ra
một chương trình vịng thực thi (cyclic executive) có thể chạy được.
Cổng giao tiếp giữa máy tính và Board được thiết lập thông qua tab Serial Port: đây là
nơi lựa chọn cổng COM của Arduino. Khi chúng ta cài đặt driver thì máy tính sẽ hiện
thơng báo tên cổng COM của Arduino là bao nhiêu( xem ở phần Device Manager), ta
chỉviệc vào Serial Port chọn đúng cổng COM để nạp chương trình, nếu chọn sai thì
khơng thể nạp chương trình cho Arduino được.

7



Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

BÀI 01: ĐIỀU KHIỂN HOẠT ĐỘNG LED BẰNG MÁY TÍNH
1.1. LƯU ĐỒ THUẬT TỐN ĐIỀU KHIỂN
1.1.1. Lưu đồ thuật tốn trên Arduino IDE
Bắt đầu chương trình, chúng ta khai báo các chân của các LED đơn và RGB. Sau đó
gắn biến điều khiển cho các LED đơn và Led RGB.

8


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3
Bắt đầu

Khai báo giao tiếp với cổng
COM

Đọc dữ liệu nhận từ cổng COM
thiết lập trạng thái đầu vào cho
các LED đơn và RGB

Nhận các ký tự đặc biệt

Sai


Đúng
Bật/tắt các LED đơn hoặc
RGB

Nhận các ký tự A-Z,1-9

Sai

Đúng
Hiển thị mã Morse

Sai

Tắt nguồn

Kết thúc

9

Đún
g


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

1.1.2. Lưu đồ thuật toán trên Visual Studio
Bắt đầu


Khai báo chọn cổng
COM

Sai

Kiểm tra chọn cổng

Đúng
Tạo kết nối

Kiểm tra nút điều khiển LED

Sai

Đúng
Gửi các ký tự qua cổng COM

Kiểm tra nút gửi bảng MORSE

Sai
Đúng
Gửi các ký tự ở textbox qua cổng
COM

Kết thúc

10


Thực hành Điện tử-Viễn thơng cơ sở II


Nhóm 3

Tiến hành chọn cổng COM thích hợp và kết nối để gửi dữ liệu cho bo điều khiển
Intel Galilleo Gen 2. Khi bo nhận được dữ liệu, chương trình Visual tự động xử lý
thành các ký hiệu gửi vào bo điều khiển Intel Galilleo để thiết lập trạng thái các led
đơn và led RGB

1.2. Giao diện điều khiển trên Visual Studio

Hình 2 Giao diện điều khiển LED, RGB và bảng Morse trên Visual Studio

1.3. Kết quả thực hiện và nhận xét
1.3.1. Kết quả
Khi điều khiển phần mềm Arduino Intel Galileo Gen 2 và Visual Studio thì kết nối
cổng COM mạch chạy ổn định đúng với chương trình đưa ra.
1.3.2. Nhận xét
Khi viết giao diện cho Visual Studio phải có sự thống nhất giữa việc lựa chọn các ký
tự trong code trên Arduino IDE với chương trình giao diện

11


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

1.4. Các đoạn Code đã thực hiện
1.4.1. Code thực hiện trên Arduino IDE
int led1 = 8;

int led2 = 9;
int led3 = 10;
int led4 = 11;
int led5 = 12;
int green = 5;
int blue = 3;
int red = 6;
int ledmorse =13;
char data;
int timedelay = 200 ;
void setup() {

Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(green,OUTPUT);
pinMode(red,OUTPUT);
pinMode(blue,OUTPUT);

12


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3


digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
}//ở trên là setup, kiểu chạy khi ct bắt đầu, chạy 1 lần, tạo giá trị cho biến
void loop() { // hàm loop là hàm chính, chạy chương trình và chạy liên tục cho đến khi
tắt hệ thống
while(Serial.available()>0)
{
data = Serial.read(); //đọc giá trị từ Visual studio và gán cho biến data

if(data == ',') //nếu giá trị đó là “,” thì
{
digitalWrite(led1,LOW); //đỏ đèn , ở dưới tương tự
}
if(data == '<')
{
digitalWrite(led1,HIGH);//tắt đèn
}
if(data == '.')
{
digitalWrite(led2,LOW);
}
if(data == '>')

13


Thực hành Điện tử-Viễn thơng cơ sở II


Nhóm 3

{
digitalWrite(led2,HIGH);
}
if(data == '/')
{
digitalWrite(led3,LOW);
}
if(data == '?')
{
digitalWrite(led3,HIGH);
}
if(data == ';')
{
digitalWrite(led4,LOW);
}
if(data == ':')
{
digitalWrite(led4,HIGH);
}
if(data == '`')
{
digitalWrite(led5,LOW);
}
if(data == '~')
{
digitalWrite(led5,HIGH);


14


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

}
if (data == '!')// nếu là dấu “!” thì
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
} // tất cả đèn Led sẽ sáng
if (data =='@')// nếu là dấu “@” thì
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
}// tất cả các đèn Led sẽ tắt
if(data == '#')
{analogWrite(green,255);} // led RGB sáng xanh lá cây
if(data == '$')
{analogWrite(blue,255);} // led RGB sáng xanh dương
if(data == '%')
{analogWrite(red,255);}// led RGB sáng đỏ

if (data == '-')
{analogWrite(blue,0);analogWrite(red,0);analogWrite(green,0);}// tắt led RGB
if(data=='A') // nếu giá trị là “A”

15


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

{cham();gach();}
if(data=='B')
{gach(); cham();cham();cham();}
if(data=='C')
{gach(); cham();gach();cham();}
if(data=='D')
{gach();cham();cham();}
if(data=='E')
{cham();}
if(data=='F')
{cham();cham();gach();cham();}
if(data=='G')
{gach();gach();cham();}
if(data=='H')
{cham();cham();cham();cham();}
if(data=='I')
{cham();cham();}
if(data=='J')
{cham();gach();gach();gach();}

if(data=='K')
{gach(); cham();gach();}
if(data=='L')
{cham();gach();cham();cham();}
if(data=='M')
{gach();gach();}
if(data=='N')

16


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

{gach();cham();}
if(data=='O')
{gach();gach();gach();}
if(data=='P')
{cham();gach();gach();cham();}
if(data=='Q')
{gach();gach();cham();gach();}
if(data=='R')
{cham();gach();cham();}
if(data=='S')
{cham();cham();cham();}
if(data=='T')
{gach();}
if(data=='U')
{cham();cham();gach();}

if(data=='V')
{cham();cham();cham();gach();}
if(data=='W')
{cham();gach();gach();}
if(data=='X')
{gach();cham();cham();gach();}
if(data=='Y')
{gach();cham();gach();gach();}
if(data=='Z')
{gach();gach();cham();cham();}
if(data=='1')

17


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

{cham();gach();gach();gach();gach();}
if(data=='2')
{cham();cham();gach();gach();gach();}
if(data=='3')
{cham();cham();cham();gach();gach();}
if(data=='4')
{cham();cham();cham();cham();gach();}
if(data=='5')
{cham();cham();cham();cham();cham();}
if(data=='6')
{gach();cham();cham();cham();cham();}

if(data=='7')
{gach();gach();cham();cham();cham();}
if(data=='8')
{gach();gach();gach();cham();cham();}
if(data=='9')
{gach();gach();gach();gach();cham();}
if(data=='0')
{gach();gach();gach();gach();gach();}
delay(timedelay*3);
if(data==' ')
{delay(timedelay*7);}
}
}

void cham()

18


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

{
digitalWrite(ledmorse,LOW);
delay(timedelay);
digitalWrite(ledmorse,HIGH);
delay(timedelay);
}
void gach()

{
digitalWrite(ledmorse,LOW);
delay(timedelay*3);
digitalWrite(ledmorse,HIGH);
delay(timedelay);
}
1.4.2. Code thực hiện trên Visual Studio
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles
MyBase.Load
Button2.BackColor = Color.White
Button3.BackColor = Color.White
Button4.BackColor = Color.White
Button5.BackColor = Color.White
Button6.BackColor = Color.White
Button7.BackColor = Color.White// thiết lập các led đều tắt
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e
As EventArgs) Handles ComboBox1.SelectedIndexChanged
End Sub
Private Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button4.Click
If Button4.BackColor = Color.White Then
Button4.BackColor = Color.Yellow

19


Thực hành Điện tử-Viễn thơng cơ sở II


Nhóm 3

SerialPort1.Write("/") // đèn sáng và xuất ra ký hiệu “/”
Else
Button4.BackColor = Color.White
SerialPort1.Write("?") //đèn tắt và xuất ra ký hiệu “?”
End If
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button1.Click
If ComboBox1.Text = "chọn cổng COM" Then
MsgBox(" Hãy nhập cổng kết nối")// thiết lập cổng kết nối
Else
If Button1.Text = "kết nối" Then
Button1.Text = "ngắt kết nối"
SerialPort1.PortName = ComboBox1.Text
SerialPort1.Open()
Me.Text = "đã kết nối..."
Else
Button1.Text = "kết nối"
Me.Text = "đã ngắt kết nối"
SerialPort1.Close()
End If
End If
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button2.Click
If Button2.BackColor = Color.White Then
Button2.BackColor = Color.Yellow
SerialPort1.Write(",") //đèn sáng và xuất ra ký hiệu “,”

Else
Button2.BackColor = Color.White
SerialPort1.Write("<") //đèn tắt và xuất ra ký hiệu “<”
End If
End Sub
Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button3.Click
If Button3.BackColor = Color.White Then
Button3.BackColor = Color.Yellow
SerialPort1.Write(".") //đèn sáng và xuất ra ký hiệu “.”
Else
Button3.BackColor = Color.White
SerialPort1.Write(">") //đèn tắt và xuất ra ký hiệu “>”
20


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

End If
End Sub
Private Sub Button5_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button5.Click
If Button5.Text = "all on" Then
Button5.Text = "all off"
SerialPort1.Write("!") //tất cả led đều sáng và xuất ra ký hiệu “!”
Button2.BackColor = Color.Yellow
Button3.BackColor = Color.Yellow
Button4.BackColor = Color.Yellow

Button6.BackColor = Color.Yellow
Button7.BackColor = Color.Yellow
ElseIf Button5.Text = "all off" Then
Button5.Text = "all on"
SerialPort1.Write("@") //tất cả led đều tắt và xuất ra ký hiệu “@”
Button2.BackColor = Color.White
Button3.BackColor = Color.White
Button4.BackColor = Color.White
Button6.BackColor = Color.White
Button7.BackColor = Color.White
End If
End Sub
Private Sub GroupBox2_Enter(ByVal sender As Object, ByVal e As EventArgs)
Handles GroupBox2.Enter
End Sub
Private Sub Label1_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Label1.Click
End Sub
Private Sub Button8_Click(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private Sub Button9_Click(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private Sub Button10_Click(ByVal sender As Object, ByVal e As EventArgs)
End Sub
21


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3


Private Sub Button8_Click_1(ByVal sender As Object, ByVal e As EventArgs)
Handles Button8.Click
If Button8.BackColor = Color.White Then
Button8.BackColor = Color.Red
SerialPort1.Write("%") // led RGB sáng đỏ và xuất ký hiệu “%”
End If
End Sub
Private Sub Button6_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button6.Click
If Button6.BackColor = Color.White Then
Button6.BackColor = Color.Yellow
SerialPort1.Write(";") //đèn sáng và xuất ra ký hiệu “;”
Else
Button6.BackColor = Color.White
SerialPort1.Write(":") //đèn tắt và xuất ra ký hiệu “:”
End If
End Sub
Private Sub Button7_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button7.Click
If Button7.BackColor = Color.White Then
Button7.BackColor = Color.Yellow
SerialPort1.Write("`") //đèn sáng và xuất ra ký hiệu “`”
Else
Button7.BackColor = Color.White
SerialPort1.Write("~") //đèn tắt và xuất ra ký hiệu “~”
End If
End Sub
Private Sub Button9_Click_1(ByVal sender As Object, ByVal e As EventArgs)
Handles Button9.Click

If Button9.BackColor = Color.White Then
Button9.BackColor = Color.Green
SerialPort1.Write("#") // led RGB sáng xanh lá và xuất ký hiệu “#”
End If
End Sub
Private Sub Button10_Click_1(ByVal sender As Object, ByVal e As EventArgs)
Handles Button10.Click
If Button10.BackColor = Color.White Then
Button10.BackColor = Color.Blue
SerialPort1.Write("$") //led RGB sáng xanh dương và xuất ký hiệu “$”

22


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

End If
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As
EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub Button11_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles Button11.Click
SerialPort1.Write(UCase(TextBox1.Text))
End Sub
Private Sub GroupBox3_Enter(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles GroupBox3.Enter
End Sub

Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button12.Click
Button10.BackColor = Color.White
Button8.BackColor = Color.White
Button9.BackColor = Color.White
SerialPort1.Write("-") // led RGB tắt và xuất ký hiệu “ - “
End Sub
End Class

23


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

BÀI 02: HIỂN THỊ LCD 16X2 THEO NỘI DUNG NHẬP TỪ
MÁY TÍNH
2.1. LƯU ĐỒ THUẬT TỐN ĐIỀU KHIỂN
2.1.1. Lưu đồ thuật tốn trên Arduino IDE

Bắt đầu

Khai báo chân lcd, loại
lcd, cài đặt tốc độ
baud.

Khai báo các loại biến,
biến đếm count , biến
dữ liệu data.

B

Kiểm tra có dữ liệu được nhận?.

đúng
A

24


Thực hành Điện tử-Viễn thơng cơ sở II

Nhóm 3

Đầu tiên chúng ta cần khai báo chân của các lcd, cài đặt tốc độ baud. Sau đó chúng ta
khai báo các biến tồn cục sử dụng trong chưng trình là biến mảng 32 ký tự character
là 32 ký tự hiển thị trên màng hình. Tiếp theo chúng ta kiểm tra có dữ liệu được nhận
từ cổng Serial hay khơng, nếu có chúng ta sẽ chuyển sang đoạn chương trình tiếp
theo.
A

Kiểm tra biến count < 32
sai
đúng

Xóa tồn bộ biến data thành ký tự
trắng. Chuyển biến count về không,
nhận một ký tự vào biến data[0].

Đọc biến 1 ký tự nhận được vào biến

data[count] rồi tăng biến count lên một đơn
vị.

Kiểm tra nếu count == 16 và cả hai ký tự thứ 15 và ký tự thứ 16
đều không phải là ký tự trắng ?

Sai

Đúng
Thực hiện chuyển chữ cuối cùng
của dòng trên xuống dòng dưới.

B

Hiển thị ký tự 0 đến 15 lên dòng 1 và ký tự
16 đến 32 lên dòng 2 của LCD

25


×