Soru:
Lego Mindstorms NXT'yi sağlanan yazılım dışında programlamanın başka bir yolu var mı?
Jasarien
2011-11-20 07:54:08 UTC
view on stackexchange narkive permalink

NXT'yi sağlanan yazılımdan başka programlamanın bir yolu olup olmadığını merak ediyorum.

Yazılımla ilgili herhangi bir sorunum yok.

Yazılım tarafından oluşturulan program gerçek bir programlama / komut dosyası diline tercüme ediliyor mu? Öyleyse, bu dil Lego'ya özel mi yoksa ortak bir programlama dili mi?

Robotik ile ilgileniyorsanız, neden [Robotik Teklifi] 'ne (http://area51.stackexchange.com/proposals/40020/robotics) katılmıyorsunuz?
Yedi yanıtlar:
Joubarc
2011-11-20 16:00:12 UTC
view on stackexchange narkive permalink

LEGO tarafından kullanılan programlama arayüzü, standart donanım yazılımını, yani LEGO tarafından sağlananları kullanan programlar oluşturur.

Alternatiflere bakarsanız (ayrıca bkz. Daha fazla bilgi için bu cevap), pek çoğunun aynı donanım yazılımını kullandığını fark edeceksiniz.

Bu, ürettikleri programların aynı dili kullandığı anlamına gelir. standart üretici yazılımı ile. Bir avantaj, aynı NXT tuğlası üzerinde bir program karışımına sahip olabilmenizdir ve bunların orijinal olarak ne yazdıkları önemli değildir.

Standart ürün yazılımı hakkında daha fazla bilgi edinmek istiyorsanız ve nasıl programlanacağını öğrenmek için Mindstorms Software Developer Kit 'i indirebilirsiniz. Bunun ilginç yönlerinden biri, her zaman program oluşturmanız gerekmemesi, ancak NXT'ye doğrudan komutlar da gönderebilmenizdir - yani gerçek programlama mantığınız başka bir bağlı cihazda (PC, akıllı telefon, ...) .

Diğer alternatif diller, tamamen farklı bir firwmare kullanır, bu da dilleri hiçbir şekilde karıştıramayacağınız anlamına gelir. Ancak daha aşina olduğunuz bir dili kullanıyorsa, denemeye değer olabilir. (Yine de her zaman standart ürün yazılımına geri dönebilirsiniz.)

Başka bir aygıtta çalışan programlama mantığına bir örnek olarak, [nxt floppy-disk machine] (https://retracile.net/blog/2011/06/05/15.30), Python'u bir dizüstü bilgisayarda çalıştıran bir NXT'yi kontrol etmek için kullandı. standart ürün yazılımı.
[Not eXactly C] (http://bricxcc.sourceforge.net/nbc), LEGO'nun NXT-G'sinden metin tabanlı programlamaya geçerken öğrenmek için iyi bir dildir.
HaydenStudios
2011-11-20 08:09:18 UTC
view on stackexchange narkive permalink

NXT için alternatif metin tabanlı programlama dilleri vardır. En popüler üç tanesi NXC / NBC, LeJOS NXJ ve RobotC. Hepsi artıları ve eksileri olan çok daha fazlası var ve yavaş bilgisayarlarda bile NXT-G'den çok daha çok yönlü. Benim kişisel favorim NXC / NBC. Ama gerçekten size kalmış. İhtiyaçlarınıza neyin uygun olduğunu görmenin en iyi yolu bu tabloya bakmaktır. Farklı programlama dillerinin artılarını ve eksilerini listeler. NOT: Biraz güncelliğini yitirmiş olabilir, ancak yine de faydalıdır.

Mateen Ulhaq
2011-11-23 07:33:16 UTC
view on stackexchange narkive permalink

Lütfen bu gönderiyi daha iyi hale getirmeye yardımcı olun! Bunun için gerekenler:

  • Temizleme
  • Alakasız bilgilerin kaldırılması intihal edilen kopyalanmış Wikipedia dışı
  • [Muhtemelen] Resimler veya Kod örnekleri


NXT-G

  • Grafiksel programlama ortamı
    • Blokları Kullanır
    • LabView'a dayalıdır
    • Paralel "sıra ışınları" aslında paralel dişlerdir
  • NXT ile birlikte gelir
  • Dil, tüm LEGO markalı ve çoğu 3. taraf sensör / bileşen için sanal enstrümanları destekler.
  • Topluluk desteği önemlidir, örneğin, Brickshelf.

Büyüleyici

  • Grafiksel programlama ortamı
    • MIT'nin Scratch'ine dayalı
    • Sürükle ve bırak
  • LeJOS VM tabanlı.
  • Hızlı.

Robotary / Swift

  • Swift programlama dilini temel alan Mac IDE ve robotik stüdyosu ge
  • IDE özellikleri
    • bağlama duyarlı kod tamamlamaları
    • sözdizimi vurgulama
    • LLDB tabanlı hata ayıklayıcı
    • görsel hata ayıklama göstergeler
    • yerleşik belge görüntüleyici
    • çeşitli örnekler
    • Bluetooth ve USB desteği

YARDIM!

Aşağıdaki bölümün ciddi bir şekilde düzenlenmesi gerekiyor!


C # ile Microsoft Robotics Developer Studio

  • Ücretsiz araçlar Visual Studio Express ve Robotics Developer Studio, C # dilini kullanarak programlama yapmanızı sağlar.
  • coding4fun üzerinde Örnek Proje
  • Diğer diller IronPython ve VB.NET dahil

BricxCC, Next Byte Codes, Not eXactly C


Bricx Command Center (BricxCC) dahil olmak üzere de desteklenmektedir

  • IDE, NXT için NBC ve NXC programlarını yazmak, derlemek ve düzenlemek için kullanılır.
  • Farklı yazılımları NXT'ye aktarabilir.
  • BricxCC birçok yardımcı programa sahiptir, örneğin:
    • NeXTExplorer (dosyaları yükleyin / indirin, NXT'yi birleştirin, dosya onaltılık görüntüleyiciyi kullanın)
    • NeXTScreen (NXT'nin LCD ekranındakileri görüntüleyin ve görüntüleri ve videoları yakalayın)

Sonraki Bayt Kodları (NBC)

  • Açık Kaynak
  • Assembly dili sözdizimi
  • BricxCC, standart NXT çalıştırılabilir dosyalarını (.rxe) NBC'ye çevirebilir

Tam olarak C değil (NXC)

  • Açık Kaynak.
  • Metin tabanlı dil.
  • C'ye dayalıdır.
  • Assembly dili olarak NBC kullanır.
  • En popüler üçüncüsü -NXT için parti programlama dilleri.

Robolab

  • Daha eski programlama ortamı; başlangıçta RCX tuğlaları için kullanılıyordu.
  • Sürüm 2.9, NXT parçasını programlamak için kullanılabilecek şekilde güncellendi
  • Lego, Robolab'ı resmi olarak desteklemeyi bırakacağını duyurdu, ancak Robolab 2.9 hala kullanılabilir ve hala birçok kullanıcı forumu ve diğer yardım kaynakları mevcuttur.

ROBOTC

NXTGCC

  • GCC araç zinciri.
  • NXT'yi programlamak için C dilinde donanım yazılımı

leJOS NXJ

  • Yüksek seviyeli dil
  • Açık kaynak
  • Java tabanlı
  • Özel donanım yazılımı kullanır

nxtOSEK

  • C / C ++
  • Özel donanım yazılımı gerektirir

ICON

  • NXT'nin kendisine dosya yazmak için

MATLAB ve Simulink

MATLAB

  • Üst düzey programlama dili.
  • Sayısal hesaplama, veri toplama ve analiz için.
  • LEGO NXT robotlarını bir Bluetooth seri bağlantı noktası (seri bağlantı noktası iletişimi, MATLAB'ın temel işlevinin bir parçasıdır) veya bir USB bağlantısı üzerinden kontrol etmek için kullanılabilir; örneğin ücretsiz ve açık kaynaklı RWTH - Mindstorms NXT Toolbox 'ı kullanmak.

Simulink

  • Modelleme için MATLAB tabanlı ortam ve Dinamik sistemleri simüle etmek.
  • Simulink'i kullanarak, bir kullanıcı kontrol algoritmaları tasarlayabilir, bu algoritmalar için otomatik olarak C kodu oluşturabilir ve derlenen kodu LEGO NXT'ye indirebilir.

LEGO MINDSTORMS NXT programlaması için MATLAB ve Simulink kodu ücretsiz olarak mevcuttur.


Lua

  • Lua Limanı
  • Genel amaçlı betik dili

Ada

  • A [ http://libre.adacore.com/libre/tools/mindstorms/ GNAT bağlantı noktası] NXT için kullanılabilir. Aynı [[Goce uydu]] 'da kullanılan [[Ravenscar profili]]' ne dayanan özel bir çalışma zamanı çekirdeğine dayanır: bu, üzerinde eşzamanlı ve gerçek zamanlı sistemler geliştirmek için yüksek seviyeli Ada özelliklerinin kullanılmasına izin verir. MINDSTORMS NXT.

URBI

  • [[URBI]] bir başka dildir ve C ++ / Java arayüzlerine sahip paralel ve olay odaklı bir dildir ve Matlab. Ayrıca dağıtım için bir bileşen mimarisine (UObject) sahiptir. Urbi, Nao (cf Robocup), Bioloid veya Aibo dahil olmak üzere birçok robotla uyumludur. [ http://www.gostai.com/nxt URBI NXT Page]

FLL NXT Navigasyon

  • [ http://fllnxtnavigation.codeplex.com/ FLL Nxt Navigasyon] FLL yarışma tablosunda gezinmeye yardımcı olmak için açık kaynaklı bir program. Program yazmak için NXT-G ve .txt dosyalarını kullanır.

ruby-nxt

  • Kitaplık, NXT’yi Ruby programlama dili.
  • Kod, ikili bir dosyaya derlenmez; Bluetooth bağlantısı aracılığıyla doğrudan NXT'ye iletilir.

Robotics.NXT

  • Haskellinterface'den NXT'ye Bluetoooth üzerinden.
  • Doğrudan komutları, mesajları ve birçok sensörü (ayrıca resmi olmayan) destekler.
  • Uzaktan çalıştırılan bir program aracılığıyla bir NXT tuğlasının basit bir mesaj tabanlı kontrolünü de destekler (temel NXC kodu dahildir).

LibNXT

PyNXC

  • Python kodunu, derlemek ve LEGO MINDSTORMS Robots'a indirmek için NXC (yukarıya bakın) koduna çevirir.

( Bazı Wikipedia'dan içerik. Açıkçası CC-Wiki altında lisanslanmıştır.)

starblue
2011-11-22 02:11:44 UTC
view on stackexchange narkive permalink

Ham donanımı programlayabilirsiniz:

NXT'deki ana mikro denetleyici, ARM7TDMI kullanan bir Atmel AT91SAM7S256 ( veri sayfası) ARM'den çekirdek. Bu çekirdek gcc tarafından desteklenmektedir, dolayısıyla Assembly / C / C ++ 'da programlamak için GNU araçlarını kullanabilirsiniz.

AT91SAM7S256 için bir ürün yazılımı oluşturabilir ve denetleyiciyi SAM'a yerleştirdikten sonra USB aracılığıyla yükleyebilirsiniz. Sıfırlama düğmesine uzun basarak -BA modu.

NXT'de ayrıca daha küçük bir ATmega48 kontrol cihazı da vardır, ancak yeniden programlanması amaçlanmamıştır.

LEGO bir Donanım sağlar destek dosyaları arasında Geliştirici Kiti. Mikrodenetleyicinin NXT bağlantı noktalarına nasıl bağlandığını bilmeniz için sensörlerin ve motorların şemalarını ve açıklamalarını içerir.

Miguel
2014-06-02 23:27:26 UTC
view on stackexchange narkive permalink

Kodlamaya NXT yazılımını ve daha sonra EV3'ü kullanarak başladım ve son zamanlarda leJOS kullanarak java'ya geçtim. EV3 yazılımı (ve NXT) fikirlerinizi hızlı bir şekilde kesmek için harikadır, ancak işler çirkinleştiğinde grafik dili hiç yardımcı olmaz.

Pong'un oynanabilir bir sürümünü oluşturmak için ne yapmam gerektiğini izleyin. http://thetechnicgear.com/2014/03/playable-pong-lego-mindstorms-ev3/ adresinde bir oyuncu

Robotman
2012-08-22 12:04:13 UTC
view on stackexchange narkive permalink

Lego NXT'yi istediğiniz herhangi bir dilde programlayabilirsiniz! Asıl soru şu ki, zihin fırtınası tuğlasının karar vermeyi gerçekleştirmesini istiyorsanız veya başka bir cihazın bunu sizin için yapmasını istiyorsanız. Bu iki şekilde çalışır:

NXT'ye yerel formatında çalıştırabileceği bir program indirirsiniz. Sensör girdisine ve yazdığınız programa bağlı olarak, NXT kendi kendine çalışabilir. Zihin fırtınası modülleri, bir program oluşturmak ve ardından bunu NXT'ye indirmek için "görsel" programlama arayüzlerini kullandığınız yerde, öncelikle kutudan çıkar çıkmaz çalışmak üzere tasarlanmıştır.

Yukarıda listelendiği gibi, NXT için programlar yazmak için kullanabileceğiniz çeşitli diğer programlama dilleri ve arayüzleri. Sonunda onları NXT'ye indirmenizi gerektiriyorlar - bu da programı tuğlanın üzerinde çalıştırmak için gerekli tüm hesaplamaları tekrar yapacak. Bunlar, programınız üzerinde size daha fazla kontrol sunma eğilimindedir, ancak sonuçta NXT'de bulunan bilgi işlem gücüne güvenir.

İkinci senaryo, NXT'yi daha fazla bilgi işlemle başka bir cihaza bir tür "bağımlı" olarak kullanmaktır. güç. Bu cihaz - bir PC veya MAC gibi, üzerinde çalışması için NXT cihazına gerçek zamanlı doğrudan komutlar göndermek için kullanılabilir. Ana bilgisayara geri aktarılan geri bildirime bağlı olarak, diğer komutları gönderebilirsiniz. Bu yöntemi kullanarak, rahat olduğunuz herhangi bir programlama dilini kullanabilir ve NXT'yi "aptal" bir cihaz olarak kullanabilirsiniz. Bu size en fazla esnekliği sunar ve rahat olduğunuz hemen hemen her programlama dilini kullanabilirsiniz.

NXT'nin güzel yanı, onu kontrol etmek için çok çeşitli farklı teknikleri kullanmanıza izin vermesidir - bu da onu harika bir platform yapıyor. Bu doğrudan komutları bluetooth üzerinden NXT'ye göndermenin harika bir yolu burada bulunabilir: http://www.robotappstore.com/Knowledge-Base/Programming-LEGO-NXT-Mindstorms/92.html Başlamak için harika bir giriş olduğu için incelemenizi tavsiye ederim. Bilgisayarınız bluetooth destekliyorsa, realterm'i (ücretsiz) kolayca indirebilir ve robotik projenizi hızlı bir şekilde çalıştırabilirsiniz!

Bu doğrudan komutları NXT'ye göndermenin, türünden verilen Lego yazılımıyla kullanılan görsel programlama, ancak dilediğiniz dili kullanmanıza izin verir ve küçük bir değişiklik ile kodunuzu ilgisiz projeler için de kullanabilirsiniz!

Bunun yardımcı olacağını umuyoruz! -Ryan

RoberLR
2017-07-25 17:39:14 UTC
view on stackexchange narkive permalink

NXT-Python adlı bir python modülü kullanabilirsiniz. Python'u nasıl kullanacağınızı biliyorsanız çok faydalı bir araç olacaktır.

Bunu GitHub'da bulabilirsiniz. Paket yöneticisini bazı Linux dağıtımlarında da kullanabilirsiniz:

  apt install python-nxt  

Burada bazı eğitimler bulacaksınız:



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...