1. GIỚI THIỆU
Arduino đã và đang được sử dụng rất
rộng rãi trên thế giới, và ngày càng chứng tỏ được sức mạnh của chúng thông qua
vô số ứng dụng độc đáo của người dùng trong cộng đồng nguồn mở (open-source).
Tuy nhiên tại Việt Nam Arduino vẫn còn chưa được biết đến nhiều. Bài viết này
là một cố gắng nhầm giới thiệu một số thông tin về Arduino với hy vọng cung cấp
cho người dùng DIY thêm một lựa chọn mới đầy tiềm năng để thực hiện các dự án
của mình.
Hiện tượng arduino
Arduino thực sự đã gây sóng gió
trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của
mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã
làm được trên thị trường thiết bị di động. Số lượng người dùng cực lớn và đa
dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm cho
ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến.
Arduino là gì mà có thể khiến ngay
cả những sinh viên và nhà nghiên cứu tại các trường đại học danh tiếng như MIT,
Stanford, Carnegie Mellon phải sử dụng; hoặc ngay cả Google cũng muốn hỗ
trợ khi cho ra đời bộ kit Arduino Mega ADK dùng để phát triển các ứng dụng
Android tương tác với cảm biến và các thiết bị khác?
Arduino thật ra là một bo mạch vi xử
lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến,
động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là môi trường
phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học
một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và
điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở
từ phần cứng tới phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một
bo Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị.
Arduino ra đời tại thị trấn Ivrea
thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin.
Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ
khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những
người phát triển Arduino, tại trường Interaction Design Instistute Ivrea
(IDII). Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan
truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng
đầu tiên. Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea
chỉ để tham quan nơi đã sản sinh ra Arduino.
2. Các
ứng dụng nổi bật của bo mạch Arduino
Arduino được chọn làm bộ não xử lý
của rất nhiều thiết bị từ đơn giản đến phức tạp. Trong số đó có một vài ứng
dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực
hiện nhiều nhiệm vụ rất phức tạp. Sau đây là danh sách một số ứng dụng nổi bật
của Arduino.
a. Máy
in 3D
Một cuộc cách mạng khác cũng đang âm
thầm định hình nhờ vào Arduino, đó là sự phát triển máy in 3D nguồn mở Reprap.
Máy in 3D là công cụ giúp tạo ra các vật thể thực trực tiếp từ các file CAD 3D.
Công nghệ này hứa hẹn nhiều ứng dụng rất thú vị trong đó có cách mạng hóa việc
sản xuất cá nhân.
Máy
in 3D Makerbot điều khiển bằng Arduino Mega2560
http://www.makerbot.com/ (link hay :)
b. Robot
Do kích thước nhỏ gọn và khả năng xử
lý mạnh mẽ, Arduino được chọn làm bộ xử lý trung tâm của rất nhiều loại robot,
đặc biệt là robot di động.
Robot arduino
c. Thiết
bị bay không người lái UAV
UAV là một ứng dụng đặc biệt
thíchhợp với Arduino do chúng có khả năng xử lý nhiều loại cảm biến như Gyro,
accelerometer, GPS…; điều khiển động cơ servo và cả khả năng truyền tín hiệu từ
xa.
d. Game
tương tác
Việc đọc cảm biến và tương tác với
PC là một nhiệm vụrất đơn giản đối với Arduino. Do đó rất nhiều ứng dụng game
tương tác có sử dụng Arduino.
arduino espola
e. Điều
khiển ánh sáng
Các tác vụ điều khiển đơn giản như đóng ngắt đèn
LED hay phức tạp như điều khiển ánh sáng theo nhạc hoặc tương tác với ánh sáng
laser đều có thể thực hiện với Arduino.
Ambilight
với Arduino
f. Trình diễn công nghệ Ambilight
Kích hoạt chụp ảnh tốc độ cao. Đây là một ứng dụng rất đơn giản
nhưng đặc biệt hữu ích với những ai đam mê chụp ảnh. Ứng dụng này giúp tạo ra
những bức ảnh độc đáo ghi lại những khoảnh khắc xảy ra cực nhanh mà nếu không
có dụng cụ hỗ trợ chúng ta khó lòng ghi lại.
Trên đây chỉ là một vài ví dụ minh
họa cho khả năng ứng dụng của Arduino. Khi tìm kiếm trên Google, bạn có thể tìm
thấy vô số ứng dụng có sử dụng Arduino. Ngoài ra có thể tham khảo trang web sau
để tìm hiểu thêm nhiều ứng dụng rất độc đáo:
3. Khả
năng của bo mạch Arduino
Bo mạch Arduino sử dụng dòng vi xử lý 8-bit megaAVR của Atmel với hai
chip phổ biến nhất là ATmega328 và ATmega2560. Các dòng vi xử lý này cho phép
lập trình các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh với
các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều
ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn
giao tiếp đa dạng như UART, SPI, TWI (I2C).
a. Sức
mạnh xử lý
Xung nhịp: 16MHz
EEPROM: 1KB (ATmega328) và 4KB (ATmega2560)
SRAM: 2KB (Atmega328) và 8KB (Atmega2560)
Flash: 32KB (Atmega328) và 256KB (Atmega2560)
b. Đọc
tín hiệu cảm biến ngõ vào:
Digital:
Các bo mạch Arduino đều có các cổng digital có thể cấu hình làm ngõ vào
hoặc ngõ ra bằng phần mềm. Do đó người dùng có thể linh hoạt quyết định số
lượng ngõ vào và ngõ ra.
Tổng số lượng cổng digital trên các mạch dùng Atmega328 là 14, và trên
Atmega2560 là 54.
Analog:
Các bo mạch Arduino đều có trang bị các ngõ vào analog với độ phân
giải 10-bit (1024 phân mức, ví dụ với điện áp chuẩn là 5V thì độ phân giải
khoảng 0.5mV).
Số lượng cổng vào analog là 6 đối với Atmega328, và 16 đối với
Atmega2560.
Với tính năng đọc analog, người dùng có thể đọc nhiều loại cảm
biến như nhiệt độ, áp suất, độ ẩm, ánh sáng, gyro, accelerometer…
b. Xuất
tín hiệu điều khiển ngõ ra:
Digital output:
Tương tự như các cổng vào digital, người dùng có thể cấu hình
trên phần mềm để quyết định dùng ngõ digital nào là ngõ ra.
Tổng số lượng cổng digital trên các mạch dùng Atmega328 là 14, và
trên Atmega2560 là 54.
PWM output:
Trong số các cổng digital, người dùng có thể chọn một số cổng
dùng để xuất tín hiệu điều chế xung PWM. Độ phân giải của các tín hiệu PWM này
là 8-bit. Số lượng cổng PWM đối với các bo dùng Atmega328 là 6, và đối với
các bo dùng Atmega2560 là 14.PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc điều
khiển động cơ mà phổ biến nhất là động cơ servos trong các máy bay mô hình.
c. Chuẩn
Giao tiếp
Serial:
Đây là chuẩn giao tiếp nối tiếp được dùng rất phổ biến trên
các bo mạch Arduino. Mỗi bo có trang bị một số cổng Serial cứng (việc giao tiếp
do phần cứng trong chip thực hiện). Bên cạnh đó, tất cả các cổng digital còn
lại đều có thể thực hiện giao tiếp nối tiếp bằng phần mềm (có thư viện chuẩn,
người dùng không cần phải viết code). Mức tín hiệu của các cổng này là TTL 5V.
Lưu ý cổng nối tiếp RS-232 trên các thiết bị hoặc PC có mức tín hiệu là UART
12V. Để giao tiếp được giữa hai mức tín hiệu, cần phải có bộ chuyển mức, ví dụ
như chip MAX232.
Số lượng cổng Serial cứng của Atmega328 là 1 và của
Atmega2560 là 4. Với tính năng giao tiếp nối tiếp, các bo Arduino có thể
giao tiếp được với rất nhiều thiết bị như PC, touchscreen, các game console…
USB:
Các bo Arduino tiêu chuẩn đều có trang bị một cổng USB để thực
hiện kết nối với máy tính dùng cho việc tải chương trình. Tuy nhiên các chip AVR
không có cổng USB, do đó các bo Ardunino phải trang bị thêm phần chuyển đổi từ
USB thành tín hiệu UART. Do đó máy tính nhận diện cổng USB này là cổng COM chứ
không phải là cổng USB tiêu chuẩn.
SPI:
Đây là một chuẩn giao tiếp nối tiếp đồng bộ có bus gồm có 4 dây.
Với tính năng này các bo Arduino có thể kết nối với các thiết bị như LCD, bộ
điều khiển video game, bộ điều khiển cảm biến các loại, đọc thẻ nhớ SD và MMC…
TWI (I2C):
Đây là một chuẩn giao tiếp đồng bộ khác nhưng bus chỉ có hai dây.
Với tính năng này, các bo Arduino có thể giao tiếp với một số loại cảm biến như
thermostat của CPU, tốc độ quạt, một số màn hình OLED/LCD, đọc real-time clock,
chỉnh âm lượng cho một số loại loa…
d. Môi
trường lập trình bo mạch Arduino
Thiết kế bo mạch nhỏ gọn, trang bị
nhiều tính năng thông dụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức
mạnh thực sự của Arduino nằm ở phần mềm. Môi trường lập trình đơn giản dễ sử
dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng C/C++ rất quen
thuộc với người làm kỹ thuật. Và quan trọng là số lượng thư viện code được viết
sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn.
Giao diện IDE của Arduino
Môi trường lập trình Arduino IDE có
thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và
Linux. Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí
và có thể mở rộng thêm bởi người dùng có kinh nghiệm.
Các
loại bo mạch Arduino
Về mặt chức năng, các bo mạch
Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega và loại mở
rộng thêm chức năng cho bo mạch chính (thường được gọi là shield).
Các bo mạch chính về cơ bản là giống
nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ
nhớ, hay kích thước có sự khác nhau. Một số bo có trang bị thêm các tính năng
kết nối như Ethernet và Bluetooth.
Các bo mở rộng chủ yếu mở rộng thêm
một số tính năng cho bo mạch chính ví dụ như tính năng kết nối Ethernet,
Wireless, điều khiển động cơ v.v…
1 nhận xét :
Like
Post a Comment
Note: Only a member of this blog may post a comment.