Networks Business Online Việt Nam & International VH2

Arduino là gì? Lập trình Arduino bằng C/C++ – Hành trang Lập trình blog

Đăng ngày 08 November, 2022 bởi admin
Có thể bạn đã quen lập trình trên PC, với những ngôn từ như C, C + +, C #, Java, Python, Ruby …

Nhưng bạn có biết là phần mềm trên PC chỉ chiếm khoảng 10% sản lượng phần mềm trên thị trường. 90% còn lại là code điều khiển tivi, máy giặt, điều hòa, tủ lạnh… tóm lại là tất cả các thiết bị điện tử xung quanh bạn. Đây cũng là một mảng theo tôi là khá thú vị. Lập trình theo hướng này được gọi là embedded computing, hay physical computing, tức là lập trình để con người tương tác với các thiết bị thực.

Để người phong cách thiết kế hoàn toàn có thể nhanh gọn đưa ra được mẫu bộc lộ ý tưởng sáng tạo của mình, rất cần phải có những platform để thuận tiện prototyping. Và một trong những platform đang được sử dụng rất nhiều trong prototyping là Arduino .

Vậy Arduino là gì và vì sao nó được sử dụng rộng rãi như vậy?

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ơ,… Điểm hấp dẫn ở Arduino với anh em lập trình là ngôn ngữ cực kì dễ học (giống C/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ị. Thêm nữa, 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 nôm na là “library” của các ngôn ngữ lập trình. 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ó thể kể ở đây 1 số ít ứng dụng hay ho của Arduino :

  • Robot: Arduino được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot. Đó là nhờ vào khả năng đọc các thiết bị cảm biến, điều khiển động cơ,… của Arduino.
  • Game tương tác: chúng ta có thể dùng Arduino để tương tác với Joystick, màn hình,… để chơi các trò như Tetrix, phá gach, Mario… Còn nhiều game rất sáng tạo nữa, ví dụ bạn có thể tham khảo ở đây:
    http://wn.com/arduino_game
  • Máy bay không người lái
  • Mô phỏng Ipod 😀
  • và nhiều nhiều ứng dụng khác nữa …

Để lập trình Arduino cần những gì?

Như vậy, bạn đã biết là tuy là một bo mạch nhỏ như thế, Arduino có thể dùng vào rất nhiều ứng dụng thú vị khác nhau. Vậy để phát triển ứng dụng dựa trên Arduino, ta cần những gì?
Rất đơn giản, bạn chỉ cần IDE phát triển (download ở đây), 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 được rồi.

Ngôn ngữ lập trình của Arduino chính là C/C++, nhưng 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. 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 cảnh phần cứng của Arduino

Hình trên là cận cảnh con Arduino Uno. Đối với tất cả chúng ta lập trình cho Arduino thì thứ nhất chăm sóc những thành phần được đánh số ở trên :

  1. Cổng USB (loại B): đây là cổng giao tiếp để ta upload code từ PC lên vi điểu khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điểu khiển với máy tính.
  2. Jack nguồn: để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên, nhưng không phải lúc nào cũng có thể cắm với máy tính được. Lúc đó, ta cần một nguồn 9V đến 12V.
  3. Hàng Header: đánh số từ 0 đến 12 là hàng digital pin, nhận vào hoặc xuất ra các tín hiệu số. Ngoài ra có một pin đất (GND) và pin điện áp tham chiếu (AREF).
  4. Hàng header thứ hai: chủ yếu liên quan đến điện áp đất, nguồn.
  5. Hàng header thứ ba: các chân để nhận vào hoặc xuất ra các tín hiệu analog. Ví dụ như đọc thông tin của các thiết bị cảm biến.
  6. Vi điều khiển AVR: đây là bộ xử lý trung tâm của toàn bo mạch. Với mỗi mẫu Arduino khác nhau thì con chip này khác nhau. Ở con Arduino Uno này thì sử dụng ATMega328.

“Hello World” trên nền Arduino

Với việc học bất kể một ngôn từ nào, thường người ta hay khởi đầu bằng ví dụ “ Hello World ”, tức là bắt máy tính bắn ra màn hình hiển thị dòng chữ “ Hello, World ! ”. Với những bạn có kinh nghiệm tay nghề lập trình, việc này có lẽ rằng quá thuận tiện, chỉ vài dòng code là được, ngôn từ nào cũng vậy ( C, C + +, Java, Python, Ruby … ) .
Nhưng với lập trình trên Arduino thì sao ? Việc bắt cái bo mạch Arduino đưa ra một thông tin báo hiệu nào đó cho ta là nó đang chạy, phải triển khai thế nào ? Nói cách khác, output của Arduino sẽ là như thế nào đây :

  1. Nháy LED
  2. Kết nối với PC qua đường UART, bắn lên dòng chữ Hello World cho ta ngắm.
  3. Kết nối với một cái màn LCD, cũng bắt nó bắn lên Hello World cho ta nhìn.

… vài cách nữa
Trong bài khởi đầu này, tôi chọn cách dễ nhất là Nháy LED. Nháy LED cũng được coi là Hello World của lập trình nhúng, với mỗi con chip mới, điều tiên phong nên làm là nháy LED, để kiểm tra xem mình đã trấn áp được nguồn vào đầu ra cho con chip chưa 🙂
Đầu tiên là đoạn code nháy LED :
{ % codeblock blink_series. c % }

 

 int led;

  
 void setup()
 {
    
   

for

(led = 4; led < 8; led ++) { pinMode(led, OUTPUT); } } void loop() { for(led = 4; led < 8; led++) { digitalWrite(led, HIGH); delay(100); digitalWrite(led, LOW); delay(100); } }

Bạn thấy đó, đoạn code trên rất đơn thuần và mang phong thái giống C / C + +. Một chương trình như trên được gọi là sketch, sẽ được upload lên bo mạch Arduino qua cổng USB .
Phân tích chương trình : có 2 method quan trọng nhất là setup ( ) và loop ( ) .

  • setup() làm nhiệm vụ khởi tạo mode cho các ngoại vi của Arduino. Hàm này sẽ được chạy một lần khi bo mạch Arduino được reset. Ở chương trình này, setup() chỉ làm nhiệm vụ đặt các chân 4,5,6,7 của Arduino sang mode output.
  • loop() là chương trình chính của Arduino. Đoạn code trong loop() sẽ được Arduino chạy vô hạn. Trong chương trình này, có hàm digitalWrite() để đặt các chân (pin) ở mức điện áp cao (HIGH) hay thấp (LOW). Hàm tiếp theo là delay(), nhận đối số là một số nguyên, thẻ hiện số mili giây ta muốn chương trình tạm ngưng.

Đó là tổng thể về phần code chạy, còn nối dây như thế nào ? Dưới đây là sơ đồ nối dây :
Giải thích một chút ít, đoạn code trên sẽ lần lượt xuất điện áp 5V ra những pin 4,5,6,7 rồi tắt. Để kiểm nghiệm, nối LED với một con trở giữa những pin đó với đất, ta sẽ thấy những đèn LED bật tắt uyển chuyển 🙂
Sau đây là video demo 😛

Kết luận

Bài này đã ra mắt những kiến thức và kỹ năng mở màn về Arduino, cách lập trình trên platform này và demo bài “ Hello World ” của Arduino. Với hội đồng san sẻ rất lớn, nhiều ứng dụng, Arduino rất đáng để học, cũng là một cách để bạn tiếp cận thuận tiện hơn với electronics .
Cộng đồng Arduino : http://arduino.vn/
Tham khảo : https://kipalog.com/posts/Co-ban-ve-Arduino

Source: https://vh2.com.vn
Category : Tin Học