Đối tượng và phạm vi nghiên cứu *Đối tượng nghiên cứu của đề tài "Thiết kế thi công robot tránh vật cản" là các hệ thống điều khiển robot và các thành phần cơ khí, điện tử cần thiết để t
TỔNG QUAN VỀ ĐỀ TÀI
Lý do chọn đề tài
Tự động hóa là tổng hợp của nhiều lĩnh vực như cơ khí, điều khiển, công nghệ thông tin và cơ điện tử Các lĩnh vực này kết hợp lại với nhau tạo thành các hệ thống tự động hóa và cao hơn là tự động cả quá trình sản xuất Ngành công nghiệp tự động hóa ngày càng có vai trò quan trọng và hết sức cần thiết để đáp ứng mục tiêu phát triển kinh tế, nhất là trong quá trình công nghiệp hóa-hiện đại hóa như hiện nay Nó đòi hỏi một nguồn nhân lực có trình độ cao để vận hành.
Ngày nay, robot đã đạt được những thành tựu to lớn trong sản xuất công nghiệp cũng như là đời sống Sản xuất robot là ngành công nghiệp trị giá trị hàng tỉ USD và ngày càng phát triển mạnh trong các họ robot chúng ta không thể không nhắc đến mobile robot với những đặc thù riêng mà các loại robot khác không có.
Mobile robot có thể di chuyển rất linh hoạt do đó tạo nên không gian hoạt động lớn và cho đến nay nó đã dần khẳng định vai trò quan trọng không thể thiếu trong nhiều lĩnh vực, thu hút được nhiều sự đầu tư và nghiên cứu Mobile robot cũng được chia ra làm nhiều loại: robot học đường đi, robot dò đường line, robot tránh vật cản,robot tìm đường trong mê cung Trong đó robot dò đường line dễ dàng ứng dụng nhiều trong cuộc sống Việc phát triển robot này sẽ phục rất nhiều cho con người.Những lợi ích vai trò to lớn màn robot dò đường line đem lại ho cuộc sống và với sự đam mê tìm tồi của bản thân vì thế chúng em mong muốn được nghiên cứu và làm rõ đề tài “Thiết kế xe robot tránh vật cản” để em có thể hiểu hơn về cơ chế hoạt,ứng dụng, và từ đó nâng cao tri thức bản thân.
Mục đích đề tài
"Thiết kế thi công robot tránh vật cản" là phát triển một mô hình robot có khả năng tự động di chuyển và phát hiện vật cản trên đường, sau đó sử dụng tay cầm robot để gắp và vận chuyển chúng Đây là một đề tài có tính ứng dụng cao trong ngành công nghiệp tự động hóa và giúp tăng hiệu quả sản xuất, đồng thời cũng giúp hiểu rõ hơn về cách hoạt động của các hệ thống điều khiển robot.
Đối tượng và phạm vi nghiên cứu
*Đối tượng nghiên cứu của đề tài "Thiết kế thi công robot tránh vật cản" là các hệ thống điều khiển robot và các thành phần cơ khí, điện tử cần thiết để tạo ra một mô hình xe robot có khả năng tự động di chuyển trên đường thẳng và phát hiện, gắp vật cản, đồng thời sử dụng bo mạch Arduino R3 để điều khiển.
*Phạm vi nghiên cứu bao gồm:
• Thiết kế và lắp ráp các thành phần cơ khí và điện tử như động cơ, bánh xe, cảm biến, tay cầm robot và các linh kiện điện tử điều khiển để tạo thành một hệ thống robot hoàn chỉnh.
• Lập trình điều khiển robot sử dụng Arduino R3 để có thể phát hiện đường line, di chuyển trên đường và phát hiện vật cản trên đường.
• Thiết kế và thi công một bộ pin và sạc để cung cấp năng lượng cho hệ thống robot.
• Kiểm tra, đánh giá và tối ưu hoá hiệu suất của hệ thống robot. Đề tài tập trung vào việc thiết kế mô hình xe robot dò line và gắp vật cản sử dụng bo mạch Arduino R3, không bao gồm các nghiên cứu về trí tuệ nhân tạo hay các vấn đề liên quan đến xử lý hình ảnh phức tạp.
*Ứng dụng của “Mô hình robot dò line gấp vật”:
• Công nghiệp: Robot có khả năng tự động dò line và gắp vật cản có thể được sử dụng trong quá trình sản xuất, giúp tăng năng suất và độ chính xác của quá trình sản xuất.
• Dịch vụ và giao thông: Robot có thể được sử dụng để thu thập dữ liệu về tình trạng giao thông trên đường, phát hiện và di chuyển các vật cản trên đường, giúp giảm thiểu tai nạn giao thông.
• Giáo dục và giải trí: Robot có khả năng dò line và gắp vật cản có thể được sử dụng để giới thiệu về công nghệ robot và kỹ năng lập trình cho trẻ em, đồng thời có thể được sử dụng trong các hoạt động giải trí.
• Y tế: Robot có khả năng tự động di chuyển và phát hiện vật cản có thể được sử dụng trong các phòng mổ để hỗ trợ các bác sĩ trong quá trình phẫu thuật.Với các ứng dụng khác nhau, đề tài này có thể mang lại nhiều lợi ích cho con người và giúp tăng cường sự phát triển của ngành công nghiệp robot.
Phương pháp nghiên cứu
Tìm hiểu và nghiên cứu các kiến thức về lý thuyết robot, lý thuyết điều khiển, cơ khí và điện tử.
Thiết kế kiến trúc tổng thể của robot, bao gồm cơ khí và điện tử.
Lựa chọn các linh kiện và phần mềm cần thiết để xây dựng robot, bao gồm vi điều khiển Arduino R3, các cảm biến, động cơ và bộ nguồn.
Lập trình cho robot để điều khiển chuyển động, dò line và gắp vật cản. Thực hiện các thí nghiệm và thử nghiệm để đánh giá hiệu suất của robot, bao gồm độ chính xác trong quá trình dò line và khả năng gắp vật cản. Đánh giá kết quả thí nghiệm và thử nghiệm, tìm hiểu những hạn chế và điều chỉnh robot để cải thiện hiệu suất.
Phương pháp nghiên cứu này sử dụng kết hợp giữa lý thuyết và thực tiễn để đạt được mục tiêu của đề tài Các thí nghiệm và thử nghiệm được thực hiện để đánh giá hiệu suất của robot và cải thiện các yếu điểm trong quá trình thiết kế và xây dựng.
Robot tự hành di chuyển theo line, thực hiện nhiệm vụ thi đấu mà không có sự điều khiển từ xa, và có thể tránh được vật Đảm bảo được sự ổn định của xe, ít bị nhiễu do yếu tố phần cứng ảnh hưởng.
Hình 1 1 Thông số sa bàn
1.4.2 Tìm hiểu các mô hình từ các cuộc thi
❖Japan Robotrace Contest 2014 - Đội chiến thắng: CartisX04
Hình 1 2 Hình ảnh thực tế và sơ đồ nguyên lý của CartisX04
+ Cảm biến: 6 bộ cảm biến hồng ngoại, 2 cảm biến
+ Bánh sau: 4 bánh chủ động - 2 động cơ DC.
+ Bánh trước: 1 bánh lái có động cơ chỉ đạo
+ Tốc độ tối đa: Vmax=4,2 m/s
+ Kết cấu giúp xe dễ cân bằng hơn nhưng phức tạp, xảy ra hiện tượng trượt khi rẽ.
❖Cuộc thi ở Tây Ban Nha 2010 - Đội chiến thắng: Silvestre
Hình 1 3 Hình ảnh thực tế và sơ đồ nguyên lý của Robot Silvestre
+ Cảm biến: 8 bộ cảm biến hồng ngoại.
+ Bánh sau: 2 bánh chủ động - 2 động cơ DC.
+ Bánh trước: 1 bánh tự lựa – bánh mắt trâu.
+ Tốc độ tối đa: Vmax=2,24 m/s
+ Kết cấu này khá đơn giản, độ đồng phẳng cao, xe rẽ được các bán kính cong nhỏ nhưng khó cân bằng.
❖Cuộc thi Chibots ở Mỹ - Đội chiến thắng: Fireball
Hình 1 4 Hình ảnh thực tế và sơ đồ nguyên lý của Robot Fireball
+ Cảm biến: 16 bộ cảm biến hồng ngoại
+ 4 bánh chủ động - 4 động cơ DC
+ Tốc độ tối đa: Vmax=3 m/s
+ Kết cấu phức tạp, độ đồng phẳng thấp, khó điều khiển
CƠ SỞ LÝ THUYẾT
Giới thiệu Arduino Uno R3
Arduino Uno là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển
Microchip ATmega328 được phát triển bởi Arduino.cc Bảng mạch được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thể giao tiếp với các bảng mạch mở rộng khác nhau Mạch Arduino Uno thích hợp cho những bạn mới tiếp cận và đam mê về điện tử, lập trình…Dựa trên nền tảng mở do Arduino.cc cung cấp các bạn dễ dàng xây dựng cho mình một dự án nhanh nhất ( lập trình Robot, xe tự hành, điều khiển bật tắt led…).[1]
Khi arduino chưa ra đời, để làm được một dự án điện tử nhỏ liên quan đến lập trình, biên dịch, chúng ta cần đến sự hỗ trợ của các thiết bị biên dịch khác để hỗ trợ Ví dụ như, dùng Vi điều khiển PIC hoặc IC vi điều khiển họ 8051 , chúng ta phải thiết kế chân nạp onboard, hoặc mua các thiết bị hỗ trợ nạp và biên dịch như mạch nạp
Hiện nay Arduino được biết đến ở Việt Nam rất rộng rãi Từ học sinh trung học, đến sinh viên và người đi làm Những dự án nhỏ và lớn được thực hiện một cách rất nhanh, các mã nguồn mở được chia sẻ nhiều trên diễn dàn trong nước và nước ngoài Giúp ích rất nhiều cho những bạn theo đam mê nghiên cứu chế tạo những sản phẩm có ích cho xã hội.
Trong những năm qua, Arduino là bộ não cho hàng ngàn dự án điện tử lớn nhỏ, từ những sản phẩm ra đời ứng dụng đơn giản trong cuộc sống đến những dự án khoa học phức tạp.
Hình 2 2 Sơ đồ cấu trúc Arduino Uno R3
Cứ như vậy, thư viện mã nguồn mở ngày một tăng lên, giúp ích cho rất nhiều người mới biết đến Arduino cũng như những chuyên viên lập trình nhúng và chuyên gia cùng tham khảo và xây dựng tiếp nối.…
Bạn muốn thiết kế điều khiển thiết bị thông qua cảm biến ánh sáng, Đo nồng độ hóa chất, khí ga và xử lý thông qua cảm biến nồng độ và cảm biến khí, Bạn muốn làm
1 con robot mini, Bạn muốn quản lý tắt mở thiết bị điện trong nhà, bạn muốn điều khiển motor, nhận dạng ID, Khó hơn xíu là bạn muốn làm một máy CNC hoặc máy in 3D mini, máy bay không người lái ( Flycam) một hệ thống thu thập dữ liệu thông qua GSM, xử lý ảnh,điều khiển vạn vật thông qua internet giao tiếp với điện thoại thông minh Để làm được điều đó, từ đơn giản đến phức tạp bạn cần sử dụng ngôn ngữ lập trình Arduino dựa trên sơ đồ, hệ thống của bạn thiết kế, thông qua phần mềm ArduinoIDE, để thực hiện những yêu cầu đó đưa về bộ phận xử lý trung tâm ( Arduino)
2.1.2 Các thông số của Arduino Uno R3:
Bảng 2 1 Thông số kỹ thuật của Arduino R3
Chip điều khiển ATmega328P Điện áp hoạt động 5V Điện áp đầu vào (khuyên dùng) 7-12V Điện áp đầu vào (giới hạn) 6-20V
Số chân Digital 14 (trong đó 6 chân cung cấp đầu ra PWM)
Dòng điện DC trên mỗi chân I/O 20 mA
Dòng điện DC trên chân 3.3V 50 mA
Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by bootloader
Tốc độ thạch anh 16 MHz
LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13 Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW).
VIN: Chân này dùng để cấp nguồn ngoài (điện áp cấp từ 7-12VDC).
5V: Điện áp ra 5V (dòng điện trên mỗi chân này tối đa là 500mA).
3V3: Điện áp ra 3.3V (dòng điện trên mỗi chân này tối đa là 50mA).
GND: Là chân mang điện cực âm trên board.
IOREF: Điệp áp hoạt động của vi điều khiển trên Arduino UNO và có thể đọc điện áp trên chân IOREF Chân IOREF không dùng để làm chân cấp nguồn.
Hình 2 3 Chân cấp nguồn Arduino Uno R3
• 32 KB bộ nhớ Plash: trong đó bootloader chiếm 0.5KB.
• 2 KB cho SRAM: (Static Random Access Menory): giá trị các biến khai báo sẽ được lưu ở đây Khai báo càng nhiều biến thì càng tốn nhiều bộ nhớ RAM Khi mất nguồn dữ liệu trên SRAM sẽ bị mất.
• 1 KB cho EEPROM: (Electrically Eraseble Programmable Read Only Memory): Là nơi có thể đọc và ghi dữ liệu vào đây và không bị mất dữ liệu khi mất nguồn.
2.1.5 Các chân đầu vào và đầu ra
Trên Board Arduino Uno có 14 chân Digital được sử dụng để làm chân đầu vào và đầu ra và chúng sử dụng các hàm pinMode(), digitalWrite(), digitalRead() Giá trị điện áp trên mỗi chân là 5V, dòng trên mỗi chân là 20mA và bên trong có điện trở kéo lên là 20-50 ohm Dòng tối đa trên mỗi chân I/O không vượt quá 40mA để tránh trường hợp gây hỏng board mạch.
Ngoài ra, một số chân Digital có chức năng đặt biệt:
• Digital: Các chân I/O digital (chân số 2 – 13 ) được sử dụng làm chân nhập, xuất tín hiệu số thông qua các hàm chính : pinMode(), digitalWrite(), digitalRead(). Điện áp hoạt động là 5V, dòng điện qua các chân này ở chế độ bình thường là 20mA, cấp dòng quá 40mA sẽ phá hỏng vi điều khiển.
• Analog :Uno có 6 chân Input analog (A0 – A5), độ phân giải mỗi chân là 10 bit
(0 – 1023 ) Các chân này dùng để đọc tín hiệu điện áp 0 – 5V (mặc định) tương ứng với 1024 giá trị, sử dụng hàm analogRead().
• Serial: 0 (RX) và 1 (TX): Được sử dụng để nhận dữ liệu (RX) và truyền dữ liệu
• PWM: 3, 5, 6, 9, 10 và 11 Cung cấp đầu ra xung PWM với độ phân giải 8 bit bằng hàm analogWrite ().
• SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Các chân này hỗ trợ giao tiếp
SPI bằng thư viện SPI.
• LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13 Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW).
• TWI/I2C: A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
Hình 2 4 Sơ đồ các chân đầu vào và đầu ra
2.1.6 Giới thiệu Chip điều khiển ATmega328P:
ATmega328P là một trong những vi điều khiển công nghệ AVR hiệu suất cao với số lượng chân cắm và tính năng lớn. Được thiết kế bằng công nghệ CMOS 8-bit và CPU RSIC giúp nâng cao hiệu suất và tối ưu mức sử dụng năng lượng nhờ có chế độ ngủ tự động và cảm biến nhiệt độ bên trong.
ATmega328P có mạch bảo vệ bên trong và có nhiều cách lập trình giúp các kỹ sư sử dụng linh hoạt ở các tính huống khác nhau IC hỗ trợ nhiều giao thức giao tiếp hiện đại cho các module khác và chính bộ vi điều khiển, đó là lý do tại sao ATmega328P được sử dụng phổ biến.
ATmega328P là một trong những vi điều khiển nổi tiếng của Atmel vì nó được sử dụng trong bo mạch arduino UNO.
Giới thiệu Mạch cầu H
Mạch cầu H là một mạch đơn giản dùng để điều khiển động cơ DC quay thuận hoặc quay nghịch Trong thực tế, có nhiều kiểu mạch cầu H khác nhau tùy vào cách chúng ta lựa chọn linh kiện có dòng điện, áp điều khiển lớn hay nhỏ, tần số xung PWM… Và chúng sẽ quyết định đến khả năng điều khiển của cầu H.
Hình 2 6 Mô hình mạch cầu H
Một động cơ DC có thể quay thuận hoặc quay nghịch tùy thuộc vào cách bạn mắc cực âm và dương cho motor đó Ví dụ, động cơ DC có hai đầu A và B Nếu bạn nối A vào cực dương (+) và B vào cực âm (-) của nguồn thì động cơ quay theo chiều thuận (giả sử cùng chiều kim đồng hồ) Bây giờ bạn nối ngược lại, A vào (-) và B vào (+), động cơ sẽ quay nghịch ( giả sử ngược chiều kim đồng hồ).
Tương tự, khi ta đóng S1 và S4, ta đã cho A nối với cực dương (+) và B nối vớ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ề mass làm động cơ quay theo chiều thuận.
Hình 2 8 Động cơ quay chiều thuận
Ngược lại, khi ta đóng S2 và S3, động cơ quay nghịch.
Hình 2 7 Động cơ quay chiều nghịch
Như vậy, mạch cầu H dùng để đảo chiều quay động cơ
Lưu ý, bạn không bao giờ được phép đóng cùng lúc S1 và S2 hoặc S3 và S4 hoặc thậm chí là đóng cùng lúc 4 công tắc Nếu bạn làm như vậy, bạn đã tạo ra một đường dẫn trực tiếp từ Vcc xuống GND và gây ra hiện tượng ngắn mạch Acquy của bạn sẽ bị hỏng và nghiêm trọng hơn có thể cháy nổ mạch.
Vậy nếu ta đóng cùng lúc S1 và S3 hoặc S2 và S4 thì chuyện gì sẽ xảy ra? Với trường hợp này, cả 2 đầu A, B của động cơ cùng nối với một mức điện áp, sẽ không có dòng điện nào chạy qua, mạch cầu H không hoạt động Đây có thể coi là một cách
“thắng” động cơ (nhưng không phải lúc nào cũng có tác dụng) Nói chung, chúng ta nên tránh trường hợp này xảy ra, nếu muốn mạch cầu không hoạt động thì nên mở tất cả các khóa thay vì dùng trường hợp này.
Sau khi đã cơ bản nắm được nguyên lý hoạt động của mạch cầu H, phần tiếp theo chúng ta sẽ khảo sát cách thiết kế mạch này bằng các loại linh kiện cụ thể Thành phần chính của mạch cầu H chính là các “khóa”, việc chọn linh kiện để làm các khóa này phụ thuộc vào mục đích sử dụng mạch cầu, loại đối tượng cần điều khiển, công suất tiêu thụ của đối tượng và cả hiểu biết, điều kiện của người thiết kế Nhìn chung,các khóa của mạch cầu H thường được chế tạo bằng rờ le (relay), BJT (BipolarJunction Transistor) hay MOSFET (Metal Oxide Semiconductor Field-EffectTransistor) Phần thiết kế mạch cầu H vì vậy sẽ tập trung vào 3 loại linh kiện này.
Giới thiệu cảm biến hồng ngoại
Cảm biến hồng ngoại (Tiếng Anh: Infrared Sensor hoặc viết tắt IR Sensor) là một thiết bị điện tử phát hoặc nhận bức xạ hồng ngoại trong môi trường xung quanh. Khi vật thể phát ra nhiệt độ trên 35 độ C thì sẽ phát ra bức xạ hồng ngoại con người không thể nhìn thấy được.
Hình 2 9 Cảm biến hồng ngoại
2.3.2.Phân loại cảm biến hồng ngoại
Cảm biến hồng ngoại hiện nay gồm có 2 loại chính là:
Cảm biến hồng ngoại chủ động:
Khi vật thể đến gần, tia hồng ngoại phát ra từ thiết bị sẽ sẽ đụng vào các vật thể và phản xạ lại, từ đó cảm biến nhận diện được vật thể.
Gồm 2 thành phần: nguồn phát hồng ngoại sử dụng một bóng đèn LED để phát ra tia sóng hồng ngoại và cảm biến hồng ngoại Khi gặp vật thể, tia hồng ngoại bật ngược lại và đi vào cảm biến hồng ngoại.
Cảm biến hồng ngoại thụ động:
Không tự phát ra tia hồng ngoại mà sẽ tự phát hiện và nhận tia hồng ngoại từ các vật thể khát.
Đơn giản là cảm biến nhiệt điện, bộ lọc hồng ngoại và thấu kính Fresnel để phát hiện ra tia hồng ngoại phát ra từ vật thể.
2.3.3 Cơ chế hoạt động của cảm biến
Hình 2 10 Các kiểu đường line
Ta có thể sử dụng đường line trắng trên nền đen hoặc ngược lại sao cho cảm biến ở xe có thể nhận diện và chạy theo.
Hình 2 11 Cơ chế hoạt động của cảm biến
Cảm biến dò line hay được biết đến chính xác là cảm biến hồng ngoại hướng xuống bề mặt di chuyển Chúng giúp phát hiện bề mặt phản xạ hoặc hấp thụ ánh sáng ở khoảng cách gần Chúng thường có mắt hồng ngoại chuyên thu ánh sáng và mắt chuyên phát ánh sáng Trường hợp mắt phát phát tín hiệu:
Nếu bề mặt phản xạ lại ánh sáng, tín hiệu đó sẽ được mắt thu thu nhận → Từ đó ta xác định được tín hiệu và đưa ra vùng sáng xác định ( Những bề mặt, vùng phản xạ gần như phản xạ hết những ánh sáng đi qua nó)
Nếu bề mặt không phản xạ lại ánh sáng, không có tín hiệu về mắt thu → Từ đó ta không nhận được tín hiệu và xác định được vùng tối ( Những bề mặt, vùng tối hấp thụ gần như hết ánh sáng đi qua nó)
Khoảng làm việc của cảm biến: < 0.5m
Như đã nói ở trên cảm biến dò line sẽ hoạt động theo nguyên lý thu – phát ánh sáng.Các mắt phát sẽ phát ra tia hồng ngoại có bước sóng hồng ngoại Mắt thu ở bề mặt chứa vùng sáng sẽ hấp thụ ánh sáng hồng ngoại đó Ở trạng thái bình thường mắt thu có nội trở rất lớn (hàng trăm Kilo-Ohm) Khi thu nhận tia hồng ngoại vào nội trở của mắt thu giảm (vài chục Kilo-Ohm).
Vì thế người ta gọi là Robot dò line do trong môi trường làm việc luôn có những đường Line có tính chất phản xạ ánh sáng cao Đây sẽ là con đường di chuyển chủ yếu của Robot.
2.3.4 Ứng dụng của cảm biến hồng ngoại
Cảm biến hồng ngoại được sử dụng trong các thiết bị SmartHome để phát hiện chuyển động của con người, từ đó tự động điều khiển các thiết bị hoạt động theo như lập trình Các ứng dụng nổi bật của cảm biến hồng ngoại gồm có:
*Bật tắt đèn tự động
Bằng việc phát hiện chuyển động hoặc tia sóng hồng ngoại phát ra từ con người, cảm biến hồng ngoại sẽ kết nối với đèn để bật tắt tự động rất tiện lợi và tiết kiệm điện năng Cảm biến hồng ngoại thường được đặt ở vị trí như hàng lang để chiếu sáng lối đi, cửa ra vào hoặc nhà vệ sinh.
Hình 2 12 Bật tắt đèn tự động
*Cảm biến hồng ngoại giúp chống trộm
Hình 2 13 Cảm biến hồng ngoại giúp chống trộm
Khi phát hiện ra vật thể lạ xâm nhập vào nhà như hàng rào, ban công, cảm biến hồng ngoại nhận diện được sẽ kết nối với thiết bị âm thanh phát ra tiếng để báo động chủ nhà để đề phòng và có biện pháp xử lý.
*Giúp mở cửa tự động
Cảm biến hồng ngoại được đặt ở phía trên sẽ phát hiện các chuyển động ra vào từ đó điều khiển cửa đóng/mở cho phù hợp Bạn có thể thấy rõ nhất ứng dụng này ở các trung tâm thương mại hay văn phòng.
Hình 2 14 Giúp mở cửa tự động
Chuẩn giao tiếp I2C giữa Arduino R3 và cảm biến hồng ngoại TCRT5000
TCRT5000 Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit Đây là đường Bus giao tiếp giữa các IC với nhau I2C mặc dù được phát triển bởi Phillips, nhưng nó đã được rất nhiều nhà sản xuất IC trên thế giới sử dụng I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển, có thể kể ra đây một vài tên tuổi ngoài Phillips như: Texas Instrument(TI), MaximDallas, analog Device, National Semiconductor, vv Bus I2C được sử dụng làm bus giao tiếo ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM, vv chip nhớnhư: RAM tĩnh (Static RAM), EEPROM, bộ chuyển đổi tương tự số (ADC), sốtương tự (DAC), IC điều khiển LCD, LED,
Arduino Uno R3 có hai chân để kết nối giao tiếp I2C là chân A4 (SDA) và chân A5 (SCL) Chân SDA là chân dữ liệu (data) và chân SCL là chân xung đồng hồ (clock) Cảm biến TCRT5000 không có địa chỉ I2C mặc định vì nó là một cảm biến analog Thay vì sử dụng giao tiếp I2C, chúng ta sẽ sử dụng chân analog trên Arduino để đọc giá trị đầu vào từ cảm biến TCRT5000 Chân analog trên Arduino Uno được đánh số từ A0 đến A5 và chúng ta có thể sử dụng chân A0 trên Arduino để đọc giá trị đầu vào từ cảm biến TCRT5000.
I2C sử dụng hai đường truyền tín hiệu:
• Một đường xung clock (SCL) chỉ do Master phát đi (thông thường ở 100kHz và 400kHz, mức cao nhất là 1MHz và 3.4MHz).
• Một đường dữ liệu (SDA) theo 2 hướng.
Có rất nhiều thiết bị có thể cũng được kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ master/slave tồn tại trong suốt thời gian kết nối Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là master hay slave.
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó còn được cấu hình là thiết bị master hay slave Đó là vì trên một bus I2C thì quyền điều khiển thuộc về thiết bị master hay slave Thiết bị master nắm vai trò tạo xung clock đồng bộ cho toàn hệ thống, khi giữa hai thiết bị master – slave giao tiếp thì thiết bị master có nhiệm vụ tạo xung clock đồng bộ và quản lý địa chỉ của thiết bị slave trong suốt quá trình giao tiếp Thiết bị master giữ vai trò chủ động, còn thiết bị slave giữ vai trò bị động trong việc giao tiếp Về lý thuyết lẫn thực tế I2C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể có tới 27 địa chỉ tương ứng với 128 thiết bị có thể kết nối, nhưng chỉ có 112, 16 địa chỉ còn lại được sử dụng vào mục đích riêng Bit còn lại quy định việc đọc hay ghi dữ liệu (1 là write, 0 là read).
Có một lưu ý nhỏ về xung clock Bản chất của I2C là dữ liệu trên đường SDA chỉ được ghi nhận ở sườn lên của chân CLK Do vậy xung clock có thể không cần chính xác tốc độ là 1MHz hay 3.4MHz Lợi dụng điểm này có thể sử dụng 2 chânGPIO để làm chân giao tiếp I2C mềm mà không nhất thiết cần một chân CLK tạoxung với tốc độ chính xác.
Quá trình truyền dữ liệu giữa 2 thiết bị chế độ Master – Slave dùng bus I2C diễn ra như sau:
Thiết bị master tạo xung START (tức là đường SDA thay đổi từ mức cao xuống mức thấp và đường SCL đang ở mức cao) để bắt đầu quá trình giao tiếp.
Thiết bị master gửi địa chỉ của thiết bị slave muốn giao tiếp cùng với bit R/W và đợi xung ACK phản hồi Địa chỉ của thiết bị slave được định nghĩa bởi 7 bit, ngoài ra có thể đánh địa chỉ dưới dạng 10 bit nếu sau lệnh START gửi chuỗi 11110 ra đường SDA Bit R/W dùng để điều khiển hướng truyền- bit “0” là truyền từ master tới slave, ngược lại bit “1” là truyền từ slave tới master Việc thiết lập bit R/W do thiết bị master quy định.
Khi nhận được xung báo ACK từ thiết bị slave xác nhận đúng địa chỉ thì bắt đầu thực hiện truyền dữ liệu Dữ liệu được gửi theo từng byte Mỗi byte gồm 8 bit và sau mỗi byte đều bắt buộc có một xung ACK để đảm bảo quá trình truyền nhận diễn ra chính xác Số lượng byte là không giới hạn Xung ACK được định nghĩa là SDA kéo xuống mức thấp Ngoài ra, khi không nhận được đúng địa chỉ hay khi muốn kết thúc quá trình giao tiếp thiết bị nhận sẽ gửi một xung NACK tức là SDA ở mức cao.
Kết thúc quá trình truyền, thiết bị master sẽ gửi xung STOP hoặc thiết bị slave gửi xung NACK để báo hiệu kết thúc Xung STOP tương tự như xung START nhưng trạng thái của đường SDA thay đổi từ mức thấp lên mức cao Ngoài ra, trong một quá trình giao tiếp có thể lặp lại xung START kèm theo một địa chỉ mới để bắt đầu một giao tiếp khác. Điểm mạnh của I2C chính là hiệu suất và sự đơn giản của nó: một khối điều khiển trung tâm có thể điều khiển cả một mạng thiết bị mà chỉ cần hai lối ra điều khiển.
HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG PHẦM MỀM ARDUINO IDE
Cài đặt Java Runtime Environment (JRE)
Vì phần mềm Arduino IDE được viết trên Java nên việc đầu tiên cần làm là phải cài đặt JRE trước Arduino IDE.
Link tải: http://www.oracle.com/technetwork/ja
Nhiều bạn do không cài JRE trên máy nên thường hay gặp phải tình trạng không chạy được Arduino IDE.
2 bản JRE phổ biến nhất là bản dành cho Windows 32bit (x86) và Windows 64bit (x64) mình đã đánh dấu trong hình Nhớ chọn " Accept License Agreement ".
Hình 3 1 Bản JRE mới nhất là 7u80
Cài đặt Arduino IDE [2]
Bước 1: Truy cập địa chỉ http://arduino.cc/en/Main/Software/ Đây là nơi lưu trữ cũng như cập nhật các bản IDE của Arduino Bấm vào mục Windows ZIP file for non admin install như hình minh họa.
Hình 3 2 Bấm vào mục Window ZIP
Bạn sẽ được chuyển đến một trang mời quyền góp tiền để phát triển phần mềm cho Arduino, tiếp tục bấm JUST DOWNLOAD để bắt đầu tải.
Hình 3 4 Bắt đầu tải Bước 2: Sau khi download xong, các bạn bấm chuột phải vào file vừa download arduino-1.6.4-windows.zip và chọn “Extract here” để giải nén.
Bước 3: Copy thư mục arduino-1.6.4 vừa giải nén đến nơi lưu trữ.
Hình 3 5 chọn “Extract here” để giải nén
Bước 4: Chạy file trong thư mục arduino-1.6.4\ để khởi động Arduino IDE
Hình 3 6 Chạy file trong thư mục arduino-1.6.4\ để khởi động Arduino IDE
Cài đặt Driver
Để máy tính và board Arduino giao tiếp được với nhau, chúng ta cần phải cài đặt driver trước tiên.
Nếu dùng Windows 8, trong một số trường hợp Windows không cho phép bạn cài Arduino driver (do driver không được kí bằng chữ kí số hợp lệ) Do vậy cần vào Windows ở chế độ Disable driver signature enforcement thì mới cài được driver Xem hướng dẫn thực hiện tại bài viết Disabling Driver Signature on Windows 8 của SparkFun. Đầu tiên, chạy file arduino-1.6.4\drivers\dpinst-x86.exe (Windows x86) hoặc arduino-1.6.4\drivers\dpinst-amd64.exe (Windows x64) Cửa sổ “Device
Driver Installation Wizard” hiện ra, chọn Next để tiếp tục.
Hình 3 8 Chọn Next để tiếp tục
Khi có yêu cầu xác nhận cài đặt driver, chọn “Install”
Hình 3 7 Xác nhận cài đặt driver Đợi khoảng 10 giây trong lúc quá trình cài đặt diễn ra …
Hình 3 9 Đợi quá trình cài đặt
Quá trình cài đặt đã hoàn tất Bấm “Finish” để thoát.
Sử dụng phần mềm Arduino IDE
Hình 3 11 Giao diện phần mềm Arduino IDE b) Vùng lệnh
Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help) Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như sau:
Hình 3 12 Miêu tả vùng lệnh c) Vùng viết chương trình
Viết các đoạn mã của mình tại đây Tên chương trình được hiển thị ngay dưới dãy các Icon, ở đây nó tên là “Blink” Để ý rằng phía sau tên chương trình có một dấu
“§” Điều đó có nghĩa là đoạn chương trình chưa được lưu lại. d) Vùng thông báo (debug)
Những thông báo từ IDE sẽ được hiển thị tại đây Để ý rằng góc dưới cùng bên phải hiển thị loại board Arduino và cổng COM được sử dụng Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM sẽ không thể upload được code của mình.
Bạn có thể tìm thấy một vài hướng dẫn khắc phục các lỗi thường gặp khi lập trình Arduino tại Lỗi của Arduino? Và các lỗi thường gặp khi lập trình Arduino e) Arduino IDE Menu:
Trong file menu chúng ta quan tâm tới mục Examples đây là nơi chứa code mẫu ví dụ như: cách sử dụng các chân digital, analog, sensor …
Edit menu: Hình 3 16 Click Examples
• Verify/ Compile : chức năng kiểm tra lỗi code.
• Show Sketch Folder : hiển thị nơi code được lưu.
• Add File : thêm vào một Tap code mới.
• Import Library : thêm thư viện cho IDE
Trong Tool menu ta quan tâm các mục Board và Serial Port
Mục Board : các bạn cần phải lựa chọn bo mạch cho phù hợp với loại bo mà bạn sử dụng nếu là Arduino Uno thì phải chọn như hình:
Nếu các bạn sử dụng loại bo khác thì phải chọn đúng loại bo mà mình đang có nếu sai thì code Upload vào chip sẽ bị lỗi.
Serial Port: đây là nơi lựa chọn cổng Com của Arduino Khi chúng ta cài đặt driver thì máy tính sẽ hiện thông báo tên cổng Com của Arduino là bao nhiêu, ta chỉ việc vào Serial Port chọn đúng cổng Com để nạp code, nếu chọn sai thì không thể nạp code cho Arduino được. f) Một số lưu ý
Khi lập trình, cần chọn port (cổng kết nối khi gắn board vào) và board (tên board mà người dùng sử dụng) Giả sử, người dùng đang dùng mạch Arduino Uno, và khi gắn board này vào máy tính bằng cáp USB nó được nhận là COM4 thì người dùng chỉnh như thế này là có thể lập trình được.
Hình 3 21 Một số lưu ý về phần mềm Arduino IDE
Khối nguồn Khối điều khiển
THIẾT KẾ VÀ THI CÔNG MẠCH
Thiết kế và thi công phần cứng
+ Xe có thể chạy với vận tốc tối đa Vmax = 0,2 m/s.
+ Kết cấu xe nhỏ gọn, chắc chắn, không rung lắc.
+ Lựa chọn các link kiện ít gây nhiễu tín hiệu.
Bánh chủ động là bộ phận trực tiếp làm xe chuyển động Bánh xe phải có khả năng bám đường tốt, không trơn trượt, chịu tải ổn định, dễ dàng tháo lắp và thay thế.
Từ những yêu cầu trên ta có thể sử dụng bánh xe giảm tốc V1- V3 hoặc bánh Mecanum để làm bánh chủ động cho xe.
Bánh Mecanum là một dạng của bánh đa hướng (Omnidirectional Wheel). Bánh xe này được tạo thành bởi các con lăn nhỏ với trục được lắp nghiêng một góc 45 độ so với trục quay chính của bánh xe, nhờ kết cấu đặc biệt này nên bánh có thể thực hiện nhiều chuyển động phức hợp theo phương pháp cộng vector Với bánh Mecanum, xe có thể chuyển động tiến lùi, xoay tròn trong không gian nhỏ hẹp, đặc biệt có thể di chuyển theo phương ngang khi cần thiết.
Tuy có nhiều ưu điểm nhưng giá thành của bánh xe Mecanum khá cao và giải thuật điều khiển phức tạp nên nhóm quyết định sẽ sử dụng bánh xe giảm tốc V1 có đường kính D= 80 mm để làm bánh chủ động cho xe.
4.1.2 Tính toán chọn động cơ
Giả sử toàn bộ thân xe có khối lượng M = 1,5 kg, vật nặng hình hộp chữ nhật1 có khối lượng M = 0,5 kg, khối lượng bánh xe m= 0,025kg2
- Toạ độ trọng tâm:Chọn hệ trục toạ độ như hình vẽ:
Hình 4 2 Hệ tọa độ trên robot dò line
Chọn vị trí đặt vật nặng mong muốn là ở vị trí x = /4 với là khoảng cáchL L giữa 2 bánh xe sauvà bánh trước, G và G là trọng tâm của xe và của vật nặng Ta tính1 2 được hoành độ trọng tâm của hệ: [3]
Từ đó ta tính được lực tác dụng lên mỗi bánh xe:
16 Xét các lực tác dụng lên một bánh chủ động, ta có mô hình toán:
Hình 4 3 Mô hình các lực tác dụng lên bánh xe
Ta giả sử thời gian để xe tăng tốc từ 0 m/s lên vận tốc cực đại 0,2 m/s là 1s Ta suy ra được gia tốc của xe là:
Phương trình cân bằng moment:
𝑇 − 𝐹𝑚𝑠 𝑅 = 𝐼𝛾 (3.4) Với moment quán tính của bánh xe: 𝐼 = 𝑚𝑅 2 /2 , m là khối lượng bánh xe, R là bán kính bánh xe và là gia tốc góc của bánh xe𝛾
Gọi 𝑀 = = 1,12 𝑘𝑔 𝑅 2 là khối lượng tương đương mà mỗi bánh xe sau phải chịu
Moment tác dụng lên bánh xe:
Công suất cần thiết của động cơ:
Từ công suất đã tính, ta chọn động cơ giảm tốc V1.
Hình 4 4 Động cơ giảm tốc V1
*Thông số kỹ thuật của động cơ giảm tốc V1
Điện áp hoạt động: 3~12VDC
Dòng điện tiêu thụ: 110-200 mAh
Phù hợp với đường kính lốp: 65mm
Thời gian đáp ứng nhỏ hơn 0 01 s
Sai số nhỏ hơn ( 5 mm)
Lựa chọn cảm biến Phototransitor TCRT5000
+ Dòng hoạt động I tối đa là 100mA, I là 60mA C F
+ Kích thước (L xW x H in mm): 10,2 x 5,8 x 7
+ Khoảng cách so với đường đua để cảm biến hoạt động tốt là: 0,2 đến 1,5 mm
Xác định khoảng cách giữa cảm biến so với đường đua Xác định khoảng cách giữa các cảm biến
Xác định khoảng cách giữa cảm biến so với đường đua
Hình 4 5 Sơ đồ mạch điện cảm biến TCRT5000
*Phạm vi hoạt động của cảm biến:
Hình 4 6 Phạm vi hoạt động của cảm biến
Ta có khoảng cách giữa 2 cảm biến là d = 5,3mm
2 Vậy để cảm biến hoạt động tốt, cần đảm bảo xuất hiện vùng giao thoa TrongX d trường hợp này cần đặt cảm biến cách mặt đường đua một khoảng h ≥ ,4 05mm.
Ta thấy rằng trong khoảng 10mm đến 20mm thì ánh sáng phản xạ lại nhiều nhất. Dựa vào đó ta chọn khoảng cách h mm.
Ta có 2 cách đặt cảm: phương dọc hoặc phương ngang Ta thấy rằng nếu đặt cảm biến theo phương dọc thì bề rông giao thoa sẽ lớn hơn khi ta đặt theo phương ngang Bề rộng lớn hơn có ưu điểm là sẽ làm tăng độ chính xác khi xác định vị trí.
Do đó nhóm quyết định chọn đặt cảm biến theo phương dọc.
Hình 4 7 Sơ đồ mô phỏng cảm biến hồng ngoại TCRT5000
Thông thường, cảm biến TCRT5000 có 4 chân gồm VCC, GND, chân đầu vào tín hiệu và chân đầu ra tín hiệu Chân VCC được sử dụng để cấp nguồn cho cảm biến (thường là 5V), chân GND được kết nối với đất của mạch điện tử Chân đầu vào tín hiệu được kết nối với chân đầu ra của bộ khuếch đại tín hiệu, và chân đầu ra tín hiệu được kết nối với một chân số của vi điều khiển.
Tín hiệu đầu ra của cảm biến TCRT5000 là tín hiệu số, có giá trị tương ứng với mức độ phản chiếu của ánh sáng hồng ngoại Khi cảm biến được đặt trên bề mặt trắng, tín hiệu đầu ra sẽ có giá trị cao, và khi được đặt trên bề mặt đen, tín hiệu đầu ra sẽ có giá trị thấp. Để sử dụng cảm biến TCRT5000 trong ứng dụng robot dò line, ta có thể sử dụng nhiều cảm biến và đặt chúng cách đều nhau trên phần dưới của robot Vi điều khiển sẽ đọc giá trị tín hiệu đầu ra của các cảm biến và dựa trên giá trị này để xác định vị trí của đường dẫn và điều khiển hướng di chuyển của robot.
Trong quá trình sử dụng, cần chú ý đến khoảng cách giữa cảm biến và bề mặt được quét Nếu khoảng cách quá xa, tín hiệu đầu ra của cảm biến sẽ yếu, làm giảm độ chính xác của hệ thống Nếu khoảng cách quá gần, cảm biến có thể bị ảnh hưởng bởi ánh sáng nhiễu và gây sai lệch trong đo lường. cơ.
4.1.4 Tính chọn Module điều khiển động cơ
Chọn module có dòng điện tối đa lớn hơn hoặc bằng dòng điện tối đa của động
Chọn module có dòng điều khiển tối đa lớn hơn hoặc bằng dòng điện tối đa của động cơ.
Chọn module có điện áp cấp phù hợp với điện áp cấp của động cơ.
Chọn module có khả năng bảo vệ quá dòng, quá áp, quá nhiệt, và có tính năng chống ngược EMF.
Vì vậy, Module LM298 là lựa chọn tối ưu nhất.
*Chức năng của các chân
Bốn chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10,
12 của IC L298N Đây là các chân nhận tín hiệu điều khiển.
Bốn chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của IC L298N Các chân này sẽ được nối với động cơ DC hoặc động cơ bước.
Hình 4 8 Sơ đồ mô phỏng Module L298
Hai chân cho phép ENA và ENB dùng để điều khiển mạch cầu H trong IC L298N. Nếu ở mức logic “1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động Các chân này cũng được dùng để điều khiển tốc độ của động cơ [4]
• Khi ENA = 0: Động cơ không quay với mọi đầu vào.
• IN1 = 1; IN2 = 0: Động cơ quay thuận.
• IN1 = 0; IN2 = 1: Động cơ quay nghịch.
• IN1 = IN2: Động cơ dừng ngay lập tức.
Với ENB cũng tương tự với IN3, IN4.
Ta lựa chọn L298 để điều khiển động cơ với 2 mạch cầu H đã tích hợp sẵn ở bên trong Trong mỗi IC L298 được tích hợp 2 cầu H, mỗi cầu H chịu được 2 dòng Ampe Khi nối các chân có cùng chức năng của 2 cầu H trên IC với nhau thì IC có thể cung cấp được dòng 4 Ampe đủ để cho động cơ hoạt động hết công suất.
- Kết nối điện áp đầu vào từ 6 - 35VDC cho mạch
- Kết nối đầu ra tại 2 vị trí cầu H, với dòng tối đa cho mỗi cầu là 2A
- Nguyên lí hoạt động của các thành phần trên mạch:
+ OUT 1, OUT 2 là 2 đầu ra tương ứng khi kết nối động cơ 1.
+ OUT 3, OUT 4 là 2 đầu ra tương ứng khi kết nối động cơ 2.
+ Trên mạch có các chân ENA, IN1, IN2, IN3, IN4, ENB với các chức năng điều khiển tương ứng với 2 động cơ kết nối với 2 vị trí OUT 1,2 và OUT 3,4.
+ ENB: có chức năng điều khiển tốc độ động cơ khi kết nối vào 2 vị trí OUT 3, OUT 4.
+ ENA: có chức năng điều khiển tốc độ động cơ khi kết nối vào 2 vị trí OUT 1, OUT 2.
+ IN1, IN2, IN3, IN4: là chân kết nối tín hiệu với VĐK như Arduino, để điều khiển động cơ xoay.
+ Nguyên tắc hoạt động của IN1, IN2 và IN3, IN4 như sau: cấp tín hiệu vào IN1 và IN2 chênh lệch nhau, mức cao/thấp điều khiển động cơ dừng/quay (có 2 TH cấp là: IN1 - cao va IN2 - thấp và IN1 - thấp và IN2 - cao) Cấp tín hiệu vào IN1 = IN2 thì động cơ dừng quay Tương tự với cặp còn lại là IN3 và IN4 đều hoạt động tương tự như vậy.
Hình 4 9 Sơ đồ chân Module L298
Chân IN1 là chân OutA 1, chân IN2 là chân OutA 2.
Khi cấp nguồn cực dương vào IN1 và cực âm vào IN2 thì động cơ quay 1 chiều.Còn khi cực âm vào IN1 và cực dương vào IN2 thì động cơ quay chiều còn lại.
Thiết kế hệ thống điện
Hình 4 10 Sơ đồ hệ thống điện của xe robot dò line
4.2.2 Mạch mô hình robot dò line
Nguồn dương (+) của Pin được đấu vào 1 chân của công tắc, sau đó được nối với chân 12VDC của module điều khiển động cơ L298.
Nguồn âm (-) của Pin được đấu vào chân còn lại của công tắc, sau đó được nối với chân GND của board Arduino.
Chân Vcc của cảm biến hồng ngoại được nối với chân 5V của board Arduino
Chân GND của cảm biến hồng ngoại được nối với chân GND của board Arduino Chân
S1 của cảm biến ngoại được nối với chân A3 (chân Analog In) của board Arduino. Chân S2 của cảm biến ngoại được nối với chân A2 (chân Analog In) của board Arduino Chân S3 của cảm biến ngoại được nối với chân A1 (chân Analog In) của board Arduino Chân S4 của cảm biến ngoại được nối với chân A0 (chân Analog In) của board Arduino Chân S5 của cảm biến ngoại được nối với chân 6 (chân Digital PWM) của board Arduino.
Hình 4 11 Mạch xe dò line hoàn chỉnh
Chân 5V của module L298 được nối với chân 5V của board Arduino ChânGND của module L298 được nối với chân GND của board Arduino Chân IN1 của module L298 được nối với chân 9 (chân Digital PWM) của board Arduino Chân IN2 của module L298 được nối với chân 3 (chân Digital PWM) của board Arduino ChânIN3 của module L298 được nối với chân 4 (chân Digital PWM) của board Arduino.Chân IN4 của module L298 được nối với chân 5 (chân Digital PWM) của boardArduino Chân ENA của module L298 được nối với chân 10 (chân Digital PWM) của board Arduino Chân ENB của module L298 được nối với chân 11 (chân DigitalPWM) của board Arduino Chân OUT1 của module L298 cấp nguồn cho motor bên trái quay thuận để xe dò line tiến về phía trước Chân OUT2 của module L298 cấp nguồn cho motor bên trái quay nghịch để xe line lùi về phía sau Chân OUT4 của module L298 cấp nguồn cho motor bên phải quay thuận để xe dò line tiến về phía trước Chân OUT3 của module L298 cấp nguồn cho motor bên phải quay nghịch để xe line lùi về phía sau.
Lưu đồ giải thuật
Hình 4 12 Lưu đồ giải thuật của mô hình xe robot dò line gấp vật
Trong bước này, hệ thống sẽ được khởi tạo bằng cách kết nối các module và thiết bị với Arduino Đồng thời, các biến sẽ được khai báo và thiết lập giá trị ban đầu.
Bước 2: Đọc cảm biến dò line và xử lý tín hiệu cảm biến
Sau khi hệ thống được khởi tạo, chương trình sẽ đọc giá trị đầu vào từ các cảm biến dò line để xác định vị trí của đường line Giá trị này sẽ được lưu trữ trong biến
Chương trình sẽ xử lý giá trị đầu vào từ các cảm biến dò line để tìm ra vị trí trung tâm của đường line Điều này được thực hiện bằng cách tính trung bình của giá trị đọc từ các cảm biến.
Bước 3: Điều khiển động cơ
Sau khi vị trí trung tâm của đường line được xác định, chương trình sẽ điều khiển động cơ để di chuyển robot theo đường line Việc này được thực hiện bằng cách điều chỉnh tốc độ và hướng di chuyển của động cơ.
Bước 4: Đọc cảm biến gắp vật cản và kiểm tra vật cản
Khi robot tiếp cận vật cản, chương trình sẽ đọc giá trị đầu vào từ cảm biến gắp vật cản Giá trị này sẽ được lưu trữ trong biến "obstacle_value".
Chương trình sẽ kiểm tra giá trị đọc từ cảm biến gắp vật cản để xác định vật cản có nằm trong khoảng cách cần thiết để gắp hay không Nếu vật cản nằm trong khoảng cách cần thiết, robot sẽ tiếp tục thực hiện bước 7 để gắp vật cản.
Bước 5: Điều khiển động cơ gắp vật cản
Sau khi xác định vật cản nằm trong khoảng cách cần thiết, chương trình sẽ điều khiển động cơ gắp vật cản để thực hiện thao tác gắp vật cản. Đầu tiên, ta sẽ khởi tạo PWM cho động cơ gắp vật cản để điều khiển tốc độ quay của động cơ Sau đó, sử dụng các tín hiệu điều khiển từ Arduino để điều khiển các relay trên module LM298 để chuyển đổi hướng quay của động cơ.
Nếu động cơ gắp vật cản quay về phía vật cản, các càng cua của gắp sẽ đóng lại để giữ chặt vật cản Sau khi vật cản được gắp chặt, động cơ sẽ dừng lại để giữ vị trí và không làm rơi vật cản.
Bước 6: Điều khiển robot di chuyển
Khi đã gắp được vật cản, robot sẽ tiếp tục di chuyển trên đường dò line cho đến khi phát hiện được vật tiếp theo.
Trong quá trình di chuyển, robot sẽ sử dụng các tín hiệu điều khiển từ Arduino để điều khiển module LM298, và từ đó điều khiển động cơ để di chuyển Để tránh đụng vào các vật cản khác, robot cần có các cảm biến khoảng cách để phát hiện và tránh.
Khi robot đã hoàn thành việc gắp và di chuyển vật cản đến đích, nó sẽ dừng lại và chờ cho người điều khiển tiếp tục thao tác tiếp theo.
Nếu không còn vật cản nào nữa trên đường dò line, robot sẽ tự động dừng lại và chờ để được điều khiển hoặc tiếp tục điều hướng theo lệnh được lập trình trước đó. Đây là quá trình hoạt động tổng quan của lưu đồ giải thuật cho đề tài "Thiết kế và thi công mô hình xe robot dò line có khả năng gắp vật cản".