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ả

Bài 1: Một chương trình trên Arduino cần tối thiểu những gì?

Trong bài viết này, tôi muốn chỉ cho các bạn biết để viết một chương trình Arduino, bạn cần chuẩn bị TỐI THIỂU những điều gì!

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

Lấy từng bit trong một thanh ghi của iNut PLC - Lấy từng bit trong một luồng cảm biến của iNut cảm biến

Làm thế nào để lấy từng bit của một thanh ghi? Bạn lưu trạng thái của INPUT/OUTPUT hoặc cảm biến digital vào một bit của thanh ghi và bạn muốn đọc nó để thiết kế giao diện? Đừng lo lắng. Giải pháp cực kỳ đơn giản, nó chỉ là một khối lệnh kéo thả thôi mà! Nào, cùng khám phá!

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