Ngày nay với những ứng dụng của khoa học kĩ thuật trên tiên tiến, thế giới chúng ta đã và đang ngày một thay đổi,văn minh và hiên đại hơn. ̣ Sự phát triển của kĩ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết cho hoạt động của con người đạt hiệu quả cao. Điện tử đang trở thành một ngành công nghiệp đa nhiệm vụ. Điện tử đã đáp ứng những đòi hỏi không ngừng từ các lĩnh vực công nông lâm ngư nghiệp cho đến các nhu cầu thiết bị trong đời sống hàng ngày. Một trong những ứng dụng quan trọng trong công nghệ điện tử là kỹ thuật điều khiển từ xa. Nó đã góp phần rất lớn trong việc điều khiển các thiết bị từ xa hay những thiết bị mà con người không thể trực tiếp chạm vào để vận hành điều khiển. Xuất phát từ ứng dụng quan trọng trên,em đã thiết kế và thi công mạch điều khiển thiết bị điện trong nhà sử dụng module thu phát sóng vô tuyến.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ ĐIỆN TỬ
MÔN
THỰC HÀNH ĐIỆN TỬ NÂNG CAO
ĐỀ TÀI
TRUYỀN DỮ LIÊ ̣U GIỮA HAI MÁY TÍNH
Gia ̉ng viên hướng dẫn : BÙI THƯ CAO
Nhóm 1: Bảo Bảo HOÀNG THÀNH LONG
VÕ QUỐC BẢO ĐOÀN THỊ HẰNG
Chuyên ngành: Điện Tử Viễn Thông
Mã chuyên ngành: 7510302
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2019
Trang 2LỜI CẢM ƠN
Lời đầu tiên chúng em xin chân thành cảm ơn đến Ban giám hiệu nhà trường, Phòng đào tạo sau đại học, Khoa Điện-Điên tử, đã tạo điều kiện cho chúng em có cơ hội được học tập nâng cao trình độ và được báo cáo ngày hôm nay, chúng em xin cám ơn các Thầy Cô đã truyền đạt trang bị cho chúng em những kiến thức quý báu, làm nền
tảng để từng bước thực hiện và hoàn thành dự án này
Đặc biệt, chúng em xin gửi lời cảm ơn chân thành và sâu sắc đến thầy, TS Bùi Thư Cao, các Thầy đã định hướng, hướng dẫn, tạo nhiều điều kiện thuận lợi cho chúng em hoàn thành dự án này
Ngoài ra, chúng em cũng xin được gửi lời cảm ơn đến các nhà khoa học, các tác giả của
các công trình nghiên cứu đã trích dẫn trong đề tài này đã cung cấp nhiều nguồn tư liệu quý báu, những kiến thức liên quan trong quá trình nghiên cứu
Cuối cùng, chúng em xin được gửi lời cảm ơn đến gia đình, cơ quan công tác, bạn bè, các anh chị đã chia sẻ, giúp đỡ và góp ý cho em trong suốt quá trình nghiên cứu và thực hiện dự án này
Chúc Trường Đại học Công Nghiệp Tp.HCM phát triển mạnh mẻ, vươn ra tầm thế giới!
Kính Chúc quý Thầy Cô dồi dào sức khỏe, công tác tốt, gặt hái được thật nhiều trong sự nghiệp trồng người đầy vẻ vang của mình
Chúng em xin chân thành cảm ơn!
Trang 3MU ̣C LỤC
Chương 1 Tổng quan đề tài 10
1.1 Đặt vấn đề 10
1.2 Mục tiêu đề tài 10
1.3 Yêu cầu đề tài 10
1.4 Phạm vi đề tài 10
1.4 Ý nghĩa đề tài 11
1.5 Kế hoa ̣ch thực hiê ̣n đề tài 11
Chương 2 Cơ sở lí thuyết 13
2.1 Điều chế ASK 13
2.1.1 Giớ i thiê ̣u điều chế ASK 13
2.1.2 Lý thuyết điều chế ASK 14
2.1.3 Sơ đồ khối điều chế 14
2.2 Arduino 15
2.2.1 Định nghĩa 15
2.2.2 Lịch sử phát triển 15
2.2.3 Phần cứng 16
2.2.4 Cách lập trình 19
2.3 Visuo studio 19
2.3.1 Định nghĩa 19
2.3.2 Tính năng 20
2.3.3 Giao diện Visuo Studio: 24
2.4 Visual basic 25
2.4.1 Giớ i thiê ̣u về Visual Basic 25
2.4.2 Khởi động phần mềm và tạo project 25
2.4.3 Giới thiệu giao diện 27
̃ lâ ̣p trình Visual Basic 28
Trang 42.4.5 Thư viện 31
2.5 Multisim 32
2.5.1 Định nghĩa 32
2.5.2 Giới thiệu giao diện MultiSim 32
2.5.3 Điều chỉnh giao diện của MultiSim 34
2.6 Mạch thu phát tín hiệu RF 36
2.6.1 Đi ̣nh nghĩa 36
2.6.2 Đặc tính 36
2.6.3 Cách ta ̣o ra sóng RF 36
2.6.4 Phương thức truyền vô tuyến RF 37
2.6.3 Ý nghĩa 37
2.6.4 Ứng dụng 37
Chương 3 Thiết kế hê ̣ thống thu phát sử du ̣ng module RF 38
3.1 Mạch thu phát tín hiệu RF 38
3.1.1 Sơ đồ nguyên lý 38
3.1.2 PCB 40
3.1.3 Mạch 3D 41
3.1.4 Kết quả mô phỏng 42
3.2 Hệ thống thu phát sử du ̣ng module RF 44
3.2.1 Sơ đồ khối 44
3.2.2 Sơ đồ nguyên lí 44
3.2.3 Lưu đồ giải thuâ ̣t 45
3.3 Lập trình 46
3.3.1 Code củ a bô ̣ phát RF 46
3.3.2 Code củ a bô ̣ thu RF 47
3.4 Thực hành kết nối hê ̣ thống 48
3.5 Kết nối bô ̣ thu phát với giao diê ̣n Visual Basic 50
3.5.1 Giao diện hê ̣ thống 50
Trang 53.5.2 Lưu đồ giải thuâ ̣t của giao diê ̣n 51
3.5.3 Code thu phát của giao diê ̣n 52
3.5.4 Giao diện đã kết nối hê ̣ thống thu phát RF 315MHz 55
Chương 4 Kết quả thực nghiê ̣m của hê ̣ thống 56
4.1 Mô hình hê ̣ thống thu phát sóng RF 315MHz 56
4.2 Thu phát được tín hiê ̣u từ hê ̣ thống hoàn chỉnh 56
4.3 Thờ i gian truyền và tốc đô ̣ khi tính toán lí thuyết và thực tế 57
4.4 Sai số khi thực nghiê ̣m và xác đi ̣nh nguyên nhân 57
Chương 5 Kết luâ ̣n và hướng phát triển 59
5.1 Đánh giá chất lượng hê ̣ thống 59
5.2 Đánh giá mức đô ̣ đa ̣t với mu ̣c tiêu đă ̣t ra 59
5.3 Hướng phát triển của đề tài 59
5.4 Kinh nghiệm đa ̣t được khi thực hiê ̣n đề tài 60
TÀI LIỆU THAM KHẢO 61
Trang 6DANH MU ̣C HÌNH ẢNH
Hình 1: Da ̣ng tín hiê ̣u ASK 13
Hình 2: Sơ đồ khối điều chế ASK 14
Hình 3: Sơ đồ khối giải điều chế ASK 15
Hình 4: Arduino chip dán 17
Hình 5: ATmega8 18
Hình 6: Arduino chip cắm 18
Hình 7: Datasheet chip chân cắm 18
Hình 8: Giao diê ̣n Arduino 19
Hình 9: Giao diê ̣n Visual Studio 24
Hình 10: Khởi động phần mềm 26
Hình 11: Cấu hình cho Project mới 27
Hình 12: Giao diện MultiSim 33
Hình 13: Cài đă ̣t cho người sử du ̣ng 35
Hình 14: Sơ đồ nguyên lý mạch phát 38
Hình 15: Sơ đồ nguyên lý mạch thu 39
Hình 16: PCB mạch phát 40
Hình 17: PCB mạch thu 41
Hình 18: 3D mạch phát 41
Hình 19: 3D mạch thu 42
Hình 20: Sơ đồ mô phỏng mạch phát 42
Hình 21: Sơ đồ mô phỏng mạch thu 43
Hình 22: Kết quả mô phỏng tại mạch phát 43
Hình 23: Kết quả mô phỏng tại mạch thu 43
Hình 24: Sơ đồ khối của hê ̣ thống 44
Hình 25: Sơ đồ nguyên lí của bô ̣ phát RF 44
Hình 26: Sơ đồ nguyên lí của bô ̣ thu RF 44
Hình 27: Lưu đồ giải thuâ ̣t bô ̣ phát RF 45
Hình 28: Lưu đồ giải thuâ ̣t bô ̣ thu RF 45
Hình 29: Lắp ráp bô ̣ phát RF 48
Hình 30: Lắp ráp bô ̣ thu RF 48
Hình 31: Nạp code vào bô ̣ phát và bô ̣ thu 49
Hình 32: Thực hiê ̣n kết nối bô ̣ phát và bô ̣ thu với máy tính 49
Hình 33: Giao diê ̣n bô ̣ phát 50
Hình 34: Giao diê ̣n bô ̣ thu 50
Hình 35: Lưu đồ giải thuâ ̣t của giao diê ̣n 51
Hình 36: Giao diê ̣n đã kết nối hê ̣ thống thu phát RF 315MHz 55
Trang 7Hình 37: Mô hình hê ̣ thống thu phát sóng RF 315MHz 56
Hình 38: Thu phát được tín hiê ̣u từ hê ̣ thống hoàn chỉnh 56
Hình 39: Tốc đô ̣ truyền 57
Hình 40: Thu phát được tín hiê ̣u từ hê ̣ thống hoàn chỉnh 57
Hình 41: Giao diê ̣n cải thiê ̣n 59
Trang 8DANH MU ̣C BẢNH BIỂU
Bảng 1: Bảng kế hoa ̣ch thực hiê ̣n 12
Trang 9LỜI NÓI ĐẦU
Ngày nay với những ứng dụng của khoa học kĩ thuật trên tiên tiến, thế giới chúng ta
đã và đang ngày một thay đổi,văn minh và hiê ̣n đại hơn Sự phát triển của kĩ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết cho hoạt động của con người đạt hiệu quả cao
Điện tử đang trở thành một ngành công nghiệp đa nhiệm vụ Điện tử đã đáp ứng những đòi hỏi không ngừng từ các lĩnh vực công nông lâm ngư nghiệp cho đến các nhu cầu thiết bị trong đời sống hàng ngày
Một trong những ứng dụng quan trọng trong công nghệ điện tử là kỹ thuật điều khiển
từ xa Nó đã góp phần rất lớn trong việc điều khiển các thiết bị từ xa hay những thiết
bị mà con người không thể trực tiếp chạm vào để vận hành điều khiển
Xuất phát từ ứng dụng quan trọng trên,em đã thiết kế và thi công mạch điều khiển
thiết bị điện trong nhà sử dụng module thu phát sóng vô tuyến
Trang 10Chương 1 Tổng quan đề ta ̀i
1.1 Đặt vấn đề
Mục tiêu của đồ án môn học 1 giúp cho sinh viên có những khả năng sau:
- Tự sắp xếp kế hoạch làm việc
- Tự tìm tòi tra cứu tham khảo tài liệu
- Biết tính toán thiết kế cách mạch ứng dụng dựa và các môn cơ sở ngành
- Thi công một số sản phẩm đơn giản
Vì vậy cùng với sự hướng dẫn của thầy Bùi Thư Cao, người thực hiện đề tài đã chọn
đồ án môn học 2 Đồ án vận dụng các kiến thức đã học về vi điều khiển, thu phát sóng RF,… Và là cơ hội để người thực hiện đề tài có thêm nhiều kiến thức kinh nghiệm kiểm tra sự khác nhau giữa lý thuyết so với trên thực tế
1.2 Mu ̣c tiêu đề tài
- Thiết kế lắp ráp mô hình thu phát truyền dữ liê ̣u giữa hai máy tính sử du ̣ng kĩ thuâ ̣t ASK
1.3 Yêu cầu đề ta ̀i
- Máy tính có phần mền Visual Basic cho phép truyền dữ liê ̣u giữa hai máy tính
- Cách thức hoa ̣t đô ̣ng ở bô ̣ phát:
+ Nhập dữ liê ̣u vào giao diê ̣n
+ Gử i dữ liê ̣u đến arduino
+ Truyền dữ liê ̣u đến bô ̣ thu qua sóng RF 315MHz
- Cách thức hoa ̣t đô ̣ng ở bô ̣ thu:
+ Nhận dữ liê ̣u từ bô ̣ phát qua sóng RF 315MHz
+ Hiển thị dữ liê ̣u đã gửi từ bô ̣ phát
1.4 Pha ̣m vi đề tài
Với sự cố gắng, nỗ lực, chúng em đẽ hoàn thành được việc tìm hiểu nghiên cứu và tạo
ra được sản phẩm là hệ thống giao tiếp và truyền dữ liệu giữa hai máy tính bằng sóng
RF Tuy nhiên, có giới hạn về thời gian và trình độ, khó khăn trong việc tìm hiểu - tìm kiếm linh kiện thi công, nên khoảng cách điều khiển bị giới hạn trong khả năng
Trang 11thu phát cao tần do độ chính xác chưa cao của mạch Đồng thời, thi công sản phẩm bằng các thiết bị đơn giản và thiếu thốn nên chưa đạt yêu cầu về tính thẩm mỹ
1.4 Ý nghi ̃a đề tài
- Thiết kế và mô phỏng được một nghiên cứu và ứng dụng viễn thông
- Sử dụng các kết quả thực nghiệm, tư duy phân tích xác định các ưu nhược điểm và cải tiến chất lượng của thiết bị
1.5 Kế hoa ̣ch thực hiê ̣n đề tài
STT Tuần Nội dung Sinh viên thực hiê ̣n Nhâ ̣n xét
củ a GVHD
1 Tuần 1 - Giớ i thiê ̣u về mô ̣t project
hoàn chỉnh
Đoàn Thi ̣ Hằng Hoàng Thành Long
Võ Quốc Bảo
2 Tuần 2 - Xây dựng mô hình sơ đồ khối
hệ thống truyền dẫn kết nối có
dây
Đoàn Thi ̣ Hằng Hoàng Thành Long
Võ Quốc Bảo
3 Tuần 3 - Xây dựng mô hình sơ đồ khối
hệ thống truyền dẫn kết nối không dây
Đoàn Thi ̣ Hằng Hoàng Thành Long
Võ Quốc Bảo
Trang 124 Tuần 4
đến
Tuần 7
- Tìm hiểu tài liê ̣u về kết nối có
dây giữa 2 máy tính
- Tìm hiểu truyền dẫn có điều chế
- Thảo luâ ̣n về mô hình điều chế có dây và không dây
- Thống nhất về mô hình điều chế có dây và không dây
- Truyền trực tiếp 2 board arduino có dây và không dây
- Tìm hiểu phần mền Multisin, Visual Studio / Visual basic -Tìm hiểu module thu phát RF 315MHz
Đoàn Thi ̣ Hằng Hoàng Thành Long
Võ Quốc Bảo
5 Tuần 8
Đến
Tuần 10
- Lập trình phần mền
- Thiết kế phần cứng
- Thực hành lắp ráp hê ̣ thống
- Thực hiê ̣n kết nối hê ̣ thống
- Hoàn chỉnh hê ̣ thống
- Hoàn thành báo cáo
- Thuyết trình báo cáo
Đoàn Thi ̣ Hằng Hoàng Thành Long
Võ Quốc Bảo
Ba ̉ng 1: Bảng kế hoạch thực hiê ̣n
Trang 13Chương 2 Cơ sở lí thuyết
2.1 Điều chế ASK
2.1.1 Giơ ́ i thiê ̣u điều chế ASK
Định nghĩa: ASK (Amplitude Shift Keying), tiếng Việt gọi là điều chế số theo biên
độ tín hiệu Tín hiệu ASK có dạng sóng dao động có tần số f, mỗi bit đặc trưng bởi
biên độ khác nhau của tín hiệu
Hình 1: Da ̣ng tín hiê ̣u ASK Khi tín hiệu dữ liệu số được truyền bằng phương pháp AM thì kỹ thuật này được gọi
là kỹ thuật kỹ thuật dời biên (ASK, Amplitude- Shift Keying) Bit 1 được truyền đi bởi sóng mang có biên độ E1 và bit 0 bởi sóng mang biên độ E2
Trang 142.1.2 Ly ́ thuyết điều chế ASK
- Điều chế ASK: sóng điều biên được ta ̣o ra bằng cách thay đổi biên đô ̣ sóng mang theo biên đô ̣ sóng mang theo biên đô ̣ tín hiê ̣u gốc
- Phương pháp này với các bit 0 và 1 làm thay đổi biên độ của tín hiê ̣u sóng mang, trong đó tốc đô ̣ truyền tín hiệu ASK bị giới ha ̣n bởi các đă ̣c tính vâ ̣t lí của môi trường truyền Truyền dẫn ASK thườ ng rất nha ̣y cảm với nhiễu Nhiễu thường là các tín hiê ̣u điê ̣n áp xuất hiê ̣n trên đường dây từ các nguồn tín hiê ̣u khác ảnh hưởng được lên biên
đô ̣ của tín hiê ̣u ASK
Băng thông dùng cho ASK: BW = (1+d)Nbaud
Trong đó:
BW: băng thông
Nbaud: tốc đô ̣ baud
d: thừ a số liên quan đến điều kiê ̣n đường dây (có giá tri ̣ bé nhất là 0)
Ta thấy băng thông tối thiểu cần cho quá trình truyền thì bằng tốc đô ̣ baud
2.1.3 Sơ đồ khối điều chế
a Điều chế ASK
b Giải điều chế ASK
Hình 2: Sơ đồ khối điều chế ASK
Trang 15Hình 3: Sơ đồ khối giải điều chế ASK
c Ưu điểm và nhược điểm
6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau
2.2.2 Lịch sử phát triển
Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến
Trang 16một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++.Giá của các board Arduino dao động xung quanh €20, hoặc $27, nếu được "làm giả" thì giá có thể giảm xuống thấp hơn $9 Các board Arduino có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở) Người
ta ước tính khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tới tay người dùng
2.2.3 Phần cứng
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp
dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của
board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield Vài
shield truyền thông với board Arduino trực tiếp thông qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard
do hạn chế về kích cỡ thiết bị Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình
Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần cứng Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS232 sang
Trang 17TTL Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232 Vài biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương thức khác (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sử dụng như là 6 chân I/O số Những chân này được thiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm) Nhiều shield ứng dụng plug-in cũng được thương mại hóa Các board Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard
Có nhiều biến thể như Arduino-compatible và Arduino-derived Một vài trong số đó
có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại Nhiều
mở rộng cho Arduino được thực thiện bằng cách thêm vào các driver đầu ra, thường
sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp' và các robot nhỏ Những board khác thường tương đương về điện nhưng có thay đổi về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không Vài biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khác nhau
Trong môn học đồ án 2, chúng em lựa chọn sử dụng hai board Arduino UNO R3: + X1 chip dán
Hình 4: Arduino chip dán
Trang 18Hình 5: ATmega8 + X1 chip cắm
Hình 6: Arduino chip cắm
Datasheet chip chân cắm:
Hình 7: Datasheet chip chân cắm
Trang 192.2.4 Cách lập trình
Các Arduino tích hợp môi trường phát triển ( IDE ) là một nền tảng ứng dụng (ví của Windows , MacOS , Linux ) được viết bằng ngôn ngữ lập trình Java Nó được sử dụng để viết và tải các chương trình lên các bảng tương thích Arduino, nhưng cũng với sự trợ giúp của các lõi bên thứ 3, các bảng phát triển nhà cung cấp khác
Arduino IDE hỗ trợ các ngôn ngữ C và C ++ bằng cách sử dụng các quy tắc đặc biệt
về cấu trúc mã
Hình 8: Giao diê ̣n Arduino
2.3 Visuo studio
2.3.1 Định nghĩa
Microsoft Visual Studio là một môi trườngphát triển tích hợp (IDE) từ Microsoft
Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows
Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight
Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý
Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến
mã nguồn Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và
gỡ lỗi mức độ máy Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm
Trang 20thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm
bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ
thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập
mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual
C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#)
và F# (như của Visual Studio 2010[5]) Hỗ trợ cho các ngôn ngữ khác
như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ Nó cũng hỗ
trợ XML/XSLT, HTML/XHTML, JavaScript và CSS
Microsoft cung cấp phiên bản "Express" (đối với phiên bản Visual Studio 2013 trở
về trước) và "Community" (đối với bản Visual Studio 2015 trở về sau) là phiên bản miễn phí của Visual Studio
2.3.2 Tính năng
Giống như bất kỳ IDE khác, nó bao gồm một trình soạn thảo mã hỗ trợ tô sáng cú pháp và hoàn thiện mã bằng cách sử dụng IntelliSense không chỉ cho các biến, hàm và các phương pháp mà còn các cấu trúc ngôn ngữ như vòng điều khiển hoặc truy vấn IntelliSense được hỗ trợ kèm theo cho các ngôn ngữ như XML, Cascading StyleSheets và JavaScript khi phát triển các trang web và các ứng dụng web Các đề xuất tự động hoàn chỉnh được xuất hiện trong một hộp danh sách phủ lên trên đỉnh của trình biên tập mã Trong Visual Studio 2008 trở đi, nó có thể được tạm thời bán trong suốt để xem mã che khuất bởi nó Các trình biên tập mã được sử dụng cho tất
cả các ngôn ngữ được hỗ trợ
Các trình biên tập mã Visual Studio cũng hỗ trợ cài đặt dấu trang trong mã để điều hướng nhanh chóng Hỗ trợ điều hướng khác bao gồm thu hẹp các khối mã lệnh và tìm kiếm gia tăng, ngoài việc tìm kiếm văn bản thông thường và tìm kiếm Biểu thức chính quy Các trình biên tập mã cũng bao gồm một bìa kẹp đa mục và một danh sách công việc Các trình biên tập mã hỗ trợ lưu lại các đoạn mã được lặp đi lặp lại nhằm để chèn vào mã nguồn sử dụng về sau Một công cụ quản lý cho đoạn mã được xây dựng là tốt Những công cụ này nổi lên như các cửa sổ trôi nổi có thể được thiết lập để tự động ẩn khi không sử dụng hoặc neo đậu đến các cạnh của màn hình Các trình biên tập mã Visual Studio cũng hỗ trợ cải tiến mã nguồn bao gồm tham số sắp xếp lại, biến
Trang 21và phương pháp đổi tên, khai thác và đóng gói giao diện các lớp thành viên bên trong những trạng thái giữa những thứ khác
Visual Studio có tính năng biên dịch nền (còn gọi là biên dịch gia tăng) Như mã đang được viết, Visual Studio biên dịch nó trong nền để cung cấp thông tin phản hồi về cú pháp và biên dịch lỗi, được đánh dấu bằng một gạch dưới gợn sóng màu đỏ Biên dịch nền không tạo ra mã thực thi, vì nó đòi hỏi một trình biên dịch khác hơn là để sử dụng tạo ra mã thực thi Biên dịch nền ban đầu được giới thiệu với Microsoft Visual Basic nhưng bây giờ đã được mở rộng cho tất cả các ngôn ngữ
Visual Studio có một trình gỡ lỗi hoạt động vừa là một trình gỡ lỗi cấp mã nguồn và là một trình gỡ lỗi cấp máy Nó hoạt động với cả hai mã quản lý cũng như ngôn ngữ máy và có thể được sử dụng để gỡ lỗi các ứng dụng được viết bằng các ngôn ngữ được
hỗ trợ bởi Visual Studio Ngoài ra, nó cũng có thể đính kèm theo quy trình hoạt động và theo dõi và gỡ lỗi những quy trình Nếu mã nguồn cho quá trình hoạt động có sẵn,
nó sẽ hiển thị các mã như nó đang được chạy Nếu mã nguồn không có sẵn, nó có thể
hiển thị các tháo gỡ Các Visual Studio debugger cũng có thể tạo bãi bộ nhớ cũng như
tải chúng sau để gỡ lỗi Các chương trình đa luồng cao cấp cũng được hỗ trợ Trình
gỡ lỗi có thể được cấu hình sẽ được đưa ra khi một ứng dụng đang chạy ngoài Visual Studio bị treo môi trường
Trình gỡ lỗi cho phép thiết lập các breakpoint (mà cho phép thực thi được tạm thời dừng lại tại một vị trí nhất định) và watch (trong đó giám sát các giá trị của biến là việc thực hiện tiến bộ) Breakpoint có thể có điều kiện, nghĩa là chúng được kích hoạt khi điều kiện được đáp ứng Mã có thể được biểu diễn, tức là chạy một dòng (của mã nguồn) tại một thời điểm Nó có hoặc là bước sang các chức năng để gỡ lỗi bên trong
nó, hoặc là nhảy qua nó, tức là, việc thực hiện các chức năng không có sẵn để kiểm tra thủ công Trình gỡ lỗi hỗ trợ Edit and Continue, nghĩa là, nó cho phép mã được chỉnh sửa khi nó đang được sửa lỗi (chỉ có 32 bit, không được hỗ trợ trong 64 bit) Khi gỡ lỗi, nếu con trỏ chuột di chuyển lên bất kỳ biến, giá trị hiện tại của nó được hiển thị trong phần chú giải ("chú thích dữ liệu"), nơi mà nó cũng có thể được thay đổi nếu muốn Trong quá trình viết mã, các trình gỡ lỗi của Visual Studio cho phép một số chức năng được gọi ra bằng tay từ cửa sổ công cụ Immediate Các thông số cho phương thức được cung cấp tại các cửa sổ Immediate
Windows Forms Designer: được sử dụng để xây dựng GUI sử dụng Windows Forms;
bố trí có thể được xây dựng bằng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh mẫu Điều khiển trình bày dữ liệu (như hộp văn bản, hộp danh sách, vv) có thể được liên kết với các nguồn dữ liệu như cơ sở dữ liệu hoặc truy vấn Các điều
Trang 22khiển dữ liệu ràng buộc có thể được tạo ra bằng cách rê các mục từ cửa sổ nguồn dữ liệu lên bề mặt thiết kế Các giao diện người dùng được liên kết với mã sử dụng một
mô hình lập trình hướng sự kiện Nhà thiết kế tạo ra bằng C thăng hay VB.NET cho ứng dụng
+ WPF Designer: có tên mã là Cider, được giới thiệu trong Visual Studio 2008 Giống
như Windows Forms Designer, hỗ trợ kéo và thả ẩn dụ Sử dụng tương tác
người-máy nhắm mục tiêu theo Windows Presentation Foundation Nó hỗ trợ các chức năng WPF bao gồm kết nối dữ liệu và tự động hóa bố trí quản lý Nó tạo ra mã XAML cho
giao diện người dùng Các tập tin XAML được tạo ra là tương thích với Microsoft Expression Design, sản phẩm thiết kế theo định hướng Các mã XAML được liên kết
với mã đang sử dụng một mô hình code-behind
+ Web designer/development: Visual Studio cũng bao gồm một trình soạn thảo và
thiết kế trang web cho phép các trang web được thiết kế bằng cách kéo và thả các đối tượng Nó được sử dụng để phát triển các ứng dụng ASP.NET và hỗ trợ HTML, CSS và JavaScript Nó sử dụng mô hình code-behind để liên kết với mã ASP.NET Từ Visual Studio 2008 trở đi, công cụ bố trí được sử dụng bởi các nhà thiết
kế web được chia sẻ với Microsoft Expression Web Ngoài ra ASP.NET MVC Framework hỗ trợ cho công nghệ MVC là tải xuống riêng biệt[32] và dự án ASP.NET Dynamic Data có sẵn từ Microsoft
+ Class designer: Các lớp thiết kế được dùng để biên soạn và chỉnh sửa các lớp (bao
gồm cả các thành viên và truy cập của chúng) sử dụng mô hình UML Các lớp thiết
kế có thể tạo ra mã phác thảo C thăng và VB.NET cho các lớp và cá phương thức Nó cũng có thể tạo ra sơ đồ lớp từ các lớp viết tay
+ Data designer: Thiết kế dữ liệu có thể được sử dụng để chỉnh sửa đồ họa giản đồ cơ
sở dữ liệu bao gồm các bảng, khóa chính, khóa ngoại và các rằng buộc Nó cũng có thể được sử dụng để thiết kế các truy vấn từ các giao diện đồ họa
Mapping designer: Từ Visual Studio 2008 trở đi, thiết kế ánh xạ được dùng
bởi Language Integrated Query để thiết kế các ánh xạ giữa các giản đồ cơ sở dữ liệu
và các lớp để đóng gói dữ liệu Các giải pháp mới từ cách tiếp cận ORM, ADO.NET
Entity Framework sẽ thay thế và cải thiện các công nghệ cũ
Open Tabs Browser: được sử dụng để liệt kê tất cả thẻ đang mở và chuyển đổi giữa
chúng Được viện dẫn bằng cách sử dụng CTRL+TAB
Trang 23+ Properties Editor: được sử dụng để chỉnh sửa các thuộc tính trong một cửa sổ giao
diện bên trong Visual Studio Nó liệt kê tất cả các thuộc tính có sẵn (gồm chỉ đọc và những thuộc tính có thể được thiết lập) cho tất cả các đối tượng bao gồm các lớp, biểu mẫu, trang web và các hạng mục khác
+ Object Browser: là một không gian tên và trình duyệt lớp thư viện cho Microsoft
NET Nó có thể được sử dụng để duyệt các không gian tên (được sắp xếp theo thứ bậc) trong Assembly (CLI) Các hệ thống phân cấp có thể hoặc không có thể phản ánh các tổ chức trong hệ thống tập tin
+ Solution Explorer: theo cách nói trong Visual Studio, một giải pháp là một tập hợp
các tập tin mã và các nguồn khác được sử dụng để xây dựng một ứng dụng Các tập tin trong một giải pháp được sắp xếp theo thứ bậc, mà có thể có hoặc không thể phản
ánh các tổ chức trong hệ thống tập tin Solution Explorer được sử dụng để quản lý và
duyệt các tập tin trong một giải pháp
+Team Explorer: được sử dụng để tích hợp các khả năng của Team Foundation
Server, Revision Control System và là cơ sở cho môi trường CodePlex đối với dự án
mã nguồn mở Ngoài việc kiểm soát nguồn nó cung cấp khả năng xem và quản lý các công việc riêng lẻ (bao gồm cả lỗi, nhiệm vụ và các tài liệu khác) và để duyệt thống
kê TFS Nó được bao gồm như là một phần của một cài đặt TFS và cũng có sẵn để tải
xuống cho Visual Studio Team Explorer cũng có sẵn như là một môi trường độc lập
duy nhất để truy cập các dịch vụ TFS
+ Data Explorer: được sử dụng để quản lý cơ sở dữ liệu trên Microsoft SQL Server
Nó cho phép tạo ra và sửa đổi các bảng cơ sở dữ liệu (hoặc bằng cách ban hành các lệnh T-SQL hoặc bằng cách sử dụng các thiết kế dữ liệu) Nó cũng có thể được sử
dụng để tạo các truy vấn và các thủ tục lưu trữ trong T-SQL hoặc trong Managed code thông qua SQL CLR Có sẵn gỡ lỗi và hỗ trợ IntelliSense
+ Server Explorer: công cụ được sử dụng để quản lý các kết nối cơ sở dữ liệu trên
một máy tính truy cập được Nó cũng được sử dụng để duyệt chạy Windows Services, quầy thực hiện, Windows Event Log và hàng đợi tin nhắn và sử dụng chúng như một nguồn dữ liệu
+ Dotfuscator Software Services Community Edition: Visual Studio bao gồm một
phiên bản light của sản phẩm PreEmptive Solutions' Dotfuscator cho mã gây rối
vàgiảm kích thước ứng dụng Khởi đầu với Visual Studio 2010, phiên bản này của Dotfuscator sẽ bao gồm khả năng Runtime Intelligence cho phép tác giả thu thập cách
Trang 24sử dụng của người dùng cuối, hiệu suất, tính ổn định và các thông tin từ các ứng dụng của họ chạy trong sản xuất
+ Text Generation Framework: Visual Studio bao gồm một khung tạo văn bản đầy
đủ được gọi là Text Template Transformation Toolkit T4 cho phép Visual Studio tạo
ra tập tin văn bản từ các mẫu hoặc trong IDE hoặc thông qua mã
ASP.NET Web Site Administration Tool: công cụ quản trị trang web ASP.NET cho phép cấu hình các trang web ASP.NET
+ Visual Studio Tools for Office: Công cụ Visual Studio cho Ofice là một SDK và một add-in cho Visual Studio bao gồm các công cụ để phát triển cho các bộ Microsoft Office Trước đây (với Visual Studio.NET 2003 và Visual Studio 2005) đó là một SKU riêng biệt mà chỉ hỗ trợ Visual C# Visual Basic.NET hoặc đã được đưa vào Team Suite
Với Visual Studio 2008, nó không còn là một SKU riêng biệt nhưng lại kèm trong các phiên bản chuyên nghiệp và cao hơn Một thời gian chạy riêng biệt được yêu cầu khi triển khai các giải pháp VSTO
2.3.3 Giao diện Visuo Studio:
Hình 9: Giao diê ̣n Visual Studio
+ Solution Explorer: là cửa sổ hiển thị Solution, các Project và các tập tin trong project
+ Khu vực code: đây là khu vực để lập trình viên viết mã nguồn cho chương trình Cửa sổ lập trình cho một tập tin trong Project sẽ hiển thị khi người dùng nháy đúp chuột lên tập tin đó trong cửa sổ Solution Explorer
Trang 25+ Output: đây là cửa sổ hiển thị các thông tin, trạng thái của Solution khi build hoặc của chương trình khi debug
+ Error List: là cửa sổ hiển thị danh sách lỗi (Error) hoặc cảnh báo (Warning) của chương trình khi build
+ Toolbar với các công cụ hỗ trợ người dùng trong việc viết mã và debug (các công
cụ trên thanh có thể thay đổi khi bắt đầu debug)
+ Thanh menu với đầy đủ các danh mục chứa các chức năng của VS Khi người dùng cài thêm những trình cắm hỗ trợ VS (ví dụ như Visual Assist), thanh menu này sẽ cập nhật thêm menu của các trình cắm (nếu có)
Một lưu ý thêm là các cửa sổ trong giao diện làm việc của VS không được gắn cố định, nên người dùng có thể tự do tùy chỉnh khung làm việc của mình sao cho phù hợp nhất Độc giả có thể thử click vào thanh tiêu đề của một cửa sổ hoặc một thẻ tập tin code và kéo ra khỏi vị trí của nó, một số biểu tượng hỗ trợ sẽ xuất hiện trên giao diện VS để người dùng “thả” cửa sổ vừa kéo ra vào đó hoặc thả trôi nổi như một popup trên giao diện VS
2.4 Visual basic
2.4.1 Giơ ́ i thiê ̣u về Visual Basic
Visual Basic là sản phẩm của Microsoft, mô ̣t thành phần của bô ̣ Visual Studio Chức năng: Là mô ̣t ngôn ngữ lâ ̣p trình dùng để xây dựng các ứng du ̣ng cha ̣y trên môi trường Windows
Đặc điểm: Trực quan, cung cấp các công cụ thuâ ̣n lợi cho viê ̣c ta ̣o các giao diê ̣n
2.4.2 Khởi động phần mềm và tạo project
Bước 1: Khởi động phần mềm
Bước 2: Chọn Create a new project
Trang 26- Ở tab bên trái Open Recent ta có thể mở nhanh những project đã thực hiện trước đó
- Ở tab bên phải Get strated:
+ Clone or check out code: lấy code từ kho lưu trữ trực tuyến chẳng hăn như GifHub hoặc Azure DevOps
+ Open a project or solution: Mở một đề án Visual Studio cục bộ hoặc file sln + Open a local folder: Điều hướng và chỉnh sửa code trong bất kỳ thư mục
+ Create a new project: chọn một mẫu dự án để bắt đầu
Bước 3: Để xây dựng một dựng án với ngôn ngữ lập trình là Visual Basic ta chọn Console App (.NET Framework) hoặc Console App (.NET Core)
- Console App (.NET Framework): Có thể chạy trên Linux, MacOs, Windows, Console
- Console App (.NET Core): Ứng dụng điều khiển C++, Windows, Console Bạn có thể dùng Console App (.NET Core) để tối ưu tài nguyên của máy
Bước 4: Cấu hình cho Project mới
- Project name: Tên project.- Location: đường dẫn để lưu project
- Solution name: giải pháp cho nơi chứa một hoặc nhiều dự án trong Visual Studio
Hình 10: Khởi động phần mềm
Trang 27Hình 11: Cấu hình cho Project mới
.Bước 5: Nhấn Next để hoàn tất quá trình tạo project mới
2.4.3 Giới thiệu giao diện
- Mục 1: Là tool box để lựa chọn các Control cho phù hợp với nhu cầu Ta kéo thả trực tiếp vào mục số 3 nếu số 3 ở tab MainWindow
- Mục 2: Là XAML là nơi thiết kế màn hình bằng code XAML (tương tự XML)
- Mục 3: Là nơi thể hiện màn hình tương tác người dùng NÓ sẽ thay đổi theo mục 1 và mục 2 tùy ý của lập trình viên
- Mục 4: Là nơi tổ chức sắp xếp hệ thống các lớp, tập tin, thư viện… trong dự án
- Mục 5: Là nơi cấu hình các thuộc tính cho các đối tượng trên giao diện
- Mục 6: là các tiện ích giúp ta thao tác nhanh với hệ thống
Trang 282.4.4 Ngôn ngư ̃ lâ ̣p trình Visual Basic
1 Kiểu số nguyên
+ Byte: kích thước 1 byte, pha ̣m vi từ 0 đến 255
+ Integer: kích thước 2 bytes, pha ̣m vi từ -32768 đến 32767
+ Long: kích thước 4 bytes, phạm vi từ -231 đến 231- 1
2 Kiểu số thực
+ Single: kích thước 4 byte, xác định đến 38 chữ số
+ Double: kích thước 8 byte, xác đi ̣nh đến 300 chữ số
3 Kiểu chuỗi (string)
+ Chuỗi được đă ̣t trong dấu “ ” có đô ̣ dài đủ lớn
+ Phép toán: nối chuỗi ứng với kí tự hiê ̣u & hoă ̣c +
4 Kiểu logic (Boolean)
+ Chỉ có hai giá tri ̣ true, false hoă ̣c 1, 0
+ Các phép toán gồm hô ̣i, tuyển, phủ định ứng với kí hiê ̣u and, or, not
5 Kiểu ngày, giờ (Date)
+ Kích thướ c 8 byte ghi được cả ngày lẫn giờ Thông thường nếu chỉ dùng ngày ta viết giữa 2 dấu #
có kiểu hay không có kiểu và câu lệnh để tạo ra hai loại này là hoàn toàn khác nhau)
Trang 29Nếu một biến hoàn toàn không thay đổi giá trị của nó trong mọi tình huống thì vai trò của biến này tương đương với một hằng
+ Khai báo: Const<tên hằng>[as<kiểu>]=<giá trị>
2 Biến
Một biến (variable) là một tên biểu thị cho một số lượng, một ký hiệu hay một đối tượng Thêm vào đó, một biến sẽ được dành sẵn chỗ (phần của bộ nhớ) để chứa số lượng, ký hiệu hay đối tượng đó Trong lúc chương trình được thi hành thì các biến của chương trình sẽ có thể thay đổi giá trị hoặc không thay đổi gì cả Hơn nữa, một biến có thể bị thay đổi cả lượng bộ nhớ mà nó đang chiếm hữu (do người lập trình hay
do phần mềm dịch ra lệnh) Trường hợp biến này không được gán giá trị hay có gán giá trị nhưng không được sử dụng vào các tính toán thì nó chỉ chiếm chỗ trong bộ nhớ một cách vô ích Mỗi biến sẽ có tên của nó và có thể có kiểu xác định Tùy theo ngôn ngữ, một biến có thể được khai báo ở vị trí nào đó trong mã nguồn và cũng tùy ngôn ngữ, tùy phần mềm dịch và cách thức lập trình mà một biến có thể được tạo nên (cùng với chỗ chứa) hay bị xóa bỏ tại một thời điểm nào đó trong lúc thực thi chương trình Việc các biến bị xóa bỏ là để tiết kiệm bộ nhớ cũng như làm tốt hơn việc quản lý phần
bộ nhớ mà đôi khi một chương trình chỉ được cấp bởi đăng ký với hệ điều hành + Khai báo: Dim<tên biến>[as<kiểu>]
+ Tên hàm: tự đă ̣t theo quy tắc như quy tắc đă ̣t tên biến
+ ds tham số: là nhiều tham số khai báo như danh sách biến
+ <giá tri ̣> là kết quả trả về của hàm
+ Trong đó có thể dùng Exit Function để thoát khỏi hàm
2.4.4.4 Thu ̉ tục
Sub<Tên_thủ _tu ̣c>([ds tham số])
Các lê ̣nh
Trang 30- “Condition” là điều kiện, nếu Condition có giá trị True thì các lệnh trong
“Statements” sẽ được thực hiện
Trang 31Visual Basic Library là chương trình thư viện dành cho dân lập trình Visual
- Basic với các tính năng: