Lego motorlarını nasıl kontrol edebilirim?


20

Raspberry Pi'mi bazı Lego motorlarını kontrol ettirmenin bir yolunu bulmak istiyorum ve bonus olarak bir veya daha fazla optik sensör kullanmak istiyorum.

Normalde, Lego robotları Mindstorms "brick" denetleyicisini kullanır - komutları vermek için bir Raspberry Pi'niz varsa bu pahalı ve çoğunlukla gereksiz gibi görünür. Mindstorms denetleyicisi, bir PC'ye bağlantı olmadan çalışabilen ancak Ethernet ve modern bilgisayarların birçok özelliğine sahip olmayan bir işlemci ve motor denetleyicisidir.

Lego kreasyonlarından veri kontrol etmemi ve almamı sağlayacak alternatif bir platform var mı?

Bilginize, bu basit bir hata uyarı makinesi içindir. Cihaz bir Jenkins test çerçevesinin durumunu izleyecek ve başarısız olan birim test vakalarının sayısına bağlı olarak bir eylem gerçekleştirecektir. Raspberry pi bazı kolay ayrıştırılabilir XML içeren bir web sayfasını yoklayacak. Hata sayısı> 0 ise, Raspberry Pi'nin makineyi sürmeye başlamasını istiyoruz.


Hey, raspberrypi.stackexchange.com/users/390/salim-fadhley ve raspberrypi.stackexchange.com/users/286/salim-fadhley her iki hesabınız mı? Birleştirme talebinde bulunarak profillerinizi her ikisinde de düzenleyin (mümkünse). Zaten yardım için bir topluluk ekibi üyesine ping attım.
Manishearth

Bunu, basit dc dişli motorları olan eski Lego Mindstorms motorlarıyla yapmak istiyorum. Bir tarafa + 5v koyun, bir tarafa dönün, diğer tarafa + 5v koyun, diğer tarafa dönün. RPi'nin doğrudan sürmesi için çok yüksek akım, bu yüzden hala bazı arayüz devrelerine ihtiyacım var.

Yanıtlar:


13

Standart Lego Mindstorms sensörleri analog (yani 0-5 ° V arasında bir voltaj) veya dijital (I²C veya RS-485) ( kaynak ).

Analog sensörler:

Raspberry Pi'nin bir ADC (analogdan dijitale dönüştürücü) için GPIO'da kopmuş bir pin olduğunu düşünmüyorum, bu yüzden analog sensörler ile (ekstra bir mikro denetleyici olmadan) arabirim kuramıyoruz.

Dijital sensörler:

Raspberry Pi'nin GPIO'da I²C için iki pimi vardır, yani sensörlerinize GND, + V, SDA ve SCL bağlarsanız, onlarla konuşmak için bir I²C kütüphanesi kullanabilmeniz gerekir. Burada bir sürücü var - talimatları takip ederseniz I²C sinyallerini bu kadar kolay gönderebilir ve alabilirsiniz (bir TI TMP102 ile konuşurken):

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)

Örnekler:

Bu sayfada , bir Mindstorm tuğla denetleyicisini harici bir mikro denetleyiciye bağlamak gibi sensörlerin ve motorların nasıl bağlanacağı hakkında birkaç makale vardır :

Mikrodenetleyici ile zihniyet



1

Mindstorms daha fazla LEGO kontrol etmenin tek tamamen LEGO yoludur.

Mevcut NXT 2.0 oldukça pahalıdır, ancak web'deki NXT 2.0'ın 1/3 fiyatı gibi daha eski bir RCX kitini (sadece bir örnek) alabilirsiniz.

Aksi takdirde, LEGO'ya takabileceğiniz farklı bir motor / sensör kitine bakmanız gerekir. Bunları bulmak kolay değildir ve oldukça pahalı olabilir; bu rotadan aşağı inerseniz onlar hakkında daha fazla bilgi sahibi birini bulmaya değer olabilir.

Ebay'den daha eski bir LEGO ürünü alacaksanız , pazarın anlık görüntüsünü almak için brickpicker.com'a göz atmanızı öneririm . (Bir veya iki ay önce keşfettim. LEGO setlerinin ebay'deki mevcut piyasa değeri hakkında bilgi bulmak için harika bir yer.)


2
Bunun için üzgünüm. Yanıtınıza RPi'yi bir şekilde eklemenizi önermeliydim, çünkü bu RPi ile ilgili bir site ve soru RPi ile ilgiliydi. Sorunuzu düzenlerseniz downvote'umu kaldırabilirim. Bu arada, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/… Bu PDF'de "Larsson" u arayın ve birkaç yıl önce Intel Uluslararası Bilim Fuarı'ndan proje özetimi bulacaksınız. Tic Tac Toe'da kazanmayı öğrenen bir Lego Mindstorm'du .
Andrew Larsson

Endişeye gerek yok, ben de mükemmel bir tutum almadım. RPi şeyi biliyorum, ama bir cevap doğrudan onunla ilgili olmak zorunda değil - linux / distro belirli soru bir sürü var ve eminim Pi ile RCX çalıştırabilirsiniz.
ACarter

@Andrew wel Yorumumu sildim, böylece yeni bir başlangıç ​​yapabiliriz. Kulağa ilginç geliyor. Tic Tac Toe oynayabilen bir python betiği yaptım, ama bunu nasıl yapacağınızı öğrenir , bu da kulağa parlak geliyor.
ACarter

Donald Michie'nin MENACE makinesinin değiştirilmiş / optimize edilmiş bir uygulamasını kullandı . Robot, motorlar / sensörler için komutları / verileri NXT'ye / NXT'den / NXT'den iten / çeken bir C ++ programı tarafından kontrol edildi. Hesaplamalar bilgisayarda yapıldı, ancak programın NXT'de çalışan bir sürümü vardı. Yine de, bellek oldukça hızlı tükenir ve diziler standart bellenim tarafından desteklenmez, bu yüzden değiştirilmiş bir tane ile değiştirmek zorunda kaldım. RPi'mi programın yeni bir versiyonunu yapmak için kullanabileceğimi düşünüyorum. Eğlenceli olurdu!
Andrew Larsson

NXT'mi aldığımdan beri, bir bilgisayarda daha üst düzey bir dil kullanarak nasıl kontrol edebileceğinizi merak ettim. LEJOS ve benzeri şeyler var, ama ne kullandınız?
ACarter

1

Tüm bunlara bir alternatif var, NXT sensörlerini ve motorları NXT kontrol ünitesine bağlayın ve ardından Bluetooth ile Pi ile eşleştirin, daha sonra motorlarını kontrol etmek ve sensörlerini okumak için doğrudan NXT'ye komutlar gönderebilirsiniz. Mindstorms bluetooth geliştirici kitine göz atın, bu NXT'nin tamamen kablosuz olmasını sağlar !!!!!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.