Xin chào mọi người
Mình đang muốn làm một sản phẩm có tên là kinetic rain ( cái này mình không biết giải thích sao, các bạn cứ search gg là hiểu cái mình muốn làm ).
Đây là sản phẩm kết hợp giữa cơ điện tử vs lập trình. Mình học cntt nên chắc việc lập trình cho nó lên xuống thì làm được. Nhưng các phần khác thì mình đang tìm hiểu, ví dụ
cái gì chịu trách nhiệm kéo những hạt bi lên xuống ?. Làm sao để điều chỉnh tốc độ ( mình mới nghĩ đến cái motor trong đồ chơi bọn trẻ con )
làm sao các motor này có sự liên kết với nhau
Nhiều vấn đề khác nữa mình chưa nghĩ ra
Mọi người ai có ý tưởng gì không, xin chỉ giáo với.
Ace nào thấy có hứng thú với sản phẩm này comment ở đây nha, chúng ta cùng thảo luận
Cảm ơn nha. T từng xem video này rồi. Video mang tính giới thiệu là chính.
Ai người ta dạy mình làm cụ thể như thế nào đâu
Mình đang tính đăng vào cộng đồng andruino thì có khi có người biết
Thật ra có thể do bạn chưa có cơ bản về robotic nên thấy video không có thông tin gì.
Trong cả dự án này cũng chẳng có gì quá khó cả, và từ khóa quan trọng nhất trong video là đoạn từ 1:00 tới 1:20.
Ừ cậu, tớ có đề cập về việc họ mô tả tương đối cơ bản nguyên lý làm kinetic rain mà
Tớ nghĩ nó đủ để giúp cậu trả lời các câu hỏi dưới đây, phải không?
Ngoài ra, tớ thấy video trên cũng có một chút thông tin hữu ích, như:
Xương sống của Kinetic rain là các module vật lý, trong đó mỗi droplet sẽ có một motor. Motor này sẽ được điều khiển và track một cách chính xác, thường bằng một chương trình riêng.
Linh hồn của Kinetic rain là các model 3 chiều. Họ vẫn cần animate model manually, tức là họ vẫn cần chỉnh bằng tay từng thông số của từng raindrop (tương ứng với tốc độ quay, thời gian quay, của motor điều khiển nó) để animate được các raindrop. Theo kinh nghiệm của cá nhân tớ, ở giai đoạn đầu cậu luôn cần làm vậy.
Họ cũng lập trình các model ở giai đoạn sau, khi họ tìm ra được các quy luật có thể lập trình được.
Model này sẽ được dịch sang dữ liệu để nạp vào chương trình điều khiển các motor (dữ liệu này sẽ cho phép chương trình điều khiển motor biết được cần tốc độ quay, chiều quay và thời gian quay của từng motor tại từng thời điểm), bằng một phần mềm mà họ tự viết.
Về phần này:
Ừ, cậu có thể thử đăng vào cộng đồng andruino xem Tớ nghĩ họ có thể giải thích thêm cho cậu đó!
EDIT (@tranhai2602) Tớ có thêm một chút thông tin cho cậu đấy
Mình có vài thông tin cho bạn để dễ dàng tìm hiểu hơn.
Bạn luôn phải build 1 mô hình 3D giả lập trên máy tính trước để có thể mô phỏng hiệu ứng và create nhiều dạng hiệu ứng khác nhau. Phân này là software độc lập, không dính tới hardware. Tại sao cần làm vậy? Để tiện cho việc testing. Nhóm của mình từng làm một trò chơi 3D Maze trên 1 khối lập phương LED, một bạn phụ trách giả lập khởi tạo mê cung và gameplay trên C#. Công việc của bạn ấy có thể làm độc lập và song song với bạn làm hardware và bạn làm driver. Khi các module riêng rẽ làm xong và đúng interface như quy ước ban đầu thì lúc ghép nối lại diễn ra rất mượt mà.
Motor thường dùng trong trường hợp này là servo motor, loại động cơ này có đặc tính là độ chính xác cao, có thể quay 2 chiều, có bộ encoder để đọc feedback bước quay. Lý thuyết là thế này: giả sử bạn muốn motor quay nửa vòng thì cần truyền 50 xung PWM cho motor, nhưng thực tế motor chỉ quay được gần nửa vòng thì dừng, thì encoder sẽ feedback về driver để driver biết là thiếu 1 xung nữa để có thể hoàn thành nửa vòng.
Tất cả các motor đều cần được calibration bằng tay, và gần như không thể làm tự động khâu này. Vì mỗi động cơ có đặc tính cơ khí duy nhất, không có cái nào giống cái nào. Lấy ví dụ hú họa là có cái truyền 50 xung thì được nửa vòng, có cái truyền 60 xung thì được nửa vòng. Do đó, quá trình calibration là quá trình điều chỉnh để driver của mỗi động cơ cho ra output giống nhau tương ứng với lệnh truyền từ software.
Làm sao để liên kết mô hình 3D trên software và motor ở thực tế? -> Đây là một vấn đề khó. Có thể dễ dàng nhận ra mỗi điểm ảnh trên mô hình 3D tương ứng với 1 motor trên thực tế. Tuy nhiên do động cơ là 1 thực thể vật lý, nó không thể nhảy cóc xuất hiện ở bất cứ điểm ảnh nào như trên máy tính được, mà cần có sự chuyển động từ thấp đến cao và ngược lại. Nếu mô hình di chuyển trên phần mềm 3D quá nhanh sẽ dẫn tới đáp ứng motor không kịp và tạo ra kết quả không mong muốn như giật lag, giọt nước rung lắc hoặc thậm chí là đứt dây kéo do gia tốc quá lớn. Đây cũng là một thông số cần manually calibrate.
Bạn có thể thấy trong video họ nhấn mạnh về việc làm bằng tay. Đó là những vấn đề mình nêu ở trên và là những vấn đề thường gặp khi làm việc với phần cứng. Thế giới embedded không phải lúc nào cũng 0-1 đúng sai rõ ràng như trên software.
Chi phí cho việc mua motor khá là lớn. Để tạo được hiệu ứng nhìn được được thì mình nghĩ ít nhất bạn phải có từ 9 động cơ (9 giọt nước) trở lên. Hi vọng bạn có đủ kinh phí, đam mê và thời gian để hoàn thành project này. Good luck!
Hay quá, đây đúng là những lời khuyên về mặt kỹ thuật mình cần. Ko ngờ nó phức tạp như vậy.
Mình là dân thuần về cntt. Kiến thức liên quan đến phần cứng, mạch điện tử hoàn toàn ko biết gì.
Bạn có thể cho mình lộ trình học về nhúng và mạch điện tử được không ( giống như khi ai hỏi mình bắt đầu học cntt từ số 0 thì mình thường bảo học ngôn ngữ c và đọc sách cấu trúc dữ liệu giải thuật ý )
Bạn có thể bắt đầu từ Arduino, mua những module bán kèm với Arduino.
Hiện nay tất cả các loại mạch điện cần thiết cho việc điều khiển motor, smart home, IoT đều được module hóa và bán rất rẻ, cực kỳ dễ kiếm tại HCM hoặc đặt qua mạng. Chỉ cần nối dây điện với nhau là dùng được.
Mình khuyên bạn nên tìm kiếm một vài tutorial hay DIY clip trên mạng và làm theo. Nó sẽ cho bạn cái nhìn cơ bản về nhúng. Hãy bắt đầu từ một dự án nhỏ và đơn giản hơn. Ví dụ như bật tắt quạt treo tường điều khiển từ xa. LƯU Ý: CỰC KỲ CHÚ Ý AN TOÀN ĐIỆN! Đừng để chết vì thiếu hiểu biết. Chết theo nghĩa đen!
Nếu bạn hoàn toàn chưa biết gì về nhúng thì mình chắc chắn bạn không thể làm cái kinetic rain được đâu, trừ khi bạn tìm thêm vài người bạn khác có chung sở thích và phối hợp với nhau. Và mình vẫn nghiên về phương án làm việc nhóm cho kinetic rain kể cả khi bạn có biết về nhúng đi chăng nữa.