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ư trong đời sống. Sản xuất robot là nghành công nghiệp trị giá lớn 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 tới mobile robot với những đặc thù riêng mà các loại robot khác không có. Robot có thể di chuyển một cách 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 rất nhiều sự đầu tư và nghiên cứu. Robot vận chuyển chia ra nhiều loại nhưng trong số đó robot vận chuyển dễ dàng ứng dụng nhiều trong cuộc sống. Việc phát triển loại robot này sẽ phục vụ rất đắc lực cho con người.
TỔNG QUAN VỀ ROBOT VẬN CHUYỂN
Tổng quan về robot
Thuật ngữ robot lần đầu tiên xuất hiện vào năm 1921 tại Tiệp Khắc trong tác phẩm R.U.R (Rossum’s Universal Robot) của nhà viết kịch Karel Čapek Từ đó, thuật ngữ này đã trở nên phổ biến và được sử dụng rộng rãi trong các lĩnh vực công nghệ và khoa học.
Máy tự động là khái niệm đã xuất hiện từ lâu, gắn liền với những viễn tưởng về người máy trong cuộc sống hàng ngày Ngay sau Chiến tranh thế giới thứ hai, nhiều nghiên cứu và phát triển các máy cơ khí điều khiển từ xa đã bắt đầu tại các phòng thí nghiệm nhằm phục vụ các lĩnh vực như vật liệu phóng xạ và nghiên cứu khoa học.
Trong hơn nửa thế kỷ qua, robot đã có những tiến bộ đáng kể, bắt đầu từ những năm 1960 khi robot thay thế con người trong các công việc nặng nhọc, nguy hiểm trong môi trường độc hại Tiếp theo, sự ra đời và phát triển của bàn tay cơ khí điều khiển bằng máy tính sử dụng cảm biến xúc giác đã thể hiện sự tiến bộ về khả năng thích ứng với môi trường của robot Trong suốt những năm 1970, nhiều nghiên cứu tập trung vào việc tích hợp cảm biến ngoại để nâng cao sự tiện lợi, linh hoạt và khả năng thích ứng của robot trong các ứng dụng khác nhau.
Trong những thập kỷ 80-90, sự phát triển mạnh mẽ của khoa học kỹ thuật, đặc biệt trong lĩnh vực kỹ thuật vi xử lý và công nghệ thông tin, đã thúc đẩy sự gia tăng nhanh chóng của số lượng robot Nhờ đó, giá thành robot giảm rõ rệt, giúp chúng có thể tích hợp nhiều tính năng và ứng dụng trong đời sống hàng ngày cũng như trong sản xuất công nghiệp.
Trong những ngày gần đây, khái niệm "Cách mạng công nghiệp 4.0" ngày càng xuất hiện nhiều trên các phương tiện truyền thông và mạng xã hội, phản ánh xu hướng chuyển đổi số toàn diện Ngành khoa học công nghệ mới đã thúc đẩy sự ra đời của nhiều sản phẩm robotics tiên tiến, góp phần nâng cao hiệu quả sản xuất và đời sống Trong lĩnh vực robotics, lĩnh vực "cơ điện tử" đóng vai trò trung tâm, là sự kết hợp tối ưu giữa cơ học máy và điều khiển điện tử, giúp phát triển các giải pháp tự động hóa thông minh.
Robot có khả năng lập trình là một trong những tiêu chí quan trọng hàng đầu, giúp robot hoạt động và thích nghi tốt hơn Để đạt được khả năng này, robot cần sử dụng máy tính hoặc các thiết bị có chức năng tương tự, trong đó máy tính giữ vai trò như "bộ não" của robot, điều khiển và xử lý mọi hoạt động Nhờ đó, robot có thể thực hiện các nhiệm vụ phức tạp và linh hoạt hơn trong môi trường hoạt động của mình.
Nhờ sự phát triển của các bộ vi điều khiển và cải thiện tốc độ máy tính, robot đã có bước tiến đáng kể, ngày càng đóng vai trò quan trọng trong công nghiệp và cuộc sống hàng ngày Robot giúp thực hiện các công việc nguy hiểm, đòi hỏi tốc độ và độ chính xác vượt quá khả năng của con người, góp phần nâng cao hiệu quả và an toàn trong nhiều lĩnh vực.
Robot là sự kết hợp giữa các lĩnh vực khoa học và công nghệ, đòi hỏi kiến thức sâu rộng trong toán học, cơ học, vật lý, điện tử, lý thuyết điều khiển và khoa học tính toán để thiết kế và chế tạo các loại robot hiệu quả.
Với nhu cầu ngày càng tăng trong đời sống và sản xuất, robot đã không ngừng cải tiến để phù hợp với nhiều lĩnh vực như chăm sóc sức khỏe, sản xuất và quân sự Các loại robot được quan tâm hàng đầu bao gồm tay máy robot, robot di động, robot phỏng sinh học và robot nhân, đáp ứng các mục đích từ hỗ trợ y tế, giúp đỡ người tàn tật đến tự hành trong môi trường phức tạp Tay máy robot như robot công nghiệp, robot y tế và robot trợ giúp người tàn tật đóng vai trò quan trọng trong nâng cao hiệu quả công việc và chất lượng cuộc sống Trong khi đó, các robot di động tập trung nghiên cứu các hệ thống tự hành như robot tự tránh vật cản, robot dò đường nhằm nâng cao khả năng hoạt động linh hoạt và an toàn trong các môi trường khác nhau.
Robot vận chuyển tự động là các thiết bị có khả năng vận chuyển hàng hóa một cách tự động mà không cần sự can thiệp của con người, giúp tối ưu hóa quá trình logistics Những robot này được trang bị cảm biến giúp nhận diện vật cản và có thể dừng lại để đảm bảo an toàn trong quá trình vận hành Công nghệ tự hành này nâng cao hiệu quả làm việc và giảm thiểu sai sót trong quá trình chuyển hàng Ứng dụng của robot vận chuyển tự động ngày càng phổ biến trong nhiều lĩnh vực như nhà kho, trung tâm phân phối và nhà máy sản xuất.
Giới thiệu chung về robot vận chuyển
Robot vận chuyển (hoặc robot di động, gọi tắt là mobots) là loại robot có khả năng tự di chuyển và lập trình tự động để thực hiện các công việc được giao Môi trường hoạt động của robot vận chuyển có thể là đất, nước, không khí, không gian vũ trụ hoặc sự kết hợp của chúng, phù hợp với các địa hình phẳng hoặc lồi lõm Dựa trên bộ phận thực hiện chuyển động, robot tự hành được chia thành hai loại chính, phục vụ đa dạng nhu cầu công nghiệp và tự động hóa.
- Loại di chuyển bằng chân
- Loại di chuyển bằng bánh
Robot loại này di chuyển bằng chân, sử dụng các chân cơ khí bắt chước chuyển động của con người và động vật (hình 1.1), giúp chúng có khả năng di chuyển tốt trên các địa hình lồi lõm, phức tạp Tuy nhiên, việc phối hợp các chân sao cho nhịp nhàng và giữ vững tư thế là thách thức lớn đối với công nghệ robot hiện nay.
Di chuyển bằng bánh xe là phương pháp thực tế và hiệu quả, phù hợp với hầu hết các địa hình do con người tạo ra Điều khiển robot di chuyển bằng bánh xe đơn giản hơn nhiều, đảm bảo tính ổn định cao cho robot trong quá trình vận hành Có thể chia các loại robot bánh xe thành ba dạng chính để phù hợp với các mục đích sử dụng khác nhau.
- Loại chuyển động bằng bánh xe, đây là loại phổ biến (hình 1.1)
- Loại chuyển động bằng vòng xích, khi cần mô men phát động lớn hay khi cần di chuyển trên vùng đầm lầy, cát và băng tuyết (hình 1.2)
- Loại hỗn hợp bánh xe và xích, loại này rất ít gặp
Hình 1.1: Hình ảnh robot di chuyển bằng chân và bánh
Hình 1.2: Hình ảnh robot di chuyển bằng bánh xích
Tại Việt Nam, nghiên cứu và phát triển robot đã đạt được những bước tiến quan trọng, thể hiện qua các hoạt động nghiên cứu cơ bản và ứng dụng Nhiều đơn vị hàng đầu như Trung tâm Tự động hóa - Đại học Bách Khoa Hà Nội, Viện Điện tử - Tin học, Viện Khoa học và Công nghệ quân sự, Học viện Kỹ thuật Quân sự, Viện Cơ học và Viện Công nghệ thông tin thuộc Viện Hàn lâm Khoa học và Công nghệ Việt Nam đều đang tích cực nghiên cứu và phát triển công nghệ robot để thúc đẩy ứng dụng trong các lĩnh vực khác nhau của đất nước.
Công ty Cổ phần Robot TOSY là doanh nghiệp thiết kế và chế tạo robot Việt Nam với nhiều sản phẩm ấn tượng trên thị trường quốc tế Các nghiên cứu về động học và động lực học robot thu hút sự quan tâm của các khoa cơ khí, chế tạo máy tại các trường đại học và viện nghiên cứu Phương pháp giải các bài toán cơ học liên quan đến robot nối tiếp, song song và di động là lĩnh vực trọng tâm trong nghiên cứu này Ngoài ra, các chương trình mô phỏng cấu trúc và chuyển động 3D đang được áp dụng và phát triển để hỗ trợ phân tích, thiết kế robot hiệu quả hơn.
1.2.2 Một số robot vận chuyển
Robot vận chuyển hàng trong nhà xưởng và nhà máy là các thiết bị di động tự hành, có khả năng điều hướng nhờ lập trình của con người Chúng thường được lập trình để đi theo các điểm đánh dấu sẵn như băng từ, dây điện trên sàn hoặc sử dụng công nghệ laser điều hướng để đảm bảo chính xác trong việc vận chuyển Ứng dụng của robot vận chuyển vô cùng phổ biến trong ngành công nghiệp, giúp di chuyển vật tư và sản phẩm hiệu quả trong nhà xưởng sản xuất hoặc kho bãi Nhờ vào công nghệ tiên tiến, robot vận chuyển góp phần tối ưu hóa quy trình vận hành, nâng cao năng suất và giảm thiểu nhân công.
Hình 1.3: Hình ảnh xe kéo hàng
Trong quân đội, đã giới thiệu một loại robot tự hành đa năng phục vụ cho mục đích chiến đấu và trinh sát trên mặt đất Robot này do Viện Công nghệ thuộc Tổng cục Công nghiệp Quốc phòng nghiên cứu và chế tạo, góp phần nâng cao hiệu quả tác chiến và đảm bảo an toàn cho binh sĩ trong các nhiệm vụ quan trọng.
Hình 1.4: Robot tự hành đa năng do Viện Công nghệ -Tổng cục Công nghiệp quốc phòng nghiên cứu chế tạo
Sản phẩm gồm hai bộ phận chính là trung tâm chỉ huy và thiết bị tự hành robot Trung tâm chỉ huy chịu trách nhiệm lưu trữ bản đồ, thu thập thông tin quan sát và phát lệnh điều khiển đến các thiết bị hỗ trợ Trong khi đó, thiết bị tự hành có khả năng vận hành trên tuyến đường đã được lập trình sẵn dựa trên bản đồ số, giúp tối ưu quá trình điều hướng và nâng cao hiệu quả hoạt động của hệ thống.
Trong bối cảnh kỷ nguyên số và trí tuệ nhân tạo bùng nổ, dự án nghiên cứu của Viện công nghệ đã đạt được những thành tựu đáng kể, góp phần quan trọng vào sự phát triển của các thế hệ robot tương lai Robot này có khả năng chạy trên đường bằng phẳng với tốc độ 1m/10s, được điều khiển từ xa qua máy tính và truyền dữ liệu về trung tâm chỉ huy thông qua camera quang điện tử, mở ra nhiều ứng dụng công nghệ cao trong lĩnh vực tự động hóa.
Trong lĩnh vực y tế, nhóm nghiên cứu tại Đại học Công nghệ Toyohashi, Nhật Bản, đang phát triển robot Terapio có khả năng di chuyển đa hướng Robot Terapio được thiết kế để thay thế xe đẩy y tế truyền thống, chuyên vận chuyển dụng cụ và thiết bị y tế cho bác sĩ và y tá, giúp nâng cao hiệu quả và giảm tải công việc trong bệnh viện.
Terapio hoạt động ở chế độ “Theo dấu” (Human-Tracking mode) khi đi cùng nhân viên y tế, giúp theo dõi và tránh chướng ngại vật một cách chủ động Để điều chỉnh chính xác vị trí của robot, người dùng có thể sử dụng chế độ “Điều khiển” (Power-Assist mode) bằng cách đẩy nhẹ vào tay cầm hình tròn phía trên, giúp Terapio di chuyển theo hướng mong muốn Trong chế độ “Quay vòng” (Round mode), Terapio ghi lại các dữ liệu quan trọng về tình hình bệnh nhân, lưu trữ và hiển thị chúng trên màn hình cảm ứng LCD Khi không sử dụng, robot tự động quay về trạm sạc pin, đồng thời cập nhật phần mềm qua kết nối với máy chủ, đảm bảo hoạt động liên tục và tối ưu.
Phân loại robot vận chuyển
1.3.1 Phân loại theo chức năng
Xe kéo lần đầu tiên xuất hiện và hiện đang được sử dụng phổ biến trong ngành vận tải, có khả năng kéo nhiều loại toa hàng liên tiếp nhau Hệ thống xe kéo có thể kết nối tự động hoặc bằng tay nhờ hệ thống móc kéo, giúp nâng cao hiệu quả vận hành Với khả năng kéo từ vài trăm kilogram đến hàng tấn, xe kéo phù hợp với nhiều cấu hình và nhu cầu của doanh nghiệp Ưu điểm của hệ thống xe kéo bao gồm khả năng kéo linh hoạt, tiết kiệm thời gian kết nối, giúp tối ưu hóa quy trình vận chuyển hàng hóa.
- Khả năng chuyên chở lớn
- Có thể dự đoán và lên kế hoạch về tính hiệu quả của việc chuyên chở cũng như đảm bảo an toàn
Ứng dụng trong việc tăng tính an toàn là rất quan trọng, đặc biệt trong vận chuyển khung, vỏ và phụ tùng xe ô tô trong các xưởng lắp ráp Ngoài ra, nó còn được sử dụng để vận chuyển các chi tiết, linh kiện trong nhà máy sản xuất thiết bị điện tử và thùng quần áo trong xưởng may mặc, giúp đảm bảo an toàn và hiệu quả trong quá trình vận chuyển hàng hóa.
Hình 1.6: Mô hình xe kéo hàng
Xe chở (Unit Load Vehicle)
Xe chở được trang bị cảm biến giúp chờ sẵn tại vị trí băng tải, đảm bảo quá trình vận chuyển hàng hóa diễn ra thuận lợi và nhanh chóng Khi hàng hóa được đẩy khỏi băng tải lên xe, xe sẽ tự động di chuyển đến trạm khác theo yêu cầu, nâng cao hiệu suất vận hành Các xe này được trang bị nhiều tầng khay chứa, cho phép chuyển hàng hóa dễ dàng bằng tay hoặc tự động nhờ hệ thống băng tải và con lăn Nhờ đó, hệ thống vận chuyển hàng hóa trở nên linh hoạt, tiết kiệm thời gian và gia tăng năng suất trong quá trình sản xuất và logistics.
- Tải trọng được phân phối và di chuyển theo yêu cầu
- Thời gian đáp ứng nhanh gọn
- Giảm hư hại tài sản
- Giảm thiểu không gian di chuyển
Lập kế hoạch sản xuất hiệu quả là yếu tố quan trọng giúp tối ưu hóa quy trình chế tạo các ứng dụng vận chuyển đồ vật nhẹ nhàng, ít cồng kềnh Các ứng dụng này thường được thiết kế để chở các hộp chứa linh kiện và thiết bị điện tử nhỏ gọn, đảm bảo an toàn và thuận tiện trong quá trình lưu trữ và vận chuyển Việc lên kế hoạch kỹ càng giúp giảm thiểu thiệt hại và tối đa hóa hiệu quả hoạt động của hệ thống vận chuyển hàng hóa nhẹ, góp phần nâng cao năng suất sản xuất.
Hình 1.7: Mô hình xe chở hàng
Xe đẩy mang lại lợi ích vượt trội nhờ giảm số lượng nhân công và hạn chế sức lao động của con người, từ đó tăng lợi nhuận kinh doanh Ngoài ra, xe đẩy giúp giảm thiểu tối đa tình trạng hư hỏng sản phẩm trong quá trình vận chuyển và có khả năng hoạt động liên tục 24/7 nhờ sử dụng nguồn điện thân thiện với môi trường.
Hình 1.8: Mô hình xe đẩy hàng
Xe nâng là thiết bị có khả năng nâng hàng hóa đặt trên sàn, trên bục hoặc các khối hàng trên giá, góp phần nâng cao hiệu suất vận chuyển và lưu kho Tuy nhiên, do hệ thống phức tạp và khó chế tạo, sửa chữa, bảo dưỡng, cùng với mức giá thành cao, nên xe nâng ít phổ biến trong nhiều doanh nghiệp.
Hình 1.9: Mô hình xe nâng
1.3.2 Phân loại theo dạng đường đi
Loại chạy không chạy theo đường dẫn (Free path navigation)
Xe tự hành AGV có khả năng di chuyển linh hoạt đến mọi vị trí trong không gian làm việc nhờ vào cảm biến con quay hồi chuyển để xác định hướng đi chính xác, cảm biến laser quét để nhận diện và tránh vật thể xung quanh, cùng hệ thống định vị cục bộ (Local navigation) giúp xác định tọa độ tức thời Thiết kế của loại xe này đòi hỏi công nghệ cao và phức tạp hơn so với các loại AGV thông thường, mang lại khả năng vận hành linh hoạt và chính xác trong môi trường làm việc đa dạng.
Loại chạy theo đường dẫn (Fixed path navigation)
Xe vận chuyển tự động thuộc loại này được thiết kế chạy theo các đường dẫn định sẵn gồm các loại đường dẫn như sau:
Đường dẫn từ là loại đường dẫn có cấu tạo từ dây từ (Magnetic wire) chôn ngầm dưới nền sàn, giúp xe di chuyển theo các cảm biến cảm ứng từ Ưu điểm của loại đường dẫn này là không ảnh hưởng đến thẩm mỹ và không làm cản trở các hoạt động vận hành khác trên mặt sàn Tuy nhiên, việc sử dụng đường dẫn từ yêu cầu tiêu tốn năng lượng để tạo từ tính trong dây, và do đường dẫn cố định nên không thể thay đổi vị trí dễ dàng.
Đường ray dẫn là loại đường ray cố định trên mặt sàn, dùng cho các hệ thống chuyên dụng để đảm bảo xe chạy chính xác Loại này giúp đơn giản hóa thiết kế xe và cho phép vận hành với tốc độ cao, tuy nhiên, tính linh hoạt của hệ thống là hạn chế.
Đường băng kẻ trên sàn là hệ thống xe vận chuyển tự động di chuyển theo các đường vạch kẻ sẵn trên sàn nhà Hệ thống sử dụng cảm biến hồng ngoại để nhận dạng các vạch dẫn, giúp xe dễ dàng xác định lộ trình phù hợp Ưu điểm của loại hệ thống này là tính linh hoạt cao, cho phép thay đổi hướng đi một cách dễ dàng bằng cách kẻ lại các vạch dẫn mới Đây là giải pháp hiệu quả cho các môi trường công nghiệp cần tự động hóa vận chuyển hàng hóa một cách linh hoạt và an toàn.
Tuy nhiên khi sử dụng, các vạch dẫn có thể bị bẩn hay hư hại gây khó khăn cho việc điều khiển xe chính xác.
1.3.3 Vai trò của các loại robot vận chuyển trong sản xuất
Sử dụng các loại robot vận chuyển tự động trong nhà máy sản xuất công nghiệp giúp mang lại những lợi ích có thể kể đến như sau:
Giảm chi phí nhân công là lợi ích chính của robot vận chuyển, vì chúng có thể hoạt động hoàn toàn độc lập mà không cần sự can thiệp của con người Ngoài ra, robot vận chuyển còn đáp ứng tốt khối lượng hàng hóa lớn, nâng cao hiệu quả và tiết kiệm chi phí cho doanh nghiệp.
Robot vận chuyển hoạt động dựa trên hệ thống lập trình chính xác và an toàn cao, tích hợp camera và cảm biến giúp phát hiện vật cản trong quá trình vận chuyển nguyên vật liệu Ngoài ra, robot vận chuyển còn hoạt động hiệu quả trong các môi trường khắc nghiệt như môi trường hóa chất, nhiệt độ quá nóng hoặc quá lạnh, đảm bảo an toàn tuyệt đối cho quá trình làm việc.
Nâng cao năng suất lao động nhờ vào việc sử dụng robot vận chuyển được thiết kế với độ chính xác cao, đảm bảo quá trình vận chuyển diễn ra chính xác và không gặp lỗi Robot vận chuyển có khả năng hoạt động liên tục 24/7, giúp tối ưu hóa hiệu quả công việc và nâng cao năng suất lao động trong doanh nghiệp.
Các robot vận chuyển dễ dàng thay đổi và mở rộng modul, giúp người sử dụng linh hoạt trong việc nâng cấp, giảm tải trọng hoặc điều chỉnh quãng đường vận chuyển phù hợp với nhu cầu sử dụng Việc tùy chỉnh modular này đảm bảo tính linh hoạt, mở rộng quy mô và tối ưu hiệu quả hoạt động của hệ thống robot vận chuyển.
Lựa chọn phương án xây dựng
- Nghiên cứu thiết kế robot vận chuyển tự động
- Các bộ phận dẫn động và điều khiển: Động cơ, mạch điều khiển, cảm biến…
- Khay chứa tải: Được thiết kế tùy theo loại xe và yêu cầu sử dụng
- Nguồn năng lượng: pin, điện một chiều
- Các hệ thống định vị và truyền thông: Cảm biến hồng ngoại, cảm biến siêu âm,bluetooth.
Nhiệm vụ và đề xuất thiết kế
Robot vận chuyển tự động là thiết bị chuyên chở hàng hóa trong kho, nhà xưởng và ngành công nghiệp, tập trung vào các mặt hàng có kích thước thay đổi liên tục phù hợp với ngành công nghiệp thương mại Đề tài nghiên cứu nhằm thiết kế hệ thống robot vận chuyển phù hợp với ngân sách hạn chế và khả năng thực hiện, góp phần nâng cao hiệu quả vận chuyển hàng hóa trong các nhà xưởng Nhóm chúng em đã xác định các nhiệm vụ chính để chế tạo robot vận chuyển tự động, đảm bảo tính khả thi cao và ứng dụng thực tế trong ngành công nghiệp.
Chế tạo kết cấu cho xe chở hàng hóa có kích thước đa dạng và tải trọng tối đa 3kg đảm bảo sự vững chắc của xe và hàng hóa trong quá trình vận chuyển Thiết kế kết cấu chắc chắn giúp duy trì sự ổn định của xe, tạo điều kiện thuận lợi cho quá trình điều khiển và di chuyển an toàn Việc đảm bảo độ ổn định của kết cấu xe là yếu tố quan trọng để nâng cao hiệu quả vận hành và bảo vệ hàng hóa trong suốt hành trình.
Thiết kế mạch điện tử cho xe hoạt động ổn định với nhiều cổng vào ra, giúp điều khiển các động cơ và kết nối với cảm biến dễ dàng Hệ thống được lập trình để xe di chuyển chính xác đến vị trí mong muốn và thực hiện các thao tác với tốc độ ổn định Xe được trang bị khả năng phát hiện vật cản trong quá trình di chuyển, từ đó đưa ra cảnh báo và định hướng di chuyển phù hợp, nâng cao hiệu quả và an toàn khi vận hành.
1.5.2 Đề xuất thiết kế robot vận chuyển tự động
Trong quá trình tìm hiểu, chúng em nhận thấy các vấn đề về vận chuyển, bốc dỡ và lưu trữ hàng hóa ngày càng đóng vai trò quan trọng Robot vận chuyển tự động đã được nhiều doanh nghiệp đầu tư triển khai trong kho xưởng, ngày càng khẳng định vị trí quan trọng trong lĩnh vực vận chuyển vật liệu Vì vậy, chúng em quyết định nghiên cứu thiết kế robot vận chuyển hàng hóa, đặc biệt là trong ngành may mặc như quần áo và vải vóc Robot vận chuyển tự động này sở hữu một số chức năng nổi bật giúp nâng cao hiệu quả công việc và tối ưu hóa quy trình logistics trong nhà xưởng.
- Xe di chuyển tự động theo đường line thiết kế
- Vận chuyển hàng hóa tự động đến kho theo lập trình sẵn
- Dừng lại khi gặp vật cản
- Điều khiển từ xa thông qua bluetooth
- Cảm biến siêu âm HC – SR04
- Bánh chuyển đổi đa hướng
THIẾT KẾ HỆ THỐNG PHẦN CỨNG
Sơ đồ khối của hệ thống
Hình 2.1: Sơ đồ khối của hệ thống robot vận chuyển hàng hóa tự động
- Bộ điều khiển trung tâm: Xử lý dữ liệu điều khiện vận hành của robot Sử dụng Arduino Nano
- Khối thu tín hiệu: Xác định tín hiệu trên đường vận chuyển sau đó chuyển về trung tâm điều khiển
Cảm biến hồng ngoại: Xác định đường dò line cho robot di chuyển và nhận biết hàng trên thùng hàng.
Cảm biến siêu âm HC-SR4: Xác định vật cản trên đường vận chuyển
- Module Bluetooth: Điều khiển robot từ xa Sử dụng module bluetooth HC-06.
- Khối nguồn: Cung cấp năng lượng cho toàn bộ robot
- Động cơ servo G90: Điều khiển đóng mở thùng chở hàng
- Khối hiển thị: Hiển thị thông tin trạng thái của robot trong quá trình hoạt động.
- Khối động cơ : Cho xe di chuyển từ các vị trí khác nhau
Hệ thống điều khiển trung tâm
2.2.1 Giới thiệu về họ Arduino Nano
Arduino Nano là phiên bản nhỏ gọn của các dòng Arduino như Uno R3, được thiết kế phù hợp để sử dụng với breadboard, giúp tiết kiệm không gian nhưng vẫn đảm bảo đầy đủ chức năng như một board Arduino thông thường.
Arduino Nano nhỏ gọn, đầy đủ chức năng và tiện dụng khi sử dụng cùng breadboard, phù hợp cho các dự án điện tử DIY Sử dụng chip Atmega328-AU, Arduino Nano còn có thêm hai chân Analog A6 và A7, khác biệt so với các board cắm thông thường Ngoài ra, Arduino Nano tích hợp opamp tự động chuyển nguồn khi có điện áp cao hơn, giúp loại bỏ nhu cầu sử dụng công tắc chọn nguồn, mang lại sự tiện lợi tối đa trong thiết kế mạch.
Các thông số kỹ thuật của Arduino Nano:
Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân PWM)
Số chân Analog 8 ( độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 40 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 2KB dùng bởi bootloader
Chức năng của Arduino Nano:
- Arduino Nano hoạt động với điện áp 5V Tuy nhiên nguồn cấp điện áp đầu vào có thể thay đổi từ 7 đến 12V.
- Arduino Nano bo gồm tất cả 14 chân Digital, 8 chân Analog, 2 chân Reset và 6 chân Nguồn.
Các chân Digital và Analog có thể thực hiện nhiều chức năng khác nhau, nhưng chức năng chính của chúng là được cấu hình làm đầu vào (Input) hoặc đầu ra (Output) Khi giao tiếp với cảm biến, các chân này đóng vai trò là chân Input, nhận tín hiệu từ cảm biến để truyền về hệ thống Ngược lại, khi điều khiển động cơ, tạo xung hoặc kích hoạt relay, các chân Digital hoặc Analog lại đảm nhiệm vai trò là chân Output để xuất tín hiệu điều khiển thiết bị.
Các hàm cơ bản như pinMode() và digitalWrite() được sử dụng để điều khiển hoạt động của các chân Digital trên Arduino, giúp thiết lập chế độ và điều khiển điện áp Trong khi đó, analogRead() được sử dụng để đọc giá trị Analog từ các chân Analog, phục vụ cho các ứng dụng đo lường và cảm biến Việc sử dụng đúng các hàm này là nền tảng quan trọng để lập trình điều khiển thiết bị điện tử.
- Các chân Analog có độ phân giải 10 bit, giá trị thay đổi từ 0V đến 5V.
Arduino Nano có một hạn chế là không đi kèm giắc nguồn DC, điều này có nghĩa là không thể cung cấp nguồn điện bên ngoài qua các chân như trên Arduino Uno hoặc Arduino Mega Thay vào đó, người dùng buộc phải cắm trực tiếp qua cổng USB Mini để cấp nguồn cho thiết bị.
Arduino Nano sử dụng cổng USB Mini thay vì cổng USB tiêu chuẩn để kết nối với máy tính, giúp giảm kích thước của board mạch và phù hợp với các dự án nhỏ gọn Cổng USB Mini là một lựa chọn phổ biến trên các dòng Arduino Nano, đảm bảo truyền dữ liệu ổn định và dễ dàng thao tác Việc sử dụng cổng USB Mini không ảnh hưởng đến khả năng lập trình, vẫn có thể tải chương trình từ máy tính thông qua phần mềm Arduino IDE Trong các ứng dụng điện tử, Arduino Nano cung cấp giải pháp tối ưu cho các dự án yêu cầu nhỏ gọn, linh hoạt kết nối qua cổng USB Mini.
Arduino Nano có kích thước nhỏ gọn cùng với các tính năng tương tự như Arduino Uno, khiến nó trở thành lựa chọn lý tưởng cho các dự án yêu cầu tối ưu hóa kích thước các thành phần điện tử Với thiết kế nhỏ gọn và khả năng tích hợp cao, Arduino Nano phù hợp cho nhiều ứng dụng điện tử, đặc biệt trong các dự án cần không gian hạn chế Việc sử dụng Arduino Nano giúp các nhà phát triển dễ dàng hoàn thiện các dự án có tính linh hoạt cao, đồng thời tiết kiệm không gian và chi phí.
2.2.2 Module cảm biến hồng ngoại
Module cảm biến hồng ngoại có khả năng thích nghi với điều kiện ánh sáng môi trường xung quanh, giúp hoạt động ổn định trong nhiều môi trường khác nhau Nó sử dụng một cặp thu phát hồng ngoại bao gồm đèn LED phát và thu hồng ngoại, dễ dàng phát hiện vật cản phía trước Khi mô-đun phát hiện chướng ngại vật, đèn LED phát sáng để báo hiệu, trong khi cổng OUT duy trì tín hiệu đầu ra thấp, phù hợp cho các ứng dụng cảm biến và điều khiển tự động.
Module cảm biến hồng ngoại, như hình 2.3, có khả năng phát hiện khoảng cách từ 2 đến 30cm, trong đó khoảng cách hoạt động tối ưu từ 2 đến 10cm trong điều kiện thực tế Với góc quét 35°, khoảng cách phát hiện có thể được điều chỉnh bằng cách chỉnh biến trở, quay theo chiều kim đồng hồ để tăng khoảng cách và ngược lại để giảm Điều này giúp tối ưu hóa hiệu quả phát hiện dựa trên nhu cầu ứng dụng cụ thể.
Các cảm biến hồng ngoại phát hiện hoạt động phản xạ của mục tiêu, trong đó phản xạ và hình dạng của đối tượng là yếu tố quan trọng để xác định khoảng cách Cảm biến có khả năng phát hiện màu đen trong phạm vi tối thiểu, màu trắng trong phạm vi tối đa, và các đối tượng nhỏ trong diện tích nhỏ từ một vùng rộng lớn Cổng ra của module cảm biến OUT có thể kết nối trực tiếp với các chân IO của vi điều khiển để điều khiển relay 5V Các kết nối chính gồm VCC-VCC, GND-GND, và OUT-IO, giúp dễ dàng tích hợp vào hệ thống tự động hóa và điều khiển từ xa.
Module Sử dụng LM393 rất ổn định:
Thiết bị có thể cung cấp điện cho các module DC từ 3-5V, phù hợp để kết nối trực tiếp với nguồn 5V hoặc 3.3V của MCU Khi nguồn được bật, đèn báo đỏ sáng để xác nhận hoạt động của thiết bị Các chân VCC hỗ trợ điện áp từ 3.3V đến 5V, giúp dễ dàng tích hợp với các vi điều khiển như Arduino hoặc Raspberry Pi Cổng GND giữ vai trò kết nối đất chung, đảm bảo mạch hoạt động ổn định Ngoài ra, thiết bị còn có đầu ra kỹ thuật số nhỏ (OUT) với tín hiệu 0 và 1, giúp truyền dữ liệu dễ dàng và chính xác.
- Ứng dụng dò đường, tránh chướng ngại vật, đếm sản phẩm,
2.2.3 Cảm biến siêu âm HC-SR04
Cảm biến siêu âm HC-SR04 là một module cảm biến hoạt động dựa trên nguyên lý thu phát sóng siêu âm, sử dụng hai loa cao tần để đo khoảng cách hoặc phát hiện vật cản Thường được tích hợp cùng các bộ điều khiển như Arduino, PIC, AVR để phục vụ các ứng dụng như robot tự hành, đo khoảng cách vật thể hay hỗ trợ trong các dự án tự động hóa Đây là cảm biến phổ biến nhờ độ chính xác cao, dễ sử dụng và phù hợp cho nhiều dự án điện tử và điều khiển tự động.
Hình 2.4: Cảm biến siêu âm HC-SR04 Cấu tạo của cảm biến siêu âm HC-SR04 gồm 3 phần:
Bộ phận phát sóng siêu âm sử dụng các loa gốm đặc biệt phát ra sóng siêu âm ở tần số thường là 40kHz nhằm đo khoảng cách chính xác Các đầu phát và đầu thu siêu âm cấu tạo từ các loa gốm này có khả năng phát và nhận sóng siêu âm cường độ cao Trong mạch công suất, IC MAX232 đóng vai trò làm bộ đệm, khuếch đại tín hiệu từ bộ điều khiển lên mức +/-30V để cấp nguồn cho các bộ loa Để tránh tiêu thụ dòng quá lớn, IC này được điều khiển ngắt bởi transistor, giúp tối ưu hóa hiệu suất làm việc của hệ thống siêu âm.
Bộ phận thu sóng siêu âm phản xạ sử dụng loa gốm nhạy với tần số cố định như 40KHz để nhận tín hiệu Tín hiệu từ thiết bị sau đó được khuếch đại biên độ thông qua các linh kiện điện tử như OPAMP TL072 và transistor NPN Cuối cùng, tín hiệu đã được xử lý sẽ qua bộ so sánh, phối hợp cùng tín hiệu từ bộ điều khiển để truyền về hệ thống điều khiển chính.
Bộ phận xử lý, điều khiển tín hiệu trong hệ thống bao gồm vi điều khiển như PIC16F688 hoặc STC11, đảm nhiệm chức năng phát xung và xử lý tính toán thời gian từ lúc phát đến khi thu được sóng siêu âm Khi nhận được tín hiệu TRIG, vi điều khiển sẽ xác định chính xác thời điểm phát sóng và xử lý dữ liệu để đo khoảng cách một cách chính xác Vi điều khiển đóng vai trò quan trọng trong việc điều khiển hoạt động của cảm biến siêu âm, giúp hệ thống đo lường hiệu quả và chính xác hơn.
Nguyên lý hoạt động của cảm biến siêu âm HC-SR04:
LẬP TRÌNH ROBOT VẬN CHUYỂN TỰ ĐỘNG
Phần mềm lập trình
3.1.1 Giới thiệu phần mềm Arduino IDE
Arduino IDE là phần mềm mã nguồn mở chính thức được sử dụng để viết và biên dịch mã cho module Arduino, giúp người dùng dễ dàng lập trình ngay cả khi không có kiến thức kỹ thuật Phần mềm hỗ trợ nhiều hệ điều hành như macOS, Windows và Linux, chạy trên nền tảng Java, với các chức năng và lệnh tích hợp sẵn phục vụ quá trình gỡ lỗi, chỉnh sửa và biên dịch mã hiệu quả trong môi trường phát triển Arduino.
Arduino cung cấp nhiều mô-đun phổ biến như Arduino Uno, Arduino Mega, Arduino Leonardo và Arduino Nano, phù hợp với nhiều dự án khác nhau Mỗi module đều tích hợp một bộ vi điều khiển trên bo mạch, được lập trình để xử lý và nhận dữ liệu dưới dạng mã Để lập trình cho Arduino, người dùng viết mã chính hay còn gọi là sketch trên nền tảng IDE, sau đó IDE sẽ biên dịch mã này thành file Hex Cuối cùng, file Hex sẽ được chuyển và tải lên bộ điều khiển trên bo mạch, giúp module hoạt động theo chương trình đã cài đặt.
Môi trường IDE gồm hai thành phần chính là Trình chỉnh sửa mã và Trình biên dịch, trong đó phần Trình chỉnh sửa giúp người dùng viết mã nguồn dễ dàng, còn phần Trình biên dịch đảm nhiệm quá trình chuyển đổi mã thành dạng có thể tải lên module Arduino IDE là công cụ thiết yếu cho lập trình Arduino, giúp tối ưu hóa quy trình phát triển phần mềm và đảm bảo mã nguồn được biên dịch chính xác Sử dụng môi trường IDE phù hợp sẽ nâng cao hiệu quả làm việc, giảm thiểu lỗi trong quá trình phát triển dự án Arduino.
Người sử dụng chỉ cần định nghĩa hai hàm để thực hiện một chương trình hoạt động theo chu trình:
- Setup(): hàm chạy một lần duy nhất vào lúc bắt đầu của chương trình dùng để khởi tạo các thiết lập.
- Loop(): hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt.
Giao điện phần mềm Arduino IDE:
Hình 3.1: Giao diện của phần mềm Arduino IDE Trong quá trình sử dụng, chúng ta quan tâm đến các Menu như sau:
- New: tạo một file mới (Ctrl + N)
- Open: sử dụng để mở file đã được lưu trước đó (Ctrl + O)
- Open Recent: hiển thị danh sách rút gọn các chương trình đã mở gần đây.
- Sketchbook: hiển thị các sketch hiện tại mà bạn đã sử dụng cho project của mình
- Examples: Ví dụ về một vài vấn đề cơ bản để tham khảo.
- Close: đóng cửa sổ màn hình chính (Ctrl + W)
- Save: được sử dụng để lưu sketch hiện tại (Ctrl + S)
- Save as… : cho phép lưu sketch hiện tại với một tên khác (Ctrl + Shift + S)
- Page setup: cài đặt trang để sửa đổi trang (Văn bản) (Ctrl + Shift + P)
- Print: được sử dụng để in chương trình hiện tại (Ctrl + P)
- Preferences: cài đặt của phần mềm IDE có thể được thay đổi tại đây. (Ctrl +,)
- Quit: đóng tất cả các cửa sổ IDE (Ctrl + Q)
Hình 3.3: Giao diện Edit Trong đó:
- Undo / Redo: quay lại một hoặc nhiều bước bạn đã làm trong khi chỉnh sửa
- Cut: cắt văn bản đã chọn khỏi trình chỉnh sửa
- Copy: sao chép văn bản đã chọn từ trình chỉnh sửa
- Copy for Forum: sao chép và thay đổi kiểu mã phù hợp với diễn đàn
- Copy as HTML: sao chép và thay đổi kiểu mã phù hợp với HTML
- Paste: dán văn bản từ văn bản đã sao chép
- Select All: chọn tất cả nội dung từ trình chỉnh sửa
- Comment / Uncomment: sử dụng để ghi chú và bỏ ghi chú các dòng mã đã chọn
- Increase / Decrease Indent: thêm hoặc xóa một khoảng trắng ở đầu mỗi dòng đã chọn
- Find: tìm văn bản đã nhập trong trình chỉnh sửa
- Find next: tìm vị trí tiếp theo của từ đang tìm kiếm
- Find previous: tìm vị trí trước đó của từ đang tìm kiếm
Hình 3.4: Giao diện Sketch Trong đó:
- Verify / Compile: kiểm tra hoặc xác minh chương trình của bạn nếu có bất kỳ lỗi nào và hiển thị trong bảng đầu ra.
- Upload: biên dịch và tải mã lên bo Arduino.
- Upload using programmer: tải mã lên bằng Programmer có sẵn trong tab Tools.
- Export Compiled Binary: lưu file hex trong hệ thống
- Show Sketch Folder: mở thư mục sketch hiện tại.
- Include Library: thêm thư viện vào sketch của bạn bằng cách chèn các câu lệnh #include vào đầu mã
- Add File… : thêm một file vào sketch và file mới xuất hiện trong tab mới trong cửa sổ.
Hình 3.5: Giao diện Tool Trong đó:
- Auto Format: định dạng mã của bạn thành một định dạng đẹp để mọi người có thể hiểu.
- Archive Sketch: sao chép mã sang định dạng winrar (.zip)
Hướng dẫn sửa lỗi mã hóa và tải lại trang giúp khắc phục sự khác biệt có thể xảy ra giữa mã hóa bản đồ ký tự của trình soạn thảo và hệ điều hành, đảm bảo dữ liệu được hiển thị chính xác và không bị lỗi ký tự.
- Serial Monitor: màn hình nối tiếp hiển thị giao tiếp trực quan bằng cách gửi và nhận dữ liệu
- Board: để chọn loại bo Arduino
- Port: để chọn cổng mà bạn đã kết nối Arduino
- Programmer: để chọn một programmer phần cứng khi lập trình bo mạch hoặc chip và không sử dụng kiểu giao tiếp USB.
- Burn Bootloader: được sử dụng để ghi bộ nạp khởi động vào bo Arduino
Arduino Toolbar có một số button và chức năng như sau:
Hình 3.6: Giao diện thanh Toolbar Trong đó:
- Verify(1): kiểm tra có lỗi code hay không.
- Upload(2): nạp code đang soạn thảo vào Arduino.
- New,open,Save(3): Tạo mới ,mở ,lưu.
- Serial Monitor(4): Đây là màn hình hiển thị dữ liệu Arduino gửi lên máy tính.
3.1.2 Giới thiệu ứng dụng Blynk
Blynk là nền tảng ứng dụng điện thoại thông minh giúp dễ dàng kết nối và điều khiển các bộ vi điều khiển như Arduino, Esp8266, Esp32 hoặc Raspberry Pi qua Internet Giao diện của ứng dụng Blynk thân thiện và trực quan, hỗ trợ người dùng tối đa trong việc lập trình và vận hành các thiết bị IoT Với Blynk, bạn có thể dễ dàng tương tác từ xa với các dự án điện tử của mình, nâng cao hiệu quả và linh hoạt trong công việc.
Blynk App là bảng điều khiển kỹ thuật số giúp bạn xây dựng giao diện đồ họa cho dự án IoT của mình một cách dễ dàng nhờ tính năng kéo và thả các widget đa dạng Không bị giới hạn bởi một loại bo mạch hay shield cụ thể, Blynk hỗ trợ nhiều phần cứng như Arduino, Raspberry Pi, ESP8266 qua các kết nối Wi-Fi, Ethernet hoặc Internet Nhờ đó, Blynk giúp kết nối linh hoạt và chuẩn bị sẵn sàng cho các dự án IoT của bạn, mang lại trải nghiệm tùy biến và dễ dàng sử dụng.
Blynk Server chịu trách nhiệm quản lý tất cả các giao tiếp giữa điện thoại thông minh và phần cứng, giúp kết nối thiết bị dễ dàng và hiệu quả Người dùng có thể lựa chọn sử dụng Blynk Cloud hoặc cài đặt máy chủ Blynk riêng để phù hợp với nhu cầu của mình Là mã nguồn mở, Blynk Server dễ dàng mở rộng hỗ trợ hàng nghìn thiết bị và có thể được triển khai trực tiếp trên các thiết bị như Raspberry Pi, mang lại sự linh hoạt và tiết kiệm chi phí cho các dự án IoT.
Thư viện Blynk hỗ trợ tất cả các nền tảng phần cứng phổ biến, giúp dễ dàng giao tiếp với máy chủ và xử lý các lệnh đến và đi Khi người dùng nhấn nút trong ứng dụng Blynk, thông điệp sẽ được gửi qua đám mây của Blynk đến phần cứng của bạn, đảm bảo kết nối liên tục và hiệu quả cho hệ thống IoT của bạn.
Để xây dựng và quản lý hệ thống phần cứng kết nối hiệu quả, bạn cần các giải pháp cung cấp thiết bị, hiển thị dữ liệu cảm biến, tích hợp điều khiển từ xa qua các ứng dụng web và di động Hệ thống còn cho phép cập nhật phần mềm qua mạng, đảm bảo tính bảo mật cao, phân tích dữ liệu chuyên sâu và quản lý người dùng cùng quyền truy cập dễ dàng Ngoài ra, các chức năng cảnh báo, tự động hóa và nhiều tính năng khác giúp tối ưu hoạt động và nâng cao hiệu quả của hệ thống kết nối.
- API và giao diện người dùng tương tự cho tất cả phần cứng và thiết bị được hỗ trợ
- Kết nối với đám mây bằng cách sử dụng: Wifi, Bluetooth và BLE, Ethernet, USB, GSM
- Bộ Widget dễ sử dụng
- Thao tác ghim trực tiếp mà không cần viết mã
- Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng ghim ảo
- Theo dõi dữ liệu lịch sử qua tiện ích SuperChart
- Giao tiếp giữa thiết bị với thiết bị sử dụng Bridge Widget
- Gửi email, tweet, push notification…
Lưu đồ thuật toán
3.2.1 Lưu đồ thuật toán tổng quát
Ta có lưu đồ tổng quát:
Hình 3.8: Lưu đồ thuật toán tổng quát
3.2.2 Chế độ điều khiển bằng tay
Ta có lưu đồ thuật toán:
Hình 3.9: Lưu đồ thuật toán điều khiển bằng tay
3.2.3 Chế độ điều khiển tự động
Ta có lưu đồ thuật toán:
Hình 3.10: Lưu đồ thuật toán điều khiển tự động
Chương trình điều khiển
#define BLYNK_USE_DIRECT_CONNECT
#include char auth[] = "L5KWeBaYG-AVlmP_O6S0s3eGxXsX7jpy"; int a=1,b=0,c=0,d=0,e=0,f=0,g=0;
LiquidCrystal_I2C lcd(0x27,16,2); int dem=0; int i=0; int k=2; int khoangcach=0;
#include "SRF05.h" const int trigger = 7; const int echo = 8;
The setup function initializes multiple pins on the Arduino board for input and output Specifically, analog pins A6, A7, A3, and A2 are configured as inputs, while digital pins 5, 6, 9, 10, 3, and 4 are set as outputs All output pins are initially set to a LOW state to ensure a safe starting condition for connected devices, enhancing the safety and reliability of the electronic project Proper pin configuration is essential for accurate data reading and effective control of connected components in Arduino-based projects.
SRF.setModeRunningAverage(1); se1(500); se2(1500); lcd.init(); lcd.backlight(); lcd.clear(); lcd.setCursor(1,0); lcd.print("DANG NHAN HANG"); while(analogRead(A7) > 100){
Serial.println(SRF.getMillimeter()); delay(100);
Serial.println(SRF.getMillimeter()); delay(100);
Blynk.run(); if(a == 1){ lcd.setCursor(1,0); lcd.print("MAN"); if(b==1){ analogWrite(9,200); digitalWrite(10,LOW); analogWrite(5,200); digitalWrite(6,LOW);
}else if(c==1){ analogWrite(10,200); digitalWrite(9,LOW); analogWrite(6,200); digitalWrite(5,LOW);
}else if(d==1){ analogWrite(10,200); digitalWrite(9,LOW); analogWrite(5,200); digitalWrite(6,LOW);
}else if(e == 1){ analogWrite(9,200); digitalWrite(10,LOW); analogWrite(6,200); digitalWrite(5,LOW);
}else{ digitalWrite(10,LOW); digitalWrite(9,LOW); digitalWrite(6,LOW); digitalWrite(5,LOW);
}; if(f == 1){ lcd.clear(); lcd.setCursor(1,1); lcd.print("DANG HA HANG A"); delay(1000); se1(1500); delay(3000); se1(500); lcd.clear();
}; if(g == 1){ lcd.clear(); lcd.setCursor(1,1); lcd.print("DANG HA HANG B"); delay(1000); se2(500); delay(3000); se2(1500); lcd.clear();
This code segment checks if a specific condition is met (a == 0), and if so, it measures the distance using a sensor When the measured distance is less than 120 millimeters, it turns off multiple digital outputs and displays a message on the LCD screen indicating that the obstacle is close and the vehicle is stopped The system continuously monitors the distance until it exceeds 120 millimeters, ensuring safe stopping before proceeding This functionality is essential for obstacle detection and safety in autonomous vehicle projects.
The code checks if the input from analog pin A0 equals 1, and if so, it turns off outputs connected to pins 5, 6, 9, and 10 It then increments a counter variable and, when this counter reaches 1, it ensures all these outputs remain turned off, clears the LCD display, and shows the message "DANG HA HANG A" for one second Subsequently, it plays a sound sequence with specific delays, clears the LCD again, providing a clear and responsive control flow for user interaction and visual feedback.
}; if(i == 2){ digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); lcd.clear(); lcd.setCursor(1,0); lcd.print("DANG HA HANG B"); delay(1000); se2(500); delay(3000); se2(1500); lcd.clear(); delay(2000);
}; if(i == 3){ digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); lcd.clear(); lcd.setCursor(2,0); lcd.print("DANG NHAN HANG"); while(analogRead(A7) < 100){ delay(100);
}; delay(3000); dithang(50); delay(200); dithang(90); delay(200); dithang(150); delay(200);
} void retrai(char x){ analogWrite(9,x+100); digitalWrite(10,LOW); digitalWrite(5,LOW); analogWrite(6,x);
} void cheotrai(char x){ analogWrite(9,x); digitalWrite(10,LOW); analogWrite(5,x-100); digitalWrite(6,LOW);
} void dithang(char x){ analogWrite(9,x); digitalWrite(10,LOW); analogWrite(5,x); digitalWrite(6,LOW);
} void cheophai(char x){ analogWrite(5,x); digitalWrite(6,LOW); analogWrite(9,x-100); digitalWrite(10,LOW);
} void rephai(char x){ analogWrite(5,x+100); digitalWrite(6,LOW); digitalWrite(9,LOW); analogWrite(10,x);
} void se1(int g){ for(int i=0;i < 30;i++){ digitalWrite(3,HIGH); delayMicroseconds(g); digitalWrite(3,LOW); delayMicroseconds(20000-g);
} void se2(int g){ for(int i=0;i < 30;i++){ digitalWrite(4,HIGH); delayMicroseconds(g); digitalWrite(4,LOW); delayMicroseconds(20000-g);