Phần mềm cho hệ thống IoT

Một phần của tài liệu thiet-ke-che-tao-robot-hut-bui-tu-dong (Trang 26 - 38)

CHƯƠNG 2 : TỔNG QUAN VỀ HỆ THỐNG NHÚNG

2.2. Phần mềm cho hệ thống IoT

a. Nền tảng phát triển

Nền tảng phát triển dựa trên vi điều khiển họ AVR(Advanced Virtual RISC). Vi điều khiển AVR thuộc loại vi điều khiển dòng RISC. Dòng RISC dựa trên kiến trúc Havard.

25

Trong một máy tính kiến trúc Harvard, CPU có thể vừa đọc một lệnh, vừa truy cập dữ liệu từ bộ nhớ cùng lúc, do Kiến trúc Havard tách/phân biệt vùng lưu mã chương trình và dữ liệu. Mã chương trình chỉ có thể được lưu và thực hiện trong vùng chứa ROM và dữ liệu cũng chỉ có thể lưu và trao đổi trong vùng RAM:

Hình 2.12: Quá trình đọc lệnh ở kiến trúc Havard

Hầu hết các vi xử lý nhúng ngày nay sử dụng kiến trúc bộ nhớ Havard hoặc kiến trúc Havard mở rộng (tức là bộ nhớ chương trình và dữ liệu tách biệt nhưng vẫn cho phép khả năng hạn chế để lấy dữ liệu ra từ vùng mã chương trình). Trong kiến trúc bộ nhớ Havard mở rộng thường sử dụng một số lượng nhỏ các con trỏ để lấy dữ liệu từ vùng mã chương trình theo cách nhúng vào trong các lệnh tức thời. Một số Chip vi điều khiển nhúng tiêu biểu hiện nay sử dụng cấu trúc Havard là PIC, Atmel AVR.

Ưu điểm nổi bật của cấu trúc bộ nhớ Harvard là có hai kênh tách biệt để truy nhập vào vùng bộ nhớ mã chương trình và dữ liệu nhờ vậy mà mã chương trình và dữ liệu có thể được truy nhập đồng thời và làm tăng tốc độ luồng trao đổi với bộ xử lý, có thể thực hiện ngay lệnh tiếp theo khi vừa kết thúc lệnh trước đó.

26 b. Ngơn ngữ lập trình

Ngơn ngữ lập trình thường dùng là C. Ngơn ngữ C là một ngơn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng và nó giống với ngơn ngữ Assembler hơn hầu hết các ngôn ngữ bậc cao. Hơn thế, cho thấy sự khác nhau quan trọng giữa nó với ngơn ngữ bậc thấp như là Assembler, đó là việc mã C có thể được dịch và thi hành trong hầu hết các máy tính, hơn hẳn các ngơn ngữ hiện tại trong khi đó thì Assembler chỉ có thể chạy trong một số máy tính đặc biệt. Vì lý do này C được xem là ngơn ngữ bậc trung. C đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viết các chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục mà lại khơng đặt gánh nặng lên vai người viết ra trình dịch C.

Do vi điều khiển có hạn chế bộ nhớ trong, nên cần chương trình dùng bộ nhớ tối ưu nhất có thể. Ngồi Assembler ra, ngơn ngữ C là ngơn ngữ có thể tối ưu hóa số lượng bộ nhớ của một chương trình khi biên dịch ra.

c. Phần mềm Arduino IDE

Arduino IDE là phần mềm lập trình mã nguồn mở, nghĩa là phần mềm này miễn phí cả về phần tải về lẫn phần bản quyền: Người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung được nhà phát hành cho phép mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng.

Tuy là phần mềm mã nguồn mở nhưng khả năng bảo mật thông tin của Arduino IDE là vô cùng tuyệt vời, khi phát hiện lỗi nhà phát hành sẽ vá nó và cập nhật rất nhanh khiến thơng tin của người dùng khơng bị mất hoặc rị rỉ ra bên ngồi.

Arduino IDE thích hợp cho mọi người bắt đầu tiếp cận với lập trình. Bản thân arduino ide đã được tích hợp một thư viện phầm mềm thường gọi là "wiring", từ các chương trìn "wiring" gốc sẽ giúp bạn thực hiện thao tác code dễ dàng hơn. Một chương trình chạy trong arduino được gọi là một sketch, chương trình được định dạng dưới dạng file có đi mở rộng .ino.

27

Hình 2.13: Arduino IDE - Phần mềm lập trình mã nguồn mở

Sử dụng ngơn ngữ lập trình C/C++ thân thiện với các lập trình viên.

Arduino IDE sử dụng ngơn ngữ lập trình C/C++ rất phổ biến trong giới lập trình. Bất kỳ đoạn code nào của C/C++ thì Arduino IDE đều có thể nhận dạng, giúp các lập trình viên thuận tiện trong việc thiết kế chương trình lập cho các bo mạch Arduino.

Hỗ trợ lập trình tốt cho bo mạch Arduino.

Arduino có một module quản lý bo mạch, nơi người dùng có thể chọn bo mạch mà họ muốn làm việc cùng và có thể thay đổi bo mạch thông qua thanh công cụ. Quá trình sửa đổi lựa chọn cũng liên tục tự động được cập nhật để các dữ liệu có sẵn trong bo mạch và dữ liệu sửa đổi đồng nhất với nhau. Bên cạnh đó, Arduino IDE cũng giúp bạn tìm ra lỗi từ chương trình mà bạn biết giúp bạn sửa lỗi kịp thời trước khi nạp vào bo mạch Arduino tránh tình trạng bo mạch Arduino làm việc với code lỗi quá lâu dẫn đến hư hỏng hoặc tốc độ xử lý bị giảm sút.

28 Thư viện hỗ trợ phong phú.

Arduino IDE tích hợp với hơn 700 thư viện, được viết và chia sẻ bởi nhà phát hành Arduino Software và thành viên trong cộng đồng Arduino. Mọi người có thể tận dụng chúng cho dự án của riêng mình mà khơng cần phải bỏ ra bất kỳ chi phí nào.

Hình 2.14: Thư viện trong Arduino IDE

Tổng hợp ví dụ tham khảo.

Arduino IDE hỗ trợ rất nhiều ví dụ tham khảo, giúp việc tiếp cận, lập trình dễ dàng hơn.

Hướng dẫn truy cập các ví dụ tham khảo trong Arduino IDE: trên thanh cơng cụ chọn “File” sau đó chọn “Examples”. Arduino IDE có sẵn các ví dụ về sử dụng tín hiệu số, tín hiệu tương tự, các chuẩn giao tiếp, một số loại màn hình thơng dụng, giao tiếp bộ nhớ EEPROM,…

29

Hình 2.15: Ví dụ tham khảo

Arduino IDE có một giao diện đơn giản, dễ sử dụng giúp người dùng thuận tiện hơn trong thao tác. Hỗ trợ đầy đủ bộ công cụ hỗ trợ tối đa cho việc lập trình, biên dịch và nạp chương trình vào các board mạch Arduino hỗ trợ sẵn. Dưới đây là một số tính năng nổi bật chúng ta thường sử dụng:

o Nút kiểm tra chương trình (Verify): giúp dị lỗi phần code định truyền xuống bo mạch Arduino. Sau khi nhấn Verify chương trình sẽ được biên dịch từ trên xuống dưới, nếu xảy ra lỗi về cú pháp, biên dịch, lỗi tài nguyên… sẽ được ghi lại và hiển thị ở panel bên dưới trong IDE. Đồng thời, IDE cũng cho biết kích thước của đoạn chương trình chiếm bao nhiêu bộ nhớ của board mạch đang làm việc.

30

Hình 2.16: Nút kiểm tra lỗi (Verify)

o Nút tải đoạn code vào bo mạch Arduino (Upload): giúp nhập đoạn code vào bo mạch Arduino.

Hình 2.17: Nút tải code vào bo mạch (Upload)

Upload Verify

31

o Vùng lập trình: người dùng sẽ viết chương trình tại khu vực này.

Hình 2.18: Vùng lập trình

o Thanh Menu: gồm những thẻ chức năng nằm trên cùng như File, Edit, Sketch, Tools, Help rất thơng dụng có ở hầu hết các chương trình nhập code khác.

Hình 2.19: Thanh Menu

Code

32

Hỗ trợ đa nền tảng như Windows, MacOS, Linux

Arduino IDE hoạt động trên 3 hệ điều hành phổ biến nhất là Windows, Mac OS và Linux giúp người dùng có thể truy cập vào phần mềm ở bất cứ đâu, bất cứ khi nào miễn là họ có một cái máy tính. Ngồi ra, người dùng có thể truy cập vào cơng cụ từ đám mây. Điều này cho phép các nhà lập trình lựa chọn tạo và lưu dự án của mình trên đám mây hoặc xây dựng chương trình trên máy tính và upload nó lên bo mạch Arduino.

d. Phầm mềm mơ phỏng Proteus

Hình 2.20: Phần mềm Proteus

Phần mềm Proteus cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS-51, PIC, AVR, … Proteus là phần mềm mô phỏng mạch điện tử của Labcenter Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC, 8051, AVR, Motorola.

Phần mềm bao gồm 2 chương trình: ISIS (Intelligent Schematic Input System) cho phép mô phỏng mạch và ARES (Advanced Routing and Editing Software) dùng để vẽ mạch in.

33

Dễ dạng tạo ra một sơ đồ nguyên lý từ đơn giản đến phức tạp. Dễ dàng chỉnh sữa các đặc tính của linh kiện trên sơ đồ nguyên lý.

Hỗ trợ kiểm tra lỗi thiết kế trên sơ đồ nguyên lý. Có thể xem và lưu lại phần báo lỗi

Phần mềm chạy mơ phỏng và phân tích các tính chất của một mạch điện một cách chính xác.

Proteus cung cấp cho người sử dụng công cụ biên dịch cho các họ vi xử lý như MSC51, AVR, HC11, …qua đó tạo ra các tập tin .hex dùng để nạp cho vi xử lý và tạp tin .dsi dùng để xem và chạy kiểm tra từng bước trong quá trình mơ phỏng.

Phần mềm cung cấp rất nhiều mơ hình linh kiện có chức năng mơ phỏng, từ các vi điều khiển thông dụng đến các linh kiện ngoại vi như LED, LCD, Keypad, cổng RS232… cho phép người sử dụng mô phỏng từ một hệ vi điều khiển hoàn chỉnh đến việc xây dựng phần mềm cho hệ thống đáp ứng các giao thức vật lý. Ngoài ra, Proteus còn cho phép bạn tự tạo linh kiện tương tác động do đó bạn có thể thực hiện các mơ phỏng có tương tác giống như hoạt động của một mạch thật.

Mô phỏng:

34

Khả năng ứng dụng chính của Proteus là mơ phỏng, phân tích các kết quả từ các mạch nguyên lý. Proteus giúp người sử dụng có thể thấy trước được mạch thiết kế chạy đúng hay sai trước khi thi công mạch.

Các cơng cụ phục vụ cho việc phân tích mạch có độ chính xác khá cao như vơn kế đo điện áp, ampe kế đo dòng điện, máy đao động ký.

Thiết kế mạch in PCB

Là tính năng dễ sử dụng trong Proteus. Bạn có thể tự tạo bản thiết kế hoặc bắt Proteus làm hộ bạn. Tự tạo bản thiết kế rất dễ dàng chỉ cần bạn đặt những chi tiết vào sơ đồ và vẽ đường mạch điện chạy qua. Đừng lo lắng về việc vi phạm bất kỳ quy tắc thiết kế nào bởi vì nó sẽ tự động phát hiện ra lỗi. Còn nếu muốn Proteus làm thay bạn thì chỉ cần đặt các chi tiết vào vị trí tương ứng rồi cho chạy tự động. Nó sẽ vẽ ra các cách đặt đường mạch và lựa bản tốt nhất. Và hiện nay cịn có một tùy chỉnh nữa “Auto placer”, nó yêu cầu bạn xác lập kích thước bảng bằng cách vẽ hình dáng và kích cỡ bản mạch. Sau đó, nó tự động đặt các chi tiết vào trong khn. Sau đó, tất cả việc bạn phải làm là lập sơ đồ mạch.

Ưu điểm:

- Dễ dạng tạo ra một sơ đồ nguyên lý từ đơn giản đến phức tạp.

- Dễ dàng chỉnh sữa các đặc tính của linh kiện trên sơ đồ nguyên lý.

- Hỗ trợ kiểm tra lỗi thiết kế trên sơ đồ nguyên lý. Có thể xem và lưu lại phần báo lỗi

- Phần mềm chạy mơ phỏng và phân tích các tính chất của một mạch điện một cách chính xác.

- Proteus cung cấp cho người sử dụng công cụ biên dịch cho các họ vi xử lý như MSC51, AVR, HC11, …qua đó tạo ra các tập tin .hex dùng để nạp cho vi xử lý và tạp tin .dsi dùng để xem và chạy kiểm tra từng bước trong quá trình mơ phỏng.

35

- Phần mềm cung cấp rất nhiều mơ hình linh kiện có chức năng mơ phỏng, từ các vi điều khiển thông dụng đến các link kiện ngoại vi như LED, LCD, Keypad, cổng RS232… cho phép người sử dụng mô phỏng từ một hệ vi điều khiển hoàn chỉnh đến việc xây dựng phần mềm cho hệ thống đáp ứng các giao thức vật lý. Ngoài ra, Proteus còn cho phép bạn tự tạo link kiện tương tác động do đó bạn có thể thực hiện các mơ phỏng có tương tác giống như hoạt động của một mạch thật.

Nhược điểm:

36

Một phần của tài liệu thiet-ke-che-tao-robot-hut-bui-tu-dong (Trang 26 - 38)

Tải bản đầy đủ (PDF)

(51 trang)