Trang chủ —› Tin tức —› Công nghệ —› Arduino-Nền tảng cho lập trình điều khiển

Arduino-Nền tảng cho lập trình điều khiển

5 Tháng Hai,2018 Đăng bởi: admin

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.
Học lập trình ở đâ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.

Nguồn: linhkienrobotics.com


Notice: WP_Query được gọi với một tham số đã bị loại bỏ kể từ phiên bản 3.1.0! Hãy sử dụng ignore_sticky_posts thay cho caller_get_posts (sẽ sớm bị loại bỏ) in /home/lapt0260/public_html/wp-includes/functions.php on line 4045

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *