Arduino Leonardo là gì ?

I. Giới thiệu

Chúng ta đã quá quen thuộc với các board mạch Arduino "truyền thống" như Arduino Uno R3, Nano hay phiên bản tối giản là Arduino Pro Mini. Nếu là một người tinh ý, các bạn sẽ dễ dàng nhận thấy board Arduino Leonardo có kích thước giốn với Arduino, pinout cũng tương tự luôn. Thật vậy, với một người yêu thích Arduino, bạn sẽ có một thắc mắc: Tại sao người ta lại làm ra mạch Arduino Leonardo, trong khi nó "khá giống" với Arduino Uno R3, chứ không muốn nói là giống "hệt", liệu nhà phát triển Arduino quá "rãnh"? Vâng, qua bài viết này, bạn sẽ hiểu được vì sao Arduino Leonardo lại ra đời, khi nào nên dùng nó, khi nào không và các thông số kĩ thuật cơ bản.

II. Đặc điểm của dòng Arduino "truyền thống"

Như các bạn đã biết, mình từng có bài viết nói về lịch sử Arduino, trong đó, có nhắc đến khá nhiều về dòng Arduino sử dụng chip AtmegaxP (x có thể 8, 16, 32). Và đó chính là dòng Arduino "truyền thống". Vì sao lại gọi là dòng truyền thống? Vì tron thời kì khi Arduino được "khởi sự" lần đầu tiên, khi nói đến lập trình nhúng, người ta không nghĩ đến giao tiếp USB, mà chỉ nghĩ đến giao tiếp RS-232 (Serial). Vì hồi đó, máy tính để bàn (desktop) vẫn còn phổ biến và dòng laptop lúc đó thực sự chưa mạnh và khá đắt đỏ. Ngoài ra, để giao tiếp thông qua USB bạn phải có một con chip thứ hai để làm nhiệm vụ chuyển giao tiếp usb thành giao tiếp serial. Cùng thời đấy (2006), các con vi điều khiển bao gồm cả giao tiếp USB chưa thực sự phổ biến, ví dụ như atmega32u4 (ra đời năm 2008).

Như vậy, khi bạn lập trình một board Arduino "truyền thống", bạn cần phải có một con vi điều khiển nhận nhiệm vụ chuyển giao tiếp giao tiếp usb thành giao tiếp serial. Như vậy, sẽ phải thông qua nhiều bước trung gian trước khi mạch bạn được nạp, và mạch cũng dễ "xung đột" nếu một trong các phần ấy bị hỏng. 

Nhưng, không có nghĩa bạn đánh giá cách thiết kế đó là thiết kế tồi. Vì bạn chỉ việc tháo con Atmega328P ra khỏi mạch Arduino và bạn sẽ có một mạch USB to Serial với giá 0 đồng. Ngoài ra, bạn có thể tự làm một mạch Arduino rồi gắn con atmega328p vào đó mà không phải mua một con atmega328p khác. Hơn nữa, với việc thay thế con atmega328p bằng các con vi điều khiển khác như atmega88p, atmega168p, atmega8,... bạn có thể lập trình chúng dễ dàng mà không cần phải suy nghĩ nhiều.

Tuy nhiên, thực tế, có một bộ phận người dùng không thích điều này. Họ cho rằng Arduino rất dễ bị hỏng, vì chỉ cần hư 1 trong 2 con vi điều khiển là hỏng ngay. Dẫu ràng việc thay thế vi điều khiển atmega328p là một việc rất dễ dàng với dân chuyên nghiệp (burn bootloader cho con mới là xong). Nhưng, nên nhớ rằng, Arduino là một nền tảng tự động hóa dành cho tất cả mọi người. Vì vậy, thay vì "ép" người dùng đi vào con đường sử dụng Uno. Họ đã lắng nghe và tạo ra một dòng mạch mới mang tên Arduino Leonardo, với việc sử dụng vi điều khiển atmega32u4 (đã tích hợp sẵn usb to serial trong một con chip duy nhất) trên mạch. Nhưng họ vẫn giữ nguyên pinout Arduino 1.0 để các loại shield khác có thể dùng lại một cách dễ dàng.

III. Các thông tin cơ bản về mạch Arudino Leonardo

Ngoài chức năng như một con Arduino Leonardo, Arduino Leonardo còn có thêm một chức năng khá hay, đó là USB host. Nghĩa là bạn có thể giả lập một thiết bị như chuột, bàn phím, tay cầm game... bằng con Arduino Leonardo này heart với chuẩn USB-HID. Vì sao lại làm được như thế? Vì ngoài mục đích thỏa mãn nhu cầu người dùng, họ còn muốn nó "mới" hơn con Arduino Uno, chứ giống hệt thì không nói làm gì nữa, do đó bootloader của Arduino Leonardo lại nặng đến 4kb devil.

Vi điều khiển ATmega32u4 (họ 8bit)
Điện áp hoạt động 5V – DC
Tần số hoạt động 16 MHz
Dòng tiêu thụ ở các chân I/O 40mA
Đ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 (7 chân PWM)
Số chân Analog 12 (các chân PWM có thể dùng như chân Analog bình thường - nghĩa là có thể dùng Analog read) (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 40 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega32u4) với 4KB dùng bởi bootloader
SRAM 2.5 KB (ATmega32u4)
EEPROM 1 KB (ATmega32u4)
Kích thước 68.6mm x 53.3mm

Còn lại là khá giống với Arduino Uno R3.

IV. Vì sao bạn phải dùng Leonardo

Nếu bạn thích sự đơn giản, tinh tế và rõ ràng, Leonardo là một lựa chọn dành cho bạn. Nhưng, hãy cân nhắc theo yêu cầu của bản thân và có thể tham khảo gợi ý sau:

  • Bạn muốn giả lập chuột, bàn phím mà không muốn tốn nhiều thời gian "ngâm cứu".
  • Bạn muốn sự gọn gàng trong dự án.
  • Bạn muốn nhiều chân analog hơn, nhiều chân pwm hơn.
  • Bạn muốn nhiều RAM hơn (pro mới cần nhé).
  • Bạn muốn board mình nhẹ (board này nặng có 20g à)

V. Vì sao bạn không nên dùng Leonardo

Nhưng nếu bạn kĩ tính, thích trải nghiệm độc đáo, thích sự khó khăn để cải thiện mình thì không nên, lúc đó Arduino Uno R3 là một lựa chọn thấu đáo. Ngoài ra, chúng còn có những nguyên nhân khác.

  • Arduino Uno vẫn có thể giả lập chuột được vì bạn nên nhớ nó có một con atmega16u2 để làm chip chuyển usb to serial, và bạn hoàn toàn có thể nạp code lại cho nó để nó có firmware USB-hid. Nhưng điều này không đơn giản như Leonardo - chỉ việc gắn vô máy tính, nạp code và hưởng thụ.
  • Bạn muốn sự hầm hố.
  • Bạn là người tiết kiệm.
  • Bạn muốn đi xa hơn nữa trong thế giới Arduino.

VI. Kết luận

Trên đây, là những ý kiến cá nhân của mình qua quá trình trải nghiệm thực tế và đánh giá, phân tích. Bạn có thể tham khảo nó và lựa chọn cho mình loại board thích hợp và trở thành một maker. Chúc các bạn thành công.

lên
10 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Kết nối điều khiển từ xa sử dụng ESP8266 và Arduino với hệ thống firmware iNut Cảm biến CloudMQTT - 1000 firmware miễn phí

Chuyện kể rằng, có 02 sinh viên Việt Nam, trong lúc làm đồ án đại học kết nối điều khiển từ xa qua Internet. Một người thì chọn phương án truyền thống sử dụng máy tính làm máy chủ và demo các tính năng theo yêu cầu đồ án. Người còn lại biết đến iNut Sensor và tìm cách tối ưu hóa phần mềm và phần cứng nhằm chau chuốt cho đồ án của mình trở nên "xịn" và "nhiều tính năng bá đạo". Đến lúc bảo vệ đồ án, cậu sinh viên 01 cảm thấy choáng ván với muôn vàn vấn đề từ việc nơi trình bày đồ án không có wifi, mạng chập chờn, máy tính mở không lên, đứt cáp biển,... Cuối cùng cũng bảo vệ được với điểm số không ưng ý lắm dù tốn rất nhiều thời gian và công sức. Cậu còn lại nhờ vào việc chau chuốt phần mềm, tối ưu hóa và comment kĩ từng lệnh trong dòng code, viết báo cáo bài bản chuẩn bị slide như ý, dùng điện thoại cài wifi, quét mã QRcode để chia sẻ quyền truy cập đến phần mềm rất chuyên nghiệp, mọi thứ cậu chủ động hoàn toàn mà không bị các vấn đề "học tài thi phận" bủa vây mà kết quả hết sức mĩ mãn, điểm số mĩ miều, kiến thức IoT được chuẩn hóa. Thực vậy, các dự án, đồ án sử dụng nền tảng iNut Platform bên dưới cho phép các bạn sinh viên làm các dự án hết sức hoàn hảo: từ xe điều khiển, bãi giữ xe thông minh, hệ thống máy lạnh, máy bơm, điều hòa thông minh,... do chinh các bạn tự làm nên đã đạt được những điểm số tốt và tuyệt đối. Cũng chính vì thế, iNut JSC (công ty chủ quản của iNut Platform) đã kết hợp với Khu Công nghệ phần mềm - ĐHQGHCM để tổ chức những khóa đào tạo ngắn hạn cho sinh viên Việt Nam sử dụng nền tảng IoT do iNut JSC phát triển. Và để mở con đường tri thức tiếp cận IoT trong nháy mắt, iNut JSC đã tạo ra một phiên bản firmware trị giá 50.000 đồng sử dụng clouding của CloudMQTT và tài trợ 1000 firmware cho tất cả các bạn học sinh, sinh viên Việt Nam có thể tiếp cận IoT một cách dễ dàng và nhanh chóng nhất!

lên
14 thành viên đã đánh giá bài viết này hữu ích.

Lập trình kéo thả cho các dự án IoT sử dụng Node-Red và iNut Platform

Người nông dân Việt Nam muốn làm ra những sản phẩm nông sản chất lượng tốt, nhưng ngặt nổi với việc sử dụng các giải pháp ở Việt Nam và thế giới vẫn còn quá đắt so với lợi nhuận ròng. Trong quá trình nghiên cứu để tìm ra con đường ứng dụng những thành quả của Cách mạng công nghiệp 4.0, tôi và đội ngũ iNut Platform đã tìm ra một giải pháp lập trình kéo thả với chi phí gần như bằng không để các đối tác nghiên cứu triển khai hệ thống IoT của riêng họ một cách nhanh chóng nhất và an toàn nhất. Thống nhất lại quy chuẩn phát triển IoT với khả năng cung cấp firmware số lượng lớn và không giới hạn cho mọi dự án ở mọi kích cỡ khác nhau, ứng dụng mọi lĩnh vực không chỉ trong lĩnh vực nông nghiệp.

lên
4 thành viên đã đánh giá bài viết này hữu ích.