
Arduino là một nền tảng vi mạch thiết kế mở phần cứng (Open-source hardware) và phần mềm (Open-source software). Phần cứng Arduino bao gồm các bo mạch điều khiển đơn (Single-board microcontroller) được phát triển tại thị trấn Ivrea ở Ý, nhằm xây dựng các ứng dụng tương tác với môi trường hoặc với nhau. Bao gồm một board mạch nguồn mở thiết kế trên nền tảng vi xử lý AVR Atmel 8-bit hoặc ARM Atmel 32-bit. Các model hiện tại có tích hợp 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.
Arduino được giới thiệu vào năm 2005 với mục tiêu đơn giản hóa việc phát triển thiết bị điện tử cho sinh viên, người yêu công nghệ và các chuyên gia. Điển hình là việc tạo ra các thiết bị tương tác với môi trường qua các cảm biến và cơ chế thực thi, như robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Arduino IDE là môi trường phát triển tích hợp chạy trên máy tính cá nhân, cho phép người dùng viết chương trình bằng ngôn ngữ Arduino dựa trên C/C++.
Các board Arduino có giá khoảng €20, tương đương $27. Trên thị trường có một số sản phẩm giả mạo với giá rẻ hơn $9. Người dùng có thể mua Arduino dưới dạng kit hoặc lắp ráp sẵn. Thiết kế phần cứng của Arduino được công khai để những ai muốn tự mình sản xuất mạch Arduino có thể thực hiện được (mã nguồn mở). Đến năm 2011, đã có hơn 300 ngàn mạch Arduino thương mại, và con số này tăng lên 700 ngàn vào năm 2013.
Lịch sử
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên tại Viện Thiết kế Tương tác Ivrea tại Ivrea, Italy. Ban đầu, sinh viên sử dụng một 'BASIC Stamp' có giá khoảng $100, là một lựa chọn phù hợp cho sinh viên. Massimo Banzi, một trong những người sáng lập, dạy tại Ivrea. Tên 'Arduino' được lấy từ một quán bar tại Ivrea, nơi các nhà sáng lập thường gặp nhau. Quán bar này được đặt tên theo Arduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến 1014.
Lý thuyết phần cứng được đóng góp bởi một sinh viên người Colombia có tên Hernando Barragan. Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã cộng tác để làm cho nó nhẹ hơn, giá rẻ hơn và dễ dàng tiếp cận với cộng đồng mã nguồn mở. Trường này sau đó đã đóng cửa, vì vậy các nhà nghiên cứu, trong đó có David Cuarlielles, đã lan truyền ý tưởng này.
Giá hiện tại của board Arduino dao động xung quanh $30 và có phiên bản giả thấp hơn chỉ khoảng $9. Các phiên bản nhái đơn giản như Arduino Mini Pro có thể được sản xuất tại Trung Quốc với giá rẻ hơn $4, bao gồm cả phí gửi thư.
Phần cứng


Mạch Arduino bao gồm vi điều khiển AVR cùng nhiều linh kiện bổ sung giúp lập trình dễ dàng và có thể mở rộng với các mạch khác. Arduino có các kết nối tiêu chuẩn cho phép người dùng kết nối với CPU và module bổ sung dễ dàng, gọi là shield. Nhiều shield có thể được xếp chồng và sử dụng song song thông qua serial bus I²C. Arduino chính thức sử dụng các dòng chip megaAVR như ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560. Ngoài ra, một số bộ vi xử lý khác cũng được sử dụng trong các mạch tương thích Aquino. Hầu hết các mạch Arduino có bộ điều chỉnh tuyến tính 5V và thạch anh dao động 16 MHz, mặc dù một số thiết kế như LilyPad chạy tại 8 MHz và không có bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị. Vi điều khiển Arduino có thể được lập trình sẵn với boot loader cho phép upload chương trình vào bộ nhớ flash on-chip, giúp đơn giản hóa quá trình lập trình so với các thiết bị khác thường cần bộ nạp bên ngoài.
Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board được lập trình thông qua kết nối RS-232, nhưng cách thực hiện phụ thuộc vào đời phần cứng của từng board. Các board Serial Arduino có mạch chuyển đổi RS232 sang TTL. Các board Arduino hiện nay được lập trình thông qua cổng USB với chip chuyển đổi USB-to-serial như FTDI FT232. Các biến thể như Arduino Mini và Boarduino không chính thức sử dụng adapter board hoặc cáp nối USB-to-serial có thể tháo rời, Bluetooth hoặc các phương thức kết nối khác. (Khi sử dụng công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)
Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển để sử dụng với các mạch ngoài. Diecimila, Duemilanove, và hiện nay là Uno đều có 14 chân I/O số, trong đó 6 chân có thể tạo xung PWM và 6 chân input analog có thể sử dụng như chân I/O số. Các chân này được thiết kế ở phía trên mặt board, thông qua header cái 0.10-inch (2.5 mm). Nhiều shield plug-in cũng được thương mại hóa. Các board Arduino Nano, và các phiên bản tương thích như Bare Bones Board và Boarduino cũng cung cấp header đực ở mặt trên dùng để cắm vào breadboard.
Có nhiều biến thể như Arduino-compatible và Arduino-derived. Một số trong số này có chức năng tương đương với Arduino và có thể thay thế lẫn nhau. Nhiều mở rộng cho Arduino được thực hiện bằng cách thêm các driver đầu ra, thường được sử dụng trong giáo dục để đơn giản hóa cấu trúc của 'con rệp' và các robot nhỏ. Các board khác thường có điện nhưng có thay đổi về hình dạng, đôi khi duy trì độ tương thích với các shield, đôi khi không. Một số biến thể sử dụng vi điều khiển hoàn toàn khác, với mức độ tương thích khác nhau.
Các board chính thức của Arduino
Phần cứng Arduino gốc được sản xuất bởi công ty Italy mang tên Smart Projects. Một số board dẫn xuất từ Arduino cũng được thiết kế bởi công ty Mỹ SparkFun Electronics. Đến nay, đã có sáu phiên bản phần cứng của Arduino được sản xuất thương mại.










Shield
Các board Arduino và các board tương thích với Arduino sử dụng các shield— các board mở rộng được cắm vào các header của Arduino. Các shield có thể là các module điều khiển cho động cơ, GPS, ethernet, LCD, hoặc có thể là breadboard. Một số lượng lớn các shield cũng có thể được làm bởi DIY (những người thích tự làm ứng dụng cho riêng mình).




Phần mềm
Phát triển bởi | Arduino Software |
---|---|
Phiên bản ổn định | 1.0.6
/ 16 tháng 9 năm 2013 |
Bản xem thử | 1.5.6-r2 Beta
/ 21 tháng 2 năm 2014 |
Viết bằng | Java, C và C++ |
Hệ điều hành | Cross-platform |
Thể loại | Integrated development environment |
Giấy phép | LGPL hoặc GPL license |
Website | arduino |
IDE của Arduino là một ứng dụng cross-platform được viết bằng Java, được sử dụng cho ngôn ngữ lập trình Processing và dự án Wiring. Nó được thiết kế đặc biệt cho người mới bắt đầu trong lĩnh vực phát triển phần mềm. IDE bao gồm một trình soạn thảo mã với các tính năng như syntax highlighting, brace matching tự động và tự động canh lề, cũng như biên dịch và upload chương trình lên board chỉ với một cú nhấp chuột. Mỗi chương trình hoặc mã lập trình cho Arduino được gọi là một sketch.
Các chương trình Arduino được viết bằng ngôn ngữ dựa trên C/C++. Arduino IDE đi kèm với thư viện phần mềm 'Wiring' từ dự án gốc Wiring, giúp làm cho các thao tác input/output trở nên dễ dàng hơn. Người dùng chỉ cần định nghĩa hai hàm để tạo ra một chương trình vòng thực thi có thể chạy:
setup()
: hàm được gọi khi khởi động chương trình, dùng để thiết lập cài đặtloop()
: hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch
Một chương trình đơn giản cho một bộ điều khiển có thể làm cho một đèn LED sáng/tắt. Trong môi trường Arduino, ta có thể viết một chương trình như sau:

#define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // Đặt chân 13 làm đầu ra digital } void loop () { digitalWrite (LED_PIN, HIGH); // Bật LED on delay (1000); // chờ trong 1 giây (1000 mili giây) digitalWrite (LED_PIN, LOW); // Tắt LED off delay (1000); // chờ trong 1s }
Hầu hết các board Arduino đi kèm với một đèn LED và một điện trở được nối giữa chân 13 và đất, điều này rất thuận tiện cho nhiều ứng dụng đơn giản. Đoạn code trên không thể được nhận diện bởi một compiler C++ chuẩn như một chương trình hợp lệ, vì vậy khi ta nhấn vào nút 'Upload to I/O board' trong IDE, một bản sao của đoạn mã này sẽ được ghi vào một file tạm với một header include phụ ở đầu và một hàm main() đơn giản ở dưới đáy, tạo thành một chương trình C++ hoàn chỉnh.
Arduino IDE sử dụng GNU toolchain và AVR Libc để biên dịch chương trình, cùng với avrdude để upload chương trình lên board.
Bởi vì Arduino dựa trên nền tảng vi điều khiển của Atmel, nên môi trường phát triển Atmel Studio hoặc phiên bản mới hơn của Atmel Studio, gọi là AVR Studio, cũng có thể được sử dụng để phát triển phần mềm cho Arduino.
Phát triển phần mềm
Arduino là một nền tảng phần cứng mã nguồn mở: Các thiết kế phần cứng của Arduino được phân phối dưới dạng giấy phép Creative Commons Attribution Share-Alike 2.5 và có sẵn trên trang web của Arduino. Mã nguồn cho IDE này cũng có sẵn và được phát hành theo Giấy phép Công cộng GNU, phiên bản 2.
Mặc dù các thiết kế phần cứng và phần mềm là miễn phí dưới dạng giấy phép copyleft, các nhà phát triển cũng phải tuân thủ các quy định về việc sử dụng tên 'Arduino' chỉ cho các sản phẩm chính thức và không sử dụng cho các sản phẩm phái sinh mà không có sự cho phép. Các chính sách chính thức về việc sử dụng tên Arduino nhấn mạnh rằng dự án này là mở đối với cộng đồng để cùng nhau phát triển các sản phẩm chính thức. Nhiều sản phẩm tương thích với Arduino đã tránh sử dụng tên 'Arduino' bằng cách sử dụng từ phái sinh '-duino'.
Các ứng dụng thực tế
- Xoscillo: phần mềm oscilloscope mã nguồn mở
- Các thiết bị khoa học
- Arduinome: một thiết bị điều khiển MIDI nhái Monome
- OBDuino: một máy tính hành trình sử dụng giao diện chẩn đoán on-board thường thấy trong các loại xe hơi hiện đại
- Thiết bị đọc sách cho con người: thiết bị điện tử giá rẻ có đầu ra TV, có thể lưu trữ một thư viện sách gồm hàng nghìn cuốn (ví dụ như Wikipedia offline) trên thẻ nhớ microSD
- Ardupilot: phần mềm / phần cứng cho máy bay không người lái
- ArduinoPhone