LEGO NXT Mindstorms 2.0マむコンのプログラミング。 はじめに

こんにちは。 私の蚘事では、LEGO NXT Mindstorms 2.0マむコンのプログラミングの基本を玹介したす。 アプリケヌション開発には、Microsoft Robotics Developer Studio 4MRDS 4およびNational Instruments LabVIEWNI LabVIEWプラットフォヌムを䜿甚したす。 移動ロボットの自動および自動制埡のタスクが考慮され、実装されたす。 単玔から耇雑に移行したす。









いく぀かの質問ず読者のコメントを予想したす。



なぜNXT Mindstorms 2.0なのか 私のプロゞェクトにずっお、このセットは私にずっお最も適しおいるように思えたからです。 NXTマむコンはMRDS 4およびNI LabVIEWプラットフォヌムず完党に互換性があり、このキットはさたざたなロボット構成を組み立おるずいう点でも非垞に柔軟性があり、ロボットの組み立おに最小限の時間しかかかりたせん。



MRDS 4ずNI LabVIEWプラットフォヌムはなぜですか それは歎史的に起こりたした。 倧孊の䞊玚コヌスで勉匷しおいたのは、これらのプラットフォヌムを䜿甚しおトレヌニングコヌスを開発するこずでした。 さらに、プラットフォヌムの開発ず機胜は十分に容易であるため、これらを䜿甚するず、ロボットを盎接制埡するプログラムを䜜成し、ナヌザヌむンタヌフェむスを開発しお、仮想環境でテストを実行できたすMRDS 4の堎合。



しかし、これらのレッスンが必芁なのは、ネット䞊で、ロボット工孊に関する非垞に倚くのプロゞェクトです このバンドルNXT + MRDS 4 / NI LabVIEWを䜿甚するず、トレヌニングに関する蚘事はほずんどなく、ネむティブプログラミング環境が䞻に䜿甚され、すべおが簡単になりたす。 ロボット工孊、プログラミングに興味があり、NXTのセットを持っおいるそしおそれらの倚くがありたすすべおの幎霢の聎衆。



グラフィックプログラミング蚀語は悪であり、異端者をプログラミングする人たちはそれらに グラフィカルプログラミング蚀語のMRDS 4ずNI LabVIEWには間違いなく欠点がありたす。䟋えば、狭いタスクに焊点を圓おおいたすが、それでも機胜的にはテキスト蚀語よりも劣っおいたせん。さらに、NI LabVIEWは科孊的および工孊的問題を解決するための孊習しやすい蚀語ずしお開発されたした、これには倚くの必芁なラむブラリずツヌルが含たれおいたす。 したがっお、これらのグラフィック蚀語は、問題を解決するのに最適です。 そしお、それを火あぶりにしお軜spしないでください。



これはすべお子䟛っぜく芋え、たったく深刻ではありたせん タスクがアルゎリズムを実装し、プログラミング、ロボット工孊、リアルタむムシステムの基本ず原理を回路やプロトコルに深く入り蟌たずに教える堎合、これは非垞に適切なツヌルですが、安䟡ではありたせんNXTスむヌトに関しお。 Arduinoベヌスのキットは同じ目的に適しおいたすが、このコントロヌラはMRDS 4およびNI LabVIEWずほずんど互換性がなく、これらのプラットフォヌムには独自の魅力がありたす。



䜿甚されおいる技術は腐敗した資本䞻矩囜の産物であり、著者は人々の敵であり、西掋の共謀者の共犯者です 残念ながら、電子工孊ずコンピュヌタヌ技術の分野の技術のほずんどは西掋からのものです。もし圌らが囜内生産の同様の技術を瀺しおくれたらずおも嬉しいです。 それたでは、所有しおいるものを䜿甚したす。 そしお、これのために悪を守るための秘密のサヌビスを教えおはいけたせん。



MRDS 4およびNI LabVIEWプラットフォヌムの抂芁。



甚語を明確にしたす。 この堎合のプラットフォヌムずは、MRDSのVPL蚀語やアプリケヌションランタむムなど、さたざたなツヌルのセットを意味したす。 アプリケヌションを実行可胜* .exeファむルに盎接コンパむルするこずはできたせん。



2006幎に、MicrosoftはMicrosoft Robotics Developer Studioプラットフォヌムの䜜成を発衚したした詳现に぀いおは、Wikipediaの蚘事を参照しおください 。 MRDSはWindows-ロボットおよびシミュレヌション指向のアプリケヌション開発環境です。 珟圚、Microsoft Robotics Developer Studio 4のバヌゞョンが関連しおおり、その機胜には、VPLグラフィカルプログラミング蚀語、WebおよびWindows指向のむンタヌフェむス、VSEシミュレヌション環境、センサヌぞの簡単なアクセス、マむクロコントロヌラヌおよびロボットのアクチュ゚ヌタヌ、Cプログラミング蚀語のサポヌト、 CCRおよびDSSアプリケヌションのマルチスレッドプログラミングず分散実行、倚くのロボットプラットフォヌムEddie、Boe-Bot、CoroBot、iRobot、LEGO NXTなどのサポヌト。



LabVIEWLaboratory Virtual Instrumentation Engineering Workbenchは、ナショナルむンスツルメンツのグラフィカルプログラミング蚀語「G」で䜜成されたプログラムを実行するための開発環境およびプラットフォヌムです詳现に぀いおは、 Wikipediaの蚘事を参照しおください 。 LabVIEWは、デヌタ収集および凊理システムのほか、技術オブゞェクトや技術プロセスの管理にも䜿甚されおいたす。 むデオロギヌ的に、LabVIEWはSCADAシステムに非垞に近いですが、それらずは察照的に、産業制埡システム自動プロセス制埡システムの分野ではなく、ASNI自動化された科孊研究システムの分野で問題を解決するこずに焊点を圓おおいたす。 LabVIEWで䜿甚されるグラフィカルプログラミング蚀語「G」は、デヌタストリヌムアヌキテクチャに基づいおいたす。 このような蚀語での挔算子の実行順序は、呜什の順序呜什型プログラミング蚀語の堎合ではなく、これらの挔算子の入力に関するデヌタの可甚性によっお決たりたす。 デヌタで関連付けられおいない挔算子は、ランダムな順序で䞊列に実行されたす。 LabVIEWは仮想蚈枬噚Eng。Virtual Instrumentず呌ばれ、2぀の郚分で構成されおいたす



LEGO NXT Mindstorms 2.0パックのクむックツアヌ。



NXTキットは、コントロヌルナニット、4぀のセンサヌ、3぀のサヌボで構成されおいたす。 コントロヌルナニットには以䞋が含たれたす



センサヌ異なるトリムレベルの異なるセンサヌセット











図1-センサヌずアクチュ゚ヌタが接続されたNXTマむコン



そしおもちろん、このキットにはLEGO TechnicフォヌムファクタヌのさたざたなLEGOパヌツが含たれおおり、そこからアクチュ゚ヌタヌず支持構造が組み立おられたす。









図2-LEGO Technicフォヌムファクタヌの詳现



最初のアプリケヌションを䜜成しおいたす。



最初のアプリケヌションを䜜成したす。 叀兞的に、このアプリケヌションが「Hello、World」ずいうテキストを衚瀺するずしたす。 実装はMRDS 4ずNI LabVIEWで亀互に行われたすが、その過皋で各プラットフォヌムの仕様を怜蚎したす。



MRDS 4およびNI LabVIEWプラットフォヌムをプレむンストヌルしたす。MRDS4の堎合、 むンストヌルはキリル文字ロシア文字で構成されおいないフォルダヌで実行する必芁があり、ナヌザヌアカりントもラテン文字のみで構成する必芁がありたす 。



1. MRDSプラットフォヌム4。


VPL環境を開始したす[スタヌト]メニュヌ-すべおのプログラム-Microsoft Robotics Developer Studio 4-Visual Programming Language。 この環境では、VPL蚀語でアプリケヌションを開発し、仮想VSE環境でテストを実斜できたす。 VPLのプログラムは、盞互接続されたブロックで構成される図です。 開いたりィンドりには、暙準のコマンドバヌずメニュヌに加えお、5぀のメむンりィンドりがありたす。



  1. 基本アクティビティ-定数、倉数、条件などの挔算子を実装するベヌスブロックが含たれたす。

  2. サヌビス-MRDSプラットフォヌムの機胜ぞのアクセスを提䟛するブロックが含たれたす。たずえば、ロボットのハヌドりェアコンポヌネントず察話するためのブロック、たたはダむアログボックスを呌び出すためのブロック。

  3. プロゞェクト-プロゞェクトに含たれる図ずさたざたな構成ファむルを組み合わせたす。

  4. プロパティ-遞択したブロックのプロパティが含たれたす。

  5. ダむアグラムりィンドり-アプリケヌションのダむアグラム゜ヌスコヌドを盎接含みたす。









図3-VPLプログラミング環境



次の䞀連のアクションを実行したす。



  1. デヌタブロック[基本アクティビティ]りィンドりからおよび[シンプルダむアログ]サヌビスブロック[サヌビス]りィンドりからを远加したす。

  2. デヌタブロックに「Hello、World」匕甚笊なしず入力し、Stringデヌタ型を遞択したす。

  3. DataブロックをSimple Dialogブロックに接続するず、ダむアログボックスが衚瀺され、

  4. さらに、図のようにすべおを実行したす











  5. 図4-接続りィンドり











  6. 図5-デヌタ接続りィンドり











  7. 図6-ダむアグラムの完成図



  8. 実行するプログラムを実行したす。











    図7-プログラムの結果





2. NI LabVIEWプラットフォヌム。


このプラットフォヌムでは、すべおがほが同じように実装されたす。 LabVIEW環境を起動したす。 2぀のりィンドりが前面に衚瀺されたす。1぀目はナヌザヌむンタヌフェむス仮想デバむスの倖芳を実装するように蚭蚈されたフロントパネル、2぀目はプログラムロゞックを実装するブロック図です。









図8-LabVIEW環境りィンドり



ブロック図りィンドりを䜿甚したす。 次の手順を実行したす。



  1. ブロックダむアグラムりィンドりで、右クリックしおコンテキストメニュヌを呌び出し、

  2. 衚瀺されるりィンドりで、図のようにタブに移動し、[文字列定数]を遞択したす。











    図9-コンテキストメニュヌ



  3. このブロックを配眮しお「Hello、World」ず入力し、

  4. 同様に、One Button Dialogブロックを遞択し、











    図10-1぀のボタンダむアログブロック



  5. 図に瀺すようにブロックを接続し、











    図11-完成した図



  6. タスクバヌの氎平矢印の圢のボタンをクリックしおプログラムを実行し、











    図12-プログラムの結果





たずめ





次の蚘事では、NXTプログラミングを盎接扱いたす。 LabVIEWネットワヌク環境には倚くのトレヌニング資料がありたすが、VPLにはほずんどありたせん。 䞡方のプラットフォヌムのリファレンスガむドを孊習するこずを匷くお勧めしたす英語の知識が必芁です。これらのマニュアルには、NXTを䜿甚せずに実装できる倚くの䟋ず、次の曞籍がありたす。



私の蚘事では、自分のプロゞェクトのみを説明したす。なぜなら、 ある゜ヌスから別の゜ヌスに情報を曞き換える理由はありたせん。 私は建蚭的な批刀を受け入れ、議論されたプラットフォヌムに関する質問に答えたす。 事前に感謝したす



All Articles