Bagaimana saya bisa mengendalikan motor Lego?

20

Saya ingin menemukan cara untuk membuat Raspberry Pi saya mengendalikan beberapa motor Lego, dan sebagai bonus saya ingin menggunakan satu atau lebih sensor optik.

Biasanya, robotik Lego menggunakan pengontrol "bata" Mindstorms - ini tampaknya mahal dan sebagian besar berlebihan jika Anda memiliki Raspberry Pi untuk mengeluarkan perintah. Pengontrol Mindstorms adalah prosesor dan pengontrol motor yang dapat berjalan tanpa koneksi ke PC tetapi tidak memiliki Ethernet dan banyak fitur komputer modern.

Apakah ada platform alternatif yang memungkinkan saya untuk mengontrol dan menerima data dari kreasi Lego?

FYI, ini untuk mesin peringatan bug sederhana. Perangkat akan memantau status kerangka uji Jenkins dan melakukan tindakan tergantung pada jumlah kasus uji unit yang gagal. Raspberry pi akan polling halaman web yang berisi beberapa XML yang mudah diurai. Jika jumlah bug> 0, maka kami ingin Raspberry Pi mulai mengemudi mesin.

Salim Fadhley
sumber
Hai, apakah raspberrypi.stackexchange.com/users/390/salim-fadhley dan raspberrypi.stackexchange.com/users/286/salim-fadhley keduanya akun Anda? Edit profil Anda di kedua (jika mungkin), meminta penggabungan. Saya sudah melakukan ping ke anggota tim komunitas untuk meminta bantuan.
Manishearth
Saya ingin melakukan ini dengan motor Lego Mindstorms lama yang saya miliki, yang merupakan motor dc gear sederhana. Letakkan + 5v di satu sisi, mereka berbelok ke satu arah, menempatkan + 5v di sisi lain, mereka berbelok ke arah lain. Arus terlalu tinggi untuk RPi untuk dikendarai secara langsung, jadi saya masih memerlukan beberapa sirkuit antarmuka.

Jawaban:

13

Sensor standar Lego Mindstorms adalah analog (yaitu tegangan antara 0-5? V), atau digital (I²C atau RS-485) ( sumber ).

Sensor analog:

Saya tidak berpikir Raspberry Pi memiliki pin rusak di GPIO untuk ADC (analog ke digital converter), jadi kami tidak dapat berinteraksi dengan sensor analog (tanpa mikrokontroler tambahan).

Sensor digital:

Raspberry Pi memang memiliki dua pin di GPIO untuk I²C, yang berarti bahwa jika Anda menghubungkan GND, + V, SDA dan SCL ke sensor Anda, Anda harus dapat menggunakan perpustakaan I²C untuk berbicara dengan mereka. Ada seorang sopir sini - jika Anda mengikuti instruksi, Anda harus dapat mengirim dan menerima sinyal I²C semudah ini (berbicara dengan 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)

Contoh:

Ada beberapa artikel tentang cara menghubungkan sensor dan motor pada halaman ini , seperti menghubungkan pengontrol bata Mindstorm ke mikrokontroler eksternal:

Mindstorm dengan mikrokontroler

Alex L
sumber
4

Terdapat BrickPi + membantu Anda menghubungkan sensor LEGO dan motor ke Raspberry Pi dan menggantikan Brick MINDSTORMS.

http://www.dexterindustries.com/brickpi/

S Melendy
sumber
1

Mindstorms adalah satu-satunya cara yang sepenuhnya LEGO mengendalikan lebih banyak LEGO.

NXT 2.0 saat ini cukup mahal, tetapi Anda bisa mengambil kit RCX yang lebih lama (itu hanya contoh) untuk sesuatu seperti 1/3 harga NXT 2.0 di web.

Jika tidak, Anda harus melihat ke kit motor / sensor yang berbeda yang mungkin dapat Anda pasang ke LEGO. Ini tidak mudah ditemukan, dan bisa sangat mahal; mungkin ada baiknya mencoba mencari seseorang yang tahu lebih banyak tentang mereka jika Anda menempuh rute ini.

Jika Anda akan mendapatkan produk LEGO yang lebih lama dari ebay, saya sarankan browsing brickpicker.com untuk mendapatkan gambaran tentang pasar. (Saya menemukannya satu atau dua bulan yang lalu. Ini adalah tempat yang bagus untuk mencari info tentang nilai pasar LEGO set saat ini di ebay.)

ACarter
sumber
2
Maaf soal itu. Saya seharusnya menyarankan agar Anda memasukkan RPi dalam jawaban Anda, karena ini adalah situs tentang RPi, dan pertanyaannya adalah tentang RPi. Jika Anda mengedit pertanyaan Anda, saya dapat menghapus downvote saya. Ngomong-ngomong, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/... Cari "Larsson" dalam PDF itu dan Anda akan menemukan abstrak proyek saya dari Intel International Science Fair beberapa tahun yang lalu. Itu adalah Lego Mindstorm yang belajar untuk menang di Tic Tac Toe.
Andrew Larsson
Jangan khawatir, saya juga tidak mengambil sikap yang sempurna. Saya tahu hal RPi, tetapi jawaban tidak harus langsung berhubungan dengan itu - kami punya banyak pertanyaan spesifik linux / distro, dan saya yakin Anda bisa menjalankan RCX dengan Pi.
ACarter
@Andrew, saya sudah menghapus komentar saya, jadi kita bisa memulai yang baru. Kedengarannya sangat menarik. Saya telah membuat skrip python yang bisa memainkan tic tac toe, tetapi membuatnya jadi itu belajar cara memainkannya, well, itu terdengar brilian.
ACarter
Ini menggunakan implementasi yang dimodifikasi / dioptimalkan dari mesin MENACE Donald Michie . Robot dikendalikan oleh program C ++ yang mendorong / menarik perintah / data untuk / dari motor / sensor ke / dari NXT. Perhitungan dilakukan di komputer, tetapi saya memiliki versi program yang berjalan di NXT itu sendiri. Akan kehabisan memori cukup cepat, dan array tidak didukung oleh firmware standar, jadi saya harus menggantinya dengan yang dimodifikasi. Saya pikir saya mungkin menggunakan RPi saya untuk membuat versi baru dari program ini. Itu akan menyenangkan!
Andrew Larsson
Sejak saya mendapatkan NXT, saya bertanya-tanya bagaimana Anda bisa mengendalikannya menggunakan bahasa tingkat tinggi di komputer. Ada hal-hal seperti leJOS dan lainnya, tetapi apa yang Anda gunakan?
ACarter
1

Ada alternatif untuk semua ini, hubungkan sensor NXT dan motor ke unit kontrol NXT dan kemudian memasangkannya melalui Bluetooth dengan Pi, Anda kemudian dapat mengirim perintah langsung ke NXT untuk mengendalikan motor itu dan membaca sensor itu. lihat kit pengembang Bluetooth Mindstorms, ini memungkinkan NXT sepenuhnya nirkabel !!!!!

mikrofon
sumber