Arduino – Nền tảng mới trong việc điều khiển tự động

arduino_pic_Feature_Image

Bạn muốn chế một đồ chơi tự động, bạn hỏi những người học điện tử tự động làm cách nào để làm được, có thể họ sẽ nói với bạn rằng: “Mày phải biết về điện tử, biết thiết kế mạch, biết mua linh kiện, biết hàn,… và hàng trăm thứ khác …PHẢI-BIẾT”. Và bạn bỏ cuộc. Hoặc có thể bạn sẽ quyết tâm phải làm được, nhưng lại không biết bắt đầu từ đâu.

Bạn là sinh viên ngành điện tử, đang đối mặt với đồ án, luận văn, và đang không biết chọn các linh kiện gì để thiết kế mạch (bạn biết, biết mình cần mua linh kiện gì là một chuyện, khi mua là chuyện khác, bạn phải nói đúng tên mà người bán thường gọi), hay bạn không biết chọn gì để điều khiển cái thứ mà ngay cả bạn chưa từng cầm nó trên tay hay tệ hơn, bạn không có khả năng thiết kế mạch.

Bạn muốn thiết kế một chiếc xe như thế này?

Bạn đọc bài viết này chứng tỏ bạn đang quan tâm đến công nghệ, quan tâm đến điều khiển tự động, và mình đã từng tiếp xúc với những người bạn như thế, đam mê công nghệ, nhưng xuất phát điểm không phải là ngành tự động hay gặp khó khăn trong quá trình làm một sản phẩm tự động. Và mình đã giúp các bạn đó tìm ra hướng giải quyết. Hôm nay mình share lại với mong muốn giúp được nhiều bạn hơn. Một việc nữa, nếu bạn cảm thấy những việc mình nói ở trên dễ dàng quá với bạn, thì bạn có thể không cần phải đọc tiếp, tuy nhiên, bạn vẫn có thể theo dõi những bài viết sau ở một mức độ nâng cao hơn. Bài viết này dành cho những bạn yêu thích làm robot nhưng chưa biết gì về điện tử, về điều khiển, cũng như những bạn đã có khái niệm về điện tử rồi nhưng chưa thật sự thuần thục.

Điều khiển thứ gì đó một cách tự động, ngoài việc phải hoàn chỉnh kết cấu “phần cứng”, ta cần phải có mạch điện điều khiển và phải lập trình để mạch điện đó hoạt động theo ý mình. Lập trình thì không khó học, chỉ có giai đoạn thiết kế mạch điều khiển mới nan giải. Tuy nhiên có một thứ làm cho mọi chuyện trở nên rất dễ dàng, có tên gọi là Arduino, một mạch điện có sẵn, có thể làm mọi thứ mà các mạch điện dựa trên PIC/AVR có thể làm được (à, cho những bạn chưa quen với từ PIC hay AVR, nó là con chip nhỏ, đóng vai trò như bộ não của mạch điện, hoặc nếu thấy quá phức tạp, bạn có thể bỏ qua cái mình vừa nói). Bạn chỉ cần biết có tồn tại một loại mạch điện tên là Arduino có sẵn, nhỏ gọn, dễ xài, đa năng. Nó là gì và có thể làm được gì? Tại sao phải sử dụng nó? Nó có gì hay?

Arduino là mạch điện có sẵn, mà cái gì có sẵn cũng không theo ý mình, hạn chế nhiều thứ!!!

Sai, Arduino là mạch điện có sẵn nhưng không hề hạn chế bạn gì cả.

Bạn đang muốn vẽ một bức tranh, bạn sẽ làm gì? Câu trả lời là bạn sẽ đi trồng cây, phải đi khai thác quặng mỏ. Tại sao???? Vì bạn sẽ phải đi chặt cây lấy gỗ để làm giấy, khai thác quặng để lấy than chì làm ruột bút chì. Ngoài ra, bạn còn phải tìm hiểu quy trình làm giấy, làm bút chì… Và sau khi đã có đủ dụng cụ cần thiết rồi, bạn có thể bắt đầu vẽ.

Để thiết kế một mạch điện điều khiển được, bạn không cần phải chế tạo ra chip, chế tạo ra điện trở, nói chung là chế tạo ra các linh kiện điện tử (quá trình trồng cây, khai thác quặng), vì nó có bán sẵn. Với những gì được học trong trường, hay kiến thức về điện tử, việc của bạn là tìm mua những linh kiện đó ráp chúng lại với nhau (quá trình làm giấy, làm bút chì từ gỗ và than chì). Sau đó sử dụng chúng để “vẽ”. Nghe cũng khá mệt mỏi.

Còn đối với Arduino thì sao, bạn không cần phải mua linh kiện, cũng không cần ráp nó lại với nhau, chỉ việc mua về và xài. Arduino là công cụ có sẵn. Bạn đã có sẵn giấy với bút, bạn chỉ cần sáng tạo ra một hình ảnh trong đầu và vẽ thôi.

Chính vì sự tiện lợi như vậy, Arduino đã trở thành một hiện tượng trên toàn thế giới, nếu bạn lên Google và gõ vào Arduino, bạn sẽ thấy hàng ngàn ứng dụng khác nhau từ khắp mọi nơi trên thế giới sử dụng Arduino.

arduino_pic_nano

Arduino có kích thước nhỏ gọn

Nhỏ gọn vậy thì làm được gì?

Để giải thích rõ hơn Arduino có thể làm được gì, mình sẽ chia ra 2 phần để giải thích:

• Dành cho người chưa biết gì về điện tử

Arduino sẽ giúp bạn làm một dãy LED chớp tắt, một chiếc xe tự động tránh vật cản, một cánh tay robot gắp hay bất cứ thứ gì bạn muốn điều khiển một cách tự động.

arduino_pic_tank

 

arduino_pic_tank

 

arduino_pic_tank

Mình nói đây là phần dành cho người chưa biết gì về điện tử nhưng không phải bạn không biết gì cũng làm được. Bạn cũng phải học, nhưng không phải học lý thuyết, học kiểu hàn lâm, bạn chỉ cần học những thứ đơn giản tương tự như gắn cục pin AA vào bóng đèn, đâu là đầu dương, đâu là đầu âm, dòng điện, điện thế là gì?… Những thứ rất cơ bản, nếu bạn đã từng học Vật lý ở trường phổ thông, chắc chắn bạn đã học qua. Còn nếu bạn chưa học phổ thông, cũng không sao. Sẽ rất dễ nếu bạn muốn tìm hiểu. Bạn cũng cần phải biết thêm một xíu về ngôn ngữ lập trình C++, và tất nhiên, cũng sẽ rất đơn giản.

Bạn cần Arduino vì nó sẽ giúp bạn tiết kiệm được thời gian, công sức để học những thứ cần thiết để làm điều bạn muốn. Thay vì phải học 10 thứ, với sự hỗ trợ của Arduino, bạn chỉ cần học 5-6. Bạn có thể tiếp tục theo dõi những bài viết sau của mình, mình sẽ hướng dẫn chi tiết nhất có thể để bạn có thể hiểu và làm theo.

• Dành cho các bạn đã biết cơ bản về điện tử

Nói thẳng ra, Arduino cũng sử dụng chip AVR của Atmel làm nền tảng, cho nên bạn yên tâm, cái gì PIC/AVR làm được thì Arduino làm được.

Dưới đây là thông số của một Arduino thông dụng:

arduino_pic_tank

Arduino không phải là cái gì cao siêu hết, chỉ là PIC/AVR với những thứ mà bạn sẽ cần đến như mạch giao tiếp (USB sang UART (TTL)), mạch nguồn, có sẵn các chân vào/ra để giao tiếp với cảm biến và các thiết bị ngoại vi.

Nếu bạn muốn điều khiển động cơ, sẽ có các mạch công suất tương thích hoàn toàn với Arduino. Nếu bạn muốn điều khiển qua mạng Internet, cũng có một mạch Ethernet/Wifi tương thích hoàn toàn với Arduino. Và còn rất nhiều thứ khác nữa. Mấy cái mạch gắn thêm mình đang nói đến các extension shield (mạch mở rộng). Các shield này giúp tăng tính linh hoạt của Arduino.

Các shield sẽ chồng lên Arduino sẽ trông như thế này:

arduino_pic_shield

Một số shield thông dụng:

arduino_pic_arduino_shield

Arduino rất đơn giản, dễ sử dụng, dễ code (ngôn ngữ tương tự như C++). Một trong những cái hay nhất của Arduino là nó hỗ trợ rất nhiều thư viện, rất tiện lợi.

Bạn muốn điều khiển động cơ servo, rất đơn giản, cắm 3 dây của servo vào 3 lỗ trên Arduino, mở chương trình lên, open thư viện có sẵn, sửa lại theo ý mình là xong. Với Arduino, các bạn có thể điều khiển được tốc độ và góc quay của động cơ servo, mình nhắc lại một lần nữa, điều khiển được tốc độ của động cơ servo, không phải tháo ra gỡ bỏ potentiometer hay hack gì bên trong đâu, nếu bạn biết mình đang nói điều gì.

Bạn muốn điều khiển động cơ bước, nối dây vào, open thư viện, sửa dòng code như sau để điều khiển động cơ bước: Stepper1.step(100, FORWARD, DOUBLE), trong đó 100 là số bước bạn muốn, FORWARD là hướng quay, DOUBLE là quay full step. Hãy nghĩ đến việc bạn điều khiển động cơ bước trong MPLAB sẽ thế nào.

Arduino cũng có rất nhiều kích thước khác nhau, phù hợp cho nhiều mục đích sử dụng. Thông dụng nhất hiện nay là Arduino Uno.

arduino_pic_arduino_family

Mạch tự làm và Arduino

arduino_pic_arduino_trend

Nhìn vào biểu đồ trên, ta có thể thấy sức ảnh hưởng của Arduino tăng dần theo thời gian. Sparkfun (một nhà bán lẻ linh kiện điện tử online nổi tiếng) đã nói rằng Microchip (công ty sản xuất PIC) muốn gặp họ để bàn về kế hoạch sản xuất ra một thứ tương tự Arduino dựa trên nền tảng PIC. Microchip dường như đã cảm nhận được thị phần của nó ngày một giảm do một thứ gọi là Arduino (vì Arduino sử dụng AVR). Mình nói vậy để các bạn thấy được sự lan tỏa của Arduino rộng lớn như thế nào.

Một lần nữa, mình muốn nhấn mạnh Arduino không phải chip, mà là một mạch điện có sẵn chip và nhiều thành phần cần thiết khác. Cho nên sẽ khá khập khiển nếu so sánh Arduino với PIC/AVR. Tuy nhiên, ta có thể so sánh Arduino với mạch tự làm sử dụng PIC/AVR.

• Mạch tự làm dựa trên PIC/AVR

Nếu bạn muốn tự thiết kế từ A-Z một mạch điện, cũng như hiểu rõ về nguyên lý cũng như những thứ bên trong một mạch điện, bạn có thể bắt tay vào vẽ mạch nguyên lý, mạch layout, tự hàn mạch hoặc đặt mạch bên ngoài để có được một cái mạch theo như bạn đã thiết kế.

arduino_pic_microcontroller

Tuy nhiên, điều này khá khó khăn, đòi hỏi những kỹ năng nhất định: vẽ mạch, ủi mạch, rửa mạch, hàn mạch và có lúc mạch không hoạt động theo ý mình, bạn phải quay lại xem thiết kế mạch của mình đã đúng chưa. Đó là chưa nói đến quá trình chọn lựa linh kiện phù hợp, tại sao chọn PIC này, tại sao sử dụng tụ điện này, tại sao phải có điện trở ở đây…

Đối với những bạn mới, bạn sẽ phải quyết định đi với chip nào, PIC hay AVR, sau đó chọn một ngôn ngữ lập trình để học (Basic, Pascal, C/C++). Sau đó chọn chương trình để lập trình chip, và trong quá trình đó, bạn phải đọc được datasheet của từng linh kiện để sử dụng cho đúng. Những điều này thật không dễ dàng chút nào đối với những người mới, và đó có thể là một trong những nguyên nhân cản trở khả năng của bạn. Mất quá nhiều thời gian cho những thứ không đáng đối với một người mới.

Tuy nhiên, nếu bạn đã là một người đã thuần thục với việc tự thiết kế mạch và sử dụng nó, bạn cứ tiếp tục. Điều này tốt, chứng tỏ bạn rất rành về điện tử và đã kiên nhẫn đọc đến đây.

•  Arduino

Arduino được thiết kế chuyên biệt dành cho những người không chuyên về điện tử vẫn có thể làm được. Bạn không phải mất thời gian ở giai đoạn “làm mạch”, mọi thứ đã có sẵn và bạn chỉ cần tập trung cho phần điều khiển mà thôi. Nếu có gì đó không ổn xảy ra, bạn cũng sẽ đỡ mất thời gian hơn cho việc rà soát lỗi ở phần mạch, mọi lỗi sẽ nằm ở code của bạn.

Arduino rất dễ sử dụng, trực quan, trên mạch có ký hiệu rất rõ ràng,đầy đủ các chân, cực kỳ thuận tiện trong quá trình sử dụng.

arduino_pic_uno

Arduino Uno đang được sử dụng rất rộng rãi trong nhiều ứng dụng khác nhau

Nếu một ai đó gặp mình hỏi làm cách nào để điều khiển một cái gì đó, mình sẽ chỉ ngay đến Arduino, vì những lý do như “cho tiện, cho nhanh, cho dễ”. Tất nhiên, bạn phải mất nhiều tiền hơn cho một cái Arduino (khoảng 300-800 nghìn đồng) so với tự làm một mạch (trung bình khoảng 50 – 200 nghìn đồng, chủ yếu là tiền mua linh kiện).

Tuy nhiên, với một người không nấu ăn giỏi, cũng không thích thú gì việc nấu ăn, thì việc bỏ tiền đi ăn ở những nơi thoải mái, ăn những món ngon sẽ là lựa chọn tốt dành cho bạn.

Đây là bài viết đầu tiên trong loạt bài viết về Arduino, bài viết này nhằm giới thiệu cho bạn biết có một thứ sẽ giúp được bạn nếu bạn đang gặp khó khăn với các mạch điện. Nếu bạn có hứng thú với Arduino mình vừa đề cập, hãy chờ theo dõi những bài viết sau của mình.

SSS Full-stack Engineer

Love Silicon Straits and want to know more about our company culture, working environment or job vacancies?
Find out more at careers.siliconstraits.vn.

Silicon Straits
Be Challenged. Be Inspired. Be Different.




  • Lê Phú Khánh Huy

    Quá dễ hiểu, mình đã có cái nhìn khác về điện tử sau khi đọc bài này. Thank bạn nhiều!!

  • steve

    mau cái này ở đâu vậy anh

  • Shawn Le

    chào bạn! mình cũng rất có hứng thú với sử dụng arduino và các dòng shield của nó. Bạn đã có thử thiết kế lại các bản shield của arduino chưa? có gặp khó khăn gì khi mua linh kiện không? mình thấy các bản shield đều có dùng loại chân cắm chồng (các bo) lên nhau. Loại chân thé này không biết mua ở đâu

    • Guest

      Về linh kiện thì tùy thuộc vào chức năng shield bạn đang muốn làm nữa, có cái dễ tìm, có cái khó, những shield chuyên dụng quá thì khó tìm linh kiện ở VN.

      Còn về chân cắm, bạn thử ra Nhật Tảo tìm hàng rào cái loại chân cắm dài thử xem: bit.ly/IH9hZC

      • Shawn Le

        uh.. đúng cái này. mình có thể đặt hàng được không?

    • Pham Ba Tho

      Về linh kiện thì tùy thuộc vào chức năng shield bạn đang muốn làm nữa, có cái dễ tìm, có cái khó, những shield chuyên dụng quá thì khó tìm linh kiện ở VN.

      Còn về chân cắm, bạn thử ra Nhật Tảo tìm hàng rào cái loại chân cắm dài thử xem:bit.ly/IH9hZC

      • Shawn Le

        ah… vì mình muốn hỏi cụ thể kinh nghiệm của bạn. Bạn đã thử làm qua arduino shield chưa? một số cái thông dụng như LCD, motor driver, RS232… nếu đã làm qua mong bạn chia sẽ một ít cảm nghĩ về trở ngại có thể có (linh kiện…). Mình thì không ở tp hcm nên việc đi rảo tìm linh kiện tương đối rắc rối, lên mạng thì nhiều trang bán hàng vẫn không thấy linh kiện mình cần (chân cắm chồng…).

        Nếu bạn có hứng thú hy vọng sẽ được thảo luận thêm

        • Pham Ba Tho

          Mình chưa làm mấy shield thông dụng như bạn đề cập, mình nghĩ có 1 khó khăn khi làm shiel là bạn phải làm sao cho vừa kích thước để cắm vào Arduino, cái này thì mình sử dụng phần mềm Eagle, đã có sẵn thư viện của Adafruit hay Sparkfun có hình dạng và các pin phù hợp với Arduino rồi.

          Về chân cắm thì đúng như bạn nói, mấy trang bán hàng online mình không thấy có bán, nếu bạn cần nhiều và xa TP.HCM thì bạn có thể order online trên các trang web nước ngoài, bạn có thể tham khảo ở đây nha:bit.ly/IIXtpz. SSS không có bán linh kiện điện tử.

          Cảm ơn bạn.

  • Pingback: Airlight - Dùng smartphone điều khiển đèn()

  • Nam Lê

    Bài viết rất hay và bổ ích ^^.Hi em muốn tự đi mua linh kiện để ráp 1 bo mạch azduno , anh có tài liệu nào nói về mạch nguyên lí của board azduno uno không ạ ?

  • Pingback: Maker Việt Nam | Giới thiệu Arduino()

  • Hung Laodaj

    cho e hỏi muốn làm xe chạy tự động tránh vật cản thì nên dùng loại arduino nào vậy a

    • Pham Ba Tho

      Nếu bạn mới bắt đầu làm quen với Arduino thì bạn sử dụng Arduino Uno R3 cho dễ. Xe chạy tránh vật cản sử dụng Arduino có rất nhiều người đã làm, bạn có thể search keyword “arduino obstacle avoiding” để tìm hiểu và phát triển. Đây là 1 ví dụ có cả code: http://letsmakerobots.com/node/40502

  • Lương Công Minh

    Trước mình mua bên này, thấy giá tốt hơn và có hỗ trợ nhiệt tình hơn những chỗ khác. http://thegioirobot.vn/san-pham/category/view/44.html

  • Hoan kaka

    từ trước tới nay mình chỉ làm mach trên pic thôi chưa làm arduino bao giờ. nên cho mình hỏi giữa một mạch điện tử dùng pic với một mạch dung ardunio thì cái nào mạnh hơn vậy về tốc độ xử lý, tín hiệu ra, độ ổn định, chức năng ứng dụng. thank !!

    • Pham Ba Tho

      Arduino thật ra là development board xài AVR thôi bạn. Nên nó cũng ko khác so với PIC nhiều đâu. PIC và AVR cũng ngang ngửa nhau nên nếu bạn quen với PIC thì cứ tiếp tục sử dụng PIC thôi. Còn nếu muốn làm nhanh để coi kết quả thì nên xài Arduino, vì nó có nhiều thư viên (code) hỗ trợ hơn

  • Tran Hop

    Arduno thật là tuyệt. Nhưng đồ án mình bắt làm bằng tay . Bạn nào biết cách tự làm 1 arduno không , hướng dẫn minh mơi , minh xin cảm ơn và hậu tạ

    • Pham Ba Tho

      Arduino là open souce nên schematic và lên layout đã có sẵn trên mạng rất rất nhiều. Bạn có thể search “diy arduino pcb” hoặc “arduino schematic” sẽ có rất nhiều. Đây là 1 ví dụ: arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

      • Tran Hop

        Đẫ có ai có sơ đồ nguyên lý , hay sơ đô mach in arduno chưa ak ?Hoặc các tài liệ liên qua ak . Xin cảm ơn

  • huy ngo

    bô thư viện của arduino rất hùng mạnh nhưng tôi không cái cách làm lười đó là cái gì cũng mua. Chỉ là 1 con atmega328 và 1 vài con trở tụ và thạch anh là bạn đã có 1 kít tự chế có thể làm rất nhiều thiết bị trong nhà.

  • Trung Hoàng

    vậy mình dùng con 8051 với arduino uno r3 thì cái nào chạy ổn định cho con robot dò line vậy a

Posted by

on October 7, 2013

in , ,

Comments

Follow us for more later

or subscribe with