Thiết kế Hệ thống Nhúng với Arduino: Hướng dẫn chi tiết từ Trường Cao đẳng Kỹ thuật Cao Thắng

Hướng dẫn chi tiết thiết kế hệ thống nhúng sử dụng Arduino. Tìm hiểu các khái niệm cơ bản, linh kiện cần thiết và quy trình xây dựng dự án nhúng thực tế.

Người đăng

Ẩn danh

Thể loại

Sách

2013

170
1
0

Phí lưu trữ

45 Point

Tóm tắt

I. Tại Sao Arduino Là Lựa Chọn Tối Ưu Cho Thiết Kế Hệ Thống Nhúng

Trong kỷ nguyên số hóa, hệ thống nhúng trở thành xương sống của mọi thiết bị thông minh, từ điện thoại, đồ gia dụng đến các ứng dụng IoT phức tạp. Tuy nhiên, việc thiết kế hệ thống nhúng thường đòi hỏi kiến thức chuyên sâu về phần cứng và lập trình. Nền tảng Arduino nổi lên như một giải pháp đột phá, giúp đơn giản hóa quá trình này, mở cánh cửa cho cả những người không chuyên. Theo tài liệu nghiên cứu, thế giới hiện đại tràn ngập các thiết bị thông minh tích hợp bộ vi xử lý, cảm biến và phần mềm, tạo nên một cộng đồng rộng lớn những người đam mê sáng tạo muốn tự mình thiết kế và xây dựng các hệ thống thông minh cho các tác vụ cụ thể. Chính trong bối cảnh đó, Arduino đã chứng minh vai trò quan trọng của mình. Nền tảng này không chỉ cung cấp một môi trường thân thiện để phát triển sản phẩm mà còn kích thích sự sáng tạo và đổi mới trong lĩnh vực kỹ thuật.

1.1. Khái Niệm Cơ Bản Về Hệ Thống Nhúng Và Vai Trò Của Chúng

Hệ thống nhúng là một hệ thống máy tính chuyên dụng, được thiết kế để thực hiện một hoặc một vài chức năng cụ thể trong một hệ thống lớn hơn. Chúng tích hợp phần cứng (vi điều khiển, cảm biến, bộ chấp hành) và phần mềm (firmware) để điều khiển hoặc giám sát một chức năng cụ thể. Các ví dụ điển hình bao gồm bộ điều khiển trong máy giặt, hệ thống quản lý động cơ ô tô, thiết bị y tế đeo tay, hoặc các cảm biến môi trường. Vai trò của hệ thống nhúng là tối ưu hóa hiệu suất, giảm chi phí và nâng cao độ tin cậy của thiết bị. Chúng làm cho các thiết bị trở nên thông minh hơn, tự động hóa các tác vụ và thu thập dữ liệu quan trọng từ môi trường. Sự phát triển của hệ thống nhúng là động lực chính cho sự bùng nổ của IoT, nơi mọi vật thể được kết nối và tương tác với nhau.

1.2. Nền Tảng Arduino Mã Nguồn Mở Và Khả Năng Tiếp Cận Cho Mọi Người

Arduino là một nền tảng điện tử mã nguồn mở, bao gồm cả phần cứng (các bo mạch vi điều khiển) và phần mềm (môi trường phát triển tích hợp – Arduino IDE). Điểm mạnh vượt trội của Arduino là sự đơn giản và khả năng tiếp cận. Nền tảng này được đánh giá là độc đáo, cho phép bất kỳ ai, kể cả người mới bắt đầu, tiếp cận việc lập trìnhmạch điện tử. Người dùng có thể dễ dàng tải Arduino IDElập trình sử dụng ngôn ngữ C/C++ cùng với thư viện Arduino Core library, cung cấp nhiều hàm có sẵn rất hữu ích. Điều này loại bỏ rào cản phức tạp thường thấy khi làm việc với các vi điều khiển truyền thống, giúp người dùng tập trung vào ý tưởng và ứng dụng thay vì phải vật lộn với các chi tiết kỹ thuật phức tạp. Arduino đặc biệt thích hợp để phát triển các thiết bị mẫu (prototypes) nhanh chóng và hiệu quả.

II. Thách Thức Khi Bắt Đầu Và Cách Arduino Đơn Giản Hóa Phát Triển

Việc tham gia vào lĩnh vực thiết kế hệ thống nhúng có thể gây e ngại cho nhiều người, đặc biệt là những cá nhân chưa có nhiều kinh nghiệm về mạch điện tử hay lập trình. Các vi điều khiển truyền thống thường yêu cầu kiến thức sâu rộng về kiến trúc phần cứng, ngôn ngữ cấp thấp và quá trình debug phức tạp. Những thách thức này có thể làm chậm quá trình học hỏi và phát triển sản phẩm. Tuy nhiên, Arduino đã cách mạng hóa cách tiếp cận này. Nền tảng này được thiết kế để giảm bớt gánh nặng kỹ thuật, cho phép người dùng tập trung vào logic ứng dụng và sáng tạo. Sự dễ dàng trong việc cài đặt, lập trình và kiểm thử biến Arduino thành công cụ lý tưởng để vượt qua các rào cản ban đầu, thúc đẩy sự tham gia của một cộng đồng rộng lớn vào thế giới hệ thống nhúng.

2.1. Phức Tạp Của Vi Điều Khiển Truyền Thống Rào Cản Cho Người Mới

Các vi điều khiển truyền thống, như PIC hoặc AVR (không dùng trong ngữ cảnh Arduino), thường yêu cầu người dùng phải có sự hiểu biết sâu sắc về kiến trúc nội bộ, thanh ghi, và cách hoạt động của từng cổng. Việc lập trình chúng thường được thực hiện bằng ngôn ngữ Assembly hoặc C/C++ với các thư viện cấp thấp, đòi hỏi phải cấu hình từng bit và byte một cách thủ công. Quá trình này không chỉ tốn thời gian mà còn dễ gây lỗi, đặc biệt đối với người mới. Hơn nữa, môi trường phát triển (IDE) và các công cụ debug cho các vi điều khiển truyền thống thường ít thân thiện và khó sử dụng. Điều này tạo ra một rào cản đáng kể, khiến nhiều sinh viên và người tự học phải mất nhiều thời gian để thảo luận và học các công nghệ phức tạp.

2.2. Lập Trình Arduino Dễ Dàng Sức Mạnh Của Thư Viện C C Có Sẵn

Arduino giải quyết những thách thức trên thông qua một giao diện lập trình thân thiện và hệ thống thư viện phong phú. Nền tảng này sử dụng ngôn ngữ lập trình dựa trên C/C++, nhưng được đơn giản hóa với các hàm và cấu trúc dễ hiểu. Thư viện Arduino Core library cung cấp nhiều hàm có sẵn rất hữu ích, cho phép người dùng tương tác với phần cứng (như đọc dữ liệu từ cảm biến, điều khiển đèn LED, giao tiếp nối tiếp) chỉ với vài dòng code đơn giản. Ví dụ, để đọc giá trị từ một chân analog, chỉ cần sử dụng hàm analogRead(). Điều này giúp giảm thiểu đáng kể thời gian phát triển và học tập. Bất kỳ ai, ngay cả những người chưa lập trình và chưa có kinh nghiệm về mạch điện tử, cũng có thể nhanh chóng tạo ra các ứng dụng thực tế, từ phím cảm ứng, giao tiếp âm thanh đến điều khiển vị trí, nhiệt độ và ánh sáng.

III. Hướng Dẫn Cài Đặt Môi Trường Phát Triển Arduino IDE Chi Tiết

Để bắt đầu thiết kế hệ thống nhúng với Arduino, bước đầu tiên và quan trọng nhất là cài đặt môi trường phát triển tích hợp – Arduino IDE. Đây là phần mềm cung cấp giao diện để viết code, biên dịch và nạp chương trình xuống bo mạch Arduino. Quá trình cài đặt Arduino IDE được thiết kế để trở nên trực quan và dễ dàng, ngay cả với người dùng mới. Việc thiết lập đúng cách sẽ đảm bảo bạn có thể giao tiếp hiệu quả với bo mạch Arduino và bắt đầu các dự án lập trình một cách suôn sẻ. Từ việc tải phần mềm, cài đặt driver cho đến làm quen với các công cụ trên giao diện, mỗi bước đều đóng góp vào trải nghiệm phát triển không gặp trở ngại. Hiểu rõ từng thành phần của Arduino IDE là chìa khóa để tận dụng tối đa sức mạnh của nền tảng này.

3.1. Các Bước Cơ Bản Để Cài Đặt Và Thiết Lập Arduino IDE

Để cài đặt Arduino IDE, người dùng cần tải phiên bản phù hợp từ trang web chính thức của Arduino. Sau khi tải về, quá trình cài đặt diễn ra tương tự như các phần mềm khác. Một bước quan trọng là cài đặt driver cho bo mạch Arduino. Khi kết nối bo mạch Arduino với máy tính qua cổng USB, máy tính sẽ tự động dò tìm driver phù hợp. Sau đó, hệ thống sẽ thông báo rằng "USB serial Converter" vừa được tìm thấy và phần cài đặt phần cứng đã hoàn thành. Một khi driver được cài đặt thành công, người dùng đã sẵn sàng để lập trình bài đầu tiên. Việc này đảm bảo máy tính có thể nhận diện và giao tiếp với bo mạch Arduino, cho phép nạp chương trình một cách chính xác. Bước thiết lập này là nền tảng cơ bản cho mọi dự án thiết kế hệ thống nhúng với Arduino.

3.2. Hiểu Rõ Các Công Cụ Và Chức Năng Chính Trên Thanh Toolbar

Phần mềm Arduino IDE có giao diện trực quan, gồm các phần chính: Thanh Toolbar, phần lập trình hay Sketch Window ở giữa và Serial Output ở phía dưới cùng. Thanh Toolbar gồm có năm nút nhấn, cung cấp các truy cập nhanh cho những chức năng thường được sử dụng. Các nút nhấn này bao gồm: Verify/Compile (Kiểm tra lỗi code), New (Tạo một cửa sổ lập trình mới), Open (Hiển thị danh sách các sketch trong sketchbook), Save (Lưu code đang lập trình), Upload (Nạp chương trình hiện tại xuống Arduino), và Serial Monitor (Hiển thị dữ liệu nối tiếp gửi lên từ Arduino). Việc hiểu rõ chức năng của từng nút giúp người dùng thao tác hiệu quả hơn, từ việc viết code, kiểm tra lỗi, lưu trữ, đến việc nạp chương trình và giám sát dữ liệu từ hệ thống nhúng. Đây là những công cụ thiết yếu trong quá trình phát triển bất kỳ dự án thiết kế hệ thống nhúng với Arduino nào.

IV. Phương Pháp Thiết Kế Hệ Thống Nhúng Cảm Biến Ánh Sáng Đơn Giản

Thiết kế hệ thống nhúng với Arduino thường bắt đầu từ việc hiểu và điều khiển các cảm biến. Cảm biến ánh sáng là một trong những loại cảm biến phổ biến và dễ tiếp cận nhất để người mới bắt đầu thực hành. Bằng cách sử dụng diode quang, một loại linh kiện quang điện tử, có thể chuyển đổi cường độ ánh sáng thành tín hiệu điện. Điều này mở ra khả năng tạo ra các ứng dụng thông minh như tự động bật/tắt đèn dựa trên độ sáng môi trường, hoặc các hệ thống giám sát ánh sáng. Việc tích hợp cảm biến này vào bo mạch Arduino không chỉ minh họa nguyên lý hoạt động cơ bản mà còn cung cấp một ví dụ thực tế về cách Arduino tương tác với thế giới vật lý. Hiểu rõ nguyên lý và các bước thực hiện sẽ giúp người học xây dựng nền tảng vững chắc cho các dự án phức tạp hơn.

4.1. Nguyên Lý Hoạt Động Của Diode Quang Và Ứng Dụng Trong Arduino

Diode quang là một loại linh kiện bán dẫn có khả năng biến đổi năng lượng ánh sáng thành dòng điện. Nguyên lý hoạt động dựa trên hiệu ứng quang điện: khi photon có đủ năng lượng chiếu vào bề mặt vật liệu bán dẫn của diode, nó sẽ giải phóng electron, tạo ra dòng điện. Trong diode quang, một electron được tự do khi photon được hấp thụ, nó có thể vượt qua rào cản năng lượng nếu đủ năng lượng. Trong trường hợp này, diode quang chỉ tạo ra được dòng điện nếu photon được hấp thụ có nhiều năng lượng hơn năng lượng cần thiết để đi qua mối nối P-N. Sơ đồ nguyên lý giao tiếp diode quang biểu diễn cách điện áp cổng PIN thay đổi khi diode hấp thụ photon. Điều này tạo ra một tín hiệu analog mà Arduino có thể đọc và xử lý. Ứng dụng phổ biến bao gồm cảm biến ánh sáng, bộ đếm, và các hệ thống điều khiển tự động.

4.2. Ví Dụ Thực Tế Xây Dựng Mạch Cảm Biến Ánh Sáng Với DFRobot UNO R3

Để xây dựng một mạch cảm biến ánh sáng đơn giản, người dùng cần các linh kiện cơ bản như bo mạch DFRobot UNO R3 và cáp USB, cùng với một module diode quang (ví dụ: DFR0026). Thiết lập phần cứng tương đối đơn giản: Chân VCC của module diode quang kết nối đến 5V của Arduino, chân GND kết nối đến Ground, và chân ngõ ra của module được cắm vào một chân analog của bo mạch Arduino (ví dụ: chân A0). Sau khi hoàn tất kết nối, người dùng có thể nạp một chương trình mẫu (sketch) vào Arduino để đọc giá trị từ chân analog này. Ví dụ, chương trình có thể được thiết kế để điều khiển một đèn LED: khi trời tối, đèn LED sẽ sáng lên; khi trời sáng, LED sẽ tắt. Đây là một ví dụ thực tế minh họa cách Arduino xử lý dữ liệu từ cảm biến để thực hiện một hành động cụ thể trong hệ thống nhúng.

V. Ứng Dụng Thực Tiễn Và Triển Vọng Của Hệ Thống Nhúng Arduino

Nền tảng Arduino đã và đang chứng tỏ sức mạnh biến đổi trong nhiều lĩnh vực, từ giáo dục đến các ứng dụng công nghiệp và dân dụng. Khả năng phát triển nhanh chóng, chi phí thấp và tính linh hoạt cao của Arduino đã thúc đẩy sự ra đời của vô số dự án và sáng kiến. Các ứng dụng của thiết kế hệ thống nhúng với Arduino không chỉ giới hạn ở các thiết bị tự động hóa đơn giản mà còn mở rộng sang các hệ thống phức tạp hơn như IoT, robot và các giải pháp thông minh cho nhà ở, thành phố. Từ những cuộc thi sáng tạo quốc tế như SPIED đến các dự án cộng đồng DIY, Arduino đã trở thành một công cụ không thể thiếu để biến ý tưởng thành hiện thực, khuyến khích tư duy đổi mới và giải quyết vấn đề bằng công nghệ.

5.1. Từ Cuộc Thi SPIED Đến Các Dự Án IoT Lan Tỏa Sức Sáng Tạo

Nội dung Arduino đã được sử dụng để hỗ trợ cuộc thi Summer Program for Innovative Engineering Design (SPIED), được thực hiện bởi ba nước Nhật Bản, Trung Quốc và Hàn Quốc. Vai trò của SPIED là thiết lập kết nối sự sáng tạo trong giáo dục kỹ thuật. Trong SPIED, các đối tượng lập trình chuyên nghiệp và sinh viên cùng làm việc để lên kế hoạch, thiết kế, chế tạo và trình bày về các đối tượng thuộc về cơ điện tử và hệ thống Robot. Bằng cách kết hợp kỹ thuật thiết kế với khả năng nhận dạng vấn đề từ quan điểm của nhiều ngành, SPIED cung cấp cho người tham gia cơ hội nhận ra vai trò của mình trong việc thực hiện đề tài thông qua việc thiết kế và tạo ra sản phẩm. Đây là minh chứng rõ ràng cho khả năng của Arduino trong việc thúc đẩy sự sáng tạo và phát triển các hệ thống nhúng phức tạp.

5.2. Arduino Trong Giáo Dục Kỹ Thuật Nền Tảng Cho Sự Đổi Mới

Arduino là một nền tảng độc đáo, có thể được sử dụng bởi bất kỳ ai, ngay cả những người chưa lập trình và chưa có kinh nghiệm gì về mạch điện tử. Điều này làm cho nó cực kỳ phù hợp cho sinh viên và mục đích giáo dục. Trong các khóa học kỹ thuật, Arduino cho phép sinh viên nhanh chóng hiện thực hóa các ý tưởng của mình, từ đó hiểu rõ hơn về nguyên lý hoạt động của hệ thống nhúng và các cảm biến. Cuốn sách này mong muốn trình bày một cách có hệ thống các module đi kèm với nền tảng Arduino và hướng dẫn những người mới bắt đầu hiểu về công nghệ này. Hơn nữa, các chủ đề với những thông tin khác nhau về cảm biến, ánh sáng, điện tử, cơ điện tử, tính toán về toán học cũng được giới thiệu. Nó giúp người đọc khám phá ra sự phát triển của hệ thống từ góc độ liên ngành, chuẩn bị cho tương lai của phát triển IoT với Arduino.

VI. Kết Luận Tương Lai Rực Rỡ Của Thiết Kế Hệ Thống Nhúng Arduino

Tổng kết lại, thiết kế hệ thống nhúng với Arduino không chỉ là một xu hướng công nghệ mà còn là một phương pháp tiếp cận mạnh mẽ để phát triển các giải pháp sáng tạo. Sự đơn giản, tính linh hoạt và cộng đồng hỗ trợ mạnh mẽ đã biến Arduino thành một công cụ không thể thiếu cho cả người mới bắt đầu và các kỹ sư giàu kinh nghiệm. Từ việc đơn giản hóa quá trình lập trình đến việc tích hợp dễ dàng với nhiều loại cảm biến và bộ chấp hành, Arduino đã mở ra vô số cơ hội trong các lĩnh vực như IoT, tự động hóa và giáo dục kỹ thuật. Nền tảng này không ngừng phát triển, hứa hẹn sẽ tiếp tục định hình tương lai của hệ thống nhúng và công nghệ thông minh. Việc nắm vững Arduino hôm nay chính là đầu tư vào khả năng sáng tạo và giải quyết vấn đề trong tương lai.

6.1. Tổng Kết Lợi Ích Độc Đáo Khi Sử Dụng Nền Tảng Arduino

Việc sử dụng nền tảng Arduino mang lại nhiều lợi ích độc đáo cho thiết kế hệ thống nhúng. Thứ nhất, nó là một nền tảng mã nguồn mở, cho phép người dùng tự do tùy chỉnh phần cứng và phần mềm, đồng thời hưởng lợi từ sự phát triển và chia sẻ của cộng đồng. Thứ hai, Arduino IDE cung cấp một môi trường lập trình đơn giản, dễ học với ngôn ngữ C/C++ được tối ưu và các thư viện phong phú, giúp giảm đáng kể thời gian phát triển. Thứ ba, khả năng tương thích với một loạt các cảm biến và module mở rộng giúp người dùng dễ dàng tích hợp các chức năng khác nhau. Cuối cùng, chi phí thấp của bo mạch Arduino làm cho nó trở thành lựa chọn lý tưởng cho các dự án giáo dục, DIY và prototyping nhanh chóng.

6.2. Tiềm Năng Mở Rộng Và Phát Triển Không Ngừng Của Arduino

Tiềm năng của Arduino trong tương lai là vô hạn. Với sự phát triển không ngừng của IoT và nhu cầu về các hệ thống nhúng thông minh hơn, Arduino sẽ tiếp tục là một công cụ quan trọng. Các phiên bản Arduino mới liên tục được ra mắt với khả năng xử lý mạnh hơn, kết nối đa dạng hơn (Wi-Fi, Bluetooth), và hiệu quả năng lượng cao hơn. Cộng đồng Arduino toàn cầu không ngừng đóng góp các thư viện mới, ví dụ mẫu và giải pháp cho các vấn đề kỹ thuật. Điều này đảm bảo rằng Arduino luôn cập nhật với các xu hướng công nghệ mới nhất. Đối với các kỹ sư, sinh viên và những người đam mê, Arduino không chỉ là một công cụ mà còn là một cánh cửa mở ra thế giới của sự sáng tạo và đổi mới trong thiết kế hệ thống nhúng.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

21/04/2026
Thiết kế hệ thống nhúng với arduino designing embedded system with arduino tiếng việt

Trích đoạn nội dung tài liệu

Chương 1 Bắt đầu với Arduino Getting Started with Arduino 1.1 Giới thiệu Vào năm 2005, Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, và David Mellis đã lên ý tưởng cho một thiết bị dễ dàng lập trình dùng trong thiết kế các dự án tại Interaction Design Institute Ivrea, Italy. Thiết bị nàycần phải đơn giản, dễ dàng kết nối đế nhiều thiết bị khác nhau như (Rờ le, động cơ và các cảm biến) và phải dễ dàng để lập trình. Ngoài ra giá thành không quá đắt để có thể phù hợp với sinh viên và các lập trình viên khác. Họ đã lựa chọn họ vi điều khiển 8-bit (MCU hay µC) AVR từ nhà sản xuất Atmel và thiết kế trên board mạch điện tử với các ngõ kết nối chờ sẵn, nạp sẵn bootloader firmware cho vi điều khiển và tích hợp tất cả vào trong môi trường phát triển (development enviroment) được sử dụng lập trình được gọi là "sketches" Kết quả cuối cùng là sự ra đời của board Arduino.

Arduino là một vi điều khiển mã nguồn mở cho phép lập trình tương tác dễ dàng; Arduino được lập trình sử dụng C/C++ với thư viện Arduino cho phép truy cập vào phần cứng. với sự cho phép lập trình mềm dẻo kết hợp sử dụng mạch điện tử có thể thực hiện với Arduino. Bởi vì Arduino là mã nguồn mở, các mạch điện giao tiếp có thể dễ dàng tìm thấy trực tuyến và miễn phí cho bất kỳ ai muốn sửdụng và tạo ra board mạch riêng của mình dựa vào các sơ đồ nguyên lý (schematics), các mạch này sẽ lại được được chính học chia sẽ lên mạng. Điều này cho phép thảo luận việc xây dựng các ứng dụng như thế nào, công suất ra sao, kích thước board như thế có phù hợp hay không.

Arduino được cấu tạo gồm hai thành phần như sau: 1. Arduino board, là phần cứng mà bạn làm việc trực tiếp để xây dựng các dự án của mình 1 Share by: www. Huỳnh Xuân Dũng 2. Arduino IDE, là phần mềm chạy trên máy tính của bạn.

Bạn sử dụng IDE để tạo một sketch (một chương trình nhỏ trên máy tính) mà bạn sẽ upload lên Arduino board. Arduino có nhiều loại khác nhau trên thị trường bởi vì chúng có các đặc điểm sau: 1. Arduino làm việc ở nhiều môi trường như Windows, Macintosh, và Linux 2. Nó hoạt động dựa vào chương trình xử lý IDE, đây là môi trường phát triển dễ sử dụng cho các nhà thiết kế.

Bạn lập trình Arduino qua cáp USB, không phải là cáp nối tiếp. Đặc tính này rất thuận tiện vì nhiều máy tính ngày nay không có các cổng nối tiếp (serial port) 4. Phần cứng và phần mềm đều mã nguồn mở, nếu muốn bạn có thể tải (download) sơ đồ mạch điện, mua tất cả các linh kiện, và có thể tự làm board Arduino cho riêng mình mà không phải trả bất kỳ phí bản quyền nào. Phần cứng có giá thành rất rẻ 6.

Có sẵn một cộng đồng người sử dụng, và sẽ có nhiều người có thể giúp đở bạn. Dự án Arduino đã được phát triển trong môi trường giáo dục, và vì thế những người mới được biết và tiếp cận ngày càng nhiều. Nhờ có những đặc điểm đặc biệt như vậy, có nhiều những ứng dụng như: 1. Giám sát các hiện tượng ở thế giới thực (Real-world monitoring) • Trạm quan sát thời tiết tự động (Automated weather station) • Bộ phát hiện ánh sáng (Lightning detection) • Bộ điều khiển bám theo mặt trời cho tấm pin năng lương mặt trời • Bộ giám sát bức xạ • Bộ theo dõi thú vật tự động (Automatic wildlife detector) • Hệ thống an ninh cho ngôi nhà và công ty (Home or business security system) 2.

Điều khiển các hệ thống nhỏ (Small-scale control) • Các robot có kích thước nhỏ (Small robots) • Các mô hình tên lửa (Model rockets) • Các mô hình máy bay (Model aircrafts) • Các mô hình trực thăng 4 động cơ (Quadrotor UAVs) • Các máy CNC cơ bản cho các máy công cụ nhỏ 3. Tự động hóa hệ thống cở nhỏ (Small-scale Automation) • Ngôi nhà xanh tự động (Automated greenhouse) 2 Share by: www. Huỳnh Xuân Dũng • Nuôi trồng thủy sinh tự động (Automated aquarium) • Phòng thí nghiệm phi thuyền đơn giản (Laboratory sample shuttle) • Bồng nhiệt có độ chính xác (Precision thermal chamber) • Hệ thống kiểm tra điện tử tự động (Automated electronic test system) 4. Điều khiển trong lĩnh vực nghệ thuật • Điều khiển ánh sáng động (Dynamic lighting control) • Điều khiển âm thanh nổi (Dynamic sound control) • Các cấu trú động học (Kinematic structures) • Hệ thống phản hồi khán giả (Audience responsive artwork) 1.2 Các loại Arduino khác nhau Arduino đang nhanh chóng trở thành một trong những vi điều khiển phổ biến sử dụng trong robotics.

Có nhiều loại khác nhau giữa các loại vi điều khiển Arduino không những về thiết kế, đặc tính mà cò về kích thước và khả năng xử lý. Tuynhiên chỉ có hai loại sử dụng những chip khác nhau và Standard và Mega. Loại Standard là Arduino cơ bản sử dụng chip Atmega8/168/328, trong khi đó Mega là một loại board Arduino khác với nhiều ngõ vào/ra (I/O) hơn và có tính năng xử lý mạnh hơn với Atmega1280 chip. Các nhà chế tạo Arduino cũng phát triển phần mềm tương thích với tất cả các loại vi điều khiển Arduino.

Phần mềm (cũng gọi là Arduino) có thể dùng để lập trình cho tất cả các loại vi điều khiển Arduino thông qua việc lựa chọn từ menu. Cũng là mã nguồn mở, dựa vào nền tảng C, người sử dụng Arduino không bị hạn chế với phần mềm này và có thể sử dụng nhiều phần mềm khác để lập trình vi điều khiển Arduino Có nhiều nhà sản xuất sử dụng mã nguồn mở để chết tạo các board của riêng họ (các chức năng như board củ nhưng thêm vào các chức năng học cần ví dụ như, DFRobot) Trong chương này chúng ta sẽ làm quen với board Arduino Uno R3 và DFRobot Romeo BLE 1. Arduino Uno R3 Arduino Uno là một board vi điều khiển dựa trên ATmega328. Board có 14 chân ngõ vào ra số (digital input/output pins) với 6 chân có thể sử dụng như kênh ngõ ra PWM, 6 ngõ vào tương tự, thạch anh 16 MHz, một cổng kết nối USB, jack nguồn, đầu 3 Share by: www.

Huỳnh Xuân Dũng nối ICSP, và một nút nhấn reset. Nó gồm có tất cả mọi thứ cầnhỗ trợ cho vi điều khiển; kết nối đơn giản đến máy tính qua USB và cấp nguồn cho board qua bộ chuyển đổi AC- DC hay pin. Bộ điều khiển trung tâm của Arduino có nhiệm vụ điều khiển, giao tiếp được trình bày trong hình 1. Đặc điểm của Arduino UNO R3 trình bày như sau: • Vi điều khiển (Microcontroller): ATmega328 • Điện áp hoạt động (Operating Voltage): 5 V • Ngõ vào điện áp khuyến nghị (Input Voltage recommended): 7–12 V • Điện áp ngõ vào (Input Voltage): 6-20 V • Số lượng ngõ vào/ra số: 14 (6 ngõ ra hỗ trợ xuất PWM) • Số lượng ngõ vào tương tự (Analog Input Pins): 6 • Dòng điện DC mỗi chân vào/ra (DC Current per I/O Pin): 40 mA • Dòng điện cho chân 3.3V (DC Current for 3.3 V Pin): 50 mA • Flash Memory: 32 KB trong đó 0.5 KB được sử dụng bởi bootloader • SRAM: 2 KB (ATmega328) • EEPROM: 1 KB (ATmega328) • Tốc độ xung clock: 16 MHz (Hình 1.1: Arduino UNO interface board 4 Share by: www.

Huỳnh Xuân Dũng Các chân của board Arduino Uno được in ở mặt trên của board. Mặc dù được ghi chú rõ ràng nhưng vẫn chưa phải là đầy đủ. Đầu tiên, bạn sẽ sử dụng các các ngõ ra chân tại các đầu cắm cái (female header) trên board (có thể hàn ở mặt dưới), kết nối USB và thậm chí cả nguồn cung cấp. Tx và Rx là chân để nhận tính hiệu UART cho truyền thông RS-232 và USB I2C là phương pháp truyền thông nối tiếp khác sử dụng đường truyền dữ liệu 2 chiều (SDA) và đường xung clock (SCL) SPI là phương pháp truyền thông nối tiếp khác sử dụng cho truyền chủ (MOSI- Master Out Slave In), một đường nhận chủ (MISO), và xung clock (SCK) A/D là chuyển tín hiệu tương tự sang ngõ vào số, chuyển đổi điện áp tương tự sang số PWM (Pulse Width Modulator) được dùng để tạo tính hiệu xung vuông với chu kỳ làm việc thay đổi ICSP có nghĩa In Circuit Serial Programming - một cách khác để lập trình vi điều khiển Vcc là điện áp cung cấp cho bộ xử lý (+5VDC ổn định từ điện áp ngõ vào cao hơn) 3.3VDC là điện áp ổn định (từ ngõ vào điện áp cao hơn) cho các ngoại vi có dòng điện lớn nhất 50 mA Hình 1.2 Sơ đồ chân của Arduino Uno R3 5 Share by: www.

Huỳnh Xuân Dũng IOREF cung cấp điện áp tham chiếu vì thế các module (shields) có thể lựa chọn nguồn phù hợp AREF là ngõ vào điện áp tham chiếu sử dụng cho bộ A/Ds GND là tham chiếu 0V RESET reset bộ xử lý và các chức năng ngoại vi 2. DFRobot RoMeo BLE DFRobot Romeo BLE All-in-one Microcontroller (ATMega 328) là một all-in-one Arduino được thiết kế đặc biệt dành cho các ứng dụng robot. Nó có lợi thế từ Arduino với mã nguồn mở, được hỗ trợ từ hàng ngàn code mẫu miễn phí và dễ dàng mở rộng tương thích với các Arduino shields. Bộ điều khiển robot này sử dụng chip Atmel ATmega328p làm bộ xử lý trung tâm.

Board đươc lập trình với Arduino bootloader tương thích với người sử dụng trên nền tảng Arduino Uno. Một chip thứ hai là Texas Instruments CC2540 hỗ trợ truyền thông Bluletooth năng lượng thấp BLE (Bluetooth Low Energy). Nó hổ trợ lập trình với firware hỗ trợ truyền dữ liệu nối tiếp qua Bluetooth qua giao tiếp thông qua tập lệnh AT. Bộ điều khiển robot Romeo gồm có 2 kênh điều khiển động cơ L298.

Bộ điều khiển động cơ này có thể điều khiển động cơ từ 5-23 VDC lên đến 2A Board vi điều khiển Romeo BLE có số lượng chân lớn dễ dàng kết nối đến robot. Một bộ 3 chân tương tự (Analog) và GPIO số dùng để truy cập tín hiệu, điện áp. Các ngõ GPIO số có thể được sử dụng để điều khiển các động cơ servo và các ngõ ngõ có bắt vít cung cấp nguồn bên ngoài cho động cơ servo. Một bộ đầu nối (header) tương thích với Arduino cho phép bạn chọn các shields phù hợp để mở rộng các ứng dụng và các ngõ vào ra.

Một bộ ba ngõ kết nối giao tiếp theo chuẩn I2C được hỗ trợ cung cấp tại các terminal của board. Các chức năng khác bao gồm có 5 lựa chọn cho người sử dụng như các nút nhấn, nút reset, các LED chỉ trạng th1 được gắn để phục vụ cho việc chuẩn đoán. Nút nhấn tùy chọn cho người sử dụng được đưa đến ngõ vào tương tự. Hoặc có thể cho phép hoặc không cho phép thông qua công tắt trượt như hình 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ