Cụ thể: Đa nền tảng: Phần mềm lập trình Visual Studio của Microsoft hỗ trợ sử dụng trên nhiều nền tảng khác nhau.. Đa ngôn ngữ lập trình: Visual Studio cho phép sử dụng nhiều n
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA ĐIỆN, ĐIỆN TỬ VÀ CÔNG NGHỆ VẬT LIỆU
BÁO CÁO THỰC HÀNH
CƠ SỞ ĐIỆN TỬ – VIỄN THÔNG II
SINH VIÊN THỰC HIỆN: HỒ VĂN NHẬT MÃ SINH VIÊN: 19T1051013
HUẾ, THÁNG 12 NĂM 2021
Trang 2MỤC LỤC
Trang
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH ẢNH
Trang 3DANH MỤC BẢNG BIỂU
Trang 4LỜI NÓI ĐẦU
Trong sự phát triển của điện tử hiện nay, kỹ thuật số đang dầnchiếm ưu thế về số lượng lớn các ứng dụng của nó trên nhiều thiết bị
điện tử dân dụng, trong nhiều lĩnh vực như đo lường, điều khiển nhờ
vào các ưu điểm của nó Có thể nói, nền tảng của kỹ thuật số là mạchlogic số dựa trên các cổng cơ bản mà ngày nay tích hợp trong các IC số.Các mạch logic sử dụng các ma trận LED để hiển thị thông tin nhằmmục đích thông báo, quảng cáo tại nơi công cộng đã được sử dụng rấtrộng rãi
Trên cơ sở đã được học trong môn kỹ thuật số, và trong khuôn khổthực hành của môn học: THỰC HÀNH CƠ SỞ ĐIỆN TỬ VIỄN THÔNG II,
em đã thiết kế một giao diện đầy đủ ghép nối với máy tính là: Điềukhiển led, motor, servo, gửi dữ liệu lên máy tính, đọc thời gian thực tưmodule DS1307 và đọc nhiệt độ – độ ẩm tư cảm biến DHT11 Với mụcđích là tìm hiểu về kỹ thuật ghép nối máy tính, nâng cao kiến thức củamình
Do kiến thức còn hạn hẹp và thời gian thực hiện không nhiều nêngiao diện mà em thiết kế còn nhiều sai sót và hạn chế Mặc dù đã phầnnào thiết kế và tính toán chi tiết các mạch, các thông số nhưng đôi khicòn mang tính lý thuyết, chưa thực tế Em mong sự đóng góp và sửachữa để giao diện mà em thiết kế này mang tính khả thi hơn
Em xin chân thành cảm ơn thầy Phan Hải Phong đã hướng dẫn em hoànthành bài thực hành này
Trang 5CHƯƠNG 1 GIỚI THIỆU PHẦN MỀM VISUAL STUDIO
1.1 VISUAL STUDIO LÀ GÌ?
Visual studio là một phần mềm hỗ trợ đắc lực hỗ trợ công việclập trình website Công cụ này được tạo lên và thuộc quyền sở hữu của ông lớn công nghệ Microsoft Năm 1997, phần mềm lập trình nay có tên mã Project Boston Nhưng sau đó, Microsoft đã kết hợp các công cụ phát triển, đóng gói thành sản phẩm duy nhất
Hình 1 Visual Studio
Visual Studio là hệ thống tập hợp tất cả những gì liên quan tớiphát triển ứng dụng, bao gồm trình chỉnh sửa mã, trình thiết kế,
gỡ lỗi Tức là, bạn có thể viết code, sửa lỗi, chỉnh sửa thiết kế ứng dụng dễ dàng chỉ với 1 phần mềm Visual Studio mà thôi Không dưng lại ở đó, người dùng còn có thể thiết kế giao diện, trải nghiệmtrong Visual Studio như khi phát triển ứng dụng Xamarin, UWP bằng XAML hay Blend
1.2 CÁC TÍNH NĂNG CỦA PHẦN MỀM VISUAL STUDIO
Trang 6Tính đến nay, Visual Studio vẫn được coi là phần mềm lập trình hệ thống hàng đầu, chưa có phần mềm nào có thể thay thế được nó Được đánh giá cao như vậy bởi Visual Studio sở hữu nhiềutính năng cực kỳ hấp dẫn Cụ thể:
Đa nền tảng:
Phần mềm lập trình Visual Studio của Microsoft hỗ trợ sử dụng trên nhiều nền tảng khác nhau Không giống như các trình viết code khác, Visual Studio sử dụng được trên cả Windows, Linux
và Mac Systems Điều này cực kỳ tiện lợi cho lập trình viên trong quá trình ứng dụng
Đa ngôn ngữ lập trình:
Visual Studio cho phép sử dụng nhiều ngôn ngữ lập trình khác nhau tư C#, F#, C/C++, HTML, CSS, Visual Basic, JavaScript,… Bởi vậy, Visual Studio có thể dễ dàng phát hiện và thông báo cho bạn khi các chương trình có lỗi
Kho tiện ích mở rộng phong phú:
Mặc dù Visual Studio có hệ thống các ngôn ngữ hỗ trợ lập trình khá đa dạng Nhưng nếu lập trình viên muốn sử dụng một ngôn ngữ khác, bạn có thể dễ dàng tải xuống các tiện ích mở rộng Tính năng hấp dẫn này được hoạt động như một phần chương trình độc lập nên không lo làm giảm hiệu năng của phần mềm
Hỗ trợ viết code:
Khi sử dụng code vào trong lập trình, với Visual Studio, công cụ này có thể đề xuất tới các lập trình viên một số tùy chọn thay thế nhằm điều chỉnh đôi chút để đoạn code áp dụng thuận tiện hơn cho người dùng
Tính năng comment:
Một tính năng cũng khá hay ho, hỗ trợ cho người lập trình trong trường hợp “nhớ nhớ quên quên” đó là tính năng bình luận Tính
Trang 7năng này cho phép lập trình viên để lại nhận xét, giúp dễ dàng ghi nhớ công việc cần hoàn thành, không bỏ sót công đoạn nào.
CHƯƠNG 2 TỔNG QUAN VỀ LINH KIỆN 2.1 GIỚI THIỆU ARDUINO
2.1.1 Arduino là gì?
Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và
sinh viên nước Ý thiết kế và đưa ra đầu tiên vào năm 2005 Mạch
Arduino được sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau Nó có thể thực hiện nhiều nhiệm vụ lấy tín hiệu tư cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác Ngoài ra mạch còn
có khả năng liên kết với nhiều module khác nhau như module đọc thẻ
tư, ethernet shield, sim900A, ….để tăng khả ứng dụng của mạch
Phần cứng bao gồm một board mạch nguồn mở được thiết kế trênnền tảng vi xử lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit,… Hiện phần cứng của Arduino có tất cả 6 phiên bản, Tuy nhiên phiên bản thường được sử dụng nhiều nhất là Arduino Uno và Arduino Mega
Phần mềm để lập trình cho mạch Arduino là phần mềm IDE
2.1.2 Cấu tạo của Arduino
Trang 8Hình 2 Cấ u tạ o củ a Arduino Uno
2.1.3 Thông số cơ bản của Arduino Uno R3
Bả ng 1 Thông số cơ bản củ a Arduino Uno R3
Vi điều khiển Atmega 328 (họ 8 bit)
Điện áp hoạt động 5V – DC (cấp qua cổng USB)
Tần số hoạt động 16 MHz
Điện áp vào khuyên dùng 7 – 12V – DC
Điện áp vào giới hạn 6 – 20V – DC
Số chân Digital I/O 14 chân (6 chân PWM)
Số chân Analog 6 (độ phân giải 10 bit)
Dòng tối đa trên mỗi chân
Dòng ra tối đa (5V) 500mA
Dòng ra tối đa (3.3V) 50mA
Bộ nhớ flash 32 KB (Atmega328) với 0.5KB dùng bởi bootloader
Trang 9SRAM 2KB (Atmega328)
2.1.4 Các loại Board Arduino phổ biến
Không giống như hầu hết các board mạch lập trình trước đó,
Arduino không yêu cầu một phần cứng riêng để lập trình mã mới lên board mà bạn chỉ cần sử dụng cáp USB Đồng thời, phần mềm Arduino IDE sử dụng phiên bản cơ bản của C ++, giúp việc học chương trình trở nên đơn giản hơn Chúng ta có thể tổng hợp một số loại Arduino phổ biến như sau:
Arduino Uno: Đây chính là loại board đơn giản nhất nên rất phù hợp
với những người mới bắt đầu tìm hiểu về lĩnh vực này Dữ liệu số bao gồm 14 chân, đầu vào gồm 6 chân 5V, khả năng phân giải là 1024 mức, tốc độ 16MHz, điện áp tư 7V đến 12V Kích thước của Board này
là 5,5x7cm
Arduino Micro: Bao gồm có đến 20 chân, trong đó có 7 chân có thể
phát PWM Loại này có thiết kế khá nhỏ gọn, kích thước chỉ 5x2cm
Arduino Nano: Có thể nói đây chính là loại board có kích thước nhỏ
nhất chỉ 2x4cm, việc lắp đặt được thực hiện dễ dàng
Arduino Pro: Đây là một thiết kế mới mẻ khi chân số không có sẵn,
tùy vào số chân bạn sử dụng để gắn trực tiếp và giúp tiết kiệm được khoảng không lớn, ta thường thấy hai loại có nguồn 3.3V và 5V
Arduino Mega: Chân số lên đến 64, 14 chân có thể phát PWM, 4
cổng truyền tiếp cùng kích thước khá lớn 5x10cm
Arduino Leonardo: Là board không có cổng nối USB dùng lập trình Được thiết kế tại một chip nhỏ điều khiển Kết nối qua COM ảo và có thể kết nối với chuột và bàn phím
Arduino LilyPad: Board mạch Lily Pad Arduino là một công nghệ dệtđiện tử có thể đeo được được mở rộng bởi Leah Sang Buechley, và được thiết kế một cách cẩn thận bởi dòng Lea Leah và SparkFun Mỗi
Trang 10board được thiết kế một cách tưởng tượng với các miếng kết nối khổng lồ & một mặt sau mịn màng để cho chúng được khâu vào quần
áo bằng chỉ Arduino này cũng bao gồm I / O, nguồn và cả board cảm biến được chế tạo đặc biệt cho hàng dệt may điện tử
Arduino RedBoard: Board mạch RedBoard Arduino có thể được lập
trình bằng cáp USB Mini-B bằng Arduino IDE Nó sẽ hoạt động trên Windows 8 mà không phải sửa đổi cài đặt bảo mật của bạn Nó khôngđổi do chip USB hoặc FTDI chúng tôi sử dụng và nó hoàn toàn phẳng
ở mặt sau Tạo nó rất đơn giản để sử dụng trong thiết kế dự án Chỉ cần cắm board, chọn tùy chọn menu để chọn Arduino UNO và bạn đã sẵn sàng để tải lên chương trình Bạn có thể điều khiển RedBoard qua cáp USB bằng giắc cắm thùng
Ngoài ra, còn có thể kể đến: Arduino Diecimila, Arduino Duemilanove, Arduino Due, v.v
2.1.5 Ứng dụng Arduino
Arduino có nhiều ứng dụng trong đời sống, trong việc chế tạo các thiết bị điện tử chất lượng cao Một số ứng dụng có thể kể đến như:
Lập trình robot: Arduino chính là một phần quan trọng trong trung tâm xử lí giúp điều khiển được hoạt động của robot
Lập trình máy bay không người lái Có thể nói đây là ứng dụng có nhiều kì vọng trong tương lai
Game tương tác: chúng ta có thể dùng Arduino để tương tác với
Joystick, màn hình,… để chơi các trò như Tetrix, phá gạch, Mario… và nhiều game rất sáng tạo nữa
Arduino điều khiển thiết bị ánh sáng cảm biến tốt Là một trong
những bộ phần quan trọng trong cây đèn giao thông, các hiệu ứng đèn nháy được cài đặt làm nổi bật các biển quảng cáo
Arduino cũng được ứng dụng trong máy in 3D và nhiều ứng dụng khác tùy thuộc vào khả năng sáng tạo của người sử dụng
Trang 112.2 PHẦN MỀM LẬP TRÌNH ARDUINO IDE
Arduino cung cấp đến môi trường lập trình tích hợp mã nguồn mở
hỗ trợ người dùng viết code và tải nó lên bo mạch Arduino Đây là môi trường đa nền tảng, hỗ trợ một loạt các bo mạch Arduino cùng rất
nhiều tính năng độc đáo Ứng dụng lập trình này có giao diện được sắp xếp hợp lý, phù hợp với cả những người dùng chuyên nghiệp lẫn không chuyên
Arduino có môi trường lập trình được viết bằng java, hiện đang được sử dụng cho các bo mạch Arduino và Genuido, được nhiều công tytrên thế giới sử dụng để lập trình cho các thiết bị của họ Java 2
Platform Standard Edition cũng là một IDE hỗ trợ Java Hiện Java 2
Platform Standard Edition được rất nhiều người sử dụng
Arduino là môi trường phát triển tích hợp đa nền tảng, hỗ trợ cho một loạt các bo mạch Arduino như Arduino Uno, Nano, Mega, Esplora, Ethernet, Fio, Pro hay Pro Mini cũng như LilyPad Arduino Phần mềm nàycũng phù hợp cho những lập trình viên C và C ++ là thay thế hoàn hảocho các IDE khác Với những ai muốn học lập trình PHP, thì PHP
Designer 2007 Personal là lựa chọn tốt Phần mềm PHP Designer 2007 Personal cung cấp các giải pháp hiệu quả trong thiết kế website
phù hợp với hệ điều hành của máy mình bao gồm Windown, Mac OShay Linux Đối với Windown có bản cài đặt (.exe) và bản Zip, đối với Zipthì chỉ cần giải nén và chạy chương trình không cần cài đặt Môi trườngphát triển tích hợp (IDE) của Arduino là một ứng dụng đa nền tảng đượcviế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ứcnăng như đánh dấu cú pháp, tự động kiểm tra phù hợp dấu ngoặc và tự
Trang 12động canh lề, cũng như biên dịch (complie) và tải (upload) chương trìnhlê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 tính năng chính của Arduino IDE:
Viết code cho bo mạch Arduino
Hỗ trợ nhiều loại bo mạch Arduino
Giao diện được sắp xếp hợp lý
Bộ sưu tập các ví dụ mẫu
Mảng thư viện hỗ trợ phong phú
v.v
2.2.1 Giao diện phần mềm IDE
Hì nh 3 Minh họa giao diện lập trình Arduino IDE
Các chương trình Arduino được viết bằng C hoặc C++ ArduinoIDE đi kèm với một thư viện phần mềm được gọi là "Wiring", tư projectWiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn
Trang 13Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòngthực thi (cyclic executive) có thể chạy được.
Arduino IDE là nơi để soạn thảo chương trình, kiểm tra lỗi và nạpchương trình cho Arduino Giao diện này gồm có 3 vùng rõ ràng
- Vùng Toolbar có chứa các phím lệnh như kiểm tra chương trình, nạp chương trình, lưu, mở hay tạo mới chương trình
Hì nh 4 Minh họa vùng Toolbar trên giao diện Arduino IDE
Các nút chức năng có nhiệm vụ như sau
- Kiểm tra chương trình viết có đúng cú pháp hay không- Verify Sketch
- Biên dịch chương trình và nạp vào board Arduino- Complie and upload sketch to arduino
- Tạo một sketch mới- New Sketch
- Mở một sketch đã lưu trước đó- Open Sketch
- Lưu chương trình lại- Save Sketch
- Mở màn hình hiển thị Serial Monitor sử dụng cài này khi trong
Sketch có lệnh in ra màn hình hay gửi ký tự thông qua chuẩn
RS232 - Open Serial Monitor
-Current tab: Sketch đang được mở hiện tại, có thể đồng thời có
nhiều tab tương ứng với nhiều sketch hiện trên thanh tab
-Tab menu: Vào menu để chọn các chỉ dẫn.
Ngoài ra, trong Tool menu ta quan tâm các mục mạch và cổng nối tiếp như mục Board Ở đây việc lựa chọn bo mạch cho phù hợp với loại bo
mà chúng ta đang sử dụng đóng vai trò hết sức quan trọng Nếu sử
Trang 14dụng loại bo mạch khác thì phải chọn đúng loại bo mạch, nếu chọn sai thì nạp chương trình vào chip sẽ bị báo lỗi.
Hình 5 Minh họa chọn board Arduino và cổng COM giao
tiếp phù hợp
Cổng giao tiếp giữa máy tính và Board được thiết lập thông qua tabSerial 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ạpchương trình cho Arduino được
- Vùng viết chương trình được đánh số dòng như hình vẽ Đây là nơi để viết các dòng lệnh điều khiển hoạt động của VĐK
Trang 15Hì nh 6 Minh họa vùng viết chương trình.
2.2.2 Cấu trúc một chương trình trong phần mềm IDE
Hình 7 Tổng quan quá trì nh xử lý chương trì nh Arduino
Phần 1: Khai báo biến
Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên board một số kiểu khai báo biến thông dụng: #define
Nghĩa của tư “define” là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1cái tên
Ví dụ: #define led 13
Chú ý: sau #define thì không có dấu “,” (dấy phẩy)
Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…
Trang 16Phần 2: Thiết lập (void setup())
Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân
ra hay chân vào Trong đó:
Serial.begin(9600); Dùng để truyền dữ liệu tư board Arduino lênmáy tínhpinMode(biến, kiểu và
hoặc ra) Dùng để xác định kiểu chân là đầu vào hay đầu ra
Ví dụ: pinMode(ChanDO,INPUT);
Phần 3: Vòng lặp
Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng:
void loop () {
…………
}
Bảng 2 Một số ký hiệu và câu lệnh thường gặp
Ký hiệu, câu
// Dấu // dùng để giải thích, khi nội dung giải thích nằmtrên 1 dòng, khi kiểm tra chương trình thì phần kiểm
tra sẽ bỏ qua phần này, không kiểm tra/*
Trang 17n, trạng thái);
Dùng để tắt, mở 1 chân ra Cú pháp của nó là digitalWrite(chân,trạng thái chân); Ở đây trạng thái chân có thể là HIGH hoặc LOW
Ví dụ: digital(led,HIGH); hoặc digital(led,LOW);
Chú ý dấu chấm phẩy đằng sau câu lệnh
Delay nghĩa là chờ, trì hoãn, duy trì Lệnh này dùng
để duy trì trạng thái đang thực hiện chờ một thời gian Thời gian ở đây được tính bằng mili giây, 1 giây bằng 1 ngàn mili giây
digitalWrite(Led,HIGH);
delay(1000);
} else nghĩa là ngược lạiSerial.print() In ra màn hình máy tính, lệnh này in không xuống dòngSerial.println() In ra màn hình máy tính, in xong xuống dòng, giá trị tiếp theo sẽ được in ở dòng kế tiếp
2.3 GIỚI THIỆU VỀ LCD I2C
2.3.1 Giới thiệu LCD 16x2
Trang 182.3.2 Thông số kỹ thuật LCD 16x2
LCD 16x2 được sử dụng để hiển thị trạng thái hoặc các thông số.
LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN)
5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2
Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu
Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi
LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng
ta đang làm
Bảng 3 Chức năng của các chân LCD
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân
này với GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối
chân này với VCC=5V của mạch điều khiển
Hì nh 8 Mà n hì nh LCD 16x2