Arduino là gì? Tìm hiểu ứng dụng Học lập trình Arduino

Bạn chắc hẳn đã từng bị thu hút bởi các biển quảng cáo có chữ chạy nhấp nháy liên tục khi đi trên đường. Vậy bạn có băn khoăn tại sao những biển quảng cáo đó có thể chạy được như vậy, tất cả là do sự điều khiển của một thiết bị vi mạch đó là Arduino. Arduino là cụm từ phổ biến trong lĩnh vực nghiên cứu linh kiện điện tử, tuy nhiên với những người không phải trong nghề, có lẽ không phải ai cũng hiểu được lập trình arhuino là gì và ứng dụng của nó trong đời sống ra sao? 

Arduino là gì

Chúng ta hãy cùng tìm hiểu Arduino là gì? Tìm hiểu chi tiết về lập trình arduino qua bài viết sau đây nhé.

Arduino là gì?

Arduino là một bo mạch 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ơ,…  các ngoại vi trên bo mạch đều đã được chuẩn hóa, nên không cần biết nhiều về điện tử, chúng ta cũng có thể lập trình được những ứng dụng thú vị.

Arduino là một platform đã được chuẩn hóa, nên đã có rất nhiều các bo mạch mở rộng (gọi là shield) để cắm chồng lên bo mạch Arduino, có thể hình dung là “library” của các ngôn ngữ lập trình.

Arduino là gì?

Lịch sử ra đời của Arduino

Arduino ra đời tại thị trấn Ivrea, 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. Nó như là một công cụ cho sinh viên học tập của giáo sư Massimo Banzi, 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ó một sự tiếp thị hay quảng cáo nào nhưng tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ vô vàn lời truyền miệng tốt đẹp của những người dùng đầu tiên.

Arduino hiện nay nổi tiếng trên toàn thế giới đến nỗi có người đã tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra nền tảng thú vị này. Bạn cũng nên tới đây một lần trong đời. Bật mí nhé, ở đây có lễ hội ném cam với tên gọi “Trận chiến với những trái cam” (Battle of the Oranges) vào tháng 2 hàng năm.

Ví dụ:  Muốn kết nối Internet thì có Ethernet shield, muốn điều khiển động cơ thì có Motor shield, muốn kết nối nhận tin nhắn thì có GSM shield,… Rất đơn giản, và ta chỉ phải tập trung vào việc “lắp ghép” các thành phần này và sáng tạo ra các ứng dụng cần thiết .

Cấu tạo của Arduino gồm những gì?

  • Phần cứng gồm một board mạch mã nguồn mở (thường gọi là vi điều khiển): có thể lập trình được.

  • Các phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development Environment) dùng để soạn thảo, biên dịch code và nạp chương cho board.

Trên bo mạch cơ bản, bạn có thể thấy các mẩu sau đây:

  • Một vài chân cắm được sử dụng để kết nối với các thành phần khác nhau bạn có thể muốn sử dụng với Arduino. Các chân cắm có 2 dạng khác nhau:

    • Các chân cắm số (Digital), chúng có thể đọc và ghi tình trạng duy nhất, bật hoặc tắt. Hầu hết các Arduino có 14 chân cắm số I/O.

    • Các chân cắm tương tự (Analog), chúng có thể đọc một dải các giá trị, và là hữu dụng để kiểm soát tinh tế hơn. Hầu hết các Arduino có 6 chân cắm tương tự đó.

  • Kết nối điện, nó cung cấp điện cho cả bản thân thiết bị, và cung cấp điện thế thấp có thể cấp điện cho các thành phần kết nối như các đèn LED và các cảm biến khác. Kết nối điện có thể nối tới đầu adapter AC hoặc bộ pin nhỏ.

  • Một bộ điều khiển nhỏ, con chip đầu tiên, nó cho phép bạn lập trình cho Arduino để nó có khả năng thực thi các lệnh và ra các quyết định dựa vào đầu vào khác nhau. Chíp chính xác biến động dựa vào dạng Arduion nào bạn mua, nhưng chúng thường là các điều khiển Atmel, thường là con ATmega8, ATmega168, ATmega328, ATmega1280, hoặc ATmega2560.

  • Kết nối tuần tự, trên hầu hết các bo mạch mới hơn được triển khai thông qua cổng tiêu chuẩn USB. Kết nối này cho phép bạn giao tiếp với bo mạch từ máy tính của bạn, cũng như tải các chương trình mới lên thiết bị.

  • Đa dạng về các thành phần nhỏ khác, như bộ dao động hoặc bộ điều chỉnh điện thế, chúng cung cấp các năng lực quan trọng cho bo mạch, dù bạn thường không trực tiếp tương tác với chúng.

Cấu thành Arduino gồm những gì?

Ứng dụng của Arduino trong đời sống

Trong đời sống Arduino được sử dụng nhiều và khá quan trọng trong  việc chế tạo ra các thiết bị điện tử chất lượng cao. Một số ứng dụng của Arduino là:

+ Lập trình cho robot:

Là bộ phần quan trọng nằm tài trung tâm xử lý, điều khiển được hoạt động của con robot. Có khả năng thực hiện đọc cảm biến, dùng trong điều khiển động cơ của sản phẩm.

Ứng dụng của Arduino trong đời sống

+ Lập trình các loại game tương tác:

Arduino tương tác với các trò chơi các loại trò chơi Tetrix, Marico và nhiều những game khác.

+ Lập trình máy bay không người lái.

+ Là một trong những bộ phần quan trọng trong cây đèn giao thông, các hiệu ứng đèn nháy được cài đặt làm nổi bật các biển quảng cáo.

+ Điều khiển thiết bị ánh sáng cảm biến tốt.

+ Ứng dụng trong máy in màu 3D, điều khiển cảm biến báo hiệu khi bánh chín.

Cần những gì để học lập trình Arduino?

Để phát triển ứng dụng dựa trên Arduino, ta cần những gì?

Rất đơn giản thôi, bạn chỉ cần IDE phát triển, một dây kết nối USB loại A-B, và một bo mạch Arduino là bạn có thể bắt đầu.

Ngôn ngữ lập trình của Arduino chính là C/C++ tuy nhiên so với lập trình lập trình trực tiếp với vi điều khiển, lập trình với Arduino đơn giản hơn nhiều vì bạn chỉ phải giao tiếp với phần cứng thông qua các thư viện, có thể xem như các lớp C++ wrapper lên các giao tiếp với phần cứng.

Xem thêm: ASP.NET Core là gì ?

Trên website, có khá nhiều các library viết sẵn để điều khiển ngoại vi: LCD, sensor, motor… nên việc bạn cần làm chỉ là kết hợp chúng với nhau để tạo ứng dụng cho riêng bạn.

Cần những gì để lập trình Arduino?

Bo mạch Arduino có khả năng gì?

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).

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)

Đọ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. 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… nhờ tính năng đọc analog.

Xuất tín hiệu điều khiển ngõ ra:

  • Digital output:

  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.  

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.

  • 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…