Giới thiệu về Arduino: Difference between revisions

From MakerLab Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
=='''Arduino là gì?'''==
=='''Arduino là gì?'''==
Arduino là một nền tảng nguồn mở (open-source) với phần cứng và phần mềm được thiết kế dựa trên tiêu chí dễ sử dụng. Các bo mạch Arduino có thể dễ dàng nhận tín hiệu từ cảm biến: ánh sáng, nhiệt độ, độ ẩm,... ,và xuất tín hiệu để điều khiển Relay, Motor, LCD,...,thậm chí bạn có thể sử dụng Twitter để bật tắt bóng đèn hay thiết bị trong nhà sử dụng Arduino.
Arduino là một nền tảng nguồn mở (open-source) với các phần cứng và phần mềm được thiết kế dựa trên tiêu chí dễ sử dụng, các bo mạch Arduino có thể dễ dàng nhận tín hiệu từ cảm biến: ánh sáng, nhiệt độ, độ ẩm,... ,và xuất tín hiệu để điều khiển Relay, Motor, LCD,...,để thực hiện vô số các ứng dụng khác nhau, thậm chí bạn có thể sử dụng Arduino để bật tắt bóng đèn hay thiết bị điện trong nhà bằng điện thoại thông qua mạng Internet.
=='''Nền tảng Arduino (Arduino Platform)'''==
=='''Nền tảng Arduino (Arduino Platform)'''==
Tổng thể Arduino được cấu tạo từ 2 thành phần chính:
# '''''[https://www.arduino.cc/en/Main/Products Mạch phần cứng Arduino]:''''' được sử dụng để để giao tiếp, kết nối và điều khiển các mạch phần cứng khác như cảm biến, mạch điều khiển động cơ, màn hình LCD,...
# '''''[https://www.arduino.cc/en/Main/Software Phần mềm Arduino IDE]:''''' là phần mềm sử dụng trên máy tính dùng để lập trình và nạp chương trình cho các mạch phần cứng Arduino, các bạn có thể lập trình điều kiển Arduino dựa trên [https://www.arduino.cc/reference/en/ Ngôn ngữ lập trình Arduino] sử dụng [https://www.arduino.cc/en/Main/Software Phần mềm Arduino IDE.] .
Trước đây việc thiết kế chức năng cho các phần cứng điện tử dựa trên các linh kiện điện tử cơ bản: Tụ điện, điện trở, transistor,... Vi điều khiển (MCU) xuất hiện với khả năng lập trình tuỳ biến các chức năng đã giúp đơn giản hóa việc thiết kế các phần cứng điện tử đi rất nhiều, tuy nhiên nó vẫn còn khá phức tạp và đòi hỏi các kiến thức chuyên ngành. Arduino xuất hiện với ngôn ngữ lập trình đơn giản, phần mềm dễ sử dụng, bo mạch thiết kế với các khuân mẫu tiêu chuẩn (có thể gắn với các loại Shield hỗ trợ khác nhau) giúp việc kết nối, sử dụng và lập trình phần cứng đơn giản hóa đi rất nhiều!
[[File:Arduino Board.png|alt=|none|thumb|Arduino Hardware|600x600px]]
[[File:Arduino_IDE_-_Blink.png|alt=|none|thumb|Arduino Software|600x600px]]
== '''Cấu trúc phần cứng Arduino'''==
[[File:Arduino Structure.jpg|alt=Arduino Hardware structure|thumb|600x600px|Arduino Hardware structure]]
Cấu trúc phần cứng của các mạch Arduino có thể cơ bản chia làm 7 phần chính như sau:
'''''1) Vi điều khiển chính:''''' là trung tâm của mạch Arduino có chức năng lưu trữ và thực thi các lệnh được lập trình, Vi điều khiển hoạt động như một máy tính thu nhỏ với bộ xử lý trung tâm CPU, RAM, ROM, bộ nhớ Flash và các chuẩn giao tiếp tích hợp như UART, I2C,...
'''''2) Khối giao tiếp máy tính:''''' giúp kết nối Vi điều khiển với máy tính để nạp chương trình và truyền dữ liệu lên máy tính qua phần mềm Arduino, khối này còn có tác dụng cấp nguồn 5VDC cho mạch hoạt động qua cổng USB.


Tổng thể Arduino được cấu tạo từ 2 thành phần chính:
'''''3) Khối cấp nguồn ngoài:''''' được sử dụng để cấp nguồn ngoài cho mạch hoạt động khi không cấp nguồn bằng cổng USB, khối này được tích hợp IC chuyển đổi nguồn nên có thể cấp nguồn linh hoạt theo thông số của từng loại mạch Arduino.
 
'''''4) Các chân tín hiệu nguồn:''''' được sử dụng để cấp nguồn cho các mạch kết nối với Arduino, có các chân tín hiệu nguồn chính: '''3.3V - 5V - GND - Vin'''.


# [https://www.arduino.cc/en/Main/Products Mạch phần cứng Arduino] : được sử dụng để để giao tiếp, kết nối và điều khiển các mạch phần cứng khác như cảm biến, mạch điều khiển động cơ, màn hình LCD,...
'''''5) Các chân tín hiệu Analog:''''' được sử dụng để giao tiếp với các mạch điện sử dụng tín hiệu Analog với Arduino, các chân Analog còn có thể sử dụng như các chân tín hiệu Digital.
# [https://www.arduino.cc/en/Main/Software Phần mềm Arduino IDE] : là phần mềm sử dụng trên máy tính dùng để lập trình và nạp chương trình cho các mạch phần cứng Arduino, các bạn có thể lập trình điều kiển Arduino dựa trên [https://www.arduino.cc/reference/en/ Ngôn ngữ lập trình Arduino] sử dụng [https://www.arduino.cc/en/Main/Software Phần mềm Arduino IDE.]  .


Trước đây việc thiết kế lập trình và điều khiển phần cứng dựa trên các linh kiện cơ bản: Tụ điện, điện trở, transistor,..., Vi điều khiển (MCU) xuất hiện đã giúp đơn giản hóa việc thiết kế và lập trình phần cứng đi rất nhiều tuy nhiên việc sử dụng các ngôn ngữ lập trình cũ cũng như việc thiết kế, nạp chương trình còn khá phức tạp và đòi hỏi kiến thức chuyên ngành. Arduino xuất hiện với ngôn ngữ lập trình đơn giản, phần mềm dễ sử dụng, bo mạch thiết kế với các khuân mẫu tiêu chuẩn (có thể gắn với các loại Shield hỗ trợ khác nhau) giúp việc kết nối, sử dụng và lập trình phần cứng đơn giản hóa đi rất nhiều!
'''''6) Các chân tín hiệu Digital:''''' được sử dụng để giao tiếp với các mạch điện sử dụng tín hiệu Digital với Arduino.
[[File:Arduino Board.png|alt=|none|thumb|Arduino Hardware]]
[[File:Arduino_IDE_-_Blink.png|alt=|none|thumb|Arduino Software]]


'''''7) Cổng giao tiếp ICSP:''''' được sử dụng để kết nối với các bo mạch Arduino Shield sử dụng chuẩn giao tiếp SPI với Arduino hoặc để nạp Bootloader cho Vi điều khiển chính trên mạch Arduino (một dạng tương tự như Bios trên máy tính để phần mềm Arduino có thể nhận dạng được các mạch Arduino).
== '''Các mạch Arduino Shield'''==
Arduino Shield là các mạch bổ sung chức năng cho Arduino được thiết kế tương thích với chuẩn chân cắm của Arduino để có thể dễ dàng cắm và chạy (Plug and Play) ngay lập tức, có rất nhiều loại Arduino Shield: Arduino Motor Shield để điều khiển động cơ, Arduino Joystick Shield để biến Arduino thành tay cầm điều khiển, Arduino Ethernet Shield để kết nối Internet,...
[[File:Arduino Shield.jpg|alt=Các loại Arduino Shield, nguồn: randomnerdtutorials.com|none|thumb|600x600px|Các loại Arduino Shield, nguồn: ''randomnerdtutorials.com'']]
==Các biến thể phần cứng Arduino (Arduino Compatible Boards)==
==Các biến thể phần cứng Arduino (Arduino Compatible Boards)==
Vì nền tảng Arduino được phát triển dưới dạng nguồn mở (Open Source) nên ngoài các mạch phần cứng Arduino được chính hãng Arduino.cc sản xuất, cộng đồng sử dụng Arduino còn phát triển thêm nhiều biến thể Arduino như: Arduino Lilypad (của Adafruit), Arduino RedBoard (SparkFun),..., MakerLab.vn cũng phát triển các phiên bản phần cứng tương thích Arduino (Arduino Compatible) với nhiều cải tiến tên gọi Vietduino, tiêu biểu là 2 phiên bản:
Vì nền tảng Arduino được phát triển dưới dạng nguồn mở (Open Source) nên ngoài các mạch phần cứng Arduino được chính hãng Arduino.cc sản xuất, cộng đồng sử dụng Arduino còn phát triển thêm nhiều biến thể Arduino như: Lilypad (của Adafruit), RedBoard (SparkFun),...
[[File:13975-04.jpg|alt=Sparkfun RedBoard (Arduino Compatible)|none|thumb|600x600px|Sparkfun RedBoard (Arduino Compatible)]]
[https://www.makerlab.vn/ MakerLab.vn] cũng phát triển các phiên bản phần cứng tương thích Arduino (Arduino Compatible) với nhiều cải tiến tên gọi [[Vietduino]], tiêu biểu là 2 phiên bản:
'''1) [[Mạch Vietduino Uno (Arduino Uno Compatible)|Vietduino Uno (Arduino Uno Compatible):]]'''[[File:Vietduino Uno.jpg|none|thumb|Vietduino Uno|alt=|600x600px]]'''2) [[Mạch Vietduino Mega 2560 (Arduino Mega2560 Compatible)|Vietduino Mega 2560 (Arduino Mega 2560 Compatible):]]'''[[File:Vietduino Mega 2560.jpg|none|thumb|Vietduino Mega 2560|alt=|700x700px]]
Mạch [[Mạch Vietduino Uno (Arduino Uno Compatible)|Vietduino Uno]] và [[Mạch Vietduino Mega 2560 (Arduino Mega2560 Compatible)|Vietduino Mega 2560]] là hai phiên bản phần cứng tương thích Arduino (Arduino Compatible) được nghiên cứu và và sản xuất bởi MakerLab.vn có chức năng, kích thước, hình dạng và cách sử dụng tương đương với Arduino Uno R3 & Arduino Mega 2560 với các ưu điểm vượt trội:
 
# Thiết kế tương thích hoàn toàn về hình dạng, chuẩn chân tín hiệu và cách sử dụng với Arduino Uno R3 & Arduino Mega 2560.
# '''S'''ử dụng mạch nguồn xung giảm áp với ưu điểm là hiệu suất chuyển đổi cao, toả nhiệt thấp, tiết kiệm năng lượng, dải điện áp đầu vào cấp cho mạch rộng từ 6~24VDC với dòng đầu ra lớn: 5VDC/Max 1500mA, 3.3VDC / Max 700mA.
# '''B'''ổ sung thêm các chân cấp nguồn POWER+ 5VDC giúp dễ dàng cấp nguồn cho nhiều thiết bị khác nhau.
# '''S'''ử dụng IC chuyển đổi USB-UART CH340 (Vietduino Uno) và CP2102 (Vietduino Mega 2560) được nhập khẩu chính hãng cho độ ổn định và độ bền cao.
# Chức năng cách ly nguồn cổng USB tự động khi cấp nguồn ngoài từ chân Vin hoặc giắc DC giúp bảo vệ cổng USB máy tính của bạn an toàn hơn.
 
== Tham khảo ==


# '''Vietduino Uno (Arduino Uno Compatible):'''[[File:Vietduino Uno.jpg|none|thumb|Vietduino Uno]]Vietduino Uno là phiên bản có chức năng, kích thước, hình dạng và cách sử dụng tương đương với Arduino Uno R3 nhưng được cải tiến để loại bỏ 3 nhược điểm chính mà board này gặp phải:
* Các bài viết '''[[Hướng dẫn sử dụng phần mềm Arduino với các mạch Vietduino + MakerEdu Shield for Vietduino]].'''
## '''Nguồn điện:'''
##* Arduino Uno R3 sử dụng IC chuyển nguồn tuyến tính LM1117 5VDC có dòng đầu ra thấp và rất nóng khi cấp điện áp đầu vào cao (áp chênh lệch được chuyển thành nhiệt, nếu có các module mắc kèm thêm thì ở 12VDC sẽ cháy mạch).
##* Vietduino Uno sử dụng mạch nguồn xung với dải điện áp đầu vào linh hoạt 6~35VDC, dòng đầu ra tối đa lên đến 1.5A, mạch nguồn phát nhiệt thấp với hiệu suất chuyển đổi cao và khả năng tiết kiệm năng lượng vượt trội.
##* IC chuyển nguồn 3.3VDC của Arduino Uno R3 có dòng đầu ra tối đa 150mA, trong khi ở Vietduino Uno là 700mA đủ khả năng cấp nguồn cho các module Wifi phổ biến hiện nay như ESP8266, ESP32,...mà không cần thêm bất kỳ mạch nguồn phụ trợ nào.
## '''IC nạp:'''
##* Arduino Uno R3 sử dụng Vi điều khiển ATmega16U2 giả lập chức năng USB UART, thường bị mất firmware khi sử dụng lâu hoặc cháy thạch anh dẫn đến không nhận cổng USB.
##* Vietduino Uno sử dụng IC chức năng USB UART chuyên dụng CP2102 cho độ ổn định và độ bền cao, vì là IC chức năng và có thạch anh tích hợp bên trong nên sẽ tránh được các trường hợp lỗi của Arduino Uno R3.
## '''Chức năng cách ly nguồn cổng USB khi cấp nguồn ngoài:'''
##* Ở các phiên bản Arduino Uno sản xuất tại China (giá dưới 300.000VNĐ, không có vỏ hộp giấy, Sticker chính hãng Arduino) thì chức năng cách ly nguồn cổng USB khi cấp nguồn ngoài từ chân Vin hoặc Jack DC không hoạt động (có thể đo nguồn tại cổng USB khi cấp nguồn ngoài để kiểm chứng).
##* Vietduino Uno khắc phục hoàn toàn nhược điểm này với khả năng cách ly nguồn cổng USB tự động khi cấp nguồn ngoài giúp bảo vệ cổng USB máy tính của bạn an toàn hơn.
# '''Vietduino Mega 2560 (Arduino Mega 2560 Compatible):'''[[File:Vietduino Mega 2560.jpg|none|thumb]]Vietduino Mega 2560 là phiên bản có chức năng, kích thước, hình dạng và cách sử dụng tương đương với Arduino Mega 2560 R3 nhưng được cải tiến để loại bỏ 3 nhược điểm chính mà board này gặp phải:
## '''Nguồn điện:'''
##* Arduino Mega 2560 R3 sử dụng IC chuyển nguồn tuyến tính LM1117 5VDC có dòng đầu ra thấp và rất nóng khi cấp điện áp đầu vào cao (áp chênh lệch được chuyển thành nhiệt, nếu có các module mắc kèm thêm thì ở 12VDC sẽ cháy mạch).
##* Vietduino Mega 2560 sử dụng mạch nguồn xung với dải điện áp đầu vào linh hoạt 6~35VDC, dòng đầu ra tối đa lên đến 1.5A, mạch nguồn phát nhiệt thấp với hiệu suất chuyển đổi cao và khả năng tiết kiệm năng lượng vượt trội.
##* IC chuyển nguồn 3.3VDC của Arduino Mega 2560 R3 có dòng đầu ra tối đa 150mA, trong khi ở Vietduino Mega 2560 là 700mA đủ khả năng cấp nguồn cho các module Wifi phổ biến hiện nay như ESP8266, ESP32,...mà không cần thêm bất kỳ mạch nguồn phụ trợ nào.
## '''IC nạp:'''
##* Arduino Mega 2560 R3 sử dụng Vi điều khiển ATmega16U2 giả lập chức năng USB UART, thường bị mất firmware khi sử dụng lâu hoặc cháy thạch anh dẫn đến không nhận cổng USB.
##* Vietduino Mega 2560 sử dụng IC chức năng USB UART chuyên dụng CP2102 cho độ ổn định và độ bền cao, vì là IC chức năng và có thạch anh tích hợp bên trong nên sẽ tránh được các trường hợp lỗi của Arduino Mega 2560.
## '''Chức năng cách ly nguồn cổng USB khi cấp nguồn ngoài:'''
##* Ở các phiên bản Arduino Mega 2560 sản xuất tại China (giá dưới 450.000VNĐ, không có vỏ hộp giấy, Sticker chính hãng Arduino) thì chức năng cách ly nguồn cổng USB khi cấp nguồn ngoài từ chân Vin hoặc Jack DC không hoạt động (có thể đo nguồn tại cổng USB khi cấp nguồn ngoài để kiểm chứng).
##* Vietduino Mega 2560 khắc phục hoàn toàn nhược điểm này với khả năng cách ly nguồn cổng USB tự động khi cấp nguồn ngoài giúp bảo vệ cổng USB máy tính của bạn an toàn hơn.

Latest revision as of 07:46, 24 July 2023

Arduino là gì?

Arduino là một nền tảng nguồn mở (open-source) với các phần cứng và phần mềm được thiết kế dựa trên tiêu chí dễ sử dụng, các bo mạch Arduino có thể dễ dàng nhận tín hiệu từ cảm biến: ánh sáng, nhiệt độ, độ ẩm,... ,và xuất tín hiệu để điều khiển Relay, Motor, LCD,...,để thực hiện vô số các ứng dụng khác nhau, thậm chí bạn có thể sử dụng Arduino để bật tắt bóng đèn hay thiết bị điện trong nhà bằng điện thoại thông qua mạng Internet.

Nền tảng Arduino (Arduino Platform)

Tổng thể Arduino được cấu tạo từ 2 thành phần chính:

  1. Mạch phần cứng Arduino: được sử dụng để để giao tiếp, kết nối và điều khiển các mạch phần cứng khác như cảm biến, mạch điều khiển động cơ, màn hình LCD,...
  2. Phần mềm Arduino IDE: là phần mềm sử dụng trên máy tính dùng để lập trình và nạp chương trình cho các mạch phần cứng Arduino, các bạn có thể lập trình điều kiển Arduino dựa trên Ngôn ngữ lập trình Arduino sử dụng Phần mềm Arduino IDE. .

Trước đây việc thiết kế chức năng cho các phần cứng điện tử dựa trên các linh kiện điện tử cơ bản: Tụ điện, điện trở, transistor,... Vi điều khiển (MCU) xuất hiện với khả năng lập trình tuỳ biến các chức năng đã giúp đơn giản hóa việc thiết kế các phần cứng điện tử đi rất nhiều, tuy nhiên nó vẫn còn khá phức tạp và đòi hỏi các kiến thức chuyên ngành. Arduino xuất hiện với ngôn ngữ lập trình đơn giản, phần mềm dễ sử dụng, bo mạch thiết kế với các khuân mẫu tiêu chuẩn (có thể gắn với các loại Shield hỗ trợ khác nhau) giúp việc kết nối, sử dụng và lập trình phần cứng đơn giản hóa đi rất nhiều!

Arduino Hardware
Arduino Software

Cấu trúc phần cứng Arduino

Arduino Hardware structure
Arduino Hardware structure

Cấu trúc phần cứng của các mạch Arduino có thể cơ bản chia làm 7 phần chính như sau:

1) Vi điều khiển chính: là trung tâm của mạch Arduino có chức năng lưu trữ và thực thi các lệnh được lập trình, Vi điều khiển hoạt động như một máy tính thu nhỏ với bộ xử lý trung tâm CPU, RAM, ROM, bộ nhớ Flash và các chuẩn giao tiếp tích hợp như UART, I2C,...

2) Khối giao tiếp máy tính: giúp kết nối Vi điều khiển với máy tính để nạp chương trình và truyền dữ liệu lên máy tính qua phần mềm Arduino, khối này còn có tác dụng cấp nguồn 5VDC cho mạch hoạt động qua cổng USB.

3) Khối cấp nguồn ngoài: được sử dụng để cấp nguồn ngoài cho mạch hoạt động khi không cấp nguồn bằng cổng USB, khối này được tích hợp IC chuyển đổi nguồn nên có thể cấp nguồn linh hoạt theo thông số của từng loại mạch Arduino.

4) Các chân tín hiệu nguồn: được sử dụng để cấp nguồn cho các mạch kết nối với Arduino, có các chân tín hiệu nguồn chính: 3.3V - 5V - GND - Vin.

5) Các chân tín hiệu Analog: được sử dụng để giao tiếp với các mạch điện sử dụng tín hiệu Analog với Arduino, các chân Analog còn có thể sử dụng như các chân tín hiệu Digital.

6) Các chân tín hiệu Digital: được sử dụng để giao tiếp với các mạch điện sử dụng tín hiệu Digital với Arduino.

7) Cổng giao tiếp ICSP: được sử dụng để kết nối với các bo mạch Arduino Shield sử dụng chuẩn giao tiếp SPI với Arduino hoặc để nạp Bootloader cho Vi điều khiển chính trên mạch Arduino (một dạng tương tự như Bios trên máy tính để phần mềm Arduino có thể nhận dạng được các mạch Arduino).

Các mạch Arduino Shield

Arduino Shield là các mạch bổ sung chức năng cho Arduino được thiết kế tương thích với chuẩn chân cắm của Arduino để có thể dễ dàng cắm và chạy (Plug and Play) ngay lập tức, có rất nhiều loại Arduino Shield: Arduino Motor Shield để điều khiển động cơ, Arduino Joystick Shield để biến Arduino thành tay cầm điều khiển, Arduino Ethernet Shield để kết nối Internet,...

Các loại Arduino Shield, nguồn: randomnerdtutorials.com
Các loại Arduino Shield, nguồn: randomnerdtutorials.com

Các biến thể phần cứng Arduino (Arduino Compatible Boards)

Vì nền tảng Arduino được phát triển dưới dạng nguồn mở (Open Source) nên ngoài các mạch phần cứng Arduino được chính hãng Arduino.cc sản xuất, cộng đồng sử dụng Arduino còn phát triển thêm nhiều biến thể Arduino như: Lilypad (của Adafruit), RedBoard (SparkFun),...

Sparkfun RedBoard (Arduino Compatible)
Sparkfun RedBoard (Arduino Compatible)

MakerLab.vn cũng phát triển các phiên bản phần cứng tương thích Arduino (Arduino Compatible) với nhiều cải tiến tên gọi Vietduino, tiêu biểu là 2 phiên bản:

1) Vietduino Uno (Arduino Uno Compatible):

Vietduino Uno

2) Vietduino Mega 2560 (Arduino Mega 2560 Compatible):

Vietduino Mega 2560

Mạch Vietduino UnoVietduino Mega 2560 là hai phiên bản phần cứng tương thích Arduino (Arduino Compatible) được nghiên cứu và và sản xuất bởi MakerLab.vn có chức năng, kích thước, hình dạng và cách sử dụng tương đương với Arduino Uno R3 & Arduino Mega 2560 với các ưu điểm vượt trội:

  1. Thiết kế tương thích hoàn toàn về hình dạng, chuẩn chân tín hiệu và cách sử dụng với Arduino Uno R3 & Arduino Mega 2560.
  2. Sử dụng mạch nguồn xung giảm áp với ưu điểm là hiệu suất chuyển đổi cao, toả nhiệt thấp, tiết kiệm năng lượng, dải điện áp đầu vào cấp cho mạch rộng từ 6~24VDC với dòng đầu ra lớn: 5VDC/Max 1500mA, 3.3VDC / Max 700mA.
  3. Bổ sung thêm các chân cấp nguồn POWER+ 5VDC giúp dễ dàng cấp nguồn cho nhiều thiết bị khác nhau.
  4. Sử dụng IC chuyển đổi USB-UART CH340 (Vietduino Uno) và CP2102 (Vietduino Mega 2560) được nhập khẩu chính hãng cho độ ổn định và độ bền cao.
  5. Chức năng cách ly nguồn cổng USB tự động khi cấp nguồn ngoài từ chân Vin hoặc giắc DC giúp bảo vệ cổng USB máy tính của bạn an toàn hơn.

Tham khảo