1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế và thi công mô hình xe có cánh tay gắp

93 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế phần cứng và lập trình Arduino cho cuộc thi Robotics 2023
Tác giả Trần Nhật Tâm
Người hướng dẫn Th.S Lê Thành Tới
Trường học Trường Đại học Công nghiệp Thực phẩm TP.HCM
Chuyên ngành Công nghệ Điện - Điện tử
Thể loại Đồ án học phần 2
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 93
Dung lượng 2,21 MB

Cấu trúc

  • 1.1. Lýdochọnđềtài (15)
  • 1.2. Mụct i ê u (17)
  • 1.3. Phạmviđềtài (17)
  • 1.4. Phươngphápn g h i ê n c ứ u (19)
  • 2.1. AdruinoUno R3 (24)
  • 2.2. Độngcơg i ả m tốc (29)
  • 2.3. ModuleHạÁpBu ck DC- DC L M 2 5 9 6 3A (29)
  • 2.4. Modulecảm biếndòli n eTCRT5 0 0 0 (32)
  • 2.5. CảmbiếnvậtcảnhồngngoạiOMDHONE1 8 – D 8 0 N K (34)
  • 2.6. ĐộngcơservoS G9 0 (37)
  • 2.7. ĐộngcơR C S e r v o M G9 9 6 R (41)
  • 2.8. Moduleđ i ề u k h i ể n đ ộ n g cơL298N (43)
    • 2.8.1. Nguyênlí hoạtđộngcủamo du l eđ i ều khiển đ ộn g cơL298N (46)
    • 2.8.2. MôhìnhmạchcầuH (46)
  • 3.1. GiớithiệuphầnmềmlậptrìnhAdrunioIDE (49)
    • 3.1.1. CácbướctạomộtProject (51)
  • 3.2. Phầnm ề m vẽ3 D S o l i d W o r k s (53)
    • 3.2.1. Giớithiệup h ần mềm vẽ3 D S o l i d W o r k s (53)
    • 3.2.2. ThiếtkếcánhtayRobot3bậctrênphầnmềm SolidWorks (55)
  • 4.1. Sơđồkhối (62)
  • 4.2. Sơđồnốidây (0)
  • 4.3. Lưuđồthuật toán (65)
    • 4.3.1. Lưuđồthuậttoántổngquát (65)
    • 4.3.2. Lưuđồthuậttoánchitiết (66)
  • 4.4. Thicônglắpráp (70)
  • 4.5. Vậnhành (72)
  • 5.1. Kếtquảđạtđược (72)
  • 5.2. Mặthạnchế (73)
  • 5.3. Hướngpháttriểnđềtài (73)

Nội dung

robot này được dành gaiir nhì trong cuộc thi nghiên cứu Thiết kế phần cứng và lập trình Adrunio cho cuộc thi Robotics 2023.xe này dò line kèm cả cánh tay robot gắp vật di chuyển theo địa hình được ứng dụng trong cuộc thi robotics

Lýdochọnđềtài

1 Sựp h ổ biếncủaArduino:Arduinolàm ộ t nềntảngpháttriểnphầncứng vàlậptrình mãn g u ồ n m ở r ấ t p h ổ b i ế n t r o n g c ộ n g đ ồ n g đ i ệ n t ử v à r o b o t i c s A r d u i n o c u n g c ấ p mộtgiaodiện dễsử dụng vàm ộ t l o ạ t c á c t í n h n ă n g m ạ n h m ẽ c h o v i ệ c t h i ế t k ế v à lập trình robot Bằng cách chọn đề tài này, tôi có cơ hội nghiên cứuv à á p d ụ n g c á c kỹthuậttiêntiếncủaArduinovàoviệcxâydựngrobot chocuộcthiRobotics2023.

2 Độ phức tạp và thách thức: Cuộc thi Robotics 2023 sẽ đòi hỏi những giải pháp sángtạo và hiệu quả để xây dựng robot hoàn thành các nhiệm vụ cụ thể Thiết kếphầncứngvà lập trình Arduino cóthể cung cấp chot ô i m ộ t n ề n t ả n g m ạ n h m ẽ đ ể đ ố i phó vớicác yêu cầu phức tạpv à t h á c h t h ứ c t r o n g c u ộ c t h i T ô i c ó t h ể n g h i ê n c ứ u vàphát triểncác mô-đunphần cứngt ù y c h ỉ n h , l ậ p t r ì n h c á c t h u ậ t t o á n t h ô n g m i n h và tương tác với các cảmbiến vàđộng cơđ ể đ ạ t đ ư ợ c h i ệ u s u ấ t t ố t n h ấ t c h o r o b o t củamình.

3 Khả năng mở rộng và linh hoạt: Arduino cung cấp một hệ sinh thái phong phú vớihàng trăm các module, cảm biến và động cơ khác nhau có thể kết nối và mở rộngchứcnăng củarobot Điềun à y c h o p h é p t ù y c h ỉ n h v à t ố i ư u h ó a r o b o t c ủ a m ì n h cho các yêu cầu cụ thể của cuộc thi Bằng cách lựa chọn đề tài này, tôi sẽ có cơ hộikhám phá và áp dụng một loạt các phần cứng và phần

3 mềm khác nhau trên nền tảngAr duino,t ừđónân gcaokh ảnăngli nhhoạtv àđadạn gcủaro bot.

4 Học hỏi và phát triển cá nhân:

Nghiên cứu và áp dụng

Arduin o trong thiết kế phầncứ ng và lập trình robot là một cơ hội để mở rộng kiến thức và kỹ năng cá nhân củatôi Tôi sẽ có cơ hội học hỏi về các nguyên lý cơ bản của điện tử, lập trình và robothọc và cũng có thể nâng cao khả năng tưduy sáng tạo,x ử l ý v ấ n đ ề v à t e a m w o r k quaquátrìnhxâydựngvàtốiưuhóarobotchocu ộcthi.

5 Tiếp cận thị trường và cơ hội nghề nghiệp: Robotics là một lĩnh vực đang phát triểnnhanh chóng vàcótiềm năng lớn trong tươnglai Bằngcách tham giacuộc thiRobotics 2023 vàl à m v i ệ c v ớ i A r d u i n o , t ô i c ó t h ể x â y d ự n g m ộ t d a n h m ụ c d ự á n ấntượngvàtạođượcsự c h ú ýtừcộngđồngRoboticsvà các nhàtuyểndụng.Điều này cóthể mở ranhiều cơ hộinghề nghiệpt r o n g l ĩ n h v ự c R o b o t i c s v à c ô n g n g h ệ liênquan.

Tóm lại, chọn đề tài "Thiết kế phần cứng và lập trình Arduino cho cuộc thi Robotics2023" mang lại nhiều lợi ích như sự phổ biến của Arduino, khả năng mở rộng và linh hoạt,tính ứng dụng và tiềm năng, cũng như cơ hội học hỏi, phát triển nghề nghiệp và đóng gópcho cộng đồng Đây làmột đề tài thú vị và cót i ề m n ă n g g i ú p t ô i t r ở t h à n h m ộ t n g ư ờ i chuyêngiatronglĩnhvựcRobotics.

Mụct i ê u

Mục tiêu của đề tài "Thiết kế phần cứng và lập trình Arduino cho cuộc thi Robotics2023"cóthểbaogồmnhữngđiểmsau:

1 Xâyd ựn g mộtrobotđápứngyêucầucủacuộcthi:Mộttrongnhữngmụctiêuchính là thiết kế và xây dựng một robot có khả năng hoàn thành các nhiệm vụ cụ thể trongcuộc thi Robotics 2023 Điều này đòi hỏi nghiên cứu và áp dụng Arduino để pháttriểnphần cứngvàlập trình robotvớitính năng,hiệu suấtvàđộtin cậycao.

2 Tối ưu hóa hiệu suất và linh hoạt của robot: Một mục tiêu quan trọng khác là tối ưuhóa hiệu suất của robot trong cácn h i ệ m v ụ c u ộ c t h i B ằ n g c á c h s ử d ụ n g A r d u i n o , tôi có thể tùy chỉnh và tối ưu hóa các chức năng, cảm biến và động cơ để đạt đượchiệu suất tốt nhất cho robot Đồngt h ờ i , v i ệ c á p d ụ n g A r d u i n o c ũ n g m a n g l ạ i t í n h linhhoạtvàkhảnăngmởrộng đểthayđổivàcảitiếnrobotkhicầnthiết.

3 Pháttriển kỹ năng lập trình và thiết kếphần cứng:M ộ t m ụ c t i ê u q u a n t r ọ n g k h á c của đề tài này là phát triển kỹ năng cá nhân trong lĩnh vực lập trình và thiết kế phầncứng.B ằ n g c á c h n g h i ê n c ứ u v à á p d ụ n g A r d u i n o , t ô i c ó c ơ h ộ i n â n g c a o h i ể u b i ế t về ngônn g ữ l ậ p t r ì n h , c á c t h u ậ t t o á n đ i ề u k h i ể n v à c á c n g u y ê n l ý t h i ế t k ế p h ầ n cứng.Điều này sẽ giúpt ô i t r ở t h à n h m ộ t c h u y ê n g i a t r o n g l ĩ n h v ự c R o b o t i c s v à cungcấpnềntảngchosựpháttriểnnghềnghiệptrongtươnglai.

Phạmviđềtài

Phạm vi của đề tài "Thiết kế phần cứng và lập trình Arduino cho cuộc thiRobotics2023"baogồm:

1 Thiết kế phần cứng: Đề tài tập trung vào việc thiết kế các phần cứng cần thiết chorobot tham giac u ộ c t h i R o b o t i c s 2 0 2 3 P h ạ m v i n à y c ó t h ể b a o g ồ m v i ệ c c h ọ n l ự a vàt í c h hợpc á c cảmb i ế n , độngcơ,v i mạchv à l i n h kiệnk h á c vàorobot.T ô i c ầ n nghiên cứu và áp dụng các nguyên lý thiết kế phần cứng, đảm bảo tính ổn định, tincậyvàhiệusuấtcủarobot.

A r d u i n o đ ể đ i ề u k h i ể n v à điều chỉnh robot Phạm vi này bao gồm việc nắm vững ngôn ngữ lập trình Arduino,tạo ra các chương trình và thuật toán phù hợp để điều khiển các phần cứng và thựchiện các nhiệm vụ trong cuộc thi Tôi cóthể sử dụng các thư viện và công cụh ỗ t r ợ đểtốiưuhóa quátrìnhlậptrìnhvàđạtđượchiệu suấttốtnhất.

3 Tốiư u h ó a h i ệ u s u ấ t v à t í n h l i n h h o ạ t : Đ ề t à i c ũ n g c ó t h ể t ậ p t r u n g v à o v i ệ c t ố i ư u hóa hiệu suất và tính linh hoạt của robot Bằng cách sử dụng Arduino, tôi có thể tùychỉnh và điều chỉnh các thông số, cấu hình và chức năng của robot để đạt được hiệusuất tốt nhất trong các nhiệm vụ cuộc thi Tôi cũng có thể xem xét việc thay đổi vànâng cấp phần cứng hoặc cải tiến phần mềmđ ể đ á p ứ n g c á c y ê u c ầ u v à t h a y đ ổ i trongquátrìnhcuộcthi.

4 Thử nghiệm và đánh giá: Phạm vi cũng bao gồm việc thử nghiệm và đánh giá robotsauk h i hoànthành.Tôicần tiếnh àn h cácb ài thửnghiệmđ ể k i ể m trahiệus u ấ t , độtin cậy và khả năng hoàn thành nhiệm vụ của robot Đồngt h ờ i , t ô i c ũ n g c ầ n đ á n h giák ế t quảvàsosánhvớicáctiêuchuẩn vàyêucầucủacuộcthiRobotics2023

Phươngphápn g h i ê n c ứ u

Phương pháp nghiên cứu trong đề tài "Thiết kế phần cứng và lập trình Arduino chocuộcthiRobotics2023"cóthểbaogồmc á c bướcvàp h ư ơ n g phápsau:

Robotics 2023, hiểu rõ các yêu cầu, nhiệm vụ và tiêu chuẩn của cuộc thi Điều nàygiúp xác định mục tiêu và phạm vi của đề tài, cũng như tạo cơ sở để đánh giá hiệusuấtvàthànhcôngcủarobotsaunày.

2 Tìm hiểu về Arduino và công nghệ liên quan: Tiếp theo cần tìm hiểu về Arduino vàcác công nghệ liên quan như lập trình, điện tử,cảmb i ế n v à đ ộ n g c ơ N ắ m v ữ n g kiến thức cơ bản về Arduino và khả năng ứng dụng của nó trong việc điều khiển vàlậptrìnhrobot.

3 Thiết kế phần cứng: Cần thiết kế phần cứng của robot dựa trên yêu cầu và mục tiêucủa cuộc thi Sửdụng kiến thứcv ề t h i ế t k ế p h ầ n c ứ n g v à s ử d ụ n g A r d u i n o , t ô i c ó thểchọn lựav à tích hợpc á c cảmb i ế n , độngcơvàlinh k i ệ n kh ác vàorobot Đồ ng thời, cần xem xét các yếu tốnhư kích thước, trọng lượng,t i ê u t h ụ n ă n g l ư ợ n g v à khảnăngtươngtácđểđápứngcácyêucầucủacuộcthi.

4 Lập trình Arduino: Sau khi hoàn thiện thiết kế phần cứng, cần lập trình Arduino đểđiều khiển và điều chỉnh robot Ápd ụ n g k i ế n t h ứ c v ề n g ô n n g ữ l ậ p t r ì n h A r d u i n o , tôi có thểviết chươngtrình và thuật toánđể thựchiện cácnhiệm vục ụ t h ể t r o n g cuộcthi.Đồngthời , cầnki ểm travàđiều chỉnhchươngtrình đểđạtđượch i ệ u suấtvàtínhlinhhoạtcao.

5 Thửn g h i ệ m v à đ á n h g i á : T i ế p t h e o , c ầ n t h ự c h i ệ n c á c t h ử n g h i ệ m đ ể k i ể m t r a v à đánh giáh i ệ u s u ấ t c ủ a r o b o t Đ i ề u n à y b a o g ồ m v i ệ c t h ử n g h i ệ m r o b o t t r o n g c á c tình huống vàmôi trườngtươngtự như cuộct h i , k i ể m t r a t í n h ổ n đ ị n h , đ ộ c h í n h xácvàkhảnănghoànthànhnhiệmvụ.

 Nềns â n t h i đ ấ u màuđ e n , line d ẫ n đườngv à l i n e biênm à u t r ắ n g , độr ộ n g đư ờngline40mm.

 Robot hai đội phải đặt tại vạch xuất phát của mỗi đội trướckhi trận đấuđ ư ợ c b ắ t đầu.

60x300mm Trong mỗi khu vực này đặt bốn khối lập phương màu trắng kích thước57x57x57mm Mặt trên mỗi khối lập phương đánh số “1” hoặc “2” theo vị trí khuvực.

 Ở giữa sân thi đấu có một ống trụ∅110mm, màu đen có hai sọc trắng, cao120mm,tượngtrưngchođỉnhnúi.

Hình1 –Hìnhảnhs ân thiđấu 1.5.2 Quyđ ị n h v ề thiếtkếrobot

- Kícht h ư ớ c p h ủ b ì : ≤3 0 0 x 3 0 0 m m , chiềucaotựd o Sauk h i khởiđộng,r o b o t đượ cphépthayđổikíchthước.

- Robotchỉđượ c t i ế p xúcsànthiđấuthôngquabánhxe(cácbộphậnkhácc ủ a robotphảicá chmặts à n thiđấutốithiểu10mmđểtránhlàmhưhỏngsànthiđấu).

- Robott ự h à n h d i c h u y ể n (theol i n e h o ặ c k h ô n g theol i n e ) , v à t h ự c h i ệ n n h i ệ m vụthiđấumàk h ô n g cósựđiềukhiểntừxaquasónglaser,hồngngoại…

 Robotgắpđượ c một khốilậpphư ơng rakhỏi khuvực“ch ân núi”củađộimìnhghiđư ợc1điểm“tíchlũy”.

 Robotbỏđ ư ợ c mộtk h ố i lậpphươngcủađộimìnhv à o ố n g “đỉnhnúi”ghiđ ư ợ c 2 điểm“tíchlũy”.

 Robotgắp đượcm ộ t k h ố i lậpphươngrak h ỏ i khuvực“ c h â n núi”củađốithủg h i được2điể m“cướp”.

 Robotbỏ đượckhối lập phươngcủa đối thủvàoống“đỉnh núi” ghiđược2điểm“cướp”.

 Robotgắpđ ư ợ c mộtk h ố i lậpphươngcủađối thủrakhỏi ố ng “đỉnhnúi” ghiđ ư ợ c 3điểm“cướp”.

 Kếtquảđiểmcuối cùng của mỗiđộil à t ổ n g c ủ a đ i ể m “ t í c h l ũ y ” v à đ i ể m “ c ư ớ p ” độiđóghiđượctrongsuốtthờigianthiđấu.

- Mỗiđộiđượcp h é p retry(khởiđộnglại)robot 1l ầ n n ế u robotcủađ ộ i đókhôngdichu yển(retrychỉkhirobotkhôngbịrobotđốiphươngtácđộng).

- Robotcủamỗiđộ i khôngđượcs ử dụngnước,hóachất,chấtcháynổhoặccácdạng chấtlỏng,khôngphunlửat r o n g quátrìnhthiđấu(gâyhưhỏngsànđấu),khônggâynguyhiểm chongườixem.Độinàoviphạmbịxửloạitrựctiếp.

- Các lỗi khác không được nêu trong luật sẽ được xử lý theo quyết định của trọng tàitrực tiếp điều hành trận đấu Các đội có thể thắc mắc khiếu nại kếtquảtrận đấu vớibantổchứcv à trọngtàis a u khitrậnđấukếtthúcnếucóbằngchứngcủatrậnđấ uđó.

Sau khi đã lựa chon phương án thì tôi đã chọn ra phương án robot sẽ di chuyển theoline trắng và dừng lạit ạ i c h â n n ú i v à g ắ p k h ố i l ặ p p h ư ơ n g , s a u k h i g ắ p t h ì r o b o t s ẽ đ i l ù i và dừng lại, tiếp theo thả khối lập phương, tiếp tục di chuyển đến chân núi và tiếp tục gắpkhốilậpphươngv àđi l ù i đếnkhinàotrênchân núikhôngcònkhốilậpphươngth ì rob otsẽdừnglại.Nhưvậytôiđãghiđược4điểm.

AdruinoUno R3

Arduino UnoR3l à m ộ t p h i ê n b ả n p h ổ b i ế n v à đ ư ợ c s ử d ụ n g r ộ n g r ã i t r o n g d ò n g sản phẩm Arduino Đượcphát triển dựa trên vi điều khiểnA T m e g a 3 2 8 P , A r d u i n o U n o R 3 là một bo mạch điều khiển mã nguồn mở và dễ sử dụng, cho phép người dùng nhanh chóngxâydựngvàthựchiệncácdựánđiệntử.

ArduinoUnoR3 c ó các đặcđiểmvàchứ c năng quantrọngsau:

1 Vi điều khiển: Arduino Uno R3 được trangbịvi điều khiển ATmega328P, có xungnhịp 16 MHzvà bộnhớ Flash32KB.V i đ i ề u k h i ể n n à y c h o p h é p n ạ p v à t h ự c t h i cácchươngtrìnhArduino.

2 Cổng kết nối: Arduino UnoR 3 c ó c á c c ổ n g k ế t n ố i đ ể g i a o t i ế p v ớ i c á c t h i ế t b ị ngoại vi khác Đó là: 14 cổng số (6 trong số đó có khả năng tạo ra xung PWM), 6cổng analog để đọc giát r ị a n a l o g t ừ c á c c ả m b i ế n , c ổ n g S e r i a l ( U A R T ) đ ể k ế t n ố i với máy tính hoặc các thiết bị ngoại vi khác, cổng I2C và SPI để giao tiếp với cácthiếtbịngoạivikhác.

3 Bộ cấp nguồn: Arduino Uno R3 có thể được cấp nguồn từ nguồn điện DC ngoài (7- 12V) hoặc từ cổng USB.N g u ồ n đ i ệ n D C đ ư ợ c c u n g c ấ p t h ô n g q u a m ộ t đ ầ u j a c k hoặcquacổngVin.

4 Chương trình Arduino: Arduino Uno R3 hỗ trợ môi trường phát triển tích hợp (IDE)Arduino, cho phép người dùng viết và nạp các chương trình Arduino. IDEA r d u i n o có giaodiện đơn giảnv à d ễ s ử d ụ n g , g i ú p n g ư ờ i d ù n g n h a n h c h ó n g l ậ p t r ì n h v à thựchiệncácdựán.

5 Hỗ trợ thư viện phong phú: Arduino Uno R3 được hỗ trợ bởi một loạt các thư việnphổ biến, cho phép người dùng dễ dàng tương tác với các cảm biến, mô-đun và thiếtbị ngoại vi khác Thưviện phong phúgiúpgiảmt h i ể u c ô n g s ứ c l ậ p t r ì n h v à t ă n g tínhlinhhoạtchoviệcpháttriểndựán.

6 Dễsửdụng vàphổ biến: Arduino UnoR 3 l à m ộ t b o m ạ c h đ i ề u k h i ể n d ễ s ử d ụ n g và phổ biến Cộng đồng Arduino lớn và nhiều tài liệu, ví dụ và hướng d ướng hướngdẫn sẵncó làmcho việc sử dụng vàphát triển dự ántrở nênd ễ d à n g h ơ n N g ư ờ i dùng có thể tìm thấy nhiều tài liệu, bài viết, video hướng dẫn và các dự án mẫu trêntrangwebArduinovàcácnguồnthôngtinkháctrênInternet.

7 Tích hợp linh hoạt: Arduino Uno R3 cho phép kết nối và tương tác với một loạt cácmodule và cảmb i ế n k h á c n h a u t h ô n g q u a c á c g i a o d i ệ n v à c ổ n g k ế t n ố i c ó s ẵ n Người dùng có thể mở rộng khả năng của Arduino UnoR3 bằng cách sử dụng cácmodulemở rộng như module giao tiếp không dây, module Bluetooth, module cảmbiến,mànhìnhLCD,vànhiềuhơnnữa.

8 Phát triển dự án: Arduino Uno R3 là một công cụ mạnh mẽ để phát triển các dự ánđiện tử, từ các dự án đơn giản như đèn LEDđ i ề u k h i ể n , c ả m b i ế n n h i ệ t đ ộ , đ ế n c á c dự án phức tạp hơn như robot tự động, hệ thống đo lường và điều khiển thông minh.Sự linh hoạt và tiện lợi của Arduino Uno R3 cho phép người dùng thực hiện nhanhchóngcácýtưởngvàthửnghiệmcáctínhnăngmới.

Hình4 –Cấuhìnhp h ầ n cứngvàsơđồchâncủaAdrunioU n o R3[1 ] Đểtruyền phát dữl i ệ u b ằ n g g i a o t h ứ c S P I v ớ i c á c t h i ế t b ị k h á c

A r d u i n o U N O c ó 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mứcđ i ệ n á p l à 0 V v à 5 V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull -up từđượccài đặt ngaytrong vi điều khiển ATmega328(mặcđịnh thì cácđ i ệ n t r ở m à k h ô n g đượckếtnối).Mộtsốchândigitalcócácchứcnăngđặcbiệtnhư sau:

Haic h â n Serial0(RX)v à 1(TX):d ù n g đ ể gửi( T r a n s m i t – TX)v à nhận(Receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chânnày.KếtnốibluetoothcóthểnóilàkếtnốiSerialkhôngdây.

Nếuk h ô n g cầngiaotiếp Ser ial khôngnênsửd ụ n g 2chân nàynếukhông cầnthi ết LED 13: trên Arduino UNOc ó 1 đ è n l e d m à u c a m ( k í h i ệ u c h ữ L ) K h i b ấ m n ú t R e s e t , s ẽ t h ấ y đèn nàynhấp nháy đểbáo hiệu Nóđượcnối với chân số1 3 K h i c h â n n à y đ ư ợ c n g ư ờ i dùngsửdụng,LEDsẽsáng.

Chân PWM (~): 3, 5, 6, 9, 10, và 11: Cho phép xuất ra xung PWM với độ phân giải8bit (giá trị từ 0 → 255 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cáchđơn giản, có thể điều chỉnh đượcđiện áp raở chân này từ mức0 V đ ế n 5 V t h a y v ì c h ỉ c ố địnhởmức0Vvà5Vnhưnhữngchânkhác.

Chân giao tiếp SPI:10 (SS), 11 (MOSI), 12 (MISO),1 3 ( S C K ) N g o à i c á c c h ứ c năngthôngthường,4chânnàycòndùng.

Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit đểđọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, có thể để đưa vàođiện áp tham chiếu khi sử dụng các chân analog Tứclà nếu tacấpđiện áp 2.5V vào chânnày thì có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phângiải vẫn là 10bit Đặc biệt, Arduino UNOc ó 2 c h â n A 4 ( S D A ) v à A 5 ( S C L ) h ỗ t r ợ g i a o tiếpI2C/TWIv ớ i cácthiếtbịkhác.LậptrìnhchoArduino:

Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngônr i ê n g

N g ô n n g ữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói Và Wiring lại là một biến thểcủaC/C++.M ộ t sốngườigọinólàWiring,mộtsốkhácthìgọilàChayC/C++.

Viđ i ề u khiển ATmega328P Điệnáphoạt động 5V Điệnáp v ào khuyêndùng 7-12V Điệnápvàogiớih ạ n 6-20V

Cườngđ ộ dòngđi ện trênmỗi3.3V/pin 50mA

Độngcơg i ả m tốc

Làthiết bịđiện làm từthép gồm 1động cơđiện vàhộp giảmtốc nối vớinhau,trongđóđ ộ n g cơđ i ệ n giúpc h u y ể n điệnn ăng racơ n ă n g , c ò n ph ần hộpgi ảm t ố c đóng vaitròtăng lựckéo,lựctải, lựctruy ền độngtớitoànbộcỗmáyhoặc hệthống các máy. ĐộngCơGiảmTốc 3V-9Vlàmẫuđộngcơđượcsửdungnhiềunhấtđểthiếtkế cácloạirobotmôh ì n h , nhằmphụcvụcho sinhvi ên họct ập v ànghiêncứ u ch ế t ạo Vớ i g iáthành rẻ dễsử dụng và mangtính ưuviệt nên chiếc động cơ này đượcs ử d ụ n g r ấ t nhiềuvớisinhviêncácnghànhkĩthuật.

Bảng2 -Thôngs ố kỹthuậtcủ a độngc ơ giảmtốc[3]

Dòngk h ô n g tảiđộngcơ 70mA Điệnáphoạt động 3–9VDC

ModuleHạÁpBu ck DC- DC L M 2 5 9 6 3A

Module hạ áp Buck DC-DCL M 2 5 9 6 3 A l à m ộ t m o d u l e c h u y ể n đ ổ i đ i ệ n á p D C (hạ áp)thông qua công nghệBuckConverter Nóc h o p h é p đ i ề u c h ỉ n h đ i ệ n á p đ ầ u r a một cách linh hoạt và ổn định từ nguồn điện

17CácđặcđiểmchínhcủamodulehạápBuckDC-DC L M 2 5 9 6 3Ab ao gồm:

1 Điện áp đầu vào: Module này chấp nhận đầu vào từ 3.2V đến 40V, cho phép sửdụng nhiều nguồn điện khác nhau như pin, nguồn điện DCh o ặ c n g u ồ n đ i ệ n x e hơi.

2 Điện áp đầu ra điều chỉnh: Module LM2596 cho phép điều chỉnh điện áp đầu ratrong khoảng từ1.25V đến 35V.Đ i ề u n à y r ấ t h ữ u í c h k h i t a c ầ n c u n g c ấ p m ộ t điệnápcụthểcholinhkiệnhoặcthiếtbịtrongdựáncủat ô i

3 Dòngđiệnđầu ra: Module hỗ trợdòng điện đầura tối đa là 3A.Đ i ề u n à y c h o phép tôi cung cấp đủ dòng điện cho các ứng dụng có yêu cầu năng lượng cao nhưmotor,mạchcôngsuấtvàcáclinhkiệnđiệntửkhác.

4 Hiệu suất cao: Module LM2596 có hiệu suất chuyển đổi cao, giúpgiảm thiểu sựtiêu hao năng lượng và tản nhiệt Hiệu suất chuyển đổi thường đạt trên 90%, giúptiếtkiệmnănglượngvàtăngtuổithọcủapinhoặcnguồnđiện.

5 Bảo vệ ngắn mạch và quá dòng: Module LM2596 tích hợp bảo vệ ngắn mạch vàquá dòng để bảo vệ mạch và các linh kiện khỏi các tình huống không mong muốnvànguyhiểm.

Bảng3-ThôngS ố KỹThuật CủaModul e H ạ ÁpBu ck DC-DC L M 2 5 9 6 3A[5] Điệnápđầuvào 3.2V–40V Điệnápđầura 1.25V–35V

Modulecảm biếndòli n eTCRT5 0 0 0

Module cảm biến dò line TCRT5000 là một module cảm biến quang học sử dụngcông nghệ hồng ngoại để phát hiện và nhận biết đường dẫn hoặc đường viền Nó thườngđược sử dụng trong các dựá n r o b o t đ ư ờ n g d ẫ n , x e t ự h à n h , h o ặ c h ệ t h ố n g t h e o d õ i đường.

ModuleTCRT5000b a o gồmm ộ t b ộ pháthồngngoạivàmộtb ộ thuquangđiện, vàcócácđ ặc điểmvàch ứ c n ă n g quantrọngsau:

1 Nguyênlýhoạt động: Modulesử dụng nguyên lýphản xạhồng ngoại Bộp h á t hồng ngoại phát ra tia hồng ngoại và khi có vật chắn xuất hiện trong tầm phát, tiahồng ngoại sẽ bị phản xạ và được thu lại bởi bộ thu quang điện Sự thay đổi t rongtínhiệuthuđượcsẽchobiếtvậtchắncótồntạihaykhông.

2 Độnhạy cao: Module TCRT5000có độnhạy caođ ố i v ớ i c á c v ậ t c h ắ n c ó m à u sắc khác nhau, đặc biệt là các vật chắn có màu sắc tương phản với màu nền xungquanh Điềun à y c h o p h é p m o d u l e n h ậ n b i ế t v à p h ả n h ồ i n h a n h c h ó n g k h i g ặ p vậtchắn.

3 Độc h í n h xác:ModuleT C R T 5 0 0 0 c ó độc h í n h xáccaotrongviệcnhậnbiếtv à theo dõi đường dẫn Nó có thể phân biệt rõ ràng giữa đường dẫn và mặt nền,giúprobothoặcxetựđộngduytrìđúnghướngdichuyển.

4 Dễ sử dụng: Module này dễ dàng kết nối với vi điều khiển hoặc bo mạch Arduinothông qua các chân đầu rav à đ ầ u v à o N ó c h ỉ đ ò i h ỏ i n g u ồ n c ấ p 5 V v à c ó c h â n đầurakỹthuậtsố,giúpdễdàngtíchhợpvàodựán.

5 Linh hoạt và thích ứng:M o d u l e T C R T 5 0 0 0 c ó t h ể đ ư ợ c đ i ề u c h ỉ n h v à t ù y c h ỉ n h đểphùhợpvớiyêucầucụthểcủadựán Điềuc h ỉ n h vịtrívàkhoảngcác hgiữabộphátvàbộthusẽảnhhưởngđếnphạmvipháthiệnvàđộnhạycủamodule.

6 Tiêu thụ năng lượng thấp: Module sử dụng công suất thấp, giúp tiết kiệm nănglượng trong quá trình hoạt động Điều này làm cho module TCRT5000trở thànhmộtlựac h ọ n p h ù hợpcho cácứngdụngdiđộnghoặc hoạtđộngtrên pin.

7 Ứng dụng đa dạng: Module cảm biến dò line TCRT5000 được sử dụng rộng rãitrong nhiều ứng dụng điện tử và robot Nó thường được sử dụng trong các dự ánrobot đườngdẫn tựđộng,x e t ự h à n h , đ è n d ẫ n đ ư ờ n g , h ệ t h ố n g t h e o d õ i đ ư ờ n g , vàcácứngdụngtươngtựkhác.

8 Chi phí thấp: Module TCRT5000cóg i á t h à n h p h ả i c h ă n g , l à m ộ t g i ả i p h á p k i n h tế cho việc phát triển các dự án điện tử và robot Điềun à y l à m c h o n ó t r ở t h à n h lựachọnphổbiếnchocácnhàđiềukhiểnvànhàpháttriểndựánDIY.

Hình8 –Sơđ ồ mạ ch moduleT C R T 5 0 0 0 [ 7 ]

CảmbiếnvậtcảnhồngngoạiOMDHONE1 8 – D 8 0 N K

Cảm biến vật cản hồng ngoại OMDHONE18 - D80NK là một cảm biến tiêu biểutrong học ả m b i ế n v ậ t c ả n h ồ n g n g o ạ i Đ â y l à m ộ t l o ạ i c ả m b i ế n s ử d ụ n g c ô n g n g h ệ hồng ngoại để phát hiện và đo khoảng cách từ cảm biến đến vật thể trong phạm vi hoạtđộngcủanó.

OMDHONE 1 8 -D80NKđượcthiếtkếvớiđầudòhồngngoạitíchhợpvàbộxử lýđiệntử,c h o phépnópháthiệnsựh i ện diệnhoặcsựt i ế p xúcvớivậtcản.Đâylàmột loại cảm biến dạng khoảng cách, có khả năng đo lường khoảng cách từ vài centimet đếnvàimét,tùythuộcvàomôhìnhcụthể.

Cảm biến OMDHONE18 - D80NK thường được sử dụng trong nhiều ứng dụngkhácnhau,baogồm:

1 Robotvàtựđ ộn g hóa: Cảmb i ế n nàycóthểđượcs ử dụng đểpháthiệnvàtránh vật cản trong quá trình di chuyển của robot hoặc trong các ứng dụng tự động hóakhác.

2 Thiết bị gia dụng thông minh: Cảm biến vật cản hồng ngoại có thể được sử dụngtrong các thiết bị gia dụng thông minh nhưm á y g i ặ t , m á y l ọ c k h ô n g k h í , h o ặ c máyhútbụiđểpháthiệnvậtcảnvàđưaracácphảnứngthíchhợp.

3 Thiết bịan ninh: Cảmb i ế n n à y c ó t h ể đ ư ợ c s ử d ụ n g t r o n g c á c h ệ t h ố n g a n n i n h đểpháthiệnsựxâmnhậphoặcsựtiếpcậntráiphép.

4 Côngnghiệp: Trongmôi trườngc ô n g n g h i ệ p , c ả m b i ế n v ậ t c ả n h ồ n g n g o ạ i c ó thể được sử dụng để kiểm tra sự hiện diện của vật liệu hoặc sản phẩm trong quátrìnhsảnxuấthoặcđểđiềukhiểncácquytrìnhtựđộng.

Cảm biến OMDHON E18 - D80NK có đặc điểm nhỏ gọn, dễ dàng lắp đặt và cài đặt,độ tin cậy cao và độ phản hồi nhanh Nó hoạt động trên nguyên lý phát hiện sự chặn đènhồngngoạivàcóthểtíchhợpvớicácvimạchđiềukhiểnvàhệthống khácđểđ á p ứng cácyêucầucụthểcủaứngdụng.

Cảm biến OMDHONE18 - D80NK có thể hoạt động ổn định trong một loạt các điềukiện môi trường,bao gồmcả ánh sáng môi trường,n h i ệ t đ ộ v à đ ộ ẩ m

N ó c u n g c ấ p đ ầ u ra tương tự hoặc kỹ thuật số, tùy thuộc vào mô hình, để truyền tín hiệu đến các vi mạchhoặchệthốngđiềukhiển. Đểl ắ p đặtcảmb i ến , cầnchúýđếnhướngv à khoảngcáchlắpđặtphùhợpđểđảm bảop h ạ m vihoạtđộng vàđ ộ ch í n h xác.Thôngs ố k ỹ t h u ậ t cụt h ể c ủ a cảmb i ế n , chẳng hạn như khoảng cách phát hiện tốiđa, điện áp hoạt động vàcông suấtt i ê u t h ụ , c ó t h ể đượctìmthấytrongtàiliệukỹthuậtcủasảnphẩm.

Bảng5 –Thôngs ố kỹthuậtc ủ a cảmCảmbiếnvậtcản hồngn g o ạ i [ 1 0 ]

Sốd â y tínhiệu 3dây(2dâycấpnguồnvà1dâytínhiệu)

CấutrúccựcthuhởTransistorNPN- OpenCollector nênsẽc ần p h ả i cótrởk é o (khoảng1~1

Chấtliệusảnphẩm Vỏn g o à i n h ự a ABS,p h í a trongđổkeochốngnước, chốngvađập.

ĐộngcơservoS G9 0

Động cơ servo SG90 là một trong những loại động cơ servo phổ biến và được sửdụng rộng rãi trong các ứng dụng điều khiển vị trí và chuyển động Động cơ này có kíchthước nhỏ gọn, giáthành thấp và khả năng hoạt động ổn định, là lựac h ọ n l ý t ư ở n g c h o cácdựánđiều khiểnrobot,môhình,máybaymôh ì n h v à các ứngdụngtươngtự. Động cơ servo SG90h o ạ t đ ộ n g d ự a t r ê n n g u y ê n l ý p h ả n h ồ i v ị t r í N ó b a o g ồ m một động cơ DC, một bộ điều khiển và một cơ cấu phản hồi vị trí (encoder) để đo vị tríhiện tại của động cơ Khi nhận được tín hiệu điều khiển từ bộ điều khiển, động cơ servoSG90s ẽ chuyểnđộngđếnvịtrímongmuốnvàduytrìvịtríđómộtcáchchínhxác. Độngcơ servoSG90c ó các đặcđiểmquantrọngsau:

1 Góc xoay: Động cơ servo SG90 có góc xoay tương đối nhỏ, thường từ khoảng 0đến180độ,tùythuộcvàomôhìnhcụthể.

2 Độ chính xác: Động cơ servo SG90 có độ chính xác tương đối cao và độ tin cậytrong việc duy trì vịtrí Nócót h ể c h í n h x á c t r o n g p h ạ m v i t ừ m ộ t đ ế n m ộ t v à i độ.

3 Điều khiển: Để điều khiển động cơ servo SG90, cần cung cấp tín hiệu điều khiểnPWM (Pulse Width Modulation) với chu kỳ 20ms và độ rộng xung (pulse width)nằm trong khoảng từ 1ms đến 2ms Độ rộng xung sẽ xác định góc xoay của độngcơ.

4 Điện áp hoạt động: Động cơ servo SG90 hoạt động trong phạm vi điện áp từ 4.8Vđến6V.ĐiệnápnàythườngđượccungcấptừnguồnđiệnDCb ê n ngoài.

5 Kích thước nhỏ gọn: Động cơ servo SG90c ó k í c h t h ư ớ c n h ỏ g ọ n , t h ư ờ n g c ó đường kính khoảng 22mm và chiều dài khoảng 11mm, giúp nó phù hợp với cácứngdụngcókhônggianh ạn chế.

6 Tốc độ đáp ứng: Động cơ servo SG90 có tốc độ đáp ứng tương đối nhanh. Thờigianphảnhồiđểdichuyểnđếnvịtrímớithườngchỉmấtvàimiligiây.

7 Độb ề n : Đ ộ n g c ơ s e r v o S G 9 0 c ó đ ộ b ề n t ố t v à t u ổ i t h ọ k h á c a o T u y n h i ê n , v i ệ c sử dụng quá tải hoặc áp dụng lực lớn có thể gây hỏng hoặc làm giảm tuổi thọ củađộngcơ.

8 Ứngdụng đa dạng: Độngc ơ s e r v o S G 9 0 đ ư ợ c s ử d ụ n g t r o n g n h i ề u l ĩ n h v ự c v à ứngdụngkhácnhau,baogồmrobot,môhìnhRC,m á y baymôhình,cáchệthống điềukhiểnvịtrí,cơcấuc h u y ể n độngtựđộng,vàn h i ề u ứngdụngkháctronglĩnhvựctự độnghóavàđiềukhiển.

Thôngs ố kỹthuậtS e rv o SG90[12] Điệnáphoạt động 4.8V~6VDC

ĐộngcơR C S e r v o M G9 9 6 R

Động cơ servo MG996R là mộtloại động cơ servo mạnh mẽv à đ ư ợ c s ử d ụ n g rộng rãi trong các ứng dụng robotica, mô hình RC và các hệ thống điều khiển vị trí khác.Nó là phiên bản nâng cấp của động cơ servo MG996, cung cấp khả năng hoạt động mạnhmẽvàđộchínhxáccao. Độngc ơ servoMG996Rc ó c á c đặcđiểmquantrọngsau:

1 Côngs u ấ t vàm ô - m e n x o ắn : MG996Rc ó c ô n g suấtvàm ô - m e n x o ắn cao.Đ ộ n g cơ nàycóthể cung cấpmô-menxoắn lênđến khoảng 9kg/cm (ởđ i ệ n á p 6 V ) Điều này cho phép nó làm việc hiệu quả với các tải nặng và thực hiện các chuyểnđộngmạnhmẽ.

2 Độchính xác: MG996Rcó độc h í n h x á c t ố t t r o n g v i ệ c đ ị n h vịvàd u y t r ì v ị t r í Nó có thể giữ được vị trí với độ chính xác từ vài đến một vài độ, đảm bảo sự ổnđịnhvàđángtincậytrongquátrìnhhoạtđộng.

3 Gócx o a y : ĐộngcơservoMG996Rcókhảnăngxoaytrongphạmvitừ0đến180 độ (tùy thuộc vào mô hình cụ thể) Điều này cho phép nó thực hiện các chuyểnđộngquayvàđiềukhiểnvịtrímộtcáchlinhhoạt.

4 Điều khiển: Đểđiều khiển động cơ servo MG996R, cần cung cấp tín hiệu điềukhiển PWM(Pulse Width Modulation) với chu kỳ 20ms và độ rộng xung (pulsewidth) nằm trong khoảng từ1ms đến 2ms Độr ộ n g x u n g s ẽ x á c đ ị n h g ó c x o a y củađộngcơ.

5 Điện áp hoạt động: Động cơ servo MG996R hoạt động trong phạm vi điện áp từ4.8Vđến6V.Điện ápnàythườngđượccungcấptừnguồn điệnDCbênngoài.

6 Kíchthướcvàtrọnglượng:M G 9 9 6 R có kíchthướckhánhỏgọnvàtrọnglượng tươngđ ố i n h ẹ , giúpn ó d ễ d à n g tíchhợpv à o cácứ n g d ụ n g c ó k h ô n g gianh ạ n chế.

7 Độbền: Độngcơ servo MG996Rcóđộ bềnt ố t v à k h á ổ n đ ị n h t r o n g q u á t r ì n h hoạt động Nóđ ư ợ c c h ế t ạ o v ớ i c á c v ậ t l i ệ u c h ấ t l ư ợ n g c a o v à c ó k h ả n ă n g c h ị u tải và chịu áp lực tốt Tuy nhiên, như với bất kỳ động cơ servo nào, việc sử dụngquá tảihoặc áp dụng lựclớnc ó t h ể g â y h ỏ n g h o ặ c l à m g i ả m t u ổ i t h ọ c ủ a đ ộ n g cơ.

8 Ứng dụng đa dạng: Động cơ servo MG996R được sử dụng rộng rãi trongn h i ề u ứng dụng, bao gồm robot tự động, mô hình RC,m á y b a y m ô h ì n h , c á c h ệ t h ố n g cần đến chuyển động và điều khiển vị trí chính xác.

Nó thường được sử dụng đểcung cấp sự điều khiển chính xác cho các cơ cấu cần chuyển động, cánh tay robot,bànxoayvànhiềuứngdụngkhác.

Moduleđ i ề u k h i ể n đ ộ n g cơL298N

Nguyênlí hoạtđộngcủamo du l eđ i ều khiển đ ộn g cơL298N

MạchL298N hoạt động dựatrên nguyênlý củacác bộkhuếch đại côngs u ấ t (power amplifier) để điều khiển động cơ DChoặc động cơ bước.Nó sử dụng hai bộkhuếchđạicôngsuấtsongsongđểcu n g cấpđ i ệ n ápvàd òn g điệnđủl ớ n cho độngcơ.

Nguyênlýhoạt độngchínhcủamạchL298N làsửdụngtínhiệuđiềukhiểntừv i điềukhiển(nhưArduino)đểđ i ề u khiểnhaibộk h u ế c h đạicôngsuấttrongmạch.

Mạch L298N có 2 đầu ra (OUT1 và OUT2) và 2 đầu vào (IN1 và IN2) để điềukhiển động cơ thứ nhất, cũng như 2 đầu ra khác (OUT3v à O U T 4 ) v à 2 đ ầ u v à o k h á c (IN3v à I N 4 ) đ ể đ i ề u k h i ể n đ ộ n g c ơ t h ứ h a i M ỗ i đ ộ n g c ơ đ ư ợ c đ i ề u k h i ể n b ằ n g c á c h thayđổihướngquayvàtốcđộ. Để điều khiển hướng quay của động cơ, ta cần đặt các tín hiệu vào IN1, IN2, IN3và IN4t h e o t h ứ t ự c ụ t h ể V í d ụ , n ế u t a m u ố n đ ộ n g c ơ t h ứ n h ấ t q u a y t h e o c h i ề u t h u ậ n kim đồng hồ, ta sẽ đặt IN1=HIGHvà

IN2=LOW.Nếu ta muốn động cơ thứ hai quayngượcchiềukimđồnghồ,tasẽđặtIN3=HIGHv à IN4=LOW. Đểđiều c h ỉ n h t ố c đ ộ c ủ a đ ộ n g c ơ , t a s ử d ụ n g t í n h i ệ u P W M ( P u l s e -

Modulation) trên các chân ENAvà ENBc ủ a m ạ c h L 2 9 8 N B ằ n g c á c h thayđổi giá trịdutycyclecủatínhiệuPWM,t a cóthểđiềuchỉnhtốcđộquaycủađộngcơ.

MôhìnhmạchcầuH

Một động cơ DC có thể quay thuận hoặc quay nghịch tùy thuộc vào cách ta mắccực âm và dương cho motor đó Ví dụ, động cơ DC có hai đầu A và B Nếu ta nối A vàocựcd ư ơ n g ( + ) vàB v à o cựcâ m ( - ) củanguồnt h ì đ ộ n g cơq u a y theoc h i ề u thuận (giảsử cùng chiều kim đồng hồ) Bâyg i ờ t a n ố i n g ư ợ c l ạ i , A v à o ( - ) v à B v à o ( + ) , đ ộ n g c ơ sẽquaynghịch(giảsửngượcchiềukimđồnghồ).

Tươngt ự , khitađóng S1v à S4,tađãchoAnốivớicựcd ư ơ n g (+)vàBnốivới cực âm (-) của nguồn, một dòng điện chạy từ nguồn qua S1 qua động cơ qua S4 về masslàmđộngcơquaytheochiềuthuận.

Ngượcl ạ i , khi tađóngS2v à S3,độ ng cơquaynghịch.

Hình1 6 - Sơđ ồ động cơ chạytheochiềunghịch

Nhưv ậ y , mạchcầu Hd ù n g đểđ ảo chiềuquayđộngcơ.

Lưuý, không bao giờđược phép đóng cùng lúc S1và S2h o ặ c S 3 v à

S 4 h o ặ c thậm chí là đóng cùng lúc 4 công tắc Nếu làm như vậy, ta đã tạo ra một đường dẫn trựctiếp từ Vcc xuống GND và gây ra hiện tượng trùng dẫn Pin sẽ bị hỏng và nghiêm trọnghơncóthểcháynổmạch.

Pin18650 là mộtl o ạ i p i n l i t h i u m - i o n c ó k í c h t h ư ớ c t i ê u c h u ẩ n v à r ấ t p h ổ b i ế n trong các thiết bị di động, công cụ điện, đèn pin và nhiều ứng dụng khác Số" 1 8 6 5 0 " trong tên gọi của nó thể hiện kích thước của pin, với đường kính khoảng 18mm và chiềucaokhoảng65mm.

Pin18650 đượcxếp vào họ pin tái sạc (rechargeable) và có dung lượngc a o , thườngtừ 1800mAhđến3500mAhhoặc hơn Dunglượngnàyc h o p h é p n ó c u n g c ấ p nănglượnglâudàichocácthiếtbịmànóđượcsửdụng.

Với công nghệ lithium-ion, pin 18650 cung cấp một điện ápổnđịnh và có hiệusuất cao Nó có khả năng giữ được điện năng trong thời gian dài và có tuổi thọ sử dụngtương đối dài Pin 18650 cũng có khả năng chịu tải cao, cho phép nó cung cấp dòng điệnlớnkhicầnthiết.

Kiểupin 18650Li - i on r ec h a r g ea b l eb at t e r y Điệnáptrungbình 3.7VDC

CHƯƠNG 3 – PHẦN MỀM LẬP TRÌNH ADRUNIO IDE VÀ PHẦN

GiớithiệuphầnmềmlậptrìnhAdrunioIDE

CácbướctạomộtProject

Phầnm ề m vẽ3 D S o l i d W o r k s

Giớithiệup h ần mềm vẽ3 D S o l i d W o r k s

a SolidWorks là một phần mềm thiết kế và mô hình 3D phổ biến được sửdụng trong lĩnh vực kỹ thuật cơ khí và thiết kế sản phẩm Dưới đây là mộtsốthôngtinvềSolidWorks:

2 Chức năng chính: SolidWorks cung cấp một loạt các công cụ mạnh mẽ để tạo racác môhình 3Dchính xác vàchi tiết.T ô i c ó t h ể t ạ o c á c b ộ p h ậ n , t ụ c đ o ạ n , l ắ p ráp và các môh ì n h k h á c b ằ n g c á c h s ử d ụ n g c á c t í n h n ă n g n h ư t ạ o h ì n h , c ắ t , l ắ p rápvàxửlýbềmặt.

3 Giao diện người dùng: SolidWorks có giao diện ngườidùng thân thiện và dễ sửdụng, vớicác thanh công cụ vàmenut r ự c q u a n G i a o d i ệ n đ ư ợ c t h i ế t k ế đ ể t ố i ưuhóaquytrình làmviệc vàcungcấptrảinghiệmngườid ù n g thoảimái.

4 Tínhnăng môp h ỏ n g : SolidWorkscung cấpcác công cụmôp h ỏ n g đểphân tích và kiểm tra các môh ì n h t h i ế t k ế T ô i c ó t h ể t h ự c h i ệ n m ô p h ỏ n g c h u y ể n đ ộ n g , mô phỏng độ bền và tính toán trọng lực để đảm bảo tính khả thi và hiệu suất củasảnphẩm.

5 Thưv i ệ n v à b ả n v ẽ : S o l i d W o r k s đ i k è m v ớ i c á c t h ư v i ệ n t i ê u c h u ẩ n b a o g ồ m c á c bộ phận, vật liệu và các tiêu chuẩn kỹ thuật Tôic ũ n g c ó t h ể t ạ o v à q u ả n l ý c á c bảnvẽkỹthuậtchitiếtcủasảnphẩm.

6 Tíchh ợ p v à x u ấ t k h ẩ u : SolidWorksc ó k h ả n ă n g tươngt á c v ớ i c á c p h ầ n mềm khácvàhỗtrợnhiềuđịnhdạngtệpnhưSTEP,I G E S , S T L v à nhiềuhơnnữa.Điều này giúptôi dễd à n g c h i a s ẻ d ữ l i ệ u v à l à m v i ệ c v ớ i c á c t h à n h v i ê n k h á c t r o n g quytrìnhthiếtkế.

7 Cộng đồng và tài liệu hỗ trợ: SolidWorks có một cộng đồng rộng lớn của ngườidùng và nhà phát triển Tac ó t h ể t ì m t h ấ y t à i l i ệ u h ư ớ n g d ẫ n , v i d e o h ọ c v à d i ễ n đàntrựctuyếnđểhỗtrợtrongquátrìnhhọcvàsửdụngphầnmềm.

ThiếtkếcánhtayRobot3bậctrênphầnmềm SolidWorks

Cánh tay robot 3b ậ c t ự d o l à m ô h ì n h c h u ẩ n c ủ a c á n h t a y r o b o t d ạ n g n h ỏ , c ó chức năng gắp sản phẩm tại mọi vị trí trong không gian cho phép, nó được thiết kế nhỏgọn,chắc chắn, đầy đủ chức năng của 1 cánh tay thông thường.L à m t ừ c h ấ t l i ệ u h ợ p kim,nhựain2D,3D vàcó4độngcơservo. Để gắp vật, cánh tay robot sử dụng các ngón tay robot hoặc các kẹp robot đượcthiết kế để nắm chặt vật Các ngón tay hoặc kẹp được điều khiển bằng các động cơ servovà có thể được thiết kế theo nhiều kiểu dáng và kích thước khác nhau tùy thuộc vào nhucầusửdụng. Đểt h i ế t kếmộtc á n h tayrobot3bậcin3D,t a cầnthựchiệncácbướcsau:

1 Xác định mục đích sử dụng: Đầu tiên, ta cần phải xác định mục đích sử dụng củacánh tay robot để thiết kế cho phù hợp Các ứng dụng sử dụngcánhtay robot cóthểrấtđadạng,từsảnxuất,ytếđếngiảitrí.

2 Thiếtkếbảnvẽkỹthuật:Saukhiđãx ác địnhmụcđích sửdụng,tacần phảithiếtkếbản vẽkỹthuậtcủacánhtayrobot 3bậcin3D,baogồmc ác chi tiếtcầnthiếtđểlắprápvàhoạtđộngcủacánhtay.

3 Chọnv ật liệu:cầnchọ n cácvậtliệuphùhợ p đểs ản xuấtcánhtayr o b o t Vậtliệucóth ểlànhôm,thép,hoặccácvậtliệucomposite.

4 Lắprápvàkiểmtra:Sauk h i đãcóbảnvẽkỹthuật vàcácchitiết cầnthiết,tacần lắp rápcánh tayr o b o t v à k i ể m t r a đ ể đ ả m b ả o h o ạ t đ ộ n g c h í n h x á c v à đ á p ứ n g cácyêucầukỹthuật.

5 Ngoài ra, để thiết kế một cánh tay robot 3 bậc in 3D hiệu quả, ta nên có kiến thứcvề kỹt h u ậ t c ơ k h í , đ i ệ n t ử v à l ậ p t r ì n h đ ể c ó t h ể l ự a c h ọ n c á c l i n h k i ệ n v à t h i ế t kếphầnmềmđiềukhiểncầnthiết.

Dođó, tôi đã tìm ý tưởngv à s ử d ụ n g ý t ư ở n g c ủ a t ừ n h ữ n g t à i l i ệ u t r ê n I n t e r n e t v à cáctrangdiễnđàncuộcthiRoboticsđểcóthểhoànthiệntaygắpc ủ a mình.

Hình2 1 –Ýtưởngs ử dụngđ ể hoànthiệnbảnv ẽin3D

Cáckhốihìnhvẽ3Dt h i ế t kếgắnkết vớinhauđểtạot h à n h phầntaygắpv à phầnkẹp:

Khối nguồn Khối xử lí

Khối điều khiển động cơ

CHƯƠNG4:SƠĐỒNỐIDÂY,SƠĐỒKHỐI,LƯUĐỒTHUẬTTOÁN,THICÔ

Sơđồkhối

Khối nguồn có chức năng cung cấp nguồn điện cho các thành phần và hệ thống kháccủa robot Đây là một thành phần quan trọng để đảm bảo hoạt động ổn định của robot.Dướiđâylàmộtsốchứcnăngchính:

1 Cungcấpnguồn đ i ệ n chokhốicảmb i ế n : Khốinguồncung cấpnguồn đi ện cho các cảmb i ế n , b ộ đ i ề u k h i ể n v à c á c t h à n h p h ầ n k h á c t r o n g r o b o t Đ i ề u n à y g i ú p chocáccảmbiếnvàbộđiềukhiểnhoạtđộngmộtcáchđángtincậyvàchínhxác

2 Điềuchỉnh nguồnđ i ệ n : K h ố i n g u ồ n c ó t h ể đ i ề u c h ỉ n h n g u ồ n đ i ệ n t h e o y ê u c ầ u của hệ thống Với các hệ thống phức tạp có thể cần điều chỉnh điện áp hoặc dòngđiệnđểđápứngyêucầucủacảmbiếnvàbộđiềukhiển.

3 Khối cảm biến trong robot này có chức năng đo và nhận biết các thông tin về môitrườngx u n g q u a n h C á c c ả m b i ế n n à y g i ú p x e d ò l i n e

" n h ì n " v à " c ả m n h ậ n " những thông tin cần thiết để điều khiển và thực hiện các tác vụ như dò line, pháthiệnvậtcảnvàduytrìđúnghướngdichuyển.

Dướiđ â y làmộts ố ch ức năngchínhcủakhối cảmbiếncủarobot:

1 Dòl i n e : C á c c ả m b i ế n d ò l i n e đ ư ợ c s ử d ụ n g đ ể n h ậ n b i ế t v ị t r í c ủ a đ ư ờ n g d ẫ n hoặcđườngviềnmàx e d ò linephảiđiqua.Thôngq u a cáccảmb i ến này,x e dò line có thể theo dõi và điều chỉnh hướng dic h u y ể n đ ể d u y t r ì s ự c â n b ằ n g v à chínhxáctrênđường.

2 Phát hiện vật cản: Khối cảm biến cũng có thể được sửd ụ n g đ ể p h á t h i ệ n c á c v ậ t cản trên đường.C á c c ả m b i ế n n à y c ả m b i ế n h ồ n g n g o ạ i C h ú n g g i ú p x e d ò l i n e pháthiệnvàđ á n h giák h o ả n g cáchv àh ì n h dạngcủ a cá c v ật thểx un g qua nh,từđóđiềuchỉnhđộngcơvàtaygắpphùhợpđểgắpđượcvật.

3 Khối xử lí của robot có chứcn ă n g đ i ề u p h ố i v à đ i ề u k h i ể n c á c h o ạ t đ ộ n g v à h à n h vicủarobot Nól à t r í thôngminhcủa robot, nhậnthông tintừc á c cảm bi ến,xửlýdữ liệuvàraquyếtđịnhvềcáchànhđộngcầnthựchiện.

1 Xửl ý d ữ l i ệ u c ả m b i ế n : K h ố i x ử l í n h ậ n d ữ l i ệ u t ừ c á c c ả m b i ế n t r o n g x e d ò l i n e vàxử lýthông tinđó.Nósẽphân tích, đánh giáv à c h u y ể n đ ổ i d ữ l i ệ u t ừ c ả m biếnthànhcácthôngtinhữuíchđểđưarasquyếtđịnh.

2 Điềukhiển động cơ và hệ thống chuyển động: Khối xử lí quản lýv à đ i ề u k h i ể n hoạt động của động cơ và hệ thống chuyển động của robot Nó điều chỉnh tốc độđộng cơ,hướng dichuyển, và các hành động nhưd ừ n g , t i ế n l ê n , r ẽ t r á i , r ẽ p h ả i , vàlùilại.

3 Ra quyết định và lập kế hoạch: Dựa trên dữ liệu cảm biến và thông tin môi trường,khối điều khiển đưa ra quyết định về hành động cần thực hiện Nó có khả năngphân tích và đưa ra lựa chọn tối ưu để dẫn dắt robot đi đúng hướng, phát hiện vậtcảnvàhoànthànhcáctácvụcụthể.

Khối điều khiển động cơ: Là khối cónhiệm vụ lấyc á c t í n h i ệ u đ i ề u k h i ể n t ừ k h ố i điều khiển, sauđóthựchiện cácchứcnăng thayđổi tốcđ ộ c ũ n g n h ư c h i ề u q u a y c ủ a độngcơ.

Chương trình dò line Sai

Cảm biến vật cản bên trái Đúng Thực hiện chương trình gắp vật bên trái

Sai Đúng Cảm biến vật cản bên phải Thực hiện chương trình gắp vật bên phải

Hình3 5 –Lưuđ ồ thuật toántổngqu át

Mô tả lưu đồ:Sau khi bắt đầu robot sẽ thực hiện chương trình dò line, nếu pháthiện vật cản bên trái thì sẽ thực hiện chương trình gắp vật cản bên trái, thực hiện xongchươngtrình gắpv ậ t cảnbêntráirobotsẽquay vềchươngtrìnhdòline, n ế u phát hiệnvật cản bên phải thì robot sẽ thực hiện chương trình gắp vật cản bên phải, khi thực hiệnxong chương trình gắp vật cản bên phải thì robot sẽ quay về chương trình dò line, và cứthếtiếptụclặpđilặplại.

 Khicảmb i ế n pháthiệnmàutr ắng (đườngline) thìbit==1.

- Trườngh ợ p 1 1 : CBVC1== 0 , robotsẽt h ự c h i ệ n c h ư ơ n g t r ì n h gắpv ậ t c ả n bêntrái.

- Trườngh ợ p 1 1 : CBVC2==0 , robotsẽt h ự c h i ệ n c h ư ơ n g t r ì n h gắpv ậ t c ả n bênphải.

Sauk h i thiếtkếcánhtaytrênphầnmềm S o i l d W o r k s , tat i ế n hànhin3Dv à tiếptục lắprápcáckhớpkếtnốilạivớinhauđểthành sảnphẩmhoànthiện.

Sauk h i đ ã lắphoànthiệncánhtayt h ì r o b o t , tiếptụcl ắ p rápxed ò lineđ ể bámthe ođườnglinekếthợpcảmbiếnhồngngoạiđểpháthiệnvậtcản.

Sauk h i đãl ắ p ráptoànthiệncánhtayrobotvàxed ò line,tiếp theot ô i kếth ợ p chú nglại vớinhauđểtrởthànhxedòlinevàgắpvật khicảmbiếnvậtcảnphát hiện.

Sauk h i t h ự c n g h i ệ m n h i ề u l ầ n t h ì c h o r a k ế t q u ả , t ô i đ ã n h ậ n đ ị n h r ằ n g r o b o t chạy ổn định và đápứ n g t ố t y ê u c ầ u c ủ a t ô i đ ư a r a T u y n h i ê n v ẫ n c ò n s a i s ố n h ư n g không đáng kể do ảnh hưởng từ ánh sáng bên ngoài chiếu vào đối với cảm biến hồngngoại,vàdosânthiđấuchưađượctrơntrunênxảyrasaisốnày.

Dướiđây làbảng đánh giám ứ c đ ộ ổ n đ ị n h c ủ a r o b o t k h i t h ự c n g h i ệ m t r ê n s â n thiđấu:

Bảng1 0 –Thựcn g h i ệm Robott rên sânthiđấut h ự c tế

Lần Tốcđộbămxung( PWM) Nguồnsửdụng Đánhg i á

Enb:1 0 0 12,6VDC Robotchạyổnđịnh, nhưng chậm

Robotchạyổnđịnh, tuy nhiên bắtđầuxuấthiệnsai sốsaukhiômcua

1 Hiểuđ ư ợ c n g u y ê n l í h o ạ t đ ộ n g c ủ a c á c m o d u l e , c á c h k ế t n ố i c á c m o d u l e v ớ i mạch Arduino Kết nối với board Arduino giao tiếp với máy tính thông quaphầnmềmlậptrìnhAdrunioIDE.

2 Hiểuđ ư ợ c c ác h vẽc ơ khícánhtayrobotthôngquap h ần mềmS o l i W o r k

3 Tiếpxúc vớinhiều module mới,c ó t h ể h ọ c h ỏ i v à t r a o d ồ i k i ế n t h ứ c t r o n g h ọ c tậptốthơn.

5 Hiểuđ ư ợ c c ác h lậpt r ì n h vàn ạp chươngtr ìn h choAdrunio.

1 Doh ạ n chếvềmặt kinhphí nênchưathể làm hoànthiện.

2 Vẫncòn xuất hiện sai số do ảnh hưởngtừánh sáng bên ngoài và sân thi đấu chưađượctrơntru.

2 Sửd ụ n g bộđiều khiểnPIDv à kếthợpencoderđểrobotbámt h e o linetốthơn.

3 Sửdụng thuật toánxữ líảnhđểrobot phát hiệnđượcv ậ t c ả n v à b á m t h e o l i n e thayvìdùngcảmbiếnhồngngoại.

[1] "HọcA r d u i n o Bài2 : N h ữ n g đ i ề u cơb ả n v ề Arduino,"[ T r ự c t u y ế n ] Availa ble: https://mlab.vn/index.php?_route_609-hoc-arduino-bai-2-nhung-dieu-co- ban-ve-arduino.html.[Accessed2052023].

[2] " Động Cơ Giảm Tốc Vàng 3V-9V," [Trực tuyến] Available: https://chotroihn.vn/dong-co-giam-toc-vang-3v-9v.[ A c c e s s e d 5 2 0 2 0 2 3 ]

[3] "Động cơgiảm tốc vàngkèmbánhxe,"[ Trực tuyến].

Available:https://nshopvn.com/product/dong-co-giam-toc-vang-kem-banh-xe/ [Accessed 2052023].

[4] "Mạchh ạ á p g i ả m á p B u c k DC-DCLM25963A( Vào3 5 - 3 5 V D C - Ra1.5- 30VDC )," [Trực tuyến].Available:https://shopee.vn/m%E1%BA%A1ch-h

%E1%BA%A1-%C3%A1p-buck-dc-dc-lm2596-3a-i.59073322.8276896624?utm_campaign=-

U6eW86Xmwygtg7jScYlZxuQJPrbSFtCCOrNQVRoemLgX5K3U- r.search.yahoo.com

&utm_mediumfiliates&utm_source=an_17104620000&utm_termru.

[5] "LM2596," [Trực tuyến] Available: https://w w w d i e n t u q u a n g s a n g c o m / p r o d u c t s / l m 2 5 9 6

[Trựct u y ế n ] Available: https://tailieubeginer.blogspot.com/2018/12/cam-bien- hong-ngoai- thu-phat-chung-ung.html.[Accessed2 0 5 2 0 2 3 ]

[7] "CảmB i ế n P h ả n X ạ H ồ n g N g o ạ i T C R T 5 0 0 0 I n f r a r e d ReflectiveSens or,"[ T r ự c tuyến] Available: https://hshop.vn/products/cam-bien-do-line-tcrt5000.[Accessed2052023].

[8] "cảm biến dò line TCRT5000L 5 mắt," [ Trực tuyến ].

Available:https://shopee.vn/c%E1%BA%A3m-bi%E1%BA%BFn-d%C3%B2-line-TCRT5000L-5- m%E1%BA%AFt-i.14731236.2029777925 [Accessed 20 5

[9] "E18-D80NKArduino Infrared Photoelectric Obstacle Avoidance SensorShieldSwitch,"[Trựctuyến].Available:https://www.umtmedia.com/products/ e18-d80nk-infrared-photoelectric-obstacle-avoidance-sensor- switch?variant504944349270.[ A c c e s s e d 2 0 5 2 0 2 3 ]

ProximitySensor,"[Trựctuyến ] Available: https://hshop.vn/products/cam-bien-vat- can-hong-ngoai-e3f-ds30c4-4.[Accessed2052023].

[11] "Động cơ servo SG90 180 độ," [ Trực tuyến ].

Available:https://nshopvn.com/product/dong-co-servo-sg90-tower-pro/.[ A c c e s s e d 2 0 5 2023].

[12] "Động cơServo SG90 (Góc Quay180),"[Tr ực tuyến] A v a i l a b l e : https://dientutuonglai.com/dong-co-servo-sg90-goc-quay-180.html.

[13] "Động Cơ RC Servo MG996R," [ Trực tuyến ] Available: https://nshopvn.com/product/dong-co-rc-servo-mg996r/.

[14] "MODULEĐIỀUKHIỂNĐỘNGCƠL298N,"[Trựctuyến].Available:https:// msanpham.github.io/p0/27/699/module-dieu-khien-dong-co-l298n-lua- chon-mua-nhieu/?#checkrobot.[Accessed2 3 5 2 0 2 3 ]

Available: https://phongvupc.com/module-dieu-khien-dong-co-2a- nsh3472562544.html.[Accessed2352023].

Available:https://blog.mecsu.vn/module-dieu-khien-dong-co-l298n/.

[17] "Cách dùng Module điều khiển động cơL298N- c ầ u H đ ể đ i ề u k h i ể n đ ộ n g c ơ DC,"16 06 2016 [ Trựctuyến ].Available:http://arduino.vn/bai-viet/893- cach-dung-module-dieu-khien-dong-co-l298n-cau-h-de-dieu-khien-dong-co-dc. [Accessed2352 0 2 3 ]

[18] "Pin cell 18650 2600mAh 5C," [ Trực tuyến ].

Available:https://nshopvn.com/product/pin-cell-18650-2600mah-5c/.[Accessed2 3 5 2 0 2 3 ]

#definecambienvatcan12co nstintservoPin1=3;constint servoPin2=9;const intservoPin3 11;intangle1=0; int angle2 0;int angle3 0;voidsetup()

Mode(m3,OUTPUT);pinMo de(m4,OUTPUT);pinMode(e

UT); pinMode(ir4,INPUT);pinMode(ir5, INPUT);pinMode(CLP,INPUT);pi nMode(cambienvatcan,INPUT);pin Mode(servoPin1,

OUTPUT);pinMode(servoPin2, OUTPUT);pinMode(servoPin3,OU TPUT);

GH);digitalWrite(m2,LOW);d igitalWrite(m3,HIGH);d igitalWrite(m4,LOW);delay(1

GH);digitalWrite(m2,LOW);d igitalWrite(m3,HIGH);d igitalWrite(m4,LOW);delay(1

GH);digitalWrite(m2,LOW);d igitalWrite(m3,LOW);di gitalWrite(m4,HIGH); de lay(200);

LOW);delay(1000); for(angle1= 1 0 0 ; angle1>=3 0 ; a n g l e 1 - - ) { servoWrite(servoPin1,angle1);delay

} delay(100); for(angle3=0;angle3=0;angle2 ) { servoWrite(servoPin2,angle2);de lay(20);servoWrite(servoPin3,0);

} delay(100); for(angle1= 5 5 ; angle1< = 1 0 0 ; a n g l e 1 + + ) { servoWrite(servoPin1,angle1);delay

} delay(100); for(angle2=0;angle2=0;angle2 ) { servoWrite(servoPin2,angle2);delay(1

} delay(100); for(angle3= 80;angle3>=0 ; angle3-)

} delay(100); for( a n g l e 1 =1 0 0 ; angle1> = 4 0 ; a n g l e 1 - - ) { servoWrite(servoPin1,angle1);delay(1

} delay(100);analogWrit e(e1,1 3 0 ) ; analogWrite(e2,1 3 0 ) ; digitalWrite(m1,LOW);d igitalWrite(m2,LOW);di gitalWrite(m3,HIGH); di gitalWrite(m4,LOW);delay(15

W ) ; digitalWrite(m2,LOW);di gitalWrite(m3,LOW);digitalWrite( m4,LOW);delay(50);analogW rite(e1,130); analogWrite(e2,

130);digitalWrite(m1,LO W);digitalWrite(m2,LO W);digitalWrite(m3,HIG H);digitalWrite(m4,LOW);del ay(150);analogWrite(e1,1 30); analogWrite(e2,

130);digitalWrite(m1,LO W);digitalWrite(m2,LOW);digital Write(m3,LOW);digitalWrite(m4, LOW);delay(50);analogWrit e(e1,130); analogWrite(e2,

130);digitalWrite(m1,LO W);digitalWrite(m2,LO W);digitalWrite(m3,HIG H);digitalWrite(m4,LOW);del ay(150);analogWrite(e1,1 30); analogWrite(e2,

130);digitalWrite(m1,LOW);digitalWrite(m2,LOW);digitalWrite(m3,LOW);digitalWrite(m4,LOW);delay(50); analogWrite(e1,130); analogWrite(e2,

GH);digitalWrite(m2,LOW);d igitalWrite(m3,HIGH);d igitalWrite(m4,LOW);delay(1

//Chuyểnđổigócs a n g độrộngxungPWM intpulseWidth=m a p ( a n g l e , 0,90,544,2400); // Đưar a xungPWMđ ể điềukhiểnservodigital

HIGH);delayMicroseconds(pulseWidth);digit alWrite(pin,LOW);

C ả m biếnngoàicùng bênt r á i ints2=digitalRead(ir2);// Cảmbiếntrái ints3=digitalRead(ir3); / /

C ả m biếnngoàicù ng bênp h ả i intnutnhan=digitalRead(CL

{ if(cambienvc ==0) { digitalWrite(m1,LOW); digitalWrite(m2,LOW);digitalWrit e(m3,LOW);digitalWrite(m4,L OW);delay(200);analogWrit e(e1,160); analogWrite(e2,

160);digitalWrite(m1,HI GH);digitalWrite(m2,LOW);di gitalWrite(m3,HIGH);digit alWrite(m4,LOW);delay(30); digitalWrite(m1,LOW);di gitalWrite(m2,LOW);digi talWrite(m3,LOW);digita lWrite(m4,LOW);delay(3 0);analogWrite(e1,160); analogWrite(e2,

160);digitalWrite(m1,HIGH);digitalWrite(m2,LOW);di gitalWrite(m3,HIGH);digit alWrite(m4,LOW);delay(30);digitalWrite(m1,LOW);di gitalWrite(m2,LOW);digi talWrite(m3,LOW);digita lWrite(m4,LOW);delay(30);

//Đi thẳng với tốc độ nhanhanalogWrite(e1,140); analogWrite(e2,1 4 0 ) ; digitalWrite(m1,

//Nếucảm biếnbênt r ái pháthiệnline if((s1==0)&&(s2==1)&&(s3==0)&&(s4==0)&&(s5==0)){

140);digitalWrite(m1,HIGH); dig italWrite(m2,LOW);digitalWrite(m3,

//Nếucảm biếnngoàicùngpháthiệnđ ư ợ c đ ư ờn gl i n e if((s1==1)&&(s2==0)&&(s3==0)&&(s4==0)&&(s5==0)) {

//Đi vềphía bên phải kết hợphai động cơtrái phải đểquay nhanh hơnanalogWrite(e1,140); analogWrite(e2,

140);digitalWrite(m1,HIGH); dig italWrite(m2,LOW);digitalWrite(m3,

//Nếuc ảm biếnbênp h ả i pháthiệnđườngl i n e if((s1==0)&&(s2==0)&&(s3==0)&&(s4==1)&&(s5==0)) {

140);digitalWrite(m1,LOW);digi talWrite(m2,LOW);digitalWrite( m3,HIGH);digitalWrite(m4,LOW);

//Nếuc ảm biếnngoàicùngbênp h ả i pháthiệnđượcđ ư ờ n g l i n e if((s1==0)&&(s2==0)&&(s3==0)&&(s4==0)&&(s5==1))

//Đivềph í a bênt r ái kếthợphaiđộngcơtráiphảiđểquaynh anh hơnanalogWrite(e1,140); analogWrite(e2,

140);digitalWrite(m1,LOW);digi talWrite(m2,HIGH);digitalWrite(m3,

//Đi về phía bên tráianalogWrite(e1,1 4

140);digitalWrite(m1,HIGH); dig italWrite(m2,LOW);digitalWrite(m3,

//Nếucảm biếnởgiữa,t r á i vàngoài cùngbêntráiđềupháthiệnđườngline if((s1==1)&&(s2==1)&&(s3==1)&&(s4==0)&&(s5==0))

//Đi về phía bên phảianalogWrite(e1,1

Nếucảm biếnởg i ữ a , b ê n phảivàngoàicùngbênp h ải pháthiệnđườngl in e if((s1=0)&&(s2==0)&&(s3==1)&&(s4==1)&&(s5==1))

140);digitalWrite(m1,LOW);digi talWrite(m2,HIGH);digitalWrite(m3,

//Robot sẽ dừngdigitalWrite(m1,LOW);di gitalWrite(m2,LOW);digitalWrite(m3,LO

Lưuđồthuật toán

Lưuđồthuậttoántổngquát

Hình3 5 –Lưuđ ồ thuật toántổngqu át

Mô tả lưu đồ:Sau khi bắt đầu robot sẽ thực hiện chương trình dò line, nếu pháthiện vật cản bên trái thì sẽ thực hiện chương trình gắp vật cản bên trái, thực hiện xongchươngtrình gắpv ậ t cảnbêntráirobotsẽquay vềchươngtrìnhdòline, n ế u phát hiệnvật cản bên phải thì robot sẽ thực hiện chương trình gắp vật cản bên phải, khi thực hiệnxong chương trình gắp vật cản bên phải thì robot sẽ quay về chương trình dò line, và cứthếtiếptụclặpđilặplại.

Lưuđồthuậttoánchitiết

 Khicảmb i ế n pháthiệnmàutr ắng (đườngline) thìbit==1.

- Trườngh ợ p 1 1 : CBVC1== 0 , robotsẽt h ự c h i ệ n c h ư ơ n g t r ì n h gắpv ậ t c ả n bêntrái.

- Trườngh ợ p 1 1 : CBVC2==0 , robotsẽt h ự c h i ệ n c h ư ơ n g t r ì n h gắpv ậ t c ả n bênphải.

Thicônglắpráp

Sauk h i thiếtkếcánhtaytrênphầnmềm S o i l d W o r k s , tat i ế n hànhin3Dv à tiếptục lắprápcáckhớpkếtnốilạivớinhauđểthành sảnphẩmhoànthiện.

Sauk h i đ ã lắphoànthiệncánhtayt h ì r o b o t , tiếptụcl ắ p rápxed ò lineđ ể bámthe ođườnglinekếthợpcảmbiếnhồngngoạiđểpháthiệnvậtcản.

Sauk h i đãl ắ p ráptoànthiệncánhtayrobotvàxed ò line,tiếp theot ô i kếth ợ p chú nglại vớinhauđểtrởthànhxedòlinevàgắpvật khicảmbiếnvậtcảnphát hiện.

Vậnhành

Sauk h i t h ự c n g h i ệ m n h i ề u l ầ n t h ì c h o r a k ế t q u ả , t ô i đ ã n h ậ n đ ị n h r ằ n g r o b o t chạy ổn định và đápứ n g t ố t y ê u c ầ u c ủ a t ô i đ ư a r a T u y n h i ê n v ẫ n c ò n s a i s ố n h ư n g không đáng kể do ảnh hưởng từ ánh sáng bên ngoài chiếu vào đối với cảm biến hồngngoại,vàdosânthiđấuchưađượctrơntrunênxảyrasaisốnày.

Dướiđây làbảng đánh giám ứ c đ ộ ổ n đ ị n h c ủ a r o b o t k h i t h ự c n g h i ệ m t r ê n s â n thiđấu:

Bảng1 0 –Thựcn g h i ệm Robott rên sânthiđấut h ự c tế

Lần Tốcđộbămxung( PWM) Nguồnsửdụng Đánhg i á

Enb:1 0 0 12,6VDC Robotchạyổnđịnh, nhưng chậm

Robotchạyổnđịnh, tuy nhiên bắtđầuxuấthiệnsai sốsaukhiômcua

Kếtquảđạtđược

1 Hiểuđ ư ợ c n g u y ê n l í h o ạ t đ ộ n g c ủ a c á c m o d u l e , c á c h k ế t n ố i c á c m o d u l e v ớ i mạch Arduino Kết nối với board Arduino giao tiếp với máy tính thông quaphầnmềmlậptrìnhAdrunioIDE.

2 Hiểuđ ư ợ c c ác h vẽc ơ khícánhtayrobotthôngquap h ần mềmS o l i W o r k

3 Tiếpxúc vớinhiều module mới,c ó t h ể h ọ c h ỏ i v à t r a o d ồ i k i ế n t h ứ c t r o n g h ọ c tậptốthơn.

5 Hiểuđ ư ợ c c ác h lậpt r ì n h vàn ạp chươngtr ìn h choAdrunio.

Mặthạnchế

1 Doh ạ n chếvềmặt kinhphí nênchưathể làm hoànthiện.

2 Vẫncòn xuất hiện sai số do ảnh hưởngtừánh sáng bên ngoài và sân thi đấu chưađượctrơntru.

Hướngpháttriểnđềtài

2 Sửd ụ n g bộđiều khiểnPIDv à kếthợpencoderđểrobotbámt h e o linetốthơn.

3 Sửdụng thuật toánxữ líảnhđểrobot phát hiệnđượcv ậ t c ả n v à b á m t h e o l i n e thayvìdùngcảmbiếnhồngngoại.

[1] "HọcA r d u i n o Bài2 : N h ữ n g đ i ề u cơb ả n v ề Arduino,"[ T r ự c t u y ế n ] Availa ble: https://mlab.vn/index.php?_route_609-hoc-arduino-bai-2-nhung-dieu-co- ban-ve-arduino.html.[Accessed2052023].

[2] " Động Cơ Giảm Tốc Vàng 3V-9V," [Trực tuyến] Available: https://chotroihn.vn/dong-co-giam-toc-vang-3v-9v.[ A c c e s s e d 5 2 0 2 0 2 3 ]

[3] "Động cơgiảm tốc vàngkèmbánhxe,"[ Trực tuyến].

Available:https://nshopvn.com/product/dong-co-giam-toc-vang-kem-banh-xe/ [Accessed 2052023].

[4] "Mạchh ạ á p g i ả m á p B u c k DC-DCLM25963A( Vào3 5 - 3 5 V D C - Ra1.5- 30VDC )," [Trực tuyến].Available:https://shopee.vn/m%E1%BA%A1ch-h

%E1%BA%A1-%C3%A1p-buck-dc-dc-lm2596-3a-i.59073322.8276896624?utm_campaign=-

U6eW86Xmwygtg7jScYlZxuQJPrbSFtCCOrNQVRoemLgX5K3U- r.search.yahoo.com

&utm_mediumfiliates&utm_source=an_17104620000&utm_termru.

[5] "LM2596," [Trực tuyến] Available: https://w w w d i e n t u q u a n g s a n g c o m / p r o d u c t s / l m 2 5 9 6

[Trựct u y ế n ] Available: https://tailieubeginer.blogspot.com/2018/12/cam-bien- hong-ngoai- thu-phat-chung-ung.html.[Accessed2 0 5 2 0 2 3 ]

[7] "CảmB i ế n P h ả n X ạ H ồ n g N g o ạ i T C R T 5 0 0 0 I n f r a r e d ReflectiveSens or,"[ T r ự c tuyến] Available: https://hshop.vn/products/cam-bien-do-line-tcrt5000.[Accessed2052023].

[8] "cảm biến dò line TCRT5000L 5 mắt," [ Trực tuyến ].

Available:https://shopee.vn/c%E1%BA%A3m-bi%E1%BA%BFn-d%C3%B2-line-TCRT5000L-5- m%E1%BA%AFt-i.14731236.2029777925 [Accessed 20 5

[9] "E18-D80NKArduino Infrared Photoelectric Obstacle Avoidance SensorShieldSwitch,"[Trựctuyến].Available:https://www.umtmedia.com/products/ e18-d80nk-infrared-photoelectric-obstacle-avoidance-sensor- switch?variant504944349270.[ A c c e s s e d 2 0 5 2 0 2 3 ]

ProximitySensor,"[Trựctuyến ] Available: https://hshop.vn/products/cam-bien-vat- can-hong-ngoai-e3f-ds30c4-4.[Accessed2052023].

[11] "Động cơ servo SG90 180 độ," [ Trực tuyến ].

Available:https://nshopvn.com/product/dong-co-servo-sg90-tower-pro/.[ A c c e s s e d 2 0 5 2023].

[12] "Động cơServo SG90 (Góc Quay180),"[Tr ực tuyến] A v a i l a b l e : https://dientutuonglai.com/dong-co-servo-sg90-goc-quay-180.html.

[13] "Động Cơ RC Servo MG996R," [ Trực tuyến ] Available: https://nshopvn.com/product/dong-co-rc-servo-mg996r/.

[14] "MODULEĐIỀUKHIỂNĐỘNGCƠL298N,"[Trựctuyến].Available:https:// msanpham.github.io/p0/27/699/module-dieu-khien-dong-co-l298n-lua- chon-mua-nhieu/?#checkrobot.[Accessed2 3 5 2 0 2 3 ]

Available: https://phongvupc.com/module-dieu-khien-dong-co-2a- nsh3472562544.html.[Accessed2352023].

Available:https://blog.mecsu.vn/module-dieu-khien-dong-co-l298n/.

[17] "Cách dùng Module điều khiển động cơL298N- c ầ u H đ ể đ i ề u k h i ể n đ ộ n g c ơ DC,"16 06 2016 [ Trựctuyến ].Available:http://arduino.vn/bai-viet/893- cach-dung-module-dieu-khien-dong-co-l298n-cau-h-de-dieu-khien-dong-co-dc. [Accessed2352 0 2 3 ]

[18] "Pin cell 18650 2600mAh 5C," [ Trực tuyến ].

Available:https://nshopvn.com/product/pin-cell-18650-2600mah-5c/.[Accessed2 3 5 2 0 2 3 ]

#definecambienvatcan12co nstintservoPin1=3;constint servoPin2=9;const intservoPin3 11;intangle1=0; int angle2 0;int angle3 0;voidsetup()

Mode(m3,OUTPUT);pinMo de(m4,OUTPUT);pinMode(e

UT); pinMode(ir4,INPUT);pinMode(ir5, INPUT);pinMode(CLP,INPUT);pi nMode(cambienvatcan,INPUT);pin Mode(servoPin1,

OUTPUT);pinMode(servoPin2, OUTPUT);pinMode(servoPin3,OU TPUT);

GH);digitalWrite(m2,LOW);d igitalWrite(m3,HIGH);d igitalWrite(m4,LOW);delay(1

GH);digitalWrite(m2,LOW);d igitalWrite(m3,HIGH);d igitalWrite(m4,LOW);delay(1

GH);digitalWrite(m2,LOW);d igitalWrite(m3,LOW);di gitalWrite(m4,HIGH); de lay(200);

LOW);delay(1000); for(angle1= 1 0 0 ; angle1>=3 0 ; a n g l e 1 - - ) { servoWrite(servoPin1,angle1);delay

} delay(100); for(angle3=0;angle3=0;angle2 ) { servoWrite(servoPin2,angle2);de lay(20);servoWrite(servoPin3,0);

} delay(100); for(angle1= 5 5 ; angle1< = 1 0 0 ; a n g l e 1 + + ) { servoWrite(servoPin1,angle1);delay

} delay(100); for(angle2=0;angle2=0;angle2 ) { servoWrite(servoPin2,angle2);delay(1

} delay(100); for(angle3= 80;angle3>=0 ; angle3-)

} delay(100); for( a n g l e 1 =1 0 0 ; angle1> = 4 0 ; a n g l e 1 - - ) { servoWrite(servoPin1,angle1);delay(1

} delay(100);analogWrit e(e1,1 3 0 ) ; analogWrite(e2,1 3 0 ) ; digitalWrite(m1,LOW);d igitalWrite(m2,LOW);di gitalWrite(m3,HIGH); di gitalWrite(m4,LOW);delay(15

W ) ; digitalWrite(m2,LOW);di gitalWrite(m3,LOW);digitalWrite( m4,LOW);delay(50);analogW rite(e1,130); analogWrite(e2,

130);digitalWrite(m1,LO W);digitalWrite(m2,LO W);digitalWrite(m3,HIG H);digitalWrite(m4,LOW);del ay(150);analogWrite(e1,1 30); analogWrite(e2,

130);digitalWrite(m1,LO W);digitalWrite(m2,LOW);digital Write(m3,LOW);digitalWrite(m4, LOW);delay(50);analogWrit e(e1,130); analogWrite(e2,

130);digitalWrite(m1,LO W);digitalWrite(m2,LO W);digitalWrite(m3,HIG H);digitalWrite(m4,LOW);del ay(150);analogWrite(e1,1 30); analogWrite(e2,

130);digitalWrite(m1,LOW);digitalWrite(m2,LOW);digitalWrite(m3,LOW);digitalWrite(m4,LOW);delay(50); analogWrite(e1,130); analogWrite(e2,

GH);digitalWrite(m2,LOW);d igitalWrite(m3,HIGH);d igitalWrite(m4,LOW);delay(1

//Chuyểnđổigócs a n g độrộngxungPWM intpulseWidth=m a p ( a n g l e , 0,90,544,2400); // Đưar a xungPWMđ ể điềukhiểnservodigital

HIGH);delayMicroseconds(pulseWidth);digit alWrite(pin,LOW);

C ả m biếnngoàicùng bênt r á i ints2=digitalRead(ir2);// Cảmbiếntrái ints3=digitalRead(ir3); / /

C ả m biếnngoàicù ng bênp h ả i intnutnhan=digitalRead(CL

{ if(cambienvc ==0) { digitalWrite(m1,LOW); digitalWrite(m2,LOW);digitalWrit e(m3,LOW);digitalWrite(m4,L OW);delay(200);analogWrit e(e1,160); analogWrite(e2,

160);digitalWrite(m1,HI GH);digitalWrite(m2,LOW);di gitalWrite(m3,HIGH);digit alWrite(m4,LOW);delay(30); digitalWrite(m1,LOW);di gitalWrite(m2,LOW);digi talWrite(m3,LOW);digita lWrite(m4,LOW);delay(3 0);analogWrite(e1,160); analogWrite(e2,

160);digitalWrite(m1,HIGH);digitalWrite(m2,LOW);di gitalWrite(m3,HIGH);digit alWrite(m4,LOW);delay(30);digitalWrite(m1,LOW);di gitalWrite(m2,LOW);digi talWrite(m3,LOW);digita lWrite(m4,LOW);delay(30);

//Đi thẳng với tốc độ nhanhanalogWrite(e1,140); analogWrite(e2,1 4 0 ) ; digitalWrite(m1,

//Nếucảm biếnbênt r ái pháthiệnline if((s1==0)&&(s2==1)&&(s3==0)&&(s4==0)&&(s5==0)){

140);digitalWrite(m1,HIGH); dig italWrite(m2,LOW);digitalWrite(m3,

//Nếucảm biếnngoàicùngpháthiệnđ ư ợ c đ ư ờn gl i n e if((s1==1)&&(s2==0)&&(s3==0)&&(s4==0)&&(s5==0)) {

//Đi vềphía bên phải kết hợphai động cơtrái phải đểquay nhanh hơnanalogWrite(e1,140); analogWrite(e2,

140);digitalWrite(m1,HIGH); dig italWrite(m2,LOW);digitalWrite(m3,

//Nếuc ảm biếnbênp h ả i pháthiệnđườngl i n e if((s1==0)&&(s2==0)&&(s3==0)&&(s4==1)&&(s5==0)) {

140);digitalWrite(m1,LOW);digi talWrite(m2,LOW);digitalWrite( m3,HIGH);digitalWrite(m4,LOW);

//Nếuc ảm biếnngoàicùngbênp h ả i pháthiệnđượcđ ư ờ n g l i n e if((s1==0)&&(s2==0)&&(s3==0)&&(s4==0)&&(s5==1))

//Đivềph í a bênt r ái kếthợphaiđộngcơtráiphảiđểquaynh anh hơnanalogWrite(e1,140); analogWrite(e2,

140);digitalWrite(m1,LOW);digi talWrite(m2,HIGH);digitalWrite(m3,

//Đi về phía bên tráianalogWrite(e1,1 4

140);digitalWrite(m1,HIGH); dig italWrite(m2,LOW);digitalWrite(m3,

//Nếucảm biếnởgiữa,t r á i vàngoài cùngbêntráiđềupháthiệnđườngline if((s1==1)&&(s2==1)&&(s3==1)&&(s4==0)&&(s5==0))

//Đi về phía bên phảianalogWrite(e1,1

Nếucảm biếnởg i ữ a , b ê n phảivàngoàicùngbênp h ải pháthiệnđườngl in e if((s1=0)&&(s2==0)&&(s3==1)&&(s4==1)&&(s5==1))

140);digitalWrite(m1,LOW);digi talWrite(m2,HIGH);digitalWrite(m3,

//Robot sẽ dừngdigitalWrite(m1,LOW);di gitalWrite(m2,LOW);digitalWrite(m3,LO

Ngày đăng: 02/04/2024, 14:19

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w