Dùng phần mềm mô phỏng xây dựng các bài Lab Arduino

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.

pdf5 trang | Chia sẻ: Thục Anh | Ngày: 19/05/2022 | Lượt xem: 203 | Lượt tải: 0download
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:

  • pdfdung_phan_mem_mo_phong_xay_dung_cac_bai_lab_arduino.pdf
Tài liệu liên quan