Làm thế nào tôi có thể điều khiển động cơ Lego?


20

Tôi muốn tìm cách làm cho Raspberry Pi của tôi điều khiển một số động cơ Lego và như một phần thưởng tôi muốn sử dụng một hoặc nhiều cảm biến quang.

Thông thường, người máy Lego sử dụng bộ điều khiển " cục gạch" của Mindstorms - điều này có vẻ tốn kém và chủ yếu là dư thừa nếu bạn có Raspberry Pi để ra lệnh. Bộ điều khiển Mindstorms là bộ xử lý và bộ điều khiển động cơ có thể chạy mà không cần kết nối với PC nhưng thiếu Ethernet và nhiều tính năng của máy tính hiện đại.

Có nền tảng thay thế nào sẽ cho phép tôi kiểm soát và nhận dữ liệu từ các sáng tạo Lego không?

FYI, đây là một máy cảnh báo lỗi đơn giản. Thiết bị sẽ theo dõi trạng thái của khung kiểm tra Jenkins và thực hiện hành động tùy thuộc vào số lượng trường hợp kiểm tra đơn vị bị lỗi. Raspberry pi sẽ thăm dò một trang web có chứa một số XML dễ phân tích cú pháp. Nếu số lỗi> 0, thì chúng tôi muốn làm cho Raspberry Pi bắt đầu lái máy.


Xin chào, có phải raspberrypi.stackexchange.com/users/390/salim-fadhleyraspberrypi.stackexchange.com/users/286/salim-fadhley cả hai tài khoản của bạn? Chỉnh sửa hồ sơ của bạn trên cả hai (nếu có thể), yêu cầu hợp nhất. Tôi đã ping một thành viên nhóm cộng đồng để được giúp đỡ.
Manishearth

Tôi muốn làm điều này với các động cơ Lego Mindstorms cũ hơn mà tôi có, đó là các động cơ bánh răng dc đơn giản. Đặt + 5v ở một bên, họ rẽ một chiều, đặt + 5v ở phía bên kia, họ rẽ theo hướng khác. Tuy nhiên, dòng điện quá cao để RPi lái trực tiếp, vì vậy tôi vẫn cần một số mạch giao diện.

Câu trả lời:


13

Các cảm biến Lego Mindstorms tiêu chuẩn là tương tự (tức là điện áp trong khoảng 0-5? V) hoặc kỹ thuật số (I²C hoặc RS-485) ( nguồn ).

Cảm biến tương tự:

Tôi không nghĩ Raspberry Pi có chân cắm bị hỏng trong GPIO cho ADC (bộ chuyển đổi tương tự sang số), vì vậy chúng ta không thể giao tiếp với các cảm biến tương tự (không có vi điều khiển bổ sung).

Cảm biến kỹ thuật số:

Raspberry Pi có hai chân trong GPIO cho I²C, điều đó có nghĩa là nếu bạn kết nối GND, + V, SDA và SCL với các cảm biến của mình, bạn sẽ có thể sử dụng thư viện I²C để nói chuyện với chúng. Có một trình điều khiển ở đây - nếu bạn làm theo hướng dẫn, bạn sẽ có thể gửi và nhận tín hiệu I²C dễ dàng như thế này (nói chuyện với TI TMP102):

raspberrypi bootc # echo tmp102 0x48 > /sys/class/i2c-adapter/i2c-0/new_device
raspberrypi bootc # sensors
tmp102-i2c-0-48
Adapter: bcm2708_i2c.0
temp1:        +21.6°C  (high = +160.0°C, hyst = +150.0°C)

Ví dụ:

Có một vài bài viết về cách kết nối cảm biến và động cơ trên trang này , chẳng hạn như kết nối bộ điều khiển cục gạch Mindstorm với bộ vi điều khiển bên ngoài:

Mindstorm với vi điều khiển



1

Mindstorms là cách duy nhất hoàn toàn LEGO để kiểm soát nhiều LEGO hơn.

NXT 2.0 hiện tại khá đắt tiền, nhưng bạn có thể chọn một bộ RCX cũ hơn (đó chỉ là một ví dụ) với giá bằng 1/3 giá của NXT 2.0 trên web.

Nếu không, bạn sẽ phải tìm đến một bộ động cơ / cảm biến khác mà bạn có thể gắn vào LEGO. Chúng không chính xác dễ tìm, và có thể khá đắt tiền; Có thể đáng để cố gắng tìm một người biết nhiều hơn về họ nếu bạn đi xuống tuyến đường này.

Nếu bạn định mua một sản phẩm LEGO cũ hơn trên ebay, tôi sẽ đề nghị duyệt brickpicker.com để có một ảnh chụp nhanh về thị trường. (Tôi đã phát hiện ra nó một hoặc hai tháng trước. Đây là một nơi tuyệt vời để tìm thông tin về giá trị thị trường hiện tại của các bộ LEGO trên ebay.)


2
Xin lỗi vì điều đó. Tôi nên đề nghị bạn bằng cách nào đó bao gồm RPi trong câu trả lời của bạn, bởi vì đây là trang web về RPi và câu hỏi là về RPi. Nếu bạn chỉnh sửa câu hỏi của mình, tôi có thể xóa downvote của mình. Nhân tiện, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/ trộm Tìm kiếm "Larsson" trong bản PDF đó và bạn sẽ tìm thấy bản tóm tắt dự án của tôi từ Hội chợ Khoa học Quốc tế Intel vài năm trước. Đó là một Lego Mindstorm đã học cách chiến thắng tại Tic Tac Toe.
Andrew Larsson

Đừng lo lắng, tôi cũng không có một thái độ hoàn hảo. Tôi biết điều RPi, nhưng một câu trả lời không liên quan trực tiếp đến nó - chúng tôi có vô số câu hỏi cụ thể về linux / distro và tôi chắc chắn rằng bạn có thể chạy RCX với Pi.
ACarter

@Andrew chào mừng Tôi đã xóa nhận xét của mình, để chúng tôi có thể bắt đầu mới. Nghe thật hấp dẫn. Tôi đã tạo ra một kịch bản python có thể chơi tic tac toe, nhưng làm cho nó để nó học cách chơi nó, tốt, điều đó nghe thật tuyệt vời.
ACarter

Nó đã sử dụng một triển khai được sửa đổi / tối ưu hóa cho máy MENACE của Donald Michie . Robot được điều khiển bởi chương trình C ++, đẩy / kéo lệnh / dữ liệu cho / từ động cơ / cảm biến đến / từ NXT. Các tính toán được thực hiện trên máy tính, nhưng tôi đã có một phiên bản của chương trình chạy trên chính NXT. Tuy nhiên, nó sẽ hết bộ nhớ khá nhanh và các mảng không được hỗ trợ bởi phần sụn tiêu chuẩn, vì vậy tôi phải thay thế nó bằng một bản sửa đổi. Tôi nghĩ rằng tôi chỉ có thể sử dụng RPi của mình để tạo ra một phiên bản mới của chương trình. Nó sẽ rất vui
Andrew Larsson

Kể từ khi tôi có NXT, tôi đã tự hỏi làm thế nào bạn có thể điều khiển nó bằng ngôn ngữ cấp cao hơn trên máy tính. Có những thứ như leJOS và những thứ khác, nhưng bạn đã sử dụng cái gì?
ACarter

1

Có một giải pháp thay thế cho tất cả những điều này, kết nối các cảm biến và động cơ NXT với thiết bị điều khiển NXT và sau đó ghép nối nó qua Bluetooth với Pi, sau đó bạn có thể gửi lệnh trực tiếp đến NXT để điều khiển động cơ và đọc cảm biến của nó. kiểm tra bộ công cụ phát triển bluetooth Mindstorms, điều này cho phép NXT hoàn toàn không dây !!!!!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.