Otto Bosch - Robot theo phong cách Hieronymus Bosch
Khám phá dự án Otto Bosch, sự kết hợp giữa robot Otto với tạo hình kỳ dị lấy cảm hứng từ Hieronymus Bosch. Bài viết chi tiết về quá trình in 3D, tích hợp cảm biến siêu âm, dò đường và hệ thống định hướng âm thanh độc đáo.
Mô tả
Otto Robot là một con robot nhỏ xinh, trông giống như một cái đầu đang bay lơ lửng trên sàn nhà. Nhưng nghe có vẻ hơi kỳ quặc đúng không nào? Vậy thì tại sao chúng ta không đẩy sự kỳ quặc ấy lên mức tối đa và biến nó thành một tạo vật lấy cảm hứng từ Hieronymus Bosch? Mình bắt đầu bằng bức ảnh từ thế kỷ XVI của một người theo trường phái Hieronymus Bosch:

Mình đã chọn ra sinh vật kỳ dị trong hình, một cái đầu kỳ lạ với những cánh tay mọc ra từ thái dương, đôi chân ếch từ má và một chiếc lều lạ lùng ở trên đỉnh. Mình sử dụng Meshy để thực hiện bước chuyển đổi cơ bản từ ảnh 2D sang mô hình 3D. Sau đó, mình thực hiện chỉnh sửa kỹ lưỡng bằng các công cụ điêu khắc trong Blender rồi mới điều chỉnh để khớp với Otto Robot và thêm vào một số chức năng.
Điều đáng buồn là khi gắn nhãn dự án này là sản phẩm có hỗ trợ từ AI, mình đã tự loại mình khỏi cuộc thi thiết kế robot Otto! Mình thấy tiếc vì đã không thử tự tay tạo hình sinh vật này. Nhưng suy cho cùng, đó cũng là một trải nghiệm thú vị để thấy cách AI biến hình ảnh 2D thành hình khối 3D.
Con quái vật
AI chỉ tạo ra mô hình 3D ban đầu, một cái đầu với đôi tay kéo rộng miệng. Mình đã dùng công cụ điêu khắc trong Blender để tạo hình lại toàn bộ cái đầu. Khu vực quanh mắt cần phải thiết kế lại rất nhiều để lắp vừa cảm biến siêu âm. Mình còn thêm một đôi tai để có thể gắn micro phục vụ việc phát hiện hướng âm thanh.

Phần phía sau là một khối vuông dựa trên mô-đun giữa và trên của các mô-đun gốc mà mình đã tham khảo. Mình làm phẳng mặt trong của mô-đun trên vì không dùng vòng LED ở đó. Mình đã thêm các lỗ bắt vít cho shield Arduino Nano và một khe hở cho cổng micro USB.

Sau đó mình đã mở rộng lỗ cắm USB và thêm một lỗ khác cho giắc cắm nguồn (barrel contact). File có thể tải xuống đã bao gồm các lỗ này.

Mình thêm một khe hở 0,5 mm để phần khớp nối di chuyển linh hoạt hơn khi gắn với mô-đun bên dưới.
In phần đầu
Hình dáng của nó rất phức tạp và lẽ ra sẽ dễ hơn nếu in thành nhiều phần. Nhưng mình quyết định in liền một khối, kết quả rất ổn dù tốn khá nhiều công gỡ support. Mình xoay cái đầu trong Slicer sao cho nó nằm phẳng trên phần cấu trúc giống như cái mũ. Mình cũng thiết lập đổi màu để bản in bắt đầu với PLA đen (đến 6,8 mm) và sau đó tiếp tục với PLA trong suốt (từ 7 mm).

Đang gỡ support hữu cơ.
Phần mô-đun dưới có các lỗ bắt vít cho khay đựng pin 4xAA:


Giá đỡ cho hai cảm biến hồng ngoại cho phép điều chỉnh cảm biến theo độ rộng của đường kẻ. Mình sử dụng cảm biến TCRT5000L.
Cái lều
Con quái vật trong tranh gốc có một cái lều lạ trên đầu. Thế là mình cũng làm một cái. Mình muốn đặt vòng LED RGB bên dưới nó để làm sáng nó lên. Vì vòng LED có 12 bóng nên mình làm cái lều có 12 cạnh.

Một phiên bản sớm của phần đầu. Một số chi tiết được thêm vào, một số bị xóa đi. Khu vực quanh mắt cũng cần sửa lại nhiều để lắp cảm biến siêu âm.
Phần mái sẽ làm bằng vật liệu tối màu, nhưng vách 12 cạnh phải trong suốt để ánh sáng xuyên qua. Mình thêm các lá chắn (lamels) để tách biệt màu sắc, nhờ đó mỗi cạnh trong 12 cạnh của cái lều có thể có màu riêng mà không bị lẫn ánh sáng từ cạnh kế bên.
Các hình ảnh dưới đây giải thích cấu trúc.

Mình có một vòng LED RGBW.

Mình dùng các lá chắn bằng PLA trắng để cách ly ánh sáng từ mỗi LED. Biên dạng của các lá chắn được lấy từ mô hình cái lều.
Mình thêm một bề mặt phụ để tăng cường phản xạ và tán xạ ánh sáng. Không cần để ánh sáng tán xạ vào trung tâm của cấu trúc lá chắn. Phần này mình in không có infill và không có lớp trên cùng! Nó làm cho cấu trúc rỗng và sau đó mình khoan một lỗ nhỏ ở lớp đáy rồi vặn vít cố định vào phần đầu khi lắp ráp mọi thứ.
Mô hình cái lều được in bằng PLA trong suốt với một lớp duy nhất để ánh sáng xuyên qua nhiều nhất có thể. Sự tán xạ đủ mạnh để ngăn chúng ta nhìn thấy cấu trúc bên trong cái lều.
Mình không dùng khớp nối ở đây. Cấu trúc lá chắn màu trắng được vặn vít vào phần đầu, nằm trong hình 12 cạnh, còn phần lều và mái thì chỉ cần dán keo. Hãy dùng một lượng rất ít siêu keo nếu bạn muốn có ý định mở cấu trúc ra sau này.
Bánh xe kiểu cũ
Mình muốn một chiếc bánh xe kiểu cũ nên đã tạo ra mô hình này:
Đây là cách nó trông như thế nào trong Prusa slicer khi chưa có support. Trông rất hứa hẹn. Về phần lốp xe, mình sẽ dùng o-ring có đường kính khoảng 60 mm và đường kính ống 3 mm.
Bánh xe dẫn hướng (Caster ball)
Mình không tin tưởng lắm vào việc in 3D vỏ bánh xe dẫn hướng. Bề mặt bên trong cần phải nhẵn và cứng như kim loại để viên bi lăn tự do. Mình sẽ thêm ba con lăn vào thiết kế. Thay vì viên bi cọ xát trực tiếp vào bề mặt nhựa, các con lăn sẽ chịu toàn bộ trọng lượng. Các con lăn là những vòng bi nhỏ, sẽ lăn dựa trên viên bi thép 10 mm. Dưới đây là nguyên lý:
Trong hình, cấu trúc đang di chuyển sang trái. Viên bi xoay ngược chiều kim đồng hồ. Điều này tạo ra ma sát lăn (vector màu tím). Cùng với trọng lượng (vector màu xanh dương), tổng lực hướng vào một trong các vòng bi. Tất nhiên lý tưởng nhất là hướng của lực trùng hoàn toàn với vị trí vòng bi. Trên thực tế, hai vòng bi còn lại sẽ cùng chia sẻ tải trọng. Nhưng khi tải trọng lớn nhất dồn vào vòng bi bên phải thì nó sẽ lăn rất êm, hai vòng bi kia vừa lăn vừa trượt.
Nhìn từ trên xuống, nó trông như thế này:
Khi hướng di chuyển theo mũi tên xanh đậm, trọng lượng dồn lên vòng bi số #2 và nó lăn rất êm trên viên bi. Vòng bi #1 và #3 chịu ít lực hơn nên vừa trượt vừa lăn. Khi hướng theo vector xanh nhạt, cả vòng bi #2 và #3 đều chịu tải. Cả hai vừa trượt vừa lăn, trong khi vòng bi #1 chỉ lăn. Đó sẽ là thép cứng cọ với thép cứng, cộng thêm một chút dầu bôi trơn. Vì vậy, chỉ có 3 hướng (và tốc độ) hoàn hảo mới giúp một vòng bi chịu tải chính và chỉ lăn chứ không trượt. Việc thêm vòng bi có thể cải thiện khả năng lăn tổng thể, nhưng mỗi vòng bi thêm vào cũng làm tăng thêm một điểm trượt. Mình chọn 3 vòng bi vì tải trọng sẽ được phân bổ đều. Mình không tin là mình có thể đặt 4 vòng bi để tải trọng cân bằng. Đó là bài toán cái ghế 3 chân so với 4 chân.
Đây là nỗ lực đầu tiên của mình:
Các lỗ bắt vít khớp với mô-đun dưới mà mình đã và sẽ sử dụng trong thiết kế cuối cùng. Viên bi được lắp từ phía trên trước khi gắn giá đỡ.
Viên bi thép 10 mm không đi xa hơn lỗ 8 mm ở cuối.
Ba vòng bi, kích thước 5x2,5 mm, lỗ 2 mm, đặt vào các khe trong thân giá đỡ.
Một trục thép cố định từng vòng bi tại chỗ. Mình dùng nan hoa xe đạp đường kính 1,85 mm.
Các vòng bi không nên ép viên bi vào lỗ 8 mm. Thay vào đó, cần có khe hở dọc từ 0,1 - 0,2 mm.
Mọi thứ khớp hoàn hảo. Mình có thể cảm nhận được một chút khe hở dọc của viên bi, đủ để nó lăn tự do. Không lúc nào mình thấy viên bi chạm vào các phần nhựa. Vì vậy, dù robot quay hướng nào, bánh dẫn hướng cũng sẽ xoay tròn thay vì cọ xát vào sàn. Nếu nó bị trượt, điều đó chỉ có nghĩa là ma sát với sàn còn thấp hơn cả lực kết hợp giữa lăn và trượt trên ba vòng bi.
Thú thật là...
Nếu bạn thấy cấu trúc bánh dẫn hướng này ngầu và muốn làm theo, trước khi đặt mua vòng bi, hãy cân nhắc xem liệu nó có hơi thừa thãi không. Có lẽ chỉ cần để viên bi chạm vào thép cứng thay vì nhựa in 3D là đủ để giảm ma sát rồi. Mình chưa từng thử cách đó, mình làm luôn cách này vì tình cờ có sẵn mấy cái vòng bi.
Chức năng dự kiến
Chưa phải mọi chức năng đều đã hoàn thiện. Dự án này thiên về thiết kế hơn là giải quyết các chi tiết kỹ thuật.
Chuyển động cơ bản
Mô hình này hoạt động giống như robot Otto có bánh xe. Hai servo quay liên tục điều khiển bánh xe.
Vòng LED và cái lều
Vòng LED mình dùng có 12 bóng RGBW. Thành phần W (White) là ánh sáng trắng rất mạnh, phù hợp cho các hiệu ứng như chớp sáng. Mình không có bóng thứ 13 ở giữa vòng. Nếu có, mình đã có thể làm một ống dẫn sáng lên đỉnh mái lều.
Dò đường (Line follower)
Hai cảm biến hồng ngoại ở phía dưới dùng để dò đường. Với hai cảm biến, robot có thể bám theo đường kẻ đen ở giữa và phát hiện các ngã rẽ.
Siêu âm
Tính năng cơ bản của robot Otto.
Định hướng âm thanh
Cái đầu có đôi tai rất giống người. Một hốc dẫn vào phần trong đầu, nơi có thể gắn micro. Ý tưởng là robot có thể phát hiện hướng nguồn âm thanh. Mình đã dùng một microphone shield của Infineon, nhưng nó yêu cầu khả năng I2S của vi điều khiển, thứ mà Arduino Nano không có. Thay vào đó, mình nối trực tiếp micro vào Nano và đọc chân ngắt (interrupt pins). Nó sẽ không thu âm thanh thực tế mà chỉ hoạt động như một cảm biến âm thanh, có khả năng đo chênh lệch thời gian tín hiệu ở cả hai tai và từ đó xác định hướng nguồn âm thanh.
Đây là trang dự án Hackster giải thích nguyên lý.
Video
Vòng Neopixel cực kỳ mạnh, khiến việc quay video rất khó. Vì vậy, mình đã thay đổi cài đặt camera để bạn có thể hình dung thực tế ánh sáng màu sắc trông như thế nào.
Giấy phép
Tác phẩm này được cấp phép theo
Creative Commons — Attribution — Noncommercial — Share AlikeCC-BY-NC-SA
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!