Sử dụng phần mềm mô phỏng từ lâu đã chứng minh được tính hiệu quả trước
khi triển khai trên thực tế. Nhiều phần mềm mô phỏng đóng vai trò thiết yếu trong việc mô hình
hóa các hệ thống lớn và phức tạp. Đối với những dự án công nghệ, việc sử dụng các phần mô
phỏng để kiểm tra và dự đoán kết quả giúp tránh được nhiều lãng phí trong việc đầu tư thiết bị
nghiên cứu phát triển. Bài báo này giới thiệu và thảo luận về những phần mềm mô phỏng miễn
phí dùng cho vi điều khiển AVR trên Arduino UNO R3 cũng như tác dụng của nó trong đào tạo
và nghiên cứu.
5 trang |
Chia sẻ: Thục Anh | Ngày: 19/05/2022 | Lượt xem: 307 | Lượt tải: 0
Nội dung tài liệu Dùng phần mềm mô phỏng xây dựng các bài Lab Arduino, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
DÙNG PHẦN MỀM MÔ PHỎNG XÂY DỰNG CÁC BÀI LAB ARDUINO
Tạ Quang Hùng*
* Khoa CNTT, Trường Đại học Hà Nội
Tóm tắt: Sử dụng phần mềm mô phỏng từ lâu đã chứng minh được tính hiệu quả trước
khi triển khai trên thực tế. Nhiều phần mềm mô phỏng đóng vai trò thiết yếu trong việc mô hình
hóa các hệ thống lớn và phức tạp. Đối với những dự án công nghệ, việc sử dụng các phần mô
phỏng để kiểm tra và dự đoán kết quả giúp tránh được nhiều lãng phí trong việc đầu tư thiết bị
nghiên cứu phát triển. Bài báo này giới thiệu và thảo luận về những phần mềm mô phỏng miễn
phí dùng cho vi điều khiển AVR trên Arduino UNO R3 cũng như tác dụng của nó trong đào tạo
và nghiên cứu.
Từ khóa: Hệ thống nhúng, vi điều khiển, AVR, Arduino
I. GIỚI THIỆU CHUNG
Arduino bắt đầu tại Viện Thiết kế Tương tác (Interaction Design Institute ) ở
thành phố Ivrea, Ý, vào năm 2005. Giáo sư Massimo Banzi lúc đó đang tìm kiếm một
hướng tiếp cận với chi phí thấp để giúp sinh viên thiết kế ở đó học và làm việc dễ dàng
hơn với công nghệ. Ông đã thảo luận vấn đề của mình với David Cuartielles, một
chuyên gia nghiên cứu đến từ Đại học Malmö ở Thụy Điển, người cũng đang tìm kiếm
một giải pháp tương tự, và Arduino đã ra đời.
Các sản phẩm hiện có trên thị trường khá đắt tiền và tương đối khó sử dụng. Banzi
và Cuartielles quyết định chế tạo một bộ vi điều khiển để các sinh viên nghệ thuật thiết
kế sử dụng trong các dự án của họ. Yêu cầu chính là nó không được tốn kém, tiêu chí về
giá cả là không nhiều hơn số tiền một sinh viên sẽ bỏ ra để mua pizza, và là một nền
tảng mà bất cứ ai cũng có thể sử dụng. David Cuartielles đã thiết kế bảng mạch, và một
sinh viên của Massimo, David Mellis, đã lập trình phần mềm để điều khiển bảng mạch.
Massimo đã liên lạc với một kỹ sư địa phương, Gianluca Martino, người cũng làm việc
tại Viện Thiết Kế giúp sinh viên làm dự án. Gianluca đồng ý chế tạo lô ban đầu gồm
200 bảng mạch.
Một đội mới do các giảng viên và sinh viên của viện đặt tên là Arduino. Các bảng
mạch sau đó đã được bán dưới dạng kit phát triển cho sinh viên tự làm. Lô ban đầu đã
sớm được bán hết, và nhiều lô sản phẩm đã được sản xuất tiếp để theo kịp nhu cầu. Các
nhà thiết kế và nghệ sĩ từ các khu vực khác đã nghe về Arduino và muốn sử dụng nó
trong các dự án cá nhân. Sự phổ biến của nó nhanh chóng tăng lên khi mọi người nhận
ra rằng Arduino là một hệ thống dễ sử dụng, chi phí thấp, có thể dùng được trong các dự
án. Nó chính là một sự khởi đầu tuyệt vời cho việc lập trình vi điều khiển. Thiết kế ban
đầu được cải tiến và các phiên bản mới đã được giới thiệu. Doanh số của Arduinos
53
chính thức hiện đã đạt hơn 300.000 đơn vị và họ đã bán được trên khắp thế giới thông
qua hàng loạt các nhà phân phối.
Đã có một số phiên bản Arduino khác nhau, tất cả đều dựa trên bộ vi điều khiển
RISC (Vi xử lý có bộ lệnh được đơn giản hóa) 8-bit Atmel AVR. Bo mạch đầu tiên dựa
trên ATmega8 chạy ở tốc độ xung nhịp 16 MHz với bộ nhớ flash 8 KB; các bo mạch
sau như Arduino NG plus và Diecimila (tiếng Ý nghĩa là một vạn) đã sử dụng
ATmega168 với bộ nhớ flash 16 KB. Các phiên bản Arduino gần đây nhất,
Duemilanove và Uno, sử dụng ATmega328 với bộ nhớ flash 32 KB và có thể tự động
chuyển đổi giữa nguồn USB và nguồn một chiều. Đối với các dự án đòi hỏi nhiều đầu
vào ra (I/O) và bộ nhớ hơn, có thể bắt đầu với Arduino Mega1280 với bộ nhớ 128 KB
hoặc Arduino Mega2560 với bộ nhớ 256 KB.
Bảng mạch có 14 chân kỹ thuật số, mỗi chân có thể được đặt làm đầu vào hoặc
đầu ra và sáu đầu vào tương tự. Ngoài ra, sáu trong số các chân kỹ thuật số có thể được
lập trình để cung cấp đầu ra tương tự điều chế độ rộng xung (PWM). Một loạt các giao
thức truyền thông có sẵn, bao gồm cổng nối tiếp, bus nối tiếp (SPI) và I2C/TWI. Trên
mỗi bảng mạch đều có các tính năng tiêu chuẩn gồm nút khởi động (reset) và bộ nạp nối
tiếp (ICSP).
Mặc dù giá tiền một bo mạch Arduino rất rẻ, nhưng để có thể tạo nhưng dự án thú
vị, thì việc phải mua bổ sung nhiều thiết bị điện tử, linh kiện hỗ trợ là rất cần thiết. Dĩ
nhiên đối với việc phát triển dự án thì việc đó không thành vấn đề, nhưng đối với sinh
viên chỉ sử dụng để học và tìm hiểu thì chi phí giành cho mua đồ thí nghiệm càng ít
càng tốt. Do đó, sử dụng các phần mềm mô phỏng Arduino để nghiên cứu và học tập là
một hướng tiếp cận rất tốt trong học tập và nghiên cứu ở trường đại học. Các phần sau
đây sẽ thảo luận hai phần mềm miễn phí nhưng lại rất hữu dụng trong mô phỏng các thí
nghiệm trên Arduino.
II. PHẦN MỀM CIRCUITS TRÊN TINKERCAD
A. Mô tả đặc trưng của phần mềm Circuits
Phần mềm mô phỏng Circuits trên TinkerCad [1] cung cấp một phòng thí nghiệm
ảo có đầy đủ linh kiện vật tư để triển khai ứng dụng trên Arduino (Hình 1). Trong phần
mềm, ngoài khả năng cung cấp nhanh các mô hình đơn giản, Circuits còn có đầy đủ linh
kiện điện tử từ điện trở, tụ điện, diode, cuộn cảm, cảm biến, đầu dò siêu âm, LCD, mô
tơ servo, Tất cả linh kiện đều có thể kéo thả vào trong dự án, thay đổi giá trị tham số,
và kết nối với mạch Arduino UNO R3.
54
Figure 1. Mô phỏng các linh kiện trong Circuits
B. Kết hợp với công cụ phát triển Arduino-IDE
Hình 2 mô tả chương trình viết trên Circuits cho bài tập tạo đèn LED nhấp nháy.
Circuits cũng hỗ trợ biên dịch mã Arduino hoặc có thể xuất ra file mã nguồn. Ngoài ra,
Circuits cho phép xem mã dưới dạng các khối chức năng nên có thể phân vùng và dò lỗi
rất dễ dàng. Mã lệnh có thể được thử nghiệm trực tiếp bằng cách bật chế độ mô phỏng
để quan sát trạng thái linh kiện điện tử. Sử dụng Circuits có thể xây dựng được rất nhiều
dự án với đủ loại linh kiện phong phú. So với việc làm thí nghiệm thực tế, thì sử dụng
Circuits tiết kiệm được rất nhiều tiền mua linh kiện ngoài.
Việc sử dụng công cụ phát triển mã của Arduino IDE[2] kết hợp với Circuits là rất
dễ dàng. Mã nguồn được xuất ra từ Circuits có thể chạy ngay trên Arduino IDE và
ngược lại. Tất nhiên sử dụng Circuits chỉ có thể mô phỏng chứ không nạp được
firmware trực tiếp xuống mạch UNO.
Figure 2. Mô phỏng bài thí nghiệm điều khiển LED trên CIRCUITS
III. PHẦN MỀM PICSIMLAB
C. PICsimlab5 – Arduino UNO R3
Phần mềm PICsimlab[3] giả lập nhiều KIT phát triển thực được đặt tên
PICsimlab0 tới PICsimlab8. Mạch PICsimlab5 mô phỏng bộ kit phát triển Arduino
UNO R3. Các công cụ bổ sung bên ngoài cho mạch cũng tương đối đa dạng gồm có
55
LCD, RTC, mô tơ, bàn phím, mạch khuếch đại và cả hệ thống cảm biến nhiệt độ. Hơn
nữa, mô đun mô phỏng thiết bị đo Oscilloscope phát huy tác dụng rất lớn trong việc
kiểm tra trạng thái điện áp các chân vào ra của Arduino UNO trong quá trình phát triển.
Figure 3. Phần mềm PICsimlab (mô phỏng mạch Arduino UNO, chip ATmega328)
Hình 3 mô tả giao diện của PICsimlab với mạch Arduino UNO R3, MCU là
ATmega328 kèm theo một màn hình LCD để hiện thị thông tin.
D. Ứng dụng với công cụ phát triển Arduino-IDE
Sử dụng PICsimlab có thể kết nối với Arduino-IDE bằng Null-modem. Sau khi
được kết nối, thì PICsimlab sẽ hoạt đống giống y hệt khi làm việc với một mạch UNO
thực.
Figure 4. Giao diện lập trình trên Arduino-IDE và kết quả trên PICsimlab5
Hình 4 mô tả giao diện lập trình trên Arduino IDE và nạp trực tiếp lên PICsimlab.
Bài tập này là đo tín hiệu analog từ chân vào A0 của mạch UNO sau đó lấy mẫu và đưa
kết quả ra chân PB1 của mạch. Trong dự án sử dụng kết hợp cả LCD và Oscilloscope để
giám sát xung PWM tại chân 15 của mạch UNO. Tín hiệu đầu vào chân A0 được đưa
qua một chiết áp điều chỉnh để kiểm tra mạch ADC cũng như ảnh hưởng tới xung PWM
ở đầu ra chân số 15.
56
IV. KẾT LUẬN
Bài báo đã trình bày hai phần mềm mô phỏng hoàn toàn miễn phí ứng dụng phát
triển dự án trên Arduino UNO R3. Sinh viên các ngành công nghệ thông tin, điện tử
viễn thông, hoặc điều khiển tự động đều có thể sử dụng được các phần mềm này trong
quá trình học các môn học về vi điều khiển. Các phần mềm này có khá đầy đủ các thiết
bị ngoại vi, linh kiện điện tử cần thiết phục vụ cho thí nghiệm. Việc kết hợp học tập trên
những phần mềm mô phỏng này với mạch Arduino thực tế chắc chắn mang lại hiểu quả
tốt đối với sinh viên và hết sức thuận tiện cho giảng viên.
TÀI LIỆU THAM KHẢO
[1] Autodesk, “Circuits on Tinkercad,” V.2.10.
[2] Arduino, “Arduino IDE”, https://www.arduino.cc/, 2020
[3] L. C. G. Lopes, “PICsimlab – PIC Simulator Laboratory,” Sept. 2018, V. 0.75
Các file đính kèm theo tài liệu này:
- dung_phan_mem_mo_phong_xay_dung_cac_bai_lab_arduino.pdf